From lede-commits at lists.infradead.org  Fri Nov  1 03:49:14 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 01 Nov 2024 06:49:14 -0400
Subject: [openwrt/openwrt]  kernel: KERNEL_NET_L3_MASTER_DEV default to y if
 !SMALL_FLASH
In-Reply-To: <173045815401.2727146.16166629275321034671@git-01.infra.openwrt.org>
References: <173045815401.2727146.16166629275321034671@git-01.infra.openwrt.org>
Message-ID: <mailman.150133.1730458898.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/2915cfb626367208ada0c91e27529f9516ce1873

commit 2915cfb626367208ada0c91e27529f9516ce1873
Author: Paul Donald <newtwen+github at gmail.com>
AuthorDate: Tue Oct 29 21:49:00 2024 +0100

    kernel: KERNEL_NET_L3_MASTER_DEV default to y if !SMALL_FLASH
    
    Follow-up for 45d541bb409355f090b971d96ebebd8610ef84a7
    
    This change allows features such as kmod-vrf
    
    ```
    KERNEL_NET_L3_MASTER_DEV=n
    
    x86_64 generic
            bzImage 6,927,360 bytes
    aarch64 coretex-a53
            kernel  4,268,836 bytes
    
    KERNEL_NET_L3_MASTER_DEV=y
    
    x86_64 generic
            bzImage 6,931,456 bytes
    aarch64 coretex-a53
            kernel  4,273,042 bytes
    
    Delta:
    x86_64 generic
            +4096 bytes
    aarch64 coretex-a53
            +4206 bytes
    
    x86_64 generic vrf.ko - 258,792 bytes
    aarch64 coretex-a53 vrf.ko - 263,632 bytes
    ```
    
    See:
    https://forum.openwrt.org/t/vrf-support-testing-out-evpn-at-home/181108
    https://forum.openwrt.org/t/please-enable-net-l3-master-dev-in-kernel-build-by-default/201825
    
    Signed-off-by: Paul Donald <newtwen+github at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16819
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 config/Config-kernel.in | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/config/Config-kernel.in b/config/Config-kernel.in
index 43ed9eaf36..0fa039db40 100644
--- a/config/Config-kernel.in
+++ b/config/Config-kernel.in
@@ -1187,9 +1187,11 @@ endif
 
 config KERNEL_NET_L3_MASTER_DEV
 	bool "L3 Master device support"
+	default y if !SMALL_FLASH
 	help
 	  This module provides glue between core networking code and device
 	  drivers to support L3 master devices like VRF.
+  	  Increases the compressed kernel size by ~4kB (as of Linux 6.6).
 
 config KERNEL_XDP_SOCKETS
 	bool "XDP sockets support"



From lede-commits at lists.infradead.org  Fri Nov  1 13:46:08 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 01 Nov 2024 16:46:08 -0400
Subject: [openwrt/openwrt]  bcm27xx-gpu-fw: fix package
In-Reply-To: <173049396875.3579346.2831238970632043986@git-01.infra.openwrt.org>
References: <173049396875.3579346.2831238970632043986@git-01.infra.openwrt.org>
Message-ID: <mailman.150597.1730493978.1280.lede-commits@lists.infradead.org>

noltari pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/efd1ec51a149cfa536b5e37a5a5d1a8b9fe363ea

commit efd1ec51a149cfa536b5e37a5a5d1a8b9fe363ea
Author: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
AuthorDate: Fri Nov 1 21:44:43 2024 +0100

    bcm27xx-gpu-fw: fix package
    
    Install definition was accidentally removed in 7afdbc0955a5 and IB fails.
    
    Fixes: 7afdbc0955a5 ("bcm27xx-gpu-fw: update to latest version")
    Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
---
 package/kernel/bcm27xx-gpu-fw/Makefile | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/package/kernel/bcm27xx-gpu-fw/Makefile b/package/kernel/bcm27xx-gpu-fw/Makefile
index 6de2fd7501..0b8f5781e5 100644
--- a/package/kernel/bcm27xx-gpu-fw/Makefile
+++ b/package/kernel/bcm27xx-gpu-fw/Makefile
@@ -4,7 +4,7 @@ include $(INCLUDE_DIR)/kernel.mk
 PKG_NAME:=bcm27xx-gpu-fw
 PKG_VERSION:=2024.10.08
 PKG_VERSION_REAL:=1.$(subst .,,$(PKG_VERSION))
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=raspi-firmware_$(PKG_VERSION_REAL).orig.tar.xz
 PKG_SOURCE_URL:=https://github.com/raspberrypi/firmware/releases/download/$(PKG_VERSION_REAL)
@@ -33,6 +33,10 @@ define Build/Compile
 	true
 endef
 
+define Package/bcm27xx-gpu-fw/install
+	true
+endef
+
 define Build/InstallDev
 	$(CP) $(PKG_BUILD_DIR)/boot/bootcode.bin $(KERNEL_BUILD_DIR)
 	$(CP) $(PKG_BUILD_DIR)/boot/LICENCE.broadcom $(KERNEL_BUILD_DIR)



From lede-commits at lists.infradead.org  Fri Nov  1 13:48:24 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 01 Nov 2024 16:48:24 -0400
Subject: [openwrt/openwrt]  bcm27xx-gpu-fw: fix package
In-Reply-To: <173049410416.3582453.17924068301090227861@git-01.infra.openwrt.org>
References: <173049410416.3582453.17924068301090227861@git-01.infra.openwrt.org>
Message-ID: <mailman.150598.1730494107.1280.lede-commits@lists.infradead.org>

noltari pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/a4f3e170291416981093884d6326de63d780d6d2

commit a4f3e170291416981093884d6326de63d780d6d2
Author: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
AuthorDate: Fri Nov 1 21:44:43 2024 +0100

    bcm27xx-gpu-fw: fix package
    
    Install definition was accidentally removed in 7afdbc0955a5 and IB fails.
    
    Fixes: 7afdbc0955a5 ("bcm27xx-gpu-fw: update to latest version")
    Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
    (cherry picked from commit efd1ec51a1)
---
 package/kernel/bcm27xx-gpu-fw/Makefile | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/package/kernel/bcm27xx-gpu-fw/Makefile b/package/kernel/bcm27xx-gpu-fw/Makefile
index 6de2fd7501..0b8f5781e5 100644
--- a/package/kernel/bcm27xx-gpu-fw/Makefile
+++ b/package/kernel/bcm27xx-gpu-fw/Makefile
@@ -4,7 +4,7 @@ include $(INCLUDE_DIR)/kernel.mk
 PKG_NAME:=bcm27xx-gpu-fw
 PKG_VERSION:=2024.10.08
 PKG_VERSION_REAL:=1.$(subst .,,$(PKG_VERSION))
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=raspi-firmware_$(PKG_VERSION_REAL).orig.tar.xz
 PKG_SOURCE_URL:=https://github.com/raspberrypi/firmware/releases/download/$(PKG_VERSION_REAL)
@@ -33,6 +33,10 @@ define Build/Compile
 	true
 endef
 
+define Package/bcm27xx-gpu-fw/install
+	true
+endef
+
 define Build/InstallDev
 	$(CP) $(PKG_BUILD_DIR)/boot/bootcode.bin $(KERNEL_BUILD_DIR)
 	$(CP) $(PKG_BUILD_DIR)/boot/LICENCE.broadcom $(KERNEL_BUILD_DIR)



From lede-commits at lists.infradead.org  Sat Nov  2 03:23:40 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 02 Nov 2024 06:23:40 -0400
Subject: [openwrt/openwrt]  kernel: KERNEL_NET_L3_MASTER_DEV default to y if
 !SMALL_FLASH
In-Reply-To: <173054302059.629357.4025751835682393355@git-01.infra.openwrt.org>
References: <173054302059.629357.4025751835682393355@git-01.infra.openwrt.org>
Message-ID: <mailman.150748.1730543025.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/e3bbeabe9248938ab506bc55c13ff545a72f1d9b

commit e3bbeabe9248938ab506bc55c13ff545a72f1d9b
Author: Paul Donald <newtwen+github at gmail.com>
AuthorDate: Tue Oct 29 21:49:00 2024 +0100

    kernel: KERNEL_NET_L3_MASTER_DEV default to y if !SMALL_FLASH
    
    Follow-up for 45d541bb409355f090b971d96ebebd8610ef84a7
    
    This change allows features such as kmod-vrf
    
    ```
    KERNEL_NET_L3_MASTER_DEV=n
    
    x86_64 generic
            bzImage 6,927,360 bytes
    aarch64 coretex-a53
            kernel  4,268,836 bytes
    
    KERNEL_NET_L3_MASTER_DEV=y
    
    x86_64 generic
            bzImage 6,931,456 bytes
    aarch64 coretex-a53
            kernel  4,273,042 bytes
    
    Delta:
    x86_64 generic
            +4096 bytes
    aarch64 coretex-a53
            +4206 bytes
    
    x86_64 generic vrf.ko - 258,792 bytes
    aarch64 coretex-a53 vrf.ko - 263,632 bytes
    ```
    
    See:
    https://forum.openwrt.org/t/vrf-support-testing-out-evpn-at-home/181108
    https://forum.openwrt.org/t/please-enable-net-l3-master-dev-in-kernel-build-by-default/201825
    
    Signed-off-by: Paul Donald <newtwen+github at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16819
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 config/Config-kernel.in | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/config/Config-kernel.in b/config/Config-kernel.in
index 43ed9eaf36..0fa039db40 100644
--- a/config/Config-kernel.in
+++ b/config/Config-kernel.in
@@ -1187,9 +1187,11 @@ endif
 
 config KERNEL_NET_L3_MASTER_DEV
 	bool "L3 Master device support"
+	default y if !SMALL_FLASH
 	help
 	  This module provides glue between core networking code and device
 	  drivers to support L3 master devices like VRF.
+  	  Increases the compressed kernel size by ~4kB (as of Linux 6.6).
 
 config KERNEL_XDP_SOCKETS
 	bool "XDP sockets support"



From lede-commits at lists.infradead.org  Sat Nov  2 04:15:22 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 02 Nov 2024 07:15:22 -0400
Subject: [openwrt/openwrt]  ipq40xx: use devm for mutex_init
In-Reply-To: <173054612272.724432.773781357846563924@git-01.infra.openwrt.org>
References: <173054612272.724432.773781357846563924@git-01.infra.openwrt.org>
Message-ID: <mailman.150771.1730546132.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/57f2c72505f24b41fd9beaef3a8aa713b436cdb9

commit 57f2c72505f24b41fd9beaef3a8aa713b436cdb9
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Fri Oct 18 18:56:30 2024 -0700

    ipq40xx: use devm for mutex_init
    
    Avoids having to call mutex_destroy in remove.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16755
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 .../706-net-dsa-qca8k-add-IPQ4019-built-in-switch-support.patch     | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/target/linux/ipq40xx/patches-6.6/706-net-dsa-qca8k-add-IPQ4019-built-in-switch-support.patch b/target/linux/ipq40xx/patches-6.6/706-net-dsa-qca8k-add-IPQ4019-built-in-switch-support.patch
index 20dd345c69..9bd5ca515e 100644
--- a/target/linux/ipq40xx/patches-6.6/706-net-dsa-qca8k-add-IPQ4019-built-in-switch-support.patch
+++ b/target/linux/ipq40xx/patches-6.6/706-net-dsa-qca8k-add-IPQ4019-built-in-switch-support.patch
@@ -87,7 +87,7 @@ Signed-off-by: Robert Marko <robert.marko at sartura.hr>
  		if (!dsa_port_offloads_bridge(dsa_to_port(ds, i), &bridge))
 --- /dev/null
 +++ b/drivers/net/dsa/qca/qca8k-ipq4019.c
-@@ -0,0 +1,946 @@
+@@ -0,0 +1,948 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2009 Felix Fietkau <nbd at nbd.name>
@@ -989,7 +989,9 @@ Signed-off-by: Robert Marko <robert.marko at sartura.hr>
 +	priv->ds->num_ports = QCA8K_IPQ4019_NUM_PORTS;
 +	priv->ds->priv = priv;
 +	priv->ds->ops = &qca8k_ipq4019_switch_ops;
-+	mutex_init(&priv->reg_mutex);
++	ret = devm_mutex_init(dev, &priv->reg_mutex);
++	if (ret)
++		return ret;
 +	platform_set_drvdata(pdev, priv);
 +
 +	return dsa_register_switch(priv->ds);



From lede-commits at lists.infradead.org  Sat Nov  2 15:34:01 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 02 Nov 2024 18:34:01 -0400
Subject: [openwrt/openwrt]  uboot-mediatek: import patches improving menu
 navigation
In-Reply-To: <173058684123.1745307.8718844620065659442@git-01.infra.openwrt.org>
References: <173058684123.1745307.8718844620065659442@git-01.infra.openwrt.org>
Message-ID: <mailman.150917.1730586848.1280.lede-commits@lists.infradead.org>

dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/5745b7e81579183d0c3e270ac155eb853677169c

commit 5745b7e81579183d0c3e270ac155eb853677169c
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Thu Oct 31 21:08:10 2024 +0000

    uboot-mediatek: import patches improving menu navigation
    
    Using the arrow keys to navigate the U-Boot menu often leads to being
    dropped into the U-Boot shell unexpectedly.
    This can be prevented in most cases by improving the logic to detect the
    arrow key ESC sequence and only reprinting the menu if actually needed.
    Also enable CONFIG_SERIAL_RX_BUFFER for all boards as it helps preventing
    the remaining cases.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 package/boot/uboot-mediatek/Makefile               |   3 +-
 ...e-logic-checking-whether-ESC-key-is-press.patch |  63 ++++++++++++
 ...pport-to-check-if-menu-needs-to-be-reprin.patch | 112 +++++++++++++++++++++
 .../patches/012-bootmenu-add-reprint-check.patch   |  75 ++++++++++++++
 ...nu-add-ability-to-select-item-by-shortkey.patch |  45 +++++----
 .../patches/211-cmd-bootmenu-custom-title.patch    |   8 +-
 6 files changed, 279 insertions(+), 27 deletions(-)

diff --git a/package/boot/uboot-mediatek/Makefile b/package/boot/uboot-mediatek/Makefile
index 62979724c2..ab08126b51 100644
--- a/package/boot/uboot-mediatek/Makefile
+++ b/package/boot/uboot-mediatek/Makefile
@@ -844,7 +844,8 @@ UBOOT_TARGETS := \
 UBOOT_CUSTOMIZE_CONFIG := \
 	--disable TOOLS_KWBIMAGE \
 	--disable TOOLS_LIBCRYPTO \
-	--disable TOOLS_MKEFICAPSULE
+	--disable TOOLS_MKEFICAPSULE \
+	--enable SERIAL_RX_BUFFER
 
 ifdef CONFIG_TARGET_mediatek
 UBOOT_MAKE_FLAGS += $(UBOOT_IMAGE:.fip=.bin)
diff --git a/package/boot/uboot-mediatek/patches/010-menu-fix-the-logic-checking-whether-ESC-key-is-press.patch b/package/boot/uboot-mediatek/patches/010-menu-fix-the-logic-checking-whether-ESC-key-is-press.patch
new file mode 100644
index 0000000000..f3589c4622
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/010-menu-fix-the-logic-checking-whether-ESC-key-is-press.patch
@@ -0,0 +1,63 @@
+From 72b4ba8417d33516b8489bac3c90dbbbf781a3d2 Mon Sep 17 00:00:00 2001
+From: Weijie Gao <weijie.gao at mediatek.com>
+Date: Tue, 29 Oct 2024 17:47:10 +0800
+Subject: [PATCH 1/3] menu: fix the logic checking whether ESC key is pressed
+
+It's observed that the bootmenu on a serial console sometimes
+incorrectly quitted with superfluous characters filled to command
+line input:
+
+>  *** U-Boot Boot Menu ***
+>
+>      1. Startup system (Default)
+>      2. Upgrade firmware
+>      3. Upgrade ATF BL2
+>      4. Upgrade ATF FIP
+>      5. Load image
+>      0. U-Boot console
+>
+>
+>  Press UP/DOWN to move, ENTER to select, ESC to quit
+>MT7988> [B
+
+Analysis shows it was caused by the wrong logic of bootmenu_loop:
+
+At first the bootmenu_loop received the first ESC char correctly.
+
+However, during the second call to bootmenu_loop, there's no data
+in the UART Rx FIFO. Due to the low baudrate, the second char of
+the down array key sequence hasn't be fully received.
+
+But bootmenu_loop just did a mdelay(10), and then treated it as a
+single ESC key press event. It didn't even try tstc() again after
+the 10ms timeout.
+
+This patch fixes this issue by letting bootmenu_loop check tstc()
+twice.
+
+Tested-By: E Shattow <lucent at gmail.com>
+Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
+---
+ common/menu.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/common/menu.c
++++ b/common/menu.c
+@@ -525,14 +525,15 @@ enum bootmenu_key bootmenu_loop(struct b
+ 				struct cli_ch_state *cch)
+ {
+ 	enum bootmenu_key key;
+-	int c;
++	int c, errchar = 0;
+ 
+ 	c = cli_ch_process(cch, 0);
+ 	if (!c) {
+ 		while (!c && !tstc()) {
+ 			schedule();
+ 			mdelay(10);
+-			c = cli_ch_process(cch, -ETIMEDOUT);
++			c = cli_ch_process(cch, errchar);
++			errchar = -ETIMEDOUT;
+ 		}
+ 		if (!c) {
+ 			c = getchar();
diff --git a/package/boot/uboot-mediatek/patches/011-menu-add-support-to-check-if-menu-needs-to-be-reprin.patch b/package/boot/uboot-mediatek/patches/011-menu-add-support-to-check-if-menu-needs-to-be-reprin.patch
new file mode 100644
index 0000000000..9d356ff0b4
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/011-menu-add-support-to-check-if-menu-needs-to-be-reprin.patch
@@ -0,0 +1,112 @@
+From f1cbdd3330f0055dfbff0ef7d86276c4cc3cff2a Mon Sep 17 00:00:00 2001
+From: Weijie Gao <weijie.gao at mediatek.com>
+Date: Tue, 29 Oct 2024 17:47:16 +0800
+Subject: [PATCH 2/3] menu: add support to check if menu needs to be reprinted
+
+This patch adds a new callback named need_reprint for menu.
+The need_reprint will be called before printing the menu. If the
+callback exists and returns FALSE, menu printing will be canceled.
+
+This is very useful if the menu was not changed. It can save time
+for serial-based menu to handle more input data.
+
+Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
+---
+ boot/pxe_utils.c |  2 +-
+ cmd/bootmenu.c   |  2 +-
+ cmd/eficonfig.c  |  2 +-
+ common/menu.c    | 11 +++++++++++
+ include/menu.h   |  1 +
+ 5 files changed, 15 insertions(+), 3 deletions(-)
+
+--- a/boot/pxe_utils.c
++++ b/boot/pxe_utils.c
+@@ -1449,7 +1449,7 @@ static struct menu *pxe_menu_to_menu(str
+ 	 * Create a menu and add items for all the labels.
+ 	 */
+ 	m = menu_create(cfg->title, DIV_ROUND_UP(cfg->timeout, 10),
+-			cfg->prompt, NULL, label_print, NULL, NULL);
++			cfg->prompt, NULL, label_print, NULL, NULL, NULL);
+ 	if (!m)
+ 		return NULL;
+ 
+--- a/cmd/bootmenu.c
++++ b/cmd/bootmenu.c
+@@ -506,7 +506,7 @@ static enum bootmenu_ret bootmenu_show(i
+ 
+ 	menu = menu_create(NULL, bootmenu->delay, 1, menu_display_statusline,
+ 			   bootmenu_print_entry, bootmenu_choice_entry,
+-			   bootmenu);
++			   NULL, bootmenu);
+ 	if (!menu) {
+ 		bootmenu_destroy(bootmenu);
+ 		return BOOTMENU_RET_FAIL;
+--- a/cmd/eficonfig.c
++++ b/cmd/eficonfig.c
+@@ -443,7 +443,7 @@ efi_status_t eficonfig_process_common(st
+ 		efi_menu->menu_desc = menu_desc;
+ 
+ 	menu = menu_create(NULL, 0, 1, display_statusline, item_data_print,
+-			   item_choice, efi_menu);
++			   item_choice, NULL, efi_menu);
+ 	if (!menu)
+ 		return EFI_INVALID_PARAMETER;
+ 
+--- a/common/menu.c
++++ b/common/menu.c
+@@ -43,6 +43,7 @@ struct menu {
+ 	void (*display_statusline)(struct menu *);
+ 	void (*item_data_print)(void *);
+ 	char *(*item_choice)(void *);
++	bool (*need_reprint)(void *);
+ 	void *item_choice_data;
+ 	struct list_head items;
+ 	int item_cnt;
+@@ -117,6 +118,11 @@ static inline void *menu_item_destroy(st
+  */
+ static inline void menu_display(struct menu *m)
+ {
++	if (m->need_reprint) {
++		if (!m->need_reprint(m->item_choice_data))
++			return;
++	}
++
+ 	if (m->title) {
+ 		puts(m->title);
+ 		putc('\n');
+@@ -362,6 +368,9 @@ int menu_item_add(struct menu *m, char *
+  * item. Returns a key string corresponding to the chosen item or NULL if
+  * no item has been selected.
+  *
++ * need_reprint - If not NULL, will be called before printing the menu.
++ * Returning FALSE means the menu does not need reprint.
++ *
+  * item_choice_data - Will be passed as the argument to the item_choice function
+  *
+  * Returns a pointer to the menu if successful, or NULL if there is
+@@ -371,6 +380,7 @@ struct menu *menu_create(char *title, in
+ 				void (*display_statusline)(struct menu *),
+ 				void (*item_data_print)(void *),
+ 				char *(*item_choice)(void *),
++				bool (*need_reprint)(void *),
+ 				void *item_choice_data)
+ {
+ 	struct menu *m;
+@@ -386,6 +396,7 @@ struct menu *menu_create(char *title, in
+ 	m->display_statusline = display_statusline;
+ 	m->item_data_print = item_data_print;
+ 	m->item_choice = item_choice;
++	m->need_reprint = need_reprint;
+ 	m->item_choice_data = item_choice_data;
+ 	m->item_cnt = 0;
+ 
+--- a/include/menu.h
++++ b/include/menu.h
+@@ -13,6 +13,7 @@ struct menu *menu_create(char *title, in
+ 				void (*display_statusline)(struct menu *),
+ 				void (*item_data_print)(void *),
+ 				char *(*item_choice)(void *),
++				bool (*need_reprint)(void *),
+ 				void *item_choice_data);
+ int menu_default_set(struct menu *m, char *item_key);
+ int menu_get_choice(struct menu *m, void **choice);
diff --git a/package/boot/uboot-mediatek/patches/012-bootmenu-add-reprint-check.patch b/package/boot/uboot-mediatek/patches/012-bootmenu-add-reprint-check.patch
new file mode 100644
index 0000000000..8f4db3a82e
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/012-bootmenu-add-reprint-check.patch
@@ -0,0 +1,75 @@
+From 702752cfae954648d6133bdff19283343b3339ef Mon Sep 17 00:00:00 2001
+From: Weijie Gao <weijie.gao at mediatek.com>
+Date: Tue, 29 Oct 2024 17:47:22 +0800
+Subject: [PATCH 3/3] bootmenu: add reprint check
+
+Record the last active menu item and check if it equals to the
+current selected item before reprint.
+
+Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
+---
+ cmd/bootmenu.c | 16 +++++++++++++++-
+ include/menu.h |  1 +
+ 2 files changed, 16 insertions(+), 1 deletion(-)
+
+--- a/cmd/bootmenu.c
++++ b/cmd/bootmenu.c
+@@ -103,11 +103,13 @@ static char *bootmenu_choice_entry(void
+ 
+ 		switch (key) {
+ 		case BKEY_UP:
++			menu->last_active = menu->active;
+ 			if (menu->active > 0)
+ 				--menu->active;
+ 			/* no menu key selected, regenerate menu */
+ 			return NULL;
+ 		case BKEY_DOWN:
++			menu->last_active = menu->active;
+ 			if (menu->active < menu->count - 1)
+ 				++menu->active;
+ 			/* no menu key selected, regenerate menu */
+@@ -133,6 +135,17 @@ static char *bootmenu_choice_entry(void
+ 	return NULL;
+ }
+ 
++static bool bootmenu_need_reprint(void *data)
++{
++	struct bootmenu_data *menu = data;
++	bool need_reprint;
++
++	need_reprint = menu->last_active != menu->active;
++	menu->last_active = menu->active;
++
++	return need_reprint;
++}
++
+ static void bootmenu_destroy(struct bootmenu_data *menu)
+ {
+ 	struct bootmenu_entry *iter = menu->first;
+@@ -332,6 +345,7 @@ static struct bootmenu_data *bootmenu_cr
+ 
+ 	menu->delay = delay;
+ 	menu->active = 0;
++	menu->last_active = -1;
+ 	menu->first = NULL;
+ 
+ 	default_str = env_get("bootmenu_default");
+@@ -506,7 +520,7 @@ static enum bootmenu_ret bootmenu_show(i
+ 
+ 	menu = menu_create(NULL, bootmenu->delay, 1, menu_display_statusline,
+ 			   bootmenu_print_entry, bootmenu_choice_entry,
+-			   NULL, bootmenu);
++			   bootmenu_need_reprint, bootmenu);
+ 	if (!menu) {
+ 		bootmenu_destroy(bootmenu);
+ 		return BOOTMENU_RET_FAIL;
+--- a/include/menu.h
++++ b/include/menu.h
+@@ -40,6 +40,7 @@ int menu_show(int bootdelay);
+ struct bootmenu_data {
+ 	int delay;			/* delay for autoboot */
+ 	int active;			/* active menu entry */
++	int last_active;		/* last active menu entry */
+ 	int count;			/* total count of menu entries */
+ 	struct bootmenu_entry *first;	/* first menu entry */
+ };
diff --git a/package/boot/uboot-mediatek/patches/100-16-cmd-bootmenu-add-ability-to-select-item-by-shortkey.patch b/package/boot/uboot-mediatek/patches/100-16-cmd-bootmenu-add-ability-to-select-item-by-shortkey.patch
index 4aa4318493..47e158b521 100644
--- a/package/boot/uboot-mediatek/patches/100-16-cmd-bootmenu-add-ability-to-select-item-by-shortkey.patch
+++ b/package/boot/uboot-mediatek/patches/100-16-cmd-bootmenu-add-ability-to-select-item-by-shortkey.patch
@@ -35,7 +35,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  		}
  
  		switch (key) {
-@@ -112,6 +113,12 @@ static char *bootmenu_choice_entry(void
+@@ -114,6 +115,12 @@ static char *bootmenu_choice_entry(void
  				++menu->active;
  			/* no menu key selected, regenerate menu */
  			return NULL;
@@ -48,7 +48,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  		case BKEY_SELECT:
  			iter = menu->first;
  			for (i = 0; i < menu->active; ++i)
-@@ -169,6 +176,9 @@ static int prepare_bootmenu_entry(struct
+@@ -182,6 +189,9 @@ static int prepare_bootmenu_entry(struct
  	unsigned short int i = *index;
  	struct bootmenu_entry *entry = NULL;
  	struct bootmenu_entry *iter = *current;
@@ -58,7 +58,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  
  	while ((option = bootmenu_getoption(i))) {
  
-@@ -183,11 +193,24 @@ static int prepare_bootmenu_entry(struct
+@@ -196,11 +206,24 @@ static int prepare_bootmenu_entry(struct
  		if (!entry)
  			return -ENOMEM;
  
@@ -84,15 +84,15 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  
  		entry->command = strdup(sep + 1);
  		if (!entry->command) {
-@@ -333,6 +356,7 @@ static struct bootmenu_data *bootmenu_cr
- 	menu->delay = delay;
+@@ -347,6 +370,7 @@ static struct bootmenu_data *bootmenu_cr
  	menu->active = 0;
+ 	menu->last_active = -1;
  	menu->first = NULL;
 +	menu->last_choiced = false;
  
  	default_str = env_get("bootmenu_default");
  	if (default_str)
-@@ -368,9 +392,9 @@ static struct bootmenu_data *bootmenu_cr
+@@ -382,9 +406,9 @@ static struct bootmenu_data *bootmenu_cr
  
  		/* Add Quit entry if exiting bootmenu is disabled */
  		if (!IS_ENABLED(CONFIG_BOOTMENU_DISABLE_UBOOT_CONSOLE))
@@ -106,7 +106,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  			free(entry);
 --- a/common/menu.c
 +++ b/common/menu.c
-@@ -48,6 +48,33 @@ struct menu {
+@@ -49,6 +49,33 @@ struct menu {
  	int item_cnt;
  };
  
@@ -140,7 +140,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  /*
   * An iterator function for menu items. callback will be called for each item
   * in m, with m, a pointer to the item, and extra being passed to callback. If
-@@ -426,7 +453,7 @@ int menu_destroy(struct menu *m)
+@@ -437,7 +464,7 @@ int menu_destroy(struct menu *m)
  }
  
  enum bootmenu_key bootmenu_autoboot_loop(struct bootmenu_data *menu,
@@ -149,7 +149,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  {
  	enum bootmenu_key key = BKEY_NONE;
  	int i, c;
-@@ -461,6 +488,19 @@ enum bootmenu_key bootmenu_autoboot_loop
+@@ -472,6 +499,19 @@ enum bootmenu_key bootmenu_autoboot_loop
  				break;
  			default:
  				key = BKEY_NONE;
@@ -169,7 +169,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  				break;
  			}
  			break;
-@@ -481,7 +521,8 @@ enum bootmenu_key bootmenu_autoboot_loop
+@@ -492,7 +532,8 @@ enum bootmenu_key bootmenu_autoboot_loop
  	return key;
  }
  
@@ -179,7 +179,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  {
  	enum bootmenu_key key;
  
-@@ -513,6 +554,20 @@ enum bootmenu_key bootmenu_conv_key(int
+@@ -524,6 +565,20 @@ enum bootmenu_key bootmenu_conv_key(int
  	case ' ':
  		key = BKEY_SPACE;
  		break;
@@ -200,15 +200,16 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  	default:
  		key = BKEY_NONE;
  		break;
-@@ -522,11 +577,16 @@ enum bootmenu_key bootmenu_conv_key(int
+@@ -533,11 +588,17 @@ enum bootmenu_key bootmenu_conv_key(int
  }
  
  enum bootmenu_key bootmenu_loop(struct bootmenu_data *menu,
 -				struct cli_ch_state *cch)
-+				struct cli_ch_state *cch, int *choice)
++				struct cli_ch_state *cch,
++				int *choice)
  {
  	enum bootmenu_key key;
- 	int c;
+ 	int c, errchar = 0;
  
 +	if (menu->last_choiced) {
 +		menu->last_choiced = false;
@@ -218,7 +219,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  	c = cli_ch_process(cch, 0);
  	if (!c) {
  		while (!c && !tstc()) {
-@@ -540,7 +600,7 @@ enum bootmenu_key bootmenu_loop(struct b
+@@ -552,7 +613,7 @@ enum bootmenu_key bootmenu_loop(struct b
  		}
  	}
  
@@ -238,7 +239,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  struct cli_ch_state;
  struct menu;
  
-@@ -19,6 +21,8 @@ int menu_get_choice(struct menu *m, void
+@@ -20,6 +22,8 @@ int menu_get_choice(struct menu *m, void
  int menu_item_add(struct menu *m, char *item_key, void *item_data);
  int menu_destroy(struct menu *m);
  int menu_default_choice(struct menu *m, void **choice);
@@ -247,15 +248,15 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  
  /**
   * menu_show() Show a boot menu
-@@ -41,6 +45,7 @@ struct bootmenu_data {
- 	int active;			/* active menu entry */
+@@ -43,6 +47,7 @@ struct bootmenu_data {
+ 	int last_active;		/* last active menu entry */
  	int count;			/* total count of menu entries */
  	struct bootmenu_entry *first;	/* first menu entry */
 +	bool last_choiced;
  };
  
  /** enum bootmenu_key - keys that can be returned by the bootmenu */
-@@ -51,6 +56,7 @@ enum bootmenu_key {
+@@ -53,6 +58,7 @@ enum bootmenu_key {
  	BKEY_SELECT,
  	BKEY_QUIT,
  	BKEY_SAVE,
@@ -263,7 +264,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  
  	/* 'extra' keys, which are used by menus but not cedit */
  	BKEY_PLUS,
-@@ -81,7 +87,7 @@ enum bootmenu_key {
+@@ -83,7 +89,7 @@ enum bootmenu_key {
   *	anything else: KEY_NONE
   */
  enum bootmenu_key bootmenu_autoboot_loop(struct bootmenu_data *menu,
@@ -272,7 +273,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  
  /**
   * bootmenu_loop() - handle waiting for a keypress when autoboot is disabled
-@@ -107,7 +113,7 @@ enum bootmenu_key bootmenu_autoboot_loop
+@@ -109,7 +115,7 @@ enum bootmenu_key bootmenu_autoboot_loop
   *	Space: BKEY_SPACE
   */
  enum bootmenu_key bootmenu_loop(struct bootmenu_data *menu,
@@ -281,7 +282,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  
  /**
   * bootmenu_conv_key() - Convert a U-Boot keypress into a menu key
-@@ -115,6 +121,7 @@ enum bootmenu_key bootmenu_loop(struct b
+@@ -117,6 +123,7 @@ enum bootmenu_key bootmenu_loop(struct b
   * @ichar: Keypress to convert (ASCII, including control characters)
   * Returns: Menu key that corresponds to @ichar, or BKEY_NONE if none
   */
diff --git a/package/boot/uboot-mediatek/patches/211-cmd-bootmenu-custom-title.patch b/package/boot/uboot-mediatek/patches/211-cmd-bootmenu-custom-title.patch
index 76ff745e93..be06832ea1 100644
--- a/package/boot/uboot-mediatek/patches/211-cmd-bootmenu-custom-title.patch
+++ b/package/boot/uboot-mediatek/patches/211-cmd-bootmenu-custom-title.patch
@@ -1,6 +1,6 @@
 --- a/cmd/bootmenu.c
 +++ b/cmd/bootmenu.c
-@@ -451,7 +451,11 @@ static void menu_display_statusline(stru
+@@ -465,7 +465,11 @@ static void menu_display_statusline(stru
  	printf(ANSI_CURSOR_POSITION, 1, 1);
  	puts(ANSI_CLEAR_LINE);
  	printf(ANSI_CURSOR_POSITION, 2, 3);
@@ -13,7 +13,7 @@
  	puts(ANSI_CLEAR_LINE_TO_END);
  	printf(ANSI_CURSOR_POSITION, 3, 1);
  	puts(ANSI_CLEAR_LINE);
-@@ -536,6 +540,7 @@ static enum bootmenu_ret bootmenu_show(i
+@@ -550,6 +554,7 @@ static enum bootmenu_ret bootmenu_show(i
  		return BOOTMENU_RET_FAIL;
  	}
  
@@ -23,8 +23,8 @@
  			goto cleanup;
 --- a/include/menu.h
 +++ b/include/menu.h
-@@ -45,6 +45,7 @@ struct bootmenu_data {
- 	int active;			/* active menu entry */
+@@ -47,6 +47,7 @@ struct bootmenu_data {
+ 	int last_active;		/* last active menu entry */
  	int count;			/* total count of menu entries */
  	struct bootmenu_entry *first;	/* first menu entry */
 +	char *mtitle;			/* custom menu title */



From lede-commits at lists.infradead.org  Sat Nov  2 15:38:37 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 02 Nov 2024 18:38:37 -0400
Subject: [openwrt/openwrt]  mediatek: filogic: BPi-R4: wire up pinctrl for
 pwm-fan
In-Reply-To: <173058711620.1751061.12405854247491156381@git-01.infra.openwrt.org>
References: <173058711620.1751061.12405854247491156381@git-01.infra.openwrt.org>
Message-ID: <mailman.150918.1730587124.1280.lede-commits@lists.infradead.org>

dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/591272d197c4866b82f0ed638efe54673f2ab490

commit 591272d197c4866b82f0ed638efe54673f2ab490
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Sat Nov 2 20:17:52 2024 +0000

    mediatek: filogic: BPi-R4: wire up pinctrl for pwm-fan
    
    Assign pwm function of PWM0 pin to the pwm-fan.
    This is mostly just cosmetics as it basically reflects the default
    setting of that pin.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 .../arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/target/linux/mediatek/files-6.6/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi b/target/linux/mediatek/files-6.6/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
index fae5d0ebfa..c4455fbc74 100644
--- a/target/linux/mediatek/files-6.6/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
+++ b/target/linux/mediatek/files-6.6/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
@@ -297,11 +297,22 @@
 	status = "okay";
 };
 
+&pio {
+	pwm0_pins: pwm0-pins {
+		mux {
+			groups = "pwm0";
+			function = "pwm";
+		};
+	};
+};
+
 &pwm {
 	status = "okay";
 };
 
 &fan {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pwm0_pins>;
 	pwms = <&pwm 0 50000>;
 	status = "okay";
 };



From lede-commits at lists.infradead.org  Sat Nov  2 15:38:36 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 02 Nov 2024 18:38:36 -0400
Subject: [openwrt/openwrt]  mediatek: pinctrl-mt7988: add missing PWM
 pingroups
In-Reply-To: <173058711620.1751061.12405854247491156381@git-01.infra.openwrt.org>
References: <173058711620.1751061.12405854247491156381@git-01.infra.openwrt.org>
Message-ID: <mailman.150919.1730587125.1280.lede-commits@lists.infradead.org>

dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/2cbd230091c99ba68ac1888d3b37fc6ca56fbb75

commit 2cbd230091c99ba68ac1888d3b37fc6ca56fbb75
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Sat Nov 2 20:01:05 2024 +0000

    mediatek: pinctrl-mt7988: add missing PWM pingroups
    
    Add additionals possible pinctrl group for pwm2~7 on pins
    pin  4 (GPIO_A)        pwm7
    pin 58 (JTAG_JTDI)     pwm2
    pin 59 (JTAG_JTDO)     pwm3
    pin 60 (JTAG_JTMS)     pwm4
    pin 61 (JTAG_JTCLK)    pwm5
    pin 62 (JTAG_JTRST_N)  pwm6
    
    They can be useful e.g. on the BPi-R4 as in that way pwm2~6 can be exposed
    on the 26-pin header (pwm6 always, pwm2~5 instead of the full UART).
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 .../drivers/pinctrl/mediatek/pinctrl-mt7988.c      | 33 +++++++++++++++++++++-
 1 file changed, 32 insertions(+), 1 deletion(-)

diff --git a/target/linux/mediatek/files-6.6/drivers/pinctrl/mediatek/pinctrl-mt7988.c b/target/linux/mediatek/files-6.6/drivers/pinctrl/mediatek/pinctrl-mt7988.c
index 9f92911245..648bd03acb 100644
--- a/target/linux/mediatek/files-6.6/drivers/pinctrl/mediatek/pinctrl-mt7988.c
+++ b/target/linux/mediatek/files-6.6/drivers/pinctrl/mediatek/pinctrl-mt7988.c
@@ -776,21 +776,39 @@ static int mt7988_pwm1_funcs[] = { 1 };
 static int mt7988_pwm2_pins[] = { 80 };
 static int mt7988_pwm2_funcs[] = { 2 };
 
+static int mt7988_pwm2_0_pins[] = { 58 };
+static int mt7988_pwm2_0_funcs[] = { 5 };
+
 static int mt7988_pwm3_pins[] = { 81 };
 static int mt7988_pwm3_funcs[] = { 2 };
 
+static int mt7988_pwm3_0_pins[] = { 59 };
+static int mt7988_pwm3_0_funcs[] = { 5 };
+
 static int mt7988_pwm4_pins[] = { 82 };
 static int mt7988_pwm4_funcs[] = { 2 };
 
+static int mt7988_pwm4_0_pins[] = { 60 };
+static int mt7988_pwm4_0_funcs[] = { 5 };
+
 static int mt7988_pwm5_pins[] = { 83 };
 static int mt7988_pwm5_funcs[] = { 2 };
 
+static int mt7988_pwm5_0_pins[] = { 61 };
+static int mt7988_pwm5_0_funcs[] = { 5 };
+
 static int mt7988_pwm6_pins[] = { 69 };
 static int mt7988_pwm6_funcs[] = { 3 };
 
+static int mt7988_pwm6_0_pins[] = { 62 };
+static int mt7988_pwm6_0_funcs[] = { 5 };
+
 static int mt7988_pwm7_pins[] = { 70 };
 static int mt7988_pwm7_funcs[] = { 3 };
 
+static int mt7988_pwm7_0_pins[] = { 4 };
+static int mt7988_pwm7_0_funcs[] = { 3 };
+
 /* dfd */
 static int mt7988_dfd_pins[] = { 0, 1, 2, 3, 4 };
 static int mt7988_dfd_funcs[] = { 4, 4, 4, 4, 4 };
@@ -1113,6 +1131,8 @@ static const struct group_desc mt7988_groups[] = {
 	PINCTRL_PIN_GROUP("xfi_phy_pll_i2c0", mt7988_xfi_phy_pll_i2c0),
 	/*  @GPIO(3,4): xfi_phy_pll_i2c1 */
 	PINCTRL_PIN_GROUP("xfi_phy_pll_i2c1", mt7988_xfi_phy_pll_i2c1),
+	/*  @GPIO(4): pwm7 */
+	PINCTRL_PIN_GROUP("pwm7_0", mt7988_pwm7_0),
 	/*  @GPIO(5,6) i2c0_0 */
 	PINCTRL_PIN_GROUP("i2c0_0", mt7988_i2c0_0),
 	/*  @GPIO(5,6) i2c1_sfp */
@@ -1243,6 +1263,14 @@ static const struct group_desc mt7988_groups[] = {
 	PINCTRL_PIN_GROUP("wo2_jtag", mt7988_wo2_jtag),
 	/*  @GPIO(57) pwm0 */
 	PINCTRL_PIN_GROUP("pwm0", mt7988_pwm0),
+	/*  @GPIO(58) pwm2_0 */
+	PINCTRL_PIN_GROUP("pwm2_0", mt7988_pwm2_0),
+	/*  @GPIO(59) pwm3_0 */
+	PINCTRL_PIN_GROUP("pwm3_0", mt7988_pwm3_0),
+	/*  @GPIO(60) pwm4_0 */
+	PINCTRL_PIN_GROUP("pwm4_0", mt7988_pwm4_0),
+	/*  @GPIO(61) pwm5_0 */
+	PINCTRL_PIN_GROUP("pwm5_0", mt7988_pwm5_0),
 	/*  @GPIO(58,59,60,61,62) jtag */
 	PINCTRL_PIN_GROUP("jtag", mt7988_jtag),
 	/*  @GPIO(58,59,60,61,62) tops_jtag0_1 */
@@ -1256,6 +1284,8 @@ static const struct group_desc mt7988_groups[] = {
 	PINCTRL_PIN_GROUP("gbe1_led1", mt7988_gbe1_led1),
 	PINCTRL_PIN_GROUP("gbe2_led1", mt7988_gbe2_led1),
 	PINCTRL_PIN_GROUP("gbe3_led1", mt7988_gbe3_led1),
+	/*  @GPIO(62) pwm6_0 */
+	PINCTRL_PIN_GROUP("pwm6_0", mt7988_pwm6_0),
 	/*  @GPIO(62) 2p5gbe_led1 */
 	PINCTRL_PIN_GROUP("2p5gbe_led1", mt7988_2p5gbe_led1),
 	/*  @GPIO(64,65,66,67) gbe_led0 */
@@ -1336,7 +1366,8 @@ static const char * const mt7988_int_usxgmii_groups[] = {
 	"int_usxgmii",
 };
 static const char * const mt7988_pwm_groups[] = {
-	"pwm0", "pwm1", "pwm2", "pwm3", "pwm4",	"pwm5",	"pwm6", "pwm7"
+	"pwm0", "pwm1", "pwm2", "pwm2_0", "pwm3", "pwm3_0", "pwm4", "pwm4_0",
+	"pwm5", "pwm5_0", "pwm6", "pwm6_0", "pwm7", "pwm7_0",
 };
 static const char * const mt7988_dfd_groups[] = {
 	"dfd",



From lede-commits at lists.infradead.org  Sat Nov  2 19:40:35 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 02 Nov 2024 22:40:35 -0400
Subject: [openwrt/openwrt]  mediatek: refresh patches
In-Reply-To: <173060163510.2107201.12493743191283990844@git-01.infra.openwrt.org>
References: <173060163510.2107201.12493743191283990844@git-01.infra.openwrt.org>
Message-ID: <mailman.150942.1730601645.1280.lede-commits@lists.infradead.org>

dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/675d7c88492372496ef4898ea5a2c8d1f1f7a84b

commit 675d7c88492372496ef4898ea5a2c8d1f1f7a84b
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Sun Nov 3 02:38:17 2024 +0000

    mediatek: refresh patches
    
    The mediatek target requires refreshing after recent additions.
    
    Fixes: cfe8e6e75f ("mediatek: add support for Realtek RTL8261n 10G PHYs")
    Fixes: ddfae94a14 ("mediatek: add support for swapping the polarity on usxgmii interfaces")
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 .../linux/mediatek/patches-6.6/735-net-phy-realtek-rtl8261n.patch | 6 +++---
 .../736-net-pcs-mtk_usxgmii-add-polarity-control.patch            | 8 +++-----
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/target/linux/mediatek/patches-6.6/735-net-phy-realtek-rtl8261n.patch b/target/linux/mediatek/patches-6.6/735-net-phy-realtek-rtl8261n.patch
index 3612b521e1..40771202c5 100644
--- a/target/linux/mediatek/patches-6.6/735-net-phy-realtek-rtl8261n.patch
+++ b/target/linux/mediatek/patches-6.6/735-net-phy-realtek-rtl8261n.patch
@@ -1,6 +1,6 @@
 --- a/drivers/net/phy/Kconfig
 +++ b/drivers/net/phy/Kconfig
-@@ -334,6 +334,8 @@ config REALTEK_PHY
+@@ -399,6 +399,8 @@ config REALTEK_PHY
  	help
  	  Supports the Realtek 821x PHY.
  
@@ -11,11 +11,11 @@
  	help
 --- a/drivers/net/phy/Makefile
 +++ b/drivers/net/phy/Makefile
-@@ -85,6 +85,7 @@ obj-$(CONFIG_ADIN_PHY)		+= adin.o
+@@ -100,6 +100,7 @@ obj-$(CONFIG_NXP_TJA11XX_PHY)	+= nxp-tja
  obj-y				+= qcom/
  obj-$(CONFIG_QSEMI_PHY)		+= qsemi.o
  obj-$(CONFIG_REALTEK_PHY)	+= realtek.o
 +obj-y				+= rtl8261n/
  obj-$(CONFIG_RENESAS_PHY)	+= uPD60620.o
  obj-$(CONFIG_ROCKCHIP_PHY)	+= rockchip.o
- obj-$(CONFIG_SMSC_PHY)		+= smsc.o
+ obj-$(CONFIG_RTL8367S_GSW)	+= rtk/
diff --git a/target/linux/mediatek/patches-6.6/736-net-pcs-mtk_usxgmii-add-polarity-control.patch b/target/linux/mediatek/patches-6.6/736-net-pcs-mtk_usxgmii-add-polarity-control.patch
index 678761990b..68ee609aac 100644
--- a/target/linux/mediatek/patches-6.6/736-net-pcs-mtk_usxgmii-add-polarity-control.patch
+++ b/target/linux/mediatek/patches-6.6/736-net-pcs-mtk_usxgmii-add-polarity-control.patch
@@ -1,5 +1,3 @@
-diff --git a/drivers/net/pcs/pcs-mtk-usxgmii.c b/drivers/net/pcs/pcs-mtk-usxgmii.c
-index 9af9035..9caab92 100644
 --- a/drivers/net/pcs/pcs-mtk-usxgmii.c
 +++ b/drivers/net/pcs/pcs-mtk-usxgmii.c
 @@ -52,6 +52,12 @@
@@ -23,7 +21,7 @@ index 9af9035..9caab92 100644
  	unsigned int			neg_mode;
  	struct list_head		node;
  };
-@@ -155,6 +162,10 @@ static int mtk_usxgmii_pcs_config(struct phylink_pcs *pcs, unsigned int neg_mode
+@@ -155,6 +162,10 @@ static int mtk_usxgmii_pcs_config(struct
  
  	mtk_usxgmii_reset(mpcs);
  
@@ -34,7 +32,7 @@ index 9af9035..9caab92 100644
  	/* Setup USXGMII AN ctrl */
  	mtk_m32(mpcs, RG_PCS_AN_CTRL0,
  		USXGMII_AN_SYNC_CNT | USXGMII_AN_ENABLE,
-@@ -332,6 +343,7 @@ static const struct phylink_pcs_ops mtk_usxgmii_pcs_ops = {
+@@ -332,6 +343,7 @@ static const struct phylink_pcs_ops mtk_
  static int mtk_usxgmii_probe(struct platform_device *pdev)
  {
  	struct device *dev = &pdev->dev;
@@ -42,7 +40,7 @@ index 9af9035..9caab92 100644
  	struct mtk_usxgmii_pcs *mpcs;
  
  	mpcs = devm_kzalloc(dev, sizeof(*mpcs), GFP_KERNEL);
-@@ -342,6 +354,13 @@ static int mtk_usxgmii_probe(struct platform_device *pdev)
+@@ -342,6 +354,13 @@ static int mtk_usxgmii_probe(struct plat
  	if (IS_ERR(mpcs->base))
  		return PTR_ERR(mpcs->base);
  



From lede-commits at lists.infradead.org  Sun Nov  3 05:44:09 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 03 Nov 2024 08:44:09 -0500
Subject: [openwrt/openwrt]  kernel: can: package driver for Geschwister
 Schneider interface
In-Reply-To: <173064144909.3022007.36849271257588332@git-01.infra.openwrt.org>
References: <173064144909.3022007.36849271257588332@git-01.infra.openwrt.org>
Message-ID: <mailman.151029.1730641453.1280.lede-commits@lists.infradead.org>

981213 pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/ef4df2b5e9d66a6461982a0a81f928abb0f6a074

commit ef4df2b5e9d66a6461982a0a81f928abb0f6a074
Author: Chuanhong Guo <gch981213 at gmail.com>
AuthorDate: Sat Nov 2 22:24:21 2024 +0800

    kernel: can: package driver for Geschwister Schneider interface
    
    Package gs_usb CAN driver, which is for Geschwister Schneider and
    bytewerk.org candleLight compatible USB/CAN interfaces.
    
    Signed-off-by: Chuanhong Guo <gch981213 at gmail.com>
---
 package/kernel/linux/modules/can.mk | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/package/kernel/linux/modules/can.mk b/package/kernel/linux/modules/can.mk
index c86d02d8de..1a4c81cc31 100644
--- a/package/kernel/linux/modules/can.mk
+++ b/package/kernel/linux/modules/can.mk
@@ -245,6 +245,25 @@ endef
 $(eval $(call KernelPackage,can-usb-esd))
 
 
+define KernelPackage/can-usb-gs
+  TITLE:=Geschwister Schneider UG interfaces
+  KCONFIG:=CONFIG_CAN_GS_USB
+  FILES:= \
+	$(LINUX_DIR)/drivers/net/can/usb/gs_usb.ko
+  AUTOLOAD:=$(call AutoProbe,gs_usb)
+  $(call AddDepends/can,+kmod-usb-core)
+endef
+
+define KernelPackage/can-usb-gsr/description
+  This driver supports the Geschwister Schneider and
+  bytewerk.org candleLight compatible
+  (https://github.com/candle-usb/candleLight_fw) USB/CAN
+  interfaces.
+endef
+
+$(eval $(call KernelPackage,can-usb-gs))
+
+
 define KernelPackage/can-usb-kvaser
   TITLE:=Kvaser CAN/USB interface
   KCONFIG:=CONFIG_CAN_KVASER_USB



From lede-commits at lists.infradead.org  Sun Nov  3 11:08:22 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 03 Nov 2024 14:08:22 -0500
Subject: [openwrt/openwrt]  ramips: mt7621: convert usb power to regulators
In-Reply-To: <173066090272.3458222.15627898276581160551@git-01.infra.openwrt.org>
References: <173066090272.3458222.15627898276581160551@git-01.infra.openwrt.org>
Message-ID: <mailman.151083.1730660911.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/e612900ae0fd6c4624fa661e004536216409107f

commit e612900ae0fd6c4624fa661e004536216409107f
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Thu Oct 24 14:51:29 2024 -0700

    ramips: mt7621: convert usb power to regulators
    
    These things are regulators. Should silence dmesg messages about using
    dummy regulators.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16804
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 .../linux/ramips/dts/mt7621_d-team_newifi-d2.dts   | 20 ++++++++++---------
 target/linux/ramips/dts/mt7621_humax_e10.dts       | 23 ++++++++++++----------
 .../dts/mt7621_mikrotik_routerboard-7xx.dtsi       | 17 +++++++++++-----
 .../ramips/dts/mt7621_zbtlink_zbt-wg1602-v04.dtsi  | 19 ++++++++++++------
 .../ramips/dts/mt7621_zbtlink_zbt-wg1602.dtsi      | 19 ++++++++++++------
 .../linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts | 19 +++++++++---------
 .../linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts | 17 +++++++++++-----
 7 files changed, 84 insertions(+), 50 deletions(-)

diff --git a/target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts b/target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts
index 9d426fb17d..00ff80e3ca 100644
--- a/target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts
+++ b/target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts
@@ -80,15 +80,13 @@
 		};
 	};
 
-	gpio_export {
-		compatible = "gpio-export";
-		#size-cells = <0>;
-
-		power_usb3 {
-			gpio-export,name = "power_usb3";
-			gpio-export,output = <1>;
-			gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
-		};
+	reg_power_usb3: regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "power_usb3";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
 	};
 };
 
@@ -155,6 +153,10 @@
 	};
 };
 
+&xhci {
+	vbus-supply = <&reg_power_usb3>;
+};
+
 &pcie {
 	status = "okay";
 };
diff --git a/target/linux/ramips/dts/mt7621_humax_e10.dts b/target/linux/ramips/dts/mt7621_humax_e10.dts
index 39eac32d53..7ba772d5e5 100644
--- a/target/linux/ramips/dts/mt7621_humax_e10.dts
+++ b/target/linux/ramips/dts/mt7621_humax_e10.dts
@@ -19,16 +19,6 @@
 		label-mac-device = &gmac1;
 	};
 
-	gpio-export {
-		compatible = "gpio-export";
-
-		gpio-usb-power {
-			gpio-export,name = "power:usb";
-			gpio-export,output = <1>;
-			gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
-		};
-	};
-
 	leds {
 		compatible = "gpio-leds";
 
@@ -65,6 +55,15 @@
 			linux,code = <KEY_RESTART>;
 		};
 	};
+
+	reg_power_usb: regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "power:usb";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &spi0 {
@@ -131,6 +130,10 @@
 	};
 };
 
+&xhci {
+	vbus-supply = <&reg_power_usb>;
+};
+
 &pcie {
 	status = "okay";
 };
diff --git a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi
index cdca47f8b8..4a3de8cfba 100644
--- a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi
+++ b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi
@@ -13,15 +13,22 @@
 			gpio-export,output = <0>;
 			gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
 		};
+	};
 
-		usb_power {
-			gpio-export,name = "usb_power";
-			gpio-export,output = <1>;
-			gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
-		};
+	reg_usb_power: regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "usb_power";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
 	};
 };
 
+&xhci {
+	vbus-supply = <&reg_usb_power>;
+};
+
 &keys {
 	mode {
 		label = "mode";
diff --git a/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg1602-v04.dtsi b/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg1602-v04.dtsi
index c3712fea7b..c70b3330e9 100644
--- a/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg1602-v04.dtsi
+++ b/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg1602-v04.dtsi
@@ -48,6 +48,15 @@
 		};
 	};
 
+	reg_power_usb: regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "power_usb";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpios = <&gpio 6 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
 	watchdog {
 		compatible = "linux,wdt-gpio";
 		gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
@@ -72,15 +81,13 @@
 			gpio-export,output = <1>;
 			gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
 		};
-
-		ext-usb {
-			gpio-export,name = "ext-usb";
-			gpio-export,output = <1>;
-			gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
-		};
 	};
 };
 
+&xhci {
+	vbus-supply = <&reg_power_usb>;
+};
+
 &sdhci {
 	status = "okay";
 };
diff --git a/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg1602.dtsi b/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg1602.dtsi
index dcad7b26d2..3e2a593ae7 100644
--- a/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg1602.dtsi
+++ b/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg1602.dtsi
@@ -47,6 +47,15 @@
 		};
 	};
 
+	reg_power_usb: regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "power_usb";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpios = <&gpio 6 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
 	watchdog {
 		compatible = "linux,wdt-gpio";
 		gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
@@ -71,15 +80,13 @@
 			gpio-export,output = <1>;
 			gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
 		};
-
-		ext-usb {
-			gpio-export,name = "ext-usb";
-			gpio-export,output = <1>;
-			gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
-		};
 	};
 };
 
+&xhci {
+	vbus-supply = <&reg_power_usb>;
+};
+
 &sdhci {
 	status = "okay";
 };
diff --git a/target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts b/target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts
index 9eed123157..88894325b5 100644
--- a/target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts
+++ b/target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts
@@ -96,17 +96,18 @@
 
 	};
 
+	reg_power_usb: regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "power_usb";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
-&gpio {
-	status = "okay";
-
-	enable_usb_power {
-		gpio-hog;
-		line-name = "enable USB power";
-		gpios = <7 GPIO_ACTIVE_HIGH>;
-		output-high;
-	};
+&xhci {
+	vbus-supply = <&reg_power_usb>;
 };
 
 &nand {
diff --git a/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts b/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts
index e121077b0a..e6ff5ecf6a 100644
--- a/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts
+++ b/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts
@@ -92,15 +92,22 @@
 			gpio-export,output = <0>;
 			gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
 		};
+	};
 
-		usb_power {
-			gpio-export,name = "usb_power";
-			gpio-export,output = <1>;
-			gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
-		};
+	reg_usb_power: regulator {
+		compatible = "regulator-fixed";
+		reglator-name = "usb_power";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
 	};
 };
 
+&xhci {
+	vbus-supply = <&reg_usb_power>;
+};
+
 &nand {
 	status = "okay";
 



From lede-commits at lists.infradead.org  Sun Nov  3 11:12:10 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 03 Nov 2024 14:12:10 -0500
Subject: [openwrt/openwrt]  ath79: gpio-latch-miktorik: use gpiochip_get_data
In-Reply-To: <173066113019.3463476.11517966633777305114@git-01.infra.openwrt.org>
References: <173066113019.3463476.11517966633777305114@git-01.infra.openwrt.org>
Message-ID: <mailman.151085.1730661133.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/6d2ed484fa2f62e355893f5e1fe3734c88201bfc

commit 6d2ed484fa2f62e355893f5e1fe3734c88201bfc
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Sat Oct 19 15:49:42 2024 -0700

    ath79: gpio-latch-miktorik: use gpiochip_get_data
    
    Oversight from devm conversion. No need for a custom static inline
    function.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16747
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c b/target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c
index 6e3f0f9690..4baed52e57 100644
--- a/target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c
+++ b/target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c
@@ -28,11 +28,6 @@ struct gpio_latch_chip {
 	struct gpio_desc *gpios[GPIO_LATCH_LINES];
 };
 
-static inline struct gpio_latch_chip *to_gpio_latch_chip(struct gpio_chip *gc)
-{
-	return container_of(gc, struct gpio_latch_chip, gc);
-}
-
 static void gpio_latch_lock(struct gpio_latch_chip *glc, bool enable)
 {
 	mutex_lock(&glc->mutex);
@@ -58,7 +53,7 @@ static void gpio_latch_unlock(struct gpio_latch_chip *glc, bool disable)
 static int
 gpio_latch_get(struct gpio_chip *gc, unsigned offset)
 {
-	struct gpio_latch_chip *glc = to_gpio_latch_chip(gc);
+	struct gpio_latch_chip *glc = gpiochip_get_data(gc);
 	int ret;
 
 	gpio_latch_lock(glc, false);
@@ -71,7 +66,7 @@ gpio_latch_get(struct gpio_chip *gc, unsigned offset)
 static void
 gpio_latch_set(struct gpio_chip *gc, unsigned offset, int value)
 {
-	struct gpio_latch_chip *glc = to_gpio_latch_chip(gc);
+	struct gpio_latch_chip *glc = gpiochip_get_data(gc);
 	bool enable_latch = false;
 	bool disable_latch = false;
 
@@ -88,7 +83,7 @@ gpio_latch_set(struct gpio_chip *gc, unsigned offset, int value)
 static int
 gpio_latch_direction_output(struct gpio_chip *gc, unsigned offset, int value)
 {
-	struct gpio_latch_chip *glc = to_gpio_latch_chip(gc);
+	struct gpio_latch_chip *glc = gpiochip_get_data(gc);
 	bool enable_latch = false;
 	bool disable_latch = false;
 	int ret;



From lede-commits at lists.infradead.org  Sun Nov  3 11:12:38 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 03 Nov 2024 14:12:38 -0500
Subject: [openwrt/openwrt]  ath79: gpio-rb91x-key: use gpiochip_get_data
In-Reply-To: <173066115840.3464369.11688455700767758186@git-01.infra.openwrt.org>
References: <173066115840.3464369.11688455700767758186@git-01.infra.openwrt.org>
Message-ID: <mailman.151086.1730661166.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/e99b5832e801fdf2ec366419797360e09c2348c6

commit e99b5832e801fdf2ec366419797360e09c2348c6
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Sat Oct 19 15:51:51 2024 -0700

    ath79: gpio-rb91x-key: use gpiochip_get_data
    
    No need for a custom function that does the same thing.
    
    Oversight from devm conversion.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16748
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c b/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c
index b2c8e63305..02639cf011 100644
--- a/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c
+++ b/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c
@@ -41,14 +41,9 @@ struct gpio_rb91x_key {
 	struct gpio_desc *gpio;
 };
 
-static inline struct gpio_rb91x_key *to_gpio_rb91x_key(struct gpio_chip *gc)
-{
-	return container_of(gc, struct gpio_rb91x_key, gc);
-}
-
 static int gpio_rb91x_key_get(struct gpio_chip *gc, unsigned offset)
 {
-	struct gpio_rb91x_key *drvdata = to_gpio_rb91x_key(gc);
+	struct gpio_rb91x_key *drvdata = gpiochip_get_data(gc);
 	struct gpio_desc *gpio = drvdata->gpio;
 	int val, bak_val;
 
@@ -97,7 +92,7 @@ static int gpio_rb91x_key_direction_input(struct gpio_chip *gc, unsigned offset)
 
 static void gpio_rb91x_key_set(struct gpio_chip *gc, unsigned offset, int value)
 {
-	struct gpio_rb91x_key *drvdata = to_gpio_rb91x_key(gc);
+	struct gpio_rb91x_key *drvdata = gpiochip_get_data(gc);
 	struct gpio_desc *gpio = drvdata->gpio;
 
 	mutex_lock(&drvdata->mutex);



From lede-commits at lists.infradead.org  Sun Nov  3 12:40:57 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 03 Nov 2024 15:40:57 -0500
Subject: [openwrt/openwrt]  mediatek: YunCore AX835: fix voltage regulator
In-Reply-To: <173066645718.3568669.12064200942911147464@git-01.infra.openwrt.org>
References: <173066645718.3568669.12064200942911147464@git-01.infra.openwrt.org>
Message-ID: <mailman.151107.1730666467.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/d64e1ed4214ebcc845389979be18f3cdc19bc08a

commit d64e1ed4214ebcc845389979be18f3cdc19bc08a
Author: Leon M. Busch-George <leon at georgemail.eu>
AuthorDate: Sat Nov 2 12:28:51 2024 +0100

    mediatek: YunCore AX835: fix voltage regulator
    
    Specifying GPIO_ACTIVE_HIGH on the GPIO for the voltage regulator doesn't
    suffice. The regulator itself requires enable-active-high to be set.
    
    Fixes: #16292
    Signed-off-by: Leon M. Busch-George <leon at georgemail.eu>
    Link: https://github.com/openwrt/openwrt/pull/16839
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/mediatek/dts/mt7981b-yuncore-ax835.dts | 1 +
 1 file changed, 1 insertion(+)

diff --git a/target/linux/mediatek/dts/mt7981b-yuncore-ax835.dts b/target/linux/mediatek/dts/mt7981b-yuncore-ax835.dts
index 5f98e6178a..b5de1c34b4 100644
--- a/target/linux/mediatek/dts/mt7981b-yuncore-ax835.dts
+++ b/target/linux/mediatek/dts/mt7981b-yuncore-ax835.dts
@@ -35,6 +35,7 @@
 		regulator-name = "led_vbus";
 		regulator-min-microvolt = <3300000>;
 		regulator-max-microvolt = <3300000>;
+		enable-active-high;
 		regulator-always-on;
 		gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
 	};



From lede-commits at lists.infradead.org  Sun Nov  3 22:33:02 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 04 Nov 2024 01:33:02 -0500
Subject: [buildbot]  buildworker: start: fix broken non TLS setups
In-Reply-To: <173070198238.82717.18340876790779733657@git-01.infra.openwrt.org>
References: <173070198238.82717.18340876790779733657@git-01.infra.openwrt.org>
Message-ID: <mailman.151259.1730702037.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to buildbot.git, branch main:
https://git.openwrt.org/dbf5d03807e66f15b1b661a4fac51c6739cad156

commit dbf5d03807e66f15b1b661a4fac51c6739cad156
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Thu Oct 24 19:55:04 2024 +0000

    buildworker: start: fix broken non TLS setups
    
    Changes in commit 3812ff7bb296 ("buildworker: start: fix worker startup
    failure after update") broke non TLS setups. So lets fix it by setting
    SSL: only if BUILDWORKER_TLS is set.
    
    Fixes: 3812ff7bb296 ("buildworker: start: fix worker startup failure after update")
    Reported-by: Paul Spooren <mail at aparcar.org>
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 docker/buildworker/files/start.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docker/buildworker/files/start.sh b/docker/buildworker/files/start.sh
index 5e0147a..0f50c50 100644
--- a/docker/buildworker/files/start.sh
+++ b/docker/buildworker/files/start.sh
@@ -21,7 +21,7 @@ rm -f /builder/buildbot.tac
 /opt/venv/bin/buildbot-worker create-worker \
 	--force \
 	--umask="0o22" \
-	--connection-string="SSL:$BUILDWORKER_MASTER" \
+	${BUILDWORKER_TLS:+--connection-string="SSL:$BUILDWORKER_MASTER"} \
 	/builder \
 	"$BUILDWORKER_MASTER" \
 	"$BUILDWORKER_NAME" \



From lede-commits at lists.infradead.org  Sun Nov  3 22:33:03 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 04 Nov 2024 01:33:03 -0500
Subject: [buildbot]  Revert "buildworker,buildmaster: bump Debian to version
 12"
In-Reply-To: <173070198238.82717.18340876790779733657@git-01.infra.openwrt.org>
References: <173070198238.82717.18340876790779733657@git-01.infra.openwrt.org>
Message-ID: <mailman.151260.1730702037.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to buildbot.git, branch main:
https://git.openwrt.org/aab8a542db9576d8ac8121db084f784897742af9

commit aab8a542db9576d8ac8121db084f784897742af9
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Mon Nov 4 06:08:14 2024 +0000

    Revert "buildworker,buildmaster: bump Debian to version 12"
    
    This reverts commit 3ac7d39bd4c364d76e78b3ba50c23a68e0b05c0f as it was
    decided to stay on Debian 11 for 24.10 release as well.
    
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 docker/buildmaster/Dockerfile | 2 +-
 docker/buildworker/Dockerfile | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/docker/buildmaster/Dockerfile b/docker/buildmaster/Dockerfile
index ccaf4a9..b73335f 100644
--- a/docker/buildmaster/Dockerfile
+++ b/docker/buildmaster/Dockerfile
@@ -23,7 +23,7 @@ RUN git checkout $APK_TOOLS_COMMIT
 RUN make -j$(nproc) static
 
 
-FROM        debian:12
+FROM        debian:11
 MAINTAINER  OpenWrt Maintainers
 
 ARG         DEBIAN_FRONTEND=noninteractive
diff --git a/docker/buildworker/Dockerfile b/docker/buildworker/Dockerfile
index b7cf36a..bc616ad 100644
--- a/docker/buildworker/Dockerfile
+++ b/docker/buildworker/Dockerfile
@@ -1,4 +1,4 @@
-FROM        debian:12
+FROM        debian:11
 MAINTAINER  OpenWrt Maintainers
 
 ARG         DEBIAN_FRONTEND=noninteractive



From lede-commits at lists.infradead.org  Sun Nov  3 22:35:24 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 04 Nov 2024 01:35:24 -0500
Subject: [buildbot]  docker,worker: install pyelftools
In-Reply-To: <173070212436.87774.5096413801635552922@git-01.infra.openwrt.org>
References: <173070212436.87774.5096413801635552922@git-01.infra.openwrt.org>
Message-ID: <mailman.151261.1730702127.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to buildbot.git, branch main:
https://git.openwrt.org/91f8f2e3763c65a5ba9c9a15768286cfbf7df53f

commit 91f8f2e3763c65a5ba9c9a15768286cfbf7df53f
Author: Paul Spooren <mail at aparcar.org>
AuthorDate: Fri Oct 25 11:11:48 2024 +0200

    docker,worker: install pyelftools
    
    Without it, errors may appear:
    
    WARNING: Makefile 'package/feeds/telephony/freeswitch/Makefile' has a dependency on 'libpcre', which does not exist
    make[2]: Entering directory '/builder/shared-workdir/build/scripts/config'
    make[2]: 'conf' is up to date.
    make[2]: Leaving directory '/builder/shared-workdir/build/scripts/config'
    Checking 'python3-pyelftools'... failed.
    Checking 'python3-dev'... ok.
    Checking 'python3-setuptools'... ok.
    Checking 'swig'... ok.
    u-boot: Please install the Python3 elftools module
    
    Fixes: 3ac7d39bd4c3 ("buildworker,buildmaster: bump Debian to version 12")
    
    Signed-off-by: Paul Spooren <mail at aparcar.org>
---
 docker/buildworker/Dockerfile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/docker/buildworker/Dockerfile b/docker/buildworker/Dockerfile
index bc616ad..0d230f1 100644
--- a/docker/buildworker/Dockerfile
+++ b/docker/buildworker/Dockerfile
@@ -33,6 +33,7 @@ RUN \
 		python3 \
 		python3-venv \
 		python3-pip \
+		python3-pyelftools \
 		qemu-utils \
 		rsync \
 		signify-openbsd \



From lede-commits at lists.infradead.org  Sun Nov  3 23:41:57 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 04 Nov 2024 02:41:57 -0500
Subject: [openwrt/openwrt]  openwrt-keyring: fix missing 24.10 usign key by
 installing it
In-Reply-To: <173070611715.154674.12046430221962374397@git-01.infra.openwrt.org>
References: <173070611715.154674.12046430221962374397@git-01.infra.openwrt.org>
Message-ID: <mailman.151290.1730706139.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/37784c48e93c663dafc99454c24bebf4e258556f

commit 37784c48e93c663dafc99454c24bebf4e258556f
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Mon Nov 4 07:33:37 2024 +0000

    openwrt-keyring: fix missing 24.10 usign key by installing it
    
    @KA2107 reported that opkg is not able to verify the artifact signatures
    produced by buildbot using the usign 24.10 release keys. So lets fix it
    by actually adding the 24.10 usign key with d310c6f2833e97f7 fingerprint
    into the openwrt-keyring package.
    
    Fixes: #16850
    Reported-by: @KA2107
    Fixes: a535cfc09e1c ("openwrt-keyring: add OpenWrt 24.10 release build usign key")
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/system/openwrt-keyring/Makefile | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/package/system/openwrt-keyring/Makefile b/package/system/openwrt-keyring/Makefile
index 029463817b..e499fc0beb 100644
--- a/package/system/openwrt-keyring/Makefile
+++ b/package/system/openwrt-keyring/Makefile
@@ -3,7 +3,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openwrt-keyring
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/keyring.git
@@ -40,6 +40,8 @@ define Package/openwrt-keyring/install
 	$(INSTALL_DIR) $(1)/etc/opkg/keys/
 	# Public usign key for unattended snapshot builds
 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/usign/b5043e70f9a75cde $(1)/etc/opkg/keys/
+	# Public usign key for 24.10 release builds
+	$(INSTALL_DATA) $(PKG_BUILD_DIR)/usign/d310c6f2833e97f7 $(1)/etc/opkg/keys/
 endef
 endif
 



From lede-commits at lists.infradead.org  Mon Nov  4 01:27:48 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 04 Nov 2024 04:27:48 -0500
Subject: [openwrt/openwrt]  openwrt-keyring: fix missing 24.10 usign key by
 installing it
In-Reply-To: <173071246891.292569.10852055725112024353@git-01.infra.openwrt.org>
References: <173071246891.292569.10852055725112024353@git-01.infra.openwrt.org>
Message-ID: <mailman.151404.1730712474.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/92fd12e7fd90ab2dc44b70300eb05c9da4f1f698

commit 92fd12e7fd90ab2dc44b70300eb05c9da4f1f698
Author: Kuan-Yi Li <kyli at abysm.org>
AuthorDate: Sun Nov 3 04:11:36 2024 +0800

    openwrt-keyring: fix missing 24.10 usign key by installing it
    
    @KA2107 reported that opkg is not able to verify the artifact signatures
    produced by buildbot using the usign 24.10 release keys. So lets fix it
    by actually adding the 24.10 usign key with d310c6f2833e97f7 fingerprint
    into the openwrt-keyring package.
    
    Fixes: #16850
    Reported-by: @KA2107
    Fixes: a535cfc09e1c ("openwrt-keyring: add OpenWrt 24.10 release build usign key")
    References: 2d03f27f0f07 ("openwrt-keyring: make opkg use 22.03 usign key")
    Signed-off-by: Kuan-Yi Li <kyli at abysm.org>
    Signed-off-by: Petr ?tetiar <ynezz at true.cz> [commit description]
---
 package/system/openwrt-keyring/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/system/openwrt-keyring/Makefile b/package/system/openwrt-keyring/Makefile
index 029463817b..6c2fa3d108 100644
--- a/package/system/openwrt-keyring/Makefile
+++ b/package/system/openwrt-keyring/Makefile
@@ -3,7 +3,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openwrt-keyring
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/keyring.git
@@ -38,8 +38,8 @@ endef
 else
 define Package/openwrt-keyring/install
 	$(INSTALL_DIR) $(1)/etc/opkg/keys/
-	# Public usign key for unattended snapshot builds
-	$(INSTALL_DATA) $(PKG_BUILD_DIR)/usign/b5043e70f9a75cde $(1)/etc/opkg/keys/
+	# Public usign key for 24.10 release builds
+	$(INSTALL_DATA) $(PKG_BUILD_DIR)/usign/d310c6f2833e97f7 $(1)/etc/opkg/keys/
 endef
 endif
 



From lede-commits at lists.infradead.org  Mon Nov  4 01:36:16 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 04 Nov 2024 04:36:16 -0500
Subject: [openwrt/openwrt]  mediatek: YunCore AX835: fix voltage regulator
In-Reply-To: <173071297646.309125.8332314318317957100@git-01.infra.openwrt.org>
References: <173071297646.309125.8332314318317957100@git-01.infra.openwrt.org>
Message-ID: <mailman.151407.1730712981.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/6bc930c47dd612a0933f29426e5765362f54e17b

commit 6bc930c47dd612a0933f29426e5765362f54e17b
Author: Leon M. Busch-George <leon at georgemail.eu>
AuthorDate: Sat Nov 2 12:28:51 2024 +0100

    mediatek: YunCore AX835: fix voltage regulator
    
    Specifying GPIO_ACTIVE_HIGH on the GPIO for the voltage regulator doesn't
    suffice. The regulator itself requires enable-active-high to be set.
    
    Fixes: #16292
    Signed-off-by: Leon M. Busch-George <leon at georgemail.eu>
    Link: https://github.com/openwrt/openwrt/pull/16839
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/mediatek/dts/mt7981b-yuncore-ax835.dts | 1 +
 1 file changed, 1 insertion(+)

diff --git a/target/linux/mediatek/dts/mt7981b-yuncore-ax835.dts b/target/linux/mediatek/dts/mt7981b-yuncore-ax835.dts
index 5f98e6178a..b5de1c34b4 100644
--- a/target/linux/mediatek/dts/mt7981b-yuncore-ax835.dts
+++ b/target/linux/mediatek/dts/mt7981b-yuncore-ax835.dts
@@ -35,6 +35,7 @@
 		regulator-name = "led_vbus";
 		regulator-min-microvolt = <3300000>;
 		regulator-max-microvolt = <3300000>;
+		enable-active-high;
 		regulator-always-on;
 		gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
 	};



From lede-commits at lists.infradead.org  Mon Nov  4 01:36:53 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 04 Nov 2024 04:36:53 -0500
Subject: [openwrt/openwrt]  mediatek: YunCore AX835: fix voltage regulator
In-Reply-To: <173071301348.311395.3421247860224692301@git-01.infra.openwrt.org>
References: <173071301348.311395.3421247860224692301@git-01.infra.openwrt.org>
Message-ID: <mailman.151424.1730713710.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/0d428857d5014b49b827aec13103947e0d3bf23f

commit 0d428857d5014b49b827aec13103947e0d3bf23f
Author: Leon M. Busch-George <leon at georgemail.eu>
AuthorDate: Sat Nov 2 12:28:51 2024 +0100

    mediatek: YunCore AX835: fix voltage regulator
    
    Specifying GPIO_ACTIVE_HIGH on the GPIO for the voltage regulator doesn't
    suffice. The regulator itself requires enable-active-high to be set.
    
    Fixes: #16292
    Signed-off-by: Leon M. Busch-George <leon at georgemail.eu>
    Link: https://github.com/openwrt/openwrt/pull/16839
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/mediatek/dts/mt7981b-yuncore-ax835.dts | 1 +
 1 file changed, 1 insertion(+)

diff --git a/target/linux/mediatek/dts/mt7981b-yuncore-ax835.dts b/target/linux/mediatek/dts/mt7981b-yuncore-ax835.dts
index b3ca5bfa2c..54bb04353e 100644
--- a/target/linux/mediatek/dts/mt7981b-yuncore-ax835.dts
+++ b/target/linux/mediatek/dts/mt7981b-yuncore-ax835.dts
@@ -36,6 +36,7 @@
 		regulator-name = "led_vbus";
 		regulator-min-microvolt = <3300000>;
 		regulator-max-microvolt = <3300000>;
+		enable-active-high;
 		regulator-always-on;
 		gpio = <&pio 5 GPIO_ACTIVE_HIGH>;
 	};



From lede-commits at lists.infradead.org  Mon Nov  4 01:49:52 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 04 Nov 2024 04:49:52 -0500
Subject: [openwrt/openwrt]  mtd: Add backported Winbond fix
In-Reply-To: <173071379207.327225.16751848519964758978@git-01.infra.openwrt.org>
References: <173071379207.327225.16751848519964758978@git-01.infra.openwrt.org>
Message-ID: <mailman.151449.1730714859.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/d92306d020f3672d4fa3fc2e09235265a7547926

commit d92306d020f3672d4fa3fc2e09235265a7547926
Author: Linus Walleij <linus.walleij at linaro.org>
AuthorDate: Sun Nov 3 09:34:31 2024 +0100

    mtd: Add backported Winbond fix
    
    Upstream stable is slow at picking this up and several systems
    are regressing. Add the patch locally in OpenWrt.
    
    Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
---
 ...td-spi-nor-winbond-fix-w25q128-regression.patch | 59 ++++++++++++++++++++++
 1 file changed, 59 insertions(+)

diff --git a/target/linux/generic/backport-6.6/409-mtd-spi-nor-winbond-fix-w25q128-regression.patch b/target/linux/generic/backport-6.6/409-mtd-spi-nor-winbond-fix-w25q128-regression.patch
new file mode 100644
index 0000000000..de79328138
--- /dev/null
+++ b/target/linux/generic/backport-6.6/409-mtd-spi-nor-winbond-fix-w25q128-regression.patch
@@ -0,0 +1,59 @@
+From 342672bbdf713654316a0ff73c7f2ecf7ea6693d Mon Sep 17 00:00:00 2001
+From: Michael Walle <mwalle at kernel.org>
+Date: Fri, 21 Jun 2024 14:09:29 +0200
+Subject: [PATCH] mtd: spi-nor: winbond: fix w25q128 regression
+
+Upstream commit d35df77707bf5ae1221b5ba1c8a88cf4fcdd4901
+
+("mtd: spi-nor: winbond: fix w25q128 regression")
+however the code has changed a lot after v6.6 so the patch did
+not apply to v6.6 or v6.1 which still has the problem.
+
+This patch fixes the issue in the way of the old API and has
+been tested on hardware. Please apply it for v6.1 and v6.6.
+
+Commit 83e824a4a595 ("mtd: spi-nor: Correct flags for Winbond w25q128")
+removed the flags for non-SFDP devices. It was assumed that it wasn't in
+use anymore. This wasn't true. Add the no_sfdp_flags as well as the size
+again.
+
+We add the additional flags for dual and quad read because they have
+been reported to work properly by Hartmut using both older and newer
+versions of this flash, the similar flashes with 64Mbit and 256Mbit
+already have these flags and because it will (luckily) trigger our
+legacy SFDP parsing, so newer versions with SFDP support will still get
+the parameters from the SFDP tables.
+
+Reported-by: Hartmut Birr <e9hack at gmail.com>
+Closes: https://lore.kernel.org/r/CALxbwRo_-9CaJmt7r7ELgu+vOcgk=xZcGHobnKf=oT2=u4d4aA at mail.gmail.com/
+Fixes: 83e824a4a595 ("mtd: spi-nor: Correct flags for Winbond w25q128")
+Reviewed-by: Linus Walleij <linus.walleij at linaro.org>
+Signed-off-by: Michael Walle <mwalle at kernel.org>
+Acked-by: Tudor Ambarus <tudor.ambarus at linaro.org>
+Reviewed-by: Esben Haabendal <esben at geanix.com>
+Reviewed-by: Pratyush Yadav <pratyush at kernel.org>
+Signed-off-by: Pratyush Yadav <pratyush at kernel.org>
+Link: https://lore.kernel.org/r/20240621120929.2670185-1-mwalle at kernel.org
+[Backported to v6.6 - vastly different due to upstream changes]
+Reviewed-by: Tudor Ambarus <tudor.ambarus at linaro.org>
+Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
+---
+ drivers/mtd/spi-nor/winbond.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+--- a/drivers/mtd/spi-nor/winbond.c
++++ b/drivers/mtd/spi-nor/winbond.c
+@@ -120,9 +120,10 @@ static const struct flash_info winbond_n
+ 		NO_SFDP_FLAGS(SECT_4K) },
+ 	{ "w25q80bl", INFO(0xef4014, 0, 64 * 1024,  16)
+ 		NO_SFDP_FLAGS(SECT_4K) },
+-	{ "w25q128", INFO(0xef4018, 0, 0, 0)
+-		PARSE_SFDP
+-		FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) },
++	{ "w25q128", INFO(0xef4018, 0, 64 * 1024, 256)
++		FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
++		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
++			      SPI_NOR_QUAD_READ) },
+ 	{ "w25q256", INFO(0xef4019, 0, 64 * 1024, 512)
+ 		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
+ 		.fixups = &w25q256_fixups },



From lede-commits at lists.infradead.org  Mon Nov  4 01:50:48 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 04 Nov 2024 04:50:48 -0500
Subject: [openwrt/openwrt]  gpio-button-hotplug: use flexible array member
In-Reply-To: <173071384846.328674.1221900512793911144@git-01.infra.openwrt.org>
References: <173071384846.328674.1221900512793911144@git-01.infra.openwrt.org>
Message-ID: <mailman.151450.1730714859.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/c6a6aac763aa320a3ed810041e0f1dc7ab77b30f

commit c6a6aac763aa320a3ed810041e0f1dc7ab77b30f
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Fri Aug 2 14:30:32 2024 -0700

    gpio-button-hotplug: use flexible array member
    
    zero length arrays are deprecated.
    
    Fixes coccinelle warning:
    
    WARNING use flexible-array member instead
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16848
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c b/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
index 1dd0ff2a1a..52346c25d9 100644
--- a/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
+++ b/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
@@ -302,7 +302,7 @@ struct gpio_keys_button_dev {
 
 	struct device *dev;
 	struct gpio_keys_platform_data *pdata;
-	struct gpio_keys_button_data data[0];
+	struct gpio_keys_button_data data[];
 };
 
 static void gpio_keys_polled_queue_work(struct gpio_keys_button_dev *bdev)



From lede-commits at lists.infradead.org  Mon Nov  4 01:51:15 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 04 Nov 2024 04:51:15 -0500
Subject: [openwrt/openwrt]  gpio-button-hotplug: use flexible array member
In-Reply-To: <173071387530.329256.16746063957047297928@git-01.infra.openwrt.org>
References: <173071387530.329256.16746063957047297928@git-01.infra.openwrt.org>
Message-ID: <mailman.151451.1730714859.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/547feaca2ca7a8d1f81757d6905da3da127139d9

commit 547feaca2ca7a8d1f81757d6905da3da127139d9
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Fri Aug 2 14:30:32 2024 -0700

    gpio-button-hotplug: use flexible array member
    
    zero length arrays are deprecated.
    
    Fixes coccinelle warning:
    
    WARNING use flexible-array member instead
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16848
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c b/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
index 1dd0ff2a1a..52346c25d9 100644
--- a/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
+++ b/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
@@ -302,7 +302,7 @@ struct gpio_keys_button_dev {
 
 	struct device *dev;
 	struct gpio_keys_platform_data *pdata;
-	struct gpio_keys_button_data data[0];
+	struct gpio_keys_button_data data[];
 };
 
 static void gpio_keys_polled_queue_work(struct gpio_keys_button_dev *bdev)



From lede-commits at lists.infradead.org  Mon Nov  4 01:54:48 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 04 Nov 2024 04:54:48 -0500
Subject: [openwrt/openwrt]  uboot-mediatek: fix boot media for mt7981 RFB NOR
 profile
In-Reply-To: <173071408799.332991.4279771647397950832@git-01.infra.openwrt.org>
References: <173071408799.332991.4279771647397950832@git-01.infra.openwrt.org>
Message-ID: <mailman.151454.1730714859.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/f2bddc17893ea9819ee485b87f240b8d4db76df1

commit f2bddc17893ea9819ee485b87f240b8d4db76df1
Author: Enrico Mioso <mrkiko.rs at gmail.com>
AuthorDate: Mon Oct 21 23:39:59 2024 +0200

    uboot-mediatek: fix boot media for mt7981 RFB NOR profile
    
    Signed-off-by: Enrico Mioso <mrkiko.rs at gmail.com>
    CC: Daniel Golle <daniel at makrotopia.org>
---
 package/boot/uboot-mediatek/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/boot/uboot-mediatek/Makefile b/package/boot/uboot-mediatek/Makefile
index ab08126b51..3485765368 100644
--- a/package/boot/uboot-mediatek/Makefile
+++ b/package/boot/uboot-mediatek/Makefile
@@ -370,7 +370,7 @@ define U-Boot/mt7981_rfb-nor
   BUILD_DEVICES:=mediatek_mt7981-rfb
   UBOOT_CONFIG:=mt7981_nor_rfb
   UBOOT_IMAGE:=u-boot.fip
-  BL2_BOOTDEV:=spim-nand
+  BL2_BOOTDEV:=nor
   BL2_SOC:=mt7981
   BL2_DDRTYPE:=ddr3
   DEPENDS:=+trusted-firmware-a-mt7981-nor-ddr3



From lede-commits at lists.infradead.org  Mon Nov  4 01:55:46 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 04 Nov 2024 04:55:46 -0500
Subject: [openwrt/openwrt]  uboot-mediatek: fix boot media for mt7981 RFB NOR
 profile
In-Reply-To: <173071414626.335688.14881865370018502998@git-01.infra.openwrt.org>
References: <173071414626.335688.14881865370018502998@git-01.infra.openwrt.org>
Message-ID: <mailman.151455.1730714859.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/de3d57a60caff8654f600dd6e68023eca242f61b

commit de3d57a60caff8654f600dd6e68023eca242f61b
Author: Enrico Mioso <mrkiko.rs at gmail.com>
AuthorDate: Mon Oct 21 23:39:59 2024 +0200

    uboot-mediatek: fix boot media for mt7981 RFB NOR profile
    
    Signed-off-by: Enrico Mioso <mrkiko.rs at gmail.com>
    CC: Daniel Golle <daniel at makrotopia.org>
---
 package/boot/uboot-mediatek/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/boot/uboot-mediatek/Makefile b/package/boot/uboot-mediatek/Makefile
index e5a0a393fe..0376eea8f2 100644
--- a/package/boot/uboot-mediatek/Makefile
+++ b/package/boot/uboot-mediatek/Makefile
@@ -370,7 +370,7 @@ define U-Boot/mt7981_rfb-nor
   BUILD_DEVICES:=mediatek_mt7981-rfb
   UBOOT_CONFIG:=mt7981_nor_rfb
   UBOOT_IMAGE:=u-boot.fip
-  BL2_BOOTDEV:=spim-nand
+  BL2_BOOTDEV:=nor
   BL2_SOC:=mt7981
   BL2_DDRTYPE:=ddr3
   DEPENDS:=+trusted-firmware-a-mt7981-nor-ddr3



From lede-commits at lists.infradead.org  Mon Nov  4 02:25:40 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 04 Nov 2024 05:25:40 -0500
Subject: [openwrt/openwrt]  ramips: Fix EX400 imagebuilder
In-Reply-To: <173071594028.386349.15966231735146401171@git-01.infra.openwrt.org>
References: <173071594028.386349.15966231735146401171@git-01.infra.openwrt.org>
Message-ID: <mailman.151486.1730715944.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/11ba2b141fbea0e65484d21c419f4c9d74a23ba3

commit 11ba2b141fbea0e65484d21c419f4c9d74a23ba3
Author: Mauri Sandberg <maukka at ext.kapsi.fi>
AuthorDate: Fri Oct 11 10:38:07 2024 +0300

    ramips: Fix EX400 imagebuilder
    
    A factory image for DNA EX400 depends on an initramfs image and they
    were explicitly removed from the imagebuilder recently. Now the factory
    image creation fails miserably and it also affects custom image creation
    with the firmware selector.
    
    Add the initramfs kernel to the staging so that it's shipped with the
    imagebuilder. Also remove a image build target added solely for DNA EX400.
    
    Tested by creating a factory and syspupgrade images locally with
    the imagebuilder and verified their functionality.
    
    Related work
      c85348d9abf4 ("imagebuilder: remove initramfs image files")
    
    Fixes: fea2264d9fdd ("ramips: mt7621: Add DNA Valokuitu Plus EX400")
    Signed-off-by: Mauri Sandberg <maukka at ext.kapsi.fi>
    ---
    v4: use append-image-stage, remove Build/kernel-initramfs-bin
    v3: adjust commit subject
    v2: remove fix for inconsistent line ending elsewhere in the file
    Link: https://github.com/openwrt/openwrt/pull/16659
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/ramips/image/mt7621.mk | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index 34ed9a4d54..9654e237a8 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -180,10 +180,6 @@ define Build/iodata-mstc-header2
 	mv $@.new $@
 endef
 
-define Build/kernel-initramfs-bin
-	$(CP) $(KDIR)/vmlinux-initramfs $@
-endef
-
 define Build/znet-header
 	$(eval version=$(word 1,$(1)))
 	$(eval magic=$(if $(word 2,$(1)),$(word 2,$(1)),ZNET))
@@ -1093,8 +1089,8 @@ define Device/dna_valokuitu-plus-ex400
   DEVICE_MODEL := Valokuitu Plus EX400
   KERNEL := kernel-bin | lzma | uImage lzma
   KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | uImage lzma
-  IMAGES := factory.bin sysupgrade.bin
-  IMAGE/factory.bin := kernel-initramfs-bin | lzma | uImage lzma | \
+  IMAGES += factory.bin
+  IMAGE/factory.bin := append-image-stage initramfs-kernel.bin | \
                        dna-bootfs with-initrd | dna-header | \
                        append-md5sum-ascii-salted
   IMAGE/sysupgrade.bin := dna-bootfs | sysupgrade-tar kernel=$$$$@ | check-size | \



From lede-commits at lists.infradead.org  Mon Nov  4 02:26:14 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 04 Nov 2024 05:26:14 -0500
Subject: [openwrt/openwrt]  ramips: Fix EX400 imagebuilder
In-Reply-To: <173071597447.387195.9725001909758553264@git-01.infra.openwrt.org>
References: <173071597447.387195.9725001909758553264@git-01.infra.openwrt.org>
Message-ID: <mailman.151487.1730715978.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/a923d1f9eca8393656ec18430366877b196a1583

commit a923d1f9eca8393656ec18430366877b196a1583
Author: Mauri Sandberg <maukka at ext.kapsi.fi>
AuthorDate: Fri Oct 11 10:38:07 2024 +0300

    ramips: Fix EX400 imagebuilder
    
    A factory image for DNA EX400 depends on an initramfs image and they
    were explicitly removed from the imagebuilder recently. Now the factory
    image creation fails miserably and it also affects custom image creation
    with the firmware selector.
    
    Add the initramfs kernel to the staging so that it's shipped with the
    imagebuilder. Also remove a image build target added solely for DNA EX400.
    
    Tested by creating a factory and syspupgrade images locally with
    the imagebuilder and verified their functionality.
    
    Related work
      c85348d9abf4 ("imagebuilder: remove initramfs image files")
    
    Fixes: fea2264d9fdd ("ramips: mt7621: Add DNA Valokuitu Plus EX400")
    Signed-off-by: Mauri Sandberg <maukka at ext.kapsi.fi>
    ---
    v4: use append-image-stage, remove Build/kernel-initramfs-bin
    v3: adjust commit subject
    v2: remove fix for inconsistent line ending elsewhere in the file
    Link: https://github.com/openwrt/openwrt/pull/16659
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/ramips/image/mt7621.mk | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index 34ed9a4d54..9654e237a8 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -180,10 +180,6 @@ define Build/iodata-mstc-header2
 	mv $@.new $@
 endef
 
-define Build/kernel-initramfs-bin
-	$(CP) $(KDIR)/vmlinux-initramfs $@
-endef
-
 define Build/znet-header
 	$(eval version=$(word 1,$(1)))
 	$(eval magic=$(if $(word 2,$(1)),$(word 2,$(1)),ZNET))
@@ -1093,8 +1089,8 @@ define Device/dna_valokuitu-plus-ex400
   DEVICE_MODEL := Valokuitu Plus EX400
   KERNEL := kernel-bin | lzma | uImage lzma
   KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | uImage lzma
-  IMAGES := factory.bin sysupgrade.bin
-  IMAGE/factory.bin := kernel-initramfs-bin | lzma | uImage lzma | \
+  IMAGES += factory.bin
+  IMAGE/factory.bin := append-image-stage initramfs-kernel.bin | \
                        dna-bootfs with-initrd | dna-header | \
                        append-md5sum-ascii-salted
   IMAGE/sysupgrade.bin := dna-bootfs | sysupgrade-tar kernel=$$$$@ | check-size | \



From lede-commits at lists.infradead.org  Mon Nov  4 08:27:56 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 04 Nov 2024 11:27:56 -0500
Subject: [openwrt/openwrt]  ipq806x: Fix default MAC addresses on MR42 by
 moving to nvmem-layout Partial,
 single-target update extracted from https://github.com/openwrt/openwrt/commit/d264d3a6
In-Reply-To: <173073767609.815352.15883936595797969335@git-01.infra.openwrt.org>
References: <173073767609.815352.15883936595797969335@git-01.infra.openwrt.org>
Message-ID: <mailman.151877.1730737680.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/cb8b632f1ad8bee438139aaf8c947879380fbdc2

commit cb8b632f1ad8bee438139aaf8c947879380fbdc2
Author: Rafal Boni <rafal.boni at gmail.com>
AuthorDate: Thu Oct 31 18:54:21 2024 -0400

    ipq806x: Fix default MAC addresses on MR42 by moving to nvmem-layout
    Partial, single-target update extracted from https://github.com/openwrt/openwrt/commit/d264d3a6
    
    The previous `mac-address-increment` is deprecated, and in particular on
    this target means that the kernel is unable to read the MAC address,
    causing the system to boot with a new random MAC address each time.
    
    Fixes: https://github.com/openwrt/openwrt/issues/13992
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    [rafal.boni at gmail.com: single-target-specific backport from larger change]
    Signed-off-by: Rafal Boni <rafal.boni at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16858
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 .../arch/arm/boot/dts/qcom-ipq8068-mr42.dts        | 25 ++++++++++++----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/target/linux/ipq806x/files-5.15/arch/arm/boot/dts/qcom-ipq8068-mr42.dts b/target/linux/ipq806x/files-5.15/arch/arm/boot/dts/qcom-ipq8068-mr42.dts
index cfbfafb179..d9d284fcfa 100644
--- a/target/linux/ipq806x/files-5.15/arch/arm/boot/dts/qcom-ipq8068-mr42.dts
+++ b/target/linux/ipq806x/files-5.15/arch/arm/boot/dts/qcom-ipq8068-mr42.dts
@@ -58,7 +58,7 @@
 	phy-mode = "sgmii";
 	phy-handle = <&phy2>;
 
-	nvmem-cells = <&mac_address>;
+	nvmem-cells = <&mac_address 0>;
 	nvmem-cell-names = "mac-address";
 };
 
@@ -84,11 +84,17 @@
 		pagesize = <32>;
 		reg = <0x56>;
 		read-only;
-		#address-cells = <1>;
-		#size-cells = <1>;
 
-		mac_address: mac-address at 66 {
-			reg = <0x66 0x6>;
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			mac_address: mac-address at 66 {
+				compatible = "mac-base";
+				reg = <0x66 0x6>;
+				#nvmem-cell-cells = <1>;
+			};
 		};
 	};
 };
@@ -186,21 +192,18 @@
 };
 
 &wifi0 {
-	nvmem-cells = <&mac_address>;
+	nvmem-cells = <&mac_address 1>;
 	nvmem-cell-names = "mac-address";
-	mac-address-increment = <1>;
 };
 
 &wifi1 {
-	nvmem-cells = <&mac_address>;
+	nvmem-cells = <&mac_address 2>;
 	nvmem-cell-names = "mac-address";
-	mac-address-increment = <2>;
 };
 
 &wifi2 {
-	nvmem-cells = <&mac_address>;
+	nvmem-cells = <&mac_address 3>;
 	nvmem-cell-names = "mac-address";
-	mac-address-increment = <3>;
 };
 
 &hs_phy_0 {



From lede-commits at lists.infradead.org  Mon Nov  4 12:20:41 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 04 Nov 2024 15:20:41 -0500
Subject: [openwrt/openwrt]  nu801: Mark as nonshared to build in step 1
In-Reply-To: <173075164138.1098999.12749008639412694974@git-01.infra.openwrt.org>
References: <173075164138.1098999.12749008639412694974@git-01.infra.openwrt.org>
Message-ID: <mailman.152062.1730751707.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/8508d87495851e4f33c21e2ad805ad91fe2af309

commit 8508d87495851e4f33c21e2ad805ad91fe2af309
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Mon Nov 4 18:20:06 2024 +0100

    nu801: Mark as nonshared to build in step 1
    
    Mark the package as nonshared to build it in the target specific build
    step 1 of the build bots instead of the architecture generic build step 2.
    
    In the build step 2 it may be left out if we build it using a different
    target.
    
    Fixes: #16857
    Link: https://github.com/openwrt/openwrt/pull/16859
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/system/gpio-cdev/nu801/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/system/gpio-cdev/nu801/Makefile b/package/system/gpio-cdev/nu801/Makefile
index 82c04ccb41..7724cd808b 100644
--- a/package/system/gpio-cdev/nu801/Makefile
+++ b/package/system/gpio-cdev/nu801/Makefile
@@ -3,6 +3,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nu801
+PKG_FLAGS:=nonshared
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git



From lede-commits at lists.infradead.org  Mon Nov  4 14:43:08 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 04 Nov 2024 17:43:08 -0500
Subject: [openwrt/openwrt]  mac80211: compatibility with kernel 6.6.59
In-Reply-To: <173076018739.1297229.10820184608085448419@git-01.infra.openwrt.org>
References: <173076018739.1297229.10820184608085448419@git-01.infra.openwrt.org>
Message-ID: <mailman.152138.1730760191.1280.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/31f1dabb4b9727b300ddaa2801903ae4b72e4e1e

commit 31f1dabb4b9727b300ddaa2801903ae4b72e4e1e
Author: Mieczyslaw Nalewaj <namiltd at yahoo.com>
AuthorDate: Fri Nov 1 21:59:23 2024 +0100

    mac80211: compatibility with kernel 6.6.59
    
    Fix genlmsg_multicast_allns() build error on kernel 6.6.59.
    Based on kernel patch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit?h=v6.6.59&id=e0f83d268974dab0361d11904dfc9acec53f96a6
    
    Signed-off-by: Mieczyslaw Nalewaj <namiltd at yahoo.com>
    Link: https://github.com/openwrt/openwrt/pull/16835
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 ...ticast_allns-build-error-on-kernel-6.6.59.patch | 169 +++++++++++++++++++++
 1 file changed, 169 insertions(+)

diff --git a/package/kernel/mac80211/patches/build/236-fix-genlmsg_multicast_allns-build-error-on-kernel-6.6.59.patch b/package/kernel/mac80211/patches/build/236-fix-genlmsg_multicast_allns-build-error-on-kernel-6.6.59.patch
new file mode 100644
index 0000000000..905bf8dfc1
--- /dev/null
+++ b/package/kernel/mac80211/patches/build/236-fix-genlmsg_multicast_allns-build-error-on-kernel-6.6.59.patch
@@ -0,0 +1,169 @@
+From e0f83d268974dab0361d11904dfc9acec53f96a6 Mon Sep 17 00:00:00 2001
+From: Eric Dumazet <edumazet at google.com>
+Date: Fri, 11 Oct 2024 17:12:17 +0000
+Subject: [PATCH] genetlink: hold RCU in genlmsg_mcast()
+
+[ Upstream commit 56440d7ec28d60f8da3bfa09062b3368ff9b16db ]
+
+While running net selftests with CONFIG_PROVE_RCU_LIST=y I saw
+one lockdep splat [1].
+
+genlmsg_mcast() uses for_each_net_rcu(), and must therefore hold RCU.
+
+Instead of letting all callers guard genlmsg_multicast_allns()
+with a rcu_read_lock()/rcu_read_unlock() pair, do it in genlmsg_mcast().
+
+This also means the @flags parameter is useless, we need to always use
+GFP_ATOMIC.
+
+[1]
+[10882.424136] =============================
+[10882.424166] WARNING: suspicious RCU usage
+[10882.424309] 6.12.0-rc2-virtme #1156 Not tainted
+[10882.424400] -----------------------------
+[10882.424423] net/netlink/genetlink.c:1940 RCU-list traversed in non-reader section!!
+[10882.424469]
+other info that might help us debug this:
+
+[10882.424500]
+rcu_scheduler_active = 2, debug_locks = 1
+[10882.424744] 2 locks held by ip/15677:
+[10882.424791] #0: ffffffffb6b491b0 (cb_lock){++++}-{3:3}, at: genl_rcv (net/netlink/genetlink.c:1219)
+[10882.426334] #1: ffffffffb6b49248 (genl_mutex){+.+.}-{3:3}, at: genl_rcv_msg (net/netlink/genetlink.c:61 net/netlink/genetlink.c:57 net/netlink/genetlink.c:1209)
+[10882.426465]
+stack backtrace:
+[10882.426805] CPU: 14 UID: 0 PID: 15677 Comm: ip Not tainted 6.12.0-rc2-virtme #1156
+[10882.426919] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
+[10882.427046] Call Trace:
+[10882.427131]  <TASK>
+[10882.427244] dump_stack_lvl (lib/dump_stack.c:123)
+[10882.427335] lockdep_rcu_suspicious (kernel/locking/lockdep.c:6822)
+[10882.427387] genlmsg_multicast_allns (net/netlink/genetlink.c:1940 (discriminator 7) net/netlink/genetlink.c:1977 (discriminator 7))
+[10882.427436] l2tp_tunnel_notify.constprop.0 (net/l2tp/l2tp_netlink.c:119) l2tp_netlink
+[10882.427683] l2tp_nl_cmd_tunnel_create (net/l2tp/l2tp_netlink.c:253) l2tp_netlink
+[10882.427748] genl_family_rcv_msg_doit (net/netlink/genetlink.c:1115)
+[10882.427834] genl_rcv_msg (net/netlink/genetlink.c:1195 net/netlink/genetlink.c:1210)
+[10882.427877] ? __pfx_l2tp_nl_cmd_tunnel_create (net/l2tp/l2tp_netlink.c:186) l2tp_netlink
+[10882.427927] ? __pfx_genl_rcv_msg (net/netlink/genetlink.c:1201)
+[10882.427959] netlink_rcv_skb (net/netlink/af_netlink.c:2551)
+[10882.428069] genl_rcv (net/netlink/genetlink.c:1220)
+[10882.428095] netlink_unicast (net/netlink/af_netlink.c:1332 net/netlink/af_netlink.c:1357)
+[10882.428140] netlink_sendmsg (net/netlink/af_netlink.c:1901)
+[10882.428210] ____sys_sendmsg (net/socket.c:729 (discriminator 1) net/socket.c:744 (discriminator 1) net/socket.c:2607 (discriminator 1))
+
+Fixes: 33f72e6f0c67 ("l2tp : multicast notification to the registered listeners")
+Signed-off-by: Eric Dumazet <edumazet at google.com>
+Cc: James Chapman <jchapman at katalix.com>
+Cc: Tom Parkin <tparkin at katalix.com>
+Cc: Johannes Berg <johannes.berg at intel.com>
+Link: https://patch.msgid.link/20241011171217.3166614-1-edumazet at google.com
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
+Signed-off-by: Sasha Levin <sashal at kernel.org>
+---
+ drivers/target/target_core_user.c |  2 +-
+ include/net/genetlink.h           |  3 +--
+ net/l2tp/l2tp_netlink.c           |  4 ++--
+ net/netlink/genetlink.c           | 28 ++++++++++++++--------------
+ net/wireless/nl80211.c            |  8 ++------
+ 5 files changed, 20 insertions(+), 25 deletions(-)
+
+--- a/backport-include/net/genetlink.h
++++ b/backport-include/net/genetlink.h
+@@ -150,7 +150,7 @@ int genlmsg_multicast(const struct genl_
+ #define genlmsg_multicast_allns LINUX_BACKPORT(genlmsg_multicast_allns)
+ int backport_genlmsg_multicast_allns(const struct genl_family *family,
+ 				     struct sk_buff *skb, u32 portid,
+-				     unsigned int group, gfp_t flags);
++				     unsigned int group);
+ 
+ #define genl_family_attrbuf LINUX_BACKPORT(genl_family_attrbuf)
+ static inline struct nlattr **genl_family_attrbuf(struct genl_family *family)
+--- a/compat/backport-genetlink.c
++++ b/compat/backport-genetlink.c
+@@ -198,23 +198,23 @@ int genlmsg_multicast(const struct genl_
+ }
+ EXPORT_SYMBOL_GPL(genlmsg_multicast);
+ 
+-static int genlmsg_mcast(struct sk_buff *skb, u32 portid, unsigned long group,
+-			 gfp_t flags)
++static int genlmsg_mcast(struct sk_buff *skb, u32 portid, unsigned long group)
+ {
+ 	struct sk_buff *tmp;
+ 	struct net *net, *prev = NULL;
+ 	bool delivered = false;
+ 	int err;
+ 
++	rcu_read_lock();
+ 	for_each_net_rcu(net) {
+ 		if (prev) {
+-			tmp = skb_clone(skb, flags);
++			tmp = skb_clone(skb, GFP_ATOMIC);
+ 			if (!tmp) {
+ 				err = -ENOMEM;
+ 				goto error;
+ 			}
+ 			err = nlmsg_multicast(prev->genl_sock, tmp,
+-					      portid, group, flags);
++					      portid, group, GFP_ATOMIC);
+ 			if (!err)
+ 				delivered = true;
+ 			else if (err != -ESRCH)
+@@ -223,25 +223,29 @@ static int genlmsg_mcast(struct sk_buff
+ 
+ 		prev = net;
+ 	}
++	err = nlmsg_multicast(prev->genl_sock, skb, portid, group, GFP_ATOMIC);
++
++	rcu_read_unlock();
+ 
+-	err = nlmsg_multicast(prev->genl_sock, skb, portid, group, flags);
+ 	if (!err)
+ 		delivered = true;
+ 	else if (err != -ESRCH)
+ 		return err;
+ 	return delivered ? 0 : -ESRCH;
+  error:
++	rcu_read_unlock();
++
+ 	kfree_skb(skb);
+ 	return err;
+ }
+ 
+ int backport_genlmsg_multicast_allns(const struct genl_family *family,
+ 				     struct sk_buff *skb, u32 portid,
+-				     unsigned int group, gfp_t flags)
++				     unsigned int group)
+ {
+ 	group = __backport_genl_group(family, group);
+ 	if (group == INVALID_GROUP)
+ 		return -EINVAL;
+-	return genlmsg_mcast(skb, portid, group, flags);
++	return genlmsg_mcast(skb, portid, group);
+ }
+ EXPORT_SYMBOL_GPL(backport_genlmsg_multicast_allns);
+--- a/net/wireless/nl80211.c
++++ b/net/wireless/nl80211.c
+@@ -17956,10 +17956,8 @@ void nl80211_common_reg_change_event(enu
+ 
+ 	genlmsg_end(msg, hdr);
+ 
+-	rcu_read_lock();
+ 	genlmsg_multicast_allns(&nl80211_fam, msg, 0,
+-				NL80211_MCGRP_REGULATORY, GFP_ATOMIC);
+-	rcu_read_unlock();
++				NL80211_MCGRP_REGULATORY);
+ 
+ 	return;
+ 
+@@ -18692,10 +18690,8 @@ void nl80211_send_beacon_hint_event(stru
+ 
+ 	genlmsg_end(msg, hdr);
+ 
+-	rcu_read_lock();
+ 	genlmsg_multicast_allns(&nl80211_fam, msg, 0,
+-				NL80211_MCGRP_REGULATORY, GFP_ATOMIC);
+-	rcu_read_unlock();
++				NL80211_MCGRP_REGULATORY);
+ 
+ 	return;
+ 



From lede-commits at lists.infradead.org  Mon Nov  4 14:43:07 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 04 Nov 2024 17:43:07 -0500
Subject: [openwrt/openwrt]  kernel: bump 6.6 to 6.6.59
In-Reply-To: <173076018739.1297229.10820184608085448419@git-01.infra.openwrt.org>
References: <173076018739.1297229.10820184608085448419@git-01.infra.openwrt.org>
Message-ID: <mailman.152139.1730760192.1280.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/4fc47c60006ccacda5ef644c5447ebfcb26c0680

commit 4fc47c60006ccacda5ef644c5447ebfcb26c0680
Author: Mieczyslaw Nalewaj <namiltd at yahoo.com>
AuthorDate: Sun Nov 3 08:53:37 2024 +0100

    kernel: bump 6.6 to 6.6.59
    
    Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.59
    
    Removed upstreamed:
     - generic/backport-6.6/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch[1]
     - generic/backport-6.6/780-24-v6.12-r8169-avoid-unsolicited-interrupts.patch[2]
    
    All other patches automatically rebased.
    
    1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.59&id=433742ba96baf30c21e654ce3e698ad87100593b
    2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.59&id=7d6d46b429804b1a182106e27e2f8c0e84689e1a
    
    Signed-off-by: Mieczyslaw Nalewaj <namiltd at yahoo.com>
    Link: https://github.com/openwrt/openwrt/pull/16835
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 include/kernel-6.6                                 |  4 +-
 ...Use-more-event-ring-segment-table-entries.patch |  2 +-
 ...-xhci-quirks-add-link-TRB-quirk-for-VL805.patch |  2 +-
 ...84-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch |  2 +-
 ...0-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch |  2 +-
 ...usb-dwc3-Set-DMA-and-coherent-masks-early.patch |  2 +-
 ...-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch |  2 +-
 ...-add-support-for-performing-fake-doorbell.patch |  2 +-
 ...0-net-create-a-dummy-net_device-allocator.patch |  2 +-
 ...-causing-some-targets-to-not-load-on-IPv6.patch | 43 ----------------------
 ....8-r8169-improve-handling-task-scheduling.patch |  2 +-
 ...-add-support-for-LED-s-on-RTL8168-RTL8101.patch |  4 +-
 ...169-fix-building-with-CONFIG_LEDS_CLASS-m.patch |  2 +-
 .../780-07-v6.9-r8169-simplify-EEE-handling.patch  |  4 +-
 ...80-08-v6.9-r8169-add-support-for-RTL8126A.patch |  2 +-
 ...ify-code-by-using-core-provided-pcpu-stat.patch |  4 +-
 ...r8169-add-LED-support-for-RTL8125-RTL8126.patch |  2 +-
 ...ix-LED-related-deadlock-on-module-removal.patch |  4 +-
 ...issing-conditional-compiling-for-call-to-.patch |  2 +-
 ...r8169-disable-interrupt-source-RxOverflow.patch |  2 +-
 ...6.12-r8169-add-support-for-RTL8126A-rev.b.patch |  2 +-
 ...-v6.12-r8169-avoid-unsolicited-interrupts.patch | 39 --------------------
 ....13-net-dsa-mv88e6xxx-Support-LED-control.patch |  6 +--
 ...sb-dwc3-add-optional-PHY-interface-clocks.patch |  2 +-
 ...-improve-performance-usb-using-lowmem-for.patch |  6 +--
 25 files changed, 32 insertions(+), 114 deletions(-)

diff --git a/include/kernel-6.6 b/include/kernel-6.6
index df3464ab41..5e154f2d21 100644
--- a/include/kernel-6.6
+++ b/include/kernel-6.6
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.6 = .58
-LINUX_KERNEL_HASH-6.6.58 = e7df81e588d70fab5ec3ec3bb04ac53d51f0860fc3b1ec45e0a4167a026899db
+LINUX_VERSION-6.6 = .59
+LINUX_KERNEL_HASH-6.6.59 = 23616808d8c08f12815ff898f4edb4c11397a2b2843d029ee62452d21833a76d
diff --git a/target/linux/bcm27xx/patches-6.6/950-0481-xhci-Use-more-event-ring-segment-table-entries.patch b/target/linux/bcm27xx/patches-6.6/950-0481-xhci-Use-more-event-ring-segment-table-entries.patch
index 27a43828dd..ff8c9223b5 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0481-xhci-Use-more-event-ring-segment-table-entries.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0481-xhci-Use-more-event-ring-segment-table-entries.patch
@@ -52,7 +52,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	erst_base = xhci_read_64(xhci, &ir->ir_set->erst_base);
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1681,8 +1681,9 @@ struct urb_priv {
+@@ -1425,8 +1425,9 @@ struct urb_priv {
   * Each segment table entry is 4*32bits long.  1K seems like an ok size:
   * (1K bytes * 8bytes/bit) / (4*32 bits) = 64 segment entries in the table,
   * meaning 64 ring segments.
diff --git a/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch b/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
index ca49ada4e7..4a7bfd4f2e 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
@@ -52,7 +52,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	addr = xhci_trb_virt_to_dma(new_seg, new_deq);
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1918,6 +1918,9 @@ struct xhci_hcd {
+@@ -1662,6 +1662,9 @@ struct xhci_hcd {
  #define XHCI_WRITE_64_HI_LO	BIT_ULL(47)
  #define XHCI_CDNS_SCTX_QUIRK	BIT_ULL(48)
  
diff --git a/target/linux/bcm27xx/patches-6.6/950-0484-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch b/target/linux/bcm27xx/patches-6.6/950-0484-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch
index a7d255db40..663a2f9323 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0484-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0484-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch
@@ -100,7 +100,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1920,6 +1920,7 @@ struct xhci_hcd {
+@@ -1664,6 +1664,7 @@ struct xhci_hcd {
  
  /* Downstream VLI fixes */
  #define XHCI_AVOID_DQ_ON_LINK	BIT_ULL(56)
diff --git a/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch b/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
index 935ed89c08..f0c75c6bfa 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
@@ -144,7 +144,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	return 0;
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1921,6 +1921,7 @@ struct xhci_hcd {
+@@ -1665,6 +1665,7 @@ struct xhci_hcd {
  /* Downstream VLI fixes */
  #define XHCI_AVOID_DQ_ON_LINK	BIT_ULL(56)
  #define XHCI_VLI_SS_BULK_OUT_BUG	BIT_ULL(57)
diff --git a/target/linux/bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch b/target/linux/bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch
index 7d3a139a77..7609657162 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch
@@ -341,7 +341,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
   * @hsphy_interface: "utmi" or "ulpi"
   * @connected: true when we're connected to a host, false otherwise
   * @softconnect: true when gadget connect is called, false when disconnect runs
-@@ -1296,6 +1300,7 @@ struct dwc3 {
+@@ -1298,6 +1302,7 @@ struct dwc3 {
  	u8			tx_max_burst_prd;
  	u8			tx_fifo_resize_max_num;
  	u8			clear_stall_protocol;
diff --git a/target/linux/bcm27xx/patches-6.6/950-0853-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch b/target/linux/bcm27xx/patches-6.6/950-0853-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch
index 557bb033ef..901553cd6c 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0853-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0853-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch
@@ -62,7 +62,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
   * @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
   * @tx_de_emphasis: Tx de-emphasis value
   *	0	- -6dB de-emphasis
-@@ -1344,6 +1347,7 @@ struct dwc3 {
+@@ -1346,6 +1349,7 @@ struct dwc3 {
  	unsigned		ulpi_ext_vbus_drv:1;
  	unsigned		parkmode_disable_ss_quirk:1;
  	unsigned		parkmode_disable_hs_quirk:1;
diff --git a/target/linux/bcm53xx/patches-6.6/180-usb-xhci-add-support-for-performing-fake-doorbell.patch b/target/linux/bcm53xx/patches-6.6/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
index efcda98679..13b6566a8e 100644
--- a/target/linux/bcm53xx/patches-6.6/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
+++ b/target/linux/bcm53xx/patches-6.6/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
@@ -103,7 +103,7 @@ it on BCM4708 family.
  	if (xhci->quirks & XHCI_NEC_HOST)
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1916,6 +1916,7 @@ struct xhci_hcd {
+@@ -1660,6 +1660,7 @@ struct xhci_hcd {
  #define XHCI_ZHAOXIN_HOST	BIT_ULL(46)
  #define XHCI_WRITE_64_HI_LO	BIT_ULL(47)
  #define XHCI_CDNS_SCTX_QUIRK	BIT_ULL(48)
diff --git a/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch b/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch
index a17a91ec7c..aea95667e5 100644
--- a/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch
+++ b/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch
@@ -37,7 +37,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
 
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -4549,6 +4549,9 @@ static inline void netif_addr_unlock_bh(
+@@ -4561,6 +4561,9 @@ static inline void netif_addr_unlock_bh(
  
  void ether_setup(struct net_device *dev);
  
diff --git a/target/linux/generic/backport-6.6/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch b/target/linux/generic/backport-6.6/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch
deleted file mode 100644
index d29c7d463d..0000000000
--- a/target/linux/generic/backport-6.6/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Subject: [PATCH v2] netfilter: xtables: fix typo causing some targets to not load on IPv6
-Date: Sat, 19 Oct 2024 08:05:07 +0300	[thread overview]
-Message-ID: <20241019-xtables-typos-v2-1-6b8b1735dc8e at 0upti.me> (raw)
-
-These were added with the wrong family in 4cdc55e, which seems
-to just have been a typo, but now ip6tables rules with --set-mark
-don't work anymore, which is pretty bad.
-
-Fixes: 0bfcb7b71e73 ("netfilter: xtables: avoid NFPROTO_UNSPEC where needed")
-Reviewed-by: Phil Sutter <phil at nwl.cc>
-Signed-off-by: Ilya Katsnelson <me at 0upti.me>
----
-Changes in v2:
-- Fixed a typo in the commit message (that's karma).
-- Replaced a reference to backport commit.
-- Link to v1: https://lore.kernel.org/r/20241018-xtables-typos-v1-1-02a51789c0ec at 0upti.me
----
- net/netfilter/xt_NFLOG.c | 2 +-
- net/netfilter/xt_mark.c  | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
---- a/net/netfilter/xt_NFLOG.c
-+++ b/net/netfilter/xt_NFLOG.c
-@@ -79,7 +79,7 @@ static struct xt_target nflog_tg_reg[] _
- 	{
- 		.name       = "NFLOG",
- 		.revision   = 0,
--		.family     = NFPROTO_IPV4,
-+		.family     = NFPROTO_IPV6,
- 		.checkentry = nflog_tg_check,
- 		.destroy    = nflog_tg_destroy,
- 		.target     = nflog_tg,
---- a/net/netfilter/xt_mark.c
-+++ b/net/netfilter/xt_mark.c
-@@ -62,7 +62,7 @@ static struct xt_target mark_tg_reg[] __
- 	{
- 		.name           = "MARK",
- 		.revision       = 2,
--		.family         = NFPROTO_IPV4,
-+		.family         = NFPROTO_IPV6,
- 		.target         = mark_tg,
- 		.targetsize     = sizeof(struct xt_mark_tginfo2),
- 		.me             = THIS_MODULE,
diff --git a/target/linux/generic/backport-6.6/780-04-v6.8-r8169-improve-handling-task-scheduling.patch b/target/linux/generic/backport-6.6/780-04-v6.8-r8169-improve-handling-task-scheduling.patch
index f020284cc8..757c800533 100644
--- a/target/linux/generic/backport-6.6/780-04-v6.8-r8169-improve-handling-task-scheduling.patch
+++ b/target/linux/generic/backport-6.6/780-04-v6.8-r8169-improve-handling-task-scheduling.patch
@@ -29,7 +29,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	set_bit(flag, tp->wk.flags);
  	schedule_work(&tp->wk.work);
  }
-@@ -4518,8 +4521,7 @@ static void rtl_task(struct work_struct
+@@ -4520,8 +4523,7 @@ static void rtl_task(struct work_struct
  
  	rtnl_lock();
  
diff --git a/target/linux/generic/backport-6.6/780-05-v6.8-r8169-add-support-for-LED-s-on-RTL8168-RTL8101.patch b/target/linux/generic/backport-6.6/780-05-v6.8-r8169-add-support-for-LED-s-on-RTL8168-RTL8101.patch
index 95245b9a54..0504a00df4 100644
--- a/target/linux/generic/backport-6.6/780-05-v6.8-r8169-add-support-for-LED-s-on-RTL8168-RTL8101.patch
+++ b/target/linux/generic/backport-6.6/780-05-v6.8-r8169-add-support-for-LED-s-on-RTL8168-RTL8101.patch
@@ -296,7 +296,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  static void r8168fp_adjust_ocp_cmd(struct rtl8169_private *tp, u32 *cmd, int type)
  {
  	/* based on RTL8168FP_OOBMAC_BASE in vendor driver */
-@@ -5195,6 +5253,7 @@ static int rtl_init_one(struct pci_dev *
+@@ -5197,6 +5255,7 @@ static int rtl_init_one(struct pci_dev *
  	raw_spin_lock_init(&tp->cfg9346_usage_lock);
  	raw_spin_lock_init(&tp->config25_lock);
  	raw_spin_lock_init(&tp->mac_ocp_lock);
@@ -304,7 +304,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  
  	dev->tstats = devm_netdev_alloc_pcpu_stats(&pdev->dev,
  						   struct pcpu_sw_netstats);
-@@ -5351,6 +5410,12 @@ static int rtl_init_one(struct pci_dev *
+@@ -5353,6 +5412,12 @@ static int rtl_init_one(struct pci_dev *
  	if (rc)
  		return rc;
  
diff --git a/target/linux/generic/backport-6.6/780-06-v6.8-r8169-fix-building-with-CONFIG_LEDS_CLASS-m.patch b/target/linux/generic/backport-6.6/780-06-v6.8-r8169-fix-building-with-CONFIG_LEDS_CLASS-m.patch
index 819a611cb3..1adaf87625 100644
--- a/target/linux/generic/backport-6.6/780-06-v6.8-r8169-fix-building-with-CONFIG_LEDS_CLASS-m.patch
+++ b/target/linux/generic/backport-6.6/780-06-v6.8-r8169-fix-building-with-CONFIG_LEDS_CLASS-m.patch
@@ -59,7 +59,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  obj-$(CONFIG_R8169) += r8169.o
 --- a/drivers/net/ethernet/realtek/r8169_main.c
 +++ b/drivers/net/ethernet/realtek/r8169_main.c
-@@ -5410,11 +5410,10 @@ static int rtl_init_one(struct pci_dev *
+@@ -5412,11 +5412,10 @@ static int rtl_init_one(struct pci_dev *
  	if (rc)
  		return rc;
  
diff --git a/target/linux/generic/backport-6.6/780-07-v6.9-r8169-simplify-EEE-handling.patch b/target/linux/generic/backport-6.6/780-07-v6.9-r8169-simplify-EEE-handling.patch
index d3a26303ef..c3f94b3aff 100644
--- a/target/linux/generic/backport-6.6/780-07-v6.9-r8169-simplify-EEE-handling.patch
+++ b/target/linux/generic/backport-6.6/780-07-v6.9-r8169-simplify-EEE-handling.patch
@@ -75,7 +75,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	genphy_soft_reset(tp->phydev);
  }
  
-@@ -5112,7 +5087,9 @@ static int r8169_mdio_register(struct rt
+@@ -5114,7 +5089,9 @@ static int r8169_mdio_register(struct rt
  	}
  
  	tp->phydev->mac_managed_pm = true;
@@ -86,7 +86,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	phy_support_asym_pause(tp->phydev);
  
  	/* PHY will be woken up in rtl_open() */
-@@ -5247,7 +5224,6 @@ static int rtl_init_one(struct pci_dev *
+@@ -5249,7 +5226,6 @@ static int rtl_init_one(struct pci_dev *
  	tp->dev = dev;
  	tp->pci_dev = pdev;
  	tp->supports_gmii = ent->driver_data == RTL_CFG_NO_GBIT ? 0 : 1;
diff --git a/target/linux/generic/backport-6.6/780-08-v6.9-r8169-add-support-for-RTL8126A.patch b/target/linux/generic/backport-6.6/780-08-v6.9-r8169-add-support-for-RTL8126A.patch
index 6dfaa904a1..354aacf1cf 100644
--- a/target/linux/generic/backport-6.6/780-08-v6.9-r8169-add-support-for-RTL8126A.patch
+++ b/target/linux/generic/backport-6.6/780-08-v6.9-r8169-add-support-for-RTL8126A.patch
@@ -321,7 +321,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  		padto = max_t(unsigned int, padto, ETH_ZLEN);
  		break;
  	default:
-@@ -5139,7 +5196,7 @@ static void rtl_hw_initialize(struct rtl
+@@ -5141,7 +5198,7 @@ static void rtl_hw_initialize(struct rtl
  	case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_48:
  		rtl_hw_init_8168g(tp);
  		break;
diff --git a/target/linux/generic/backport-6.6/780-10-v6.9-r8169-simplify-code-by-using-core-provided-pcpu-stat.patch b/target/linux/generic/backport-6.6/780-10-v6.9-r8169-simplify-code-by-using-core-provided-pcpu-stat.patch
index 0288dcb11e..c155b11431 100644
--- a/target/linux/generic/backport-6.6/780-10-v6.9-r8169-simplify-code-by-using-core-provided-pcpu-stat.patch
+++ b/target/linux/generic/backport-6.6/780-10-v6.9-r8169-simplify-code-by-using-core-provided-pcpu-stat.patch
@@ -16,7 +16,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
 
 --- a/drivers/net/ethernet/realtek/r8169_main.c
 +++ b/drivers/net/ethernet/realtek/r8169_main.c
-@@ -5288,11 +5288,6 @@ static int rtl_init_one(struct pci_dev *
+@@ -5290,11 +5290,6 @@ static int rtl_init_one(struct pci_dev *
  	raw_spin_lock_init(&tp->mac_ocp_lock);
  	mutex_init(&tp->led_lock);
  
@@ -28,7 +28,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	/* Get the *optional* external "ether_clk" used on some boards */
  	tp->clk = devm_clk_get_optional_enabled(&pdev->dev, "ether_clk");
  	if (IS_ERR(tp->clk))
-@@ -5407,6 +5402,8 @@ static int rtl_init_one(struct pci_dev *
+@@ -5409,6 +5404,8 @@ static int rtl_init_one(struct pci_dev *
  	dev->hw_features |= NETIF_F_RXALL;
  	dev->hw_features |= NETIF_F_RXFCS;
  
diff --git a/target/linux/generic/backport-6.6/780-11-v6.9-r8169-add-LED-support-for-RTL8125-RTL8126.patch b/target/linux/generic/backport-6.6/780-11-v6.9-r8169-add-LED-support-for-RTL8125-RTL8126.patch
index 449aa11591..1c793f9b1d 100644
--- a/target/linux/generic/backport-6.6/780-11-v6.9-r8169-add-LED-support-for-RTL8125-RTL8126.patch
+++ b/target/linux/generic/backport-6.6/780-11-v6.9-r8169-add-LED-support-for-RTL8125-RTL8126.patch
@@ -225,7 +225,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  void r8169_get_led_name(struct rtl8169_private *tp, int idx,
  			char *buf, int buf_len)
  {
-@@ -5440,10 +5491,12 @@ static int rtl_init_one(struct pci_dev *
+@@ -5442,10 +5493,12 @@ static int rtl_init_one(struct pci_dev *
  	if (rc)
  		return rc;
  
diff --git a/target/linux/generic/backport-6.6/780-16-v6.9-r8169-fix-LED-related-deadlock-on-module-removal.patch b/target/linux/generic/backport-6.6/780-16-v6.9-r8169-fix-LED-related-deadlock-on-module-removal.patch
index 6e0ff9b14b..cb031d8f34 100644
--- a/target/linux/generic/backport-6.6/780-16-v6.9-r8169-fix-LED-related-deadlock-on-module-removal.patch
+++ b/target/linux/generic/backport-6.6/780-16-v6.9-r8169-fix-LED-related-deadlock-on-module-removal.patch
@@ -124,7 +124,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  	u32 ocp_base;
  };
  
-@@ -5067,6 +5069,8 @@ static void rtl_remove_one(struct pci_de
+@@ -5069,6 +5071,8 @@ static void rtl_remove_one(struct pci_de
  
  	cancel_work_sync(&tp->wk.work);
  
@@ -133,7 +133,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  	unregister_netdev(tp->dev);
  
  	if (tp->dash_type != RTL_DASH_NONE)
-@@ -5525,9 +5529,9 @@ static int rtl_init_one(struct pci_dev *
+@@ -5527,9 +5531,9 @@ static int rtl_init_one(struct pci_dev *
  
  	if (IS_ENABLED(CONFIG_R8169_LEDS)) {
  		if (rtl_is_8125(tp))
diff --git a/target/linux/generic/backport-6.6/780-17-v6.9-r8169-add-missing-conditional-compiling-for-call-to-.patch b/target/linux/generic/backport-6.6/780-17-v6.9-r8169-add-missing-conditional-compiling-for-call-to-.patch
index e647e18167..0412c91903 100644
--- a/target/linux/generic/backport-6.6/780-17-v6.9-r8169-add-missing-conditional-compiling-for-call-to-.patch
+++ b/target/linux/generic/backport-6.6/780-17-v6.9-r8169-add-missing-conditional-compiling-for-call-to-.patch
@@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/drivers/net/ethernet/realtek/r8169_main.c
 +++ b/drivers/net/ethernet/realtek/r8169_main.c
-@@ -5069,7 +5069,8 @@ static void rtl_remove_one(struct pci_de
+@@ -5071,7 +5071,8 @@ static void rtl_remove_one(struct pci_de
  
  	cancel_work_sync(&tp->wk.work);
  
diff --git a/target/linux/generic/backport-6.6/780-20-v6.11-r8169-disable-interrupt-source-RxOverflow.patch b/target/linux/generic/backport-6.6/780-20-v6.11-r8169-disable-interrupt-source-RxOverflow.patch
index 9389585f16..fc10a3ff14 100644
--- a/target/linux/generic/backport-6.6/780-20-v6.11-r8169-disable-interrupt-source-RxOverflow.patch
+++ b/target/linux/generic/backport-6.6/780-20-v6.11-r8169-disable-interrupt-source-RxOverflow.patch
@@ -18,7 +18,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/drivers/net/ethernet/realtek/r8169_main.c
 +++ b/drivers/net/ethernet/realtek/r8169_main.c
-@@ -5110,12 +5110,10 @@ static void rtl_set_irq_mask(struct rtl8
+@@ -5112,12 +5112,10 @@ static void rtl_set_irq_mask(struct rtl8
  	tp->irq_mask = RxOK | RxErr | TxOK | TxErr | LinkChg;
  
  	if (tp->mac_version <= RTL_GIGA_MAC_VER_06)
diff --git a/target/linux/generic/backport-6.6/780-22-v6.12-r8169-add-support-for-RTL8126A-rev.b.patch b/target/linux/generic/backport-6.6/780-22-v6.12-r8169-add-support-for-RTL8126A-rev.b.patch
index dd90fc1a65..a825627e74 100644
--- a/target/linux/generic/backport-6.6/780-22-v6.12-r8169-add-support-for-RTL8126A-rev.b.patch
+++ b/target/linux/generic/backport-6.6/780-22-v6.12-r8169-add-support-for-RTL8126A-rev.b.patch
@@ -224,7 +224,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		padto = max_t(unsigned int, padto, ETH_ZLEN);
  		break;
  	default:
-@@ -5286,7 +5298,7 @@ static void rtl_hw_initialize(struct rtl
+@@ -5288,7 +5300,7 @@ static void rtl_hw_initialize(struct rtl
  	case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_48:
  		rtl_hw_init_8168g(tp);
  		break;
diff --git a/target/linux/generic/backport-6.6/780-24-v6.12-r8169-avoid-unsolicited-interrupts.patch b/target/linux/generic/backport-6.6/780-24-v6.12-r8169-avoid-unsolicited-interrupts.patch
deleted file mode 100644
index 8332a285f9..0000000000
--- a/target/linux/generic/backport-6.6/780-24-v6.12-r8169-avoid-unsolicited-interrupts.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 10ce0db787004875f4dba068ea952207d1d8abeb Mon Sep 17 00:00:00 2001
-From: Heiner Kallweit <hkallweit1 at gmail.com>
-Date: Fri, 18 Oct 2024 11:08:16 +0200
-Subject: [PATCH] r8169: avoid unsolicited interrupts
-
-It was reported that after resume from suspend a PCI error is logged
-and connectivity is broken. Error message is:
-PCI error (cmd = 0x0407, status_errs = 0x0000)
-The message seems to be a red herring as none of the error bits is set,
-and the PCI command register value also is normal. Exception handling
-for a PCI error includes a chip reset what apparently brakes connectivity
-here. The interrupt status bit triggering the PCI error handling isn't
-actually used on PCIe chip versions, so it's not clear why this bit is
-set by the chip. Fix this by ignoring this bit on PCIe chip versions.
-
-Fixes: 0e4851502f84 ("r8169: merge with version 8.001.00 of Realtek's r8168 driver")
-Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219388
-Tested-by: Atlas Yu <atlas.yu at canonical.com>
-Signed-off-by: Heiner Kallweit <hkallweit1 at gmail.com>
-Reviewed-by: Simon Horman <horms at kernel.org>
-Link: https://patch.msgid.link/78e2f535-438f-4212-ad94-a77637ac6c9c at gmail.com
-Signed-off-by: Paolo Abeni <pabeni at redhat.com>
----
- drivers/net/ethernet/realtek/r8169_main.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
---- a/drivers/net/ethernet/realtek/r8169_main.c
-+++ b/drivers/net/ethernet/realtek/r8169_main.c
-@@ -4683,7 +4683,9 @@ static irqreturn_t rtl8169_interrupt(int
- 	if ((status & 0xffff) == 0xffff || !(status & tp->irq_mask))
- 		return IRQ_NONE;
- 
--	if (unlikely(status & SYSErr)) {
-+	/* At least RTL8168fp may unexpectedly set the SYSErr bit */
-+	if (unlikely(status & SYSErr &&
-+	    tp->mac_version <= RTL_GIGA_MAC_VER_06)) {
- 		rtl8169_pcierr_interrupt(tp->dev);
- 		goto out;
- 	}
diff --git a/target/linux/generic/backport-6.6/901-v6.13-net-dsa-mv88e6xxx-Support-LED-control.patch b/target/linux/generic/backport-6.6/901-v6.13-net-dsa-mv88e6xxx-Support-LED-control.patch
index 8557fe2510..711246da61 100644
--- a/target/linux/generic/backport-6.6/901-v6.13-net-dsa-mv88e6xxx-Support-LED-control.patch
+++ b/target/linux/generic/backport-6.6/901-v6.13-net-dsa-mv88e6xxx-Support-LED-control.patch
@@ -217,7 +217,7 @@ Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
  #include <linux/ptp_clock_kernel.h>
  #include <linux/timecounter.h>
  #include <net/dsa.h>
-@@ -275,6 +277,7 @@ struct mv88e6xxx_vlan {
+@@ -276,6 +278,7 @@ struct mv88e6xxx_vlan {
  struct mv88e6xxx_port {
  	struct mv88e6xxx_chip *chip;
  	int port;
@@ -225,7 +225,7 @@ Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
  	struct mv88e6xxx_vlan bridge_pvid;
  	u64 serdes_stats[2];
  	u64 atu_member_violation;
-@@ -289,6 +292,11 @@ struct mv88e6xxx_port {
+@@ -290,6 +293,11 @@ struct mv88e6xxx_port {
  	struct devlink_region *region;
  	void *pcs_private;
  
@@ -237,7 +237,7 @@ Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
  	/* MacAuth Bypass control flag */
  	bool mab;
  };
-@@ -561,6 +569,9 @@ struct mv88e6xxx_ops {
+@@ -563,6 +571,9 @@ struct mv88e6xxx_ops {
  			      phy_interface_t mode);
  	int (*port_get_cmode)(struct mv88e6xxx_chip *chip, int port, u8 *cmode);
  
diff --git a/target/linux/rockchip/patches-6.6/034-v6.7-usb-dwc3-add-optional-PHY-interface-clocks.patch b/target/linux/rockchip/patches-6.6/034-v6.7-usb-dwc3-add-optional-PHY-interface-clocks.patch
index 3ae1c54ef2..0b9e47da3c 100644
--- a/target/linux/rockchip/patches-6.6/034-v6.7-usb-dwc3-add-optional-PHY-interface-clocks.patch
+++ b/target/linux/rockchip/patches-6.6/034-v6.7-usb-dwc3-add-optional-PHY-interface-clocks.patch
@@ -80,7 +80,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
   * @reset: reset control
   * @regs: base address for our registers
   * @regs_size: address space size
-@@ -1167,6 +1169,8 @@ struct dwc3 {
+@@ -1169,6 +1171,8 @@ struct dwc3 {
  	struct clk		*bus_clk;
  	struct clk		*ref_clk;
  	struct clk		*susp_clk;
diff --git a/target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch b/target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch
index 2554e73198..44c6fe6126 100644
--- a/target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch
+++ b/target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch
@@ -263,7 +263,7 @@ Signed-off-by: minda.chen <minda.chen at starfivetech.com>
  /**
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1764,6 +1764,13 @@ struct xhci_hub {
+@@ -1508,6 +1508,13 @@ struct xhci_hub {
  	u8			min_rev;
  };
  
@@ -277,7 +277,7 @@ Signed-off-by: minda.chen <minda.chen at starfivetech.com>
  /* There is one xhci_hcd structure per controller */
  struct xhci_hcd {
  	struct usb_hcd *main_hcd;
-@@ -1917,6 +1924,8 @@ struct xhci_hcd {
+@@ -1661,6 +1668,8 @@ struct xhci_hcd {
  #define XHCI_WRITE_64_HI_LO	BIT_ULL(47)
  #define XHCI_CDNS_SCTX_QUIRK	BIT_ULL(48)
  
@@ -286,7 +286,7 @@ Signed-off-by: minda.chen <minda.chen at starfivetech.com>
  	unsigned int		num_active_eps;
  	unsigned int		limit_active_eps;
  	struct xhci_port	*hw_ports;
-@@ -1946,6 +1955,8 @@ struct xhci_hcd {
+@@ -1690,6 +1699,8 @@ struct xhci_hcd {
  	struct list_head	regset_list;
  
  	void			*dbc;



From lede-commits at lists.infradead.org  Mon Nov  4 21:33:03 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 00:33:03 -0500
Subject: [buildbot]  Allow signing of artifacts with key provided by GPG agent
In-Reply-To: <173078478288.1798056.16621802552732519572@git-01.infra.openwrt.org>
References: <173078478288.1798056.16621802552732519572@git-01.infra.openwrt.org>
Message-ID: <mailman.152242.1730784786.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to buildbot.git, branch main:
https://git.openwrt.org/d014e424f4b440eb4be641e5e408699a63331901

commit d014e424f4b440eb4be641e5e408699a63331901
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Mon Nov 4 20:43:06 2024 +0000

    Allow signing of artifacts with key provided by GPG agent
    
    In our case the GPG agent serves 0x1D53D1877742E911 key stored on
    Nitrokey3 USB dongle. GPG key is bind mounted from the host.
    
    References: https://lists.openwrt.org/pipermail/openwrt-devel/2023-May/041044.html
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 docker/buildmaster/Dockerfile     |  6 ++++++
 docker/buildmaster/files/entry.sh |  7 ++++++-
 scripts/signall.sh                | 15 ++++++++++++++-
 3 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/docker/buildmaster/Dockerfile b/docker/buildmaster/Dockerfile
index b73335f..b384245 100644
--- a/docker/buildmaster/Dockerfile
+++ b/docker/buildmaster/Dockerfile
@@ -95,6 +95,12 @@ RUN \
     chown buildbot:buildbot /master && \
     chmod 0755 /entry.sh /start.sh
 
+RUN \
+	mkdir -p /home/buildbot && \
+	chmod u=rwx,go= /home/buildbot && \
+	chown --recursive buildbot:buildbot /home/buildbot && \
+	gosu buildbot sh -c "gpg --homedir /home/buildbot/.gnupg --recv-keys 0x1D53D1877742E911"
+
 VOLUME [ "/master" ]
 ENTRYPOINT [ "/entry.sh" ]
 CMD [ "start" ]
diff --git a/docker/buildmaster/files/entry.sh b/docker/buildmaster/files/entry.sh
index 2fc914c..05ae25f 100644
--- a/docker/buildmaster/files/entry.sh
+++ b/docker/buildmaster/files/entry.sh
@@ -1,10 +1,15 @@
 #!/usr/bin/env bash
 
-for dir in /master /config /certs; do
+for dir in /master /config /certs /home/buildbot; do
   [ -d "$dir" ] || continue 
 
   chown --recursive buildbot:buildbot "$dir"
   chmod 0700 "$dir"
 done
 
+if [ -S "/home/buildbot/.gnupg/S.gpg-agent" ]; then
+	chown buildbot:buildbot /home/buildbot/.gnupg/S.gpg-agent
+	chmod 0600 /home/buildbot/.gnupg/S.gpg-agent
+fi
+
 /usr/sbin/gosu buildbot /start.sh "$@"
diff --git a/scripts/signall.sh b/scripts/signall.sh
index 325872f..6be0ef1 100755
--- a/scripts/signall.sh
+++ b/scripts/signall.sh
@@ -53,6 +53,7 @@ esac
 
 if [ -z "$branch" ]; then
 GPGKEY="$(iniget "${CONFIG_INI:-config.ini}" gpg key)"
+GPGKEYID="$(iniget "${CONFIG_INI:-config.ini}" gpg keyid)"
 GPGPASS="$(iniget "${CONFIG_INI:-config.ini}" gpg passphrase)"
 GPGCOMMENT="$(iniget "${CONFIG_INI:-config.ini}" gpg comment)"
 
@@ -62,6 +63,7 @@ USIGNCOMMENT="$(iniget "${CONFIG_INI:-config.ini}" usign comment)"
 APKSIGNKEY="$(iniget "${CONFIG_INI:-config.ini}" apk key)"
 else
 GPGKEY="$(iniget "${CONFIG_INI:-config.ini}" "branch $branch" "gpg_key")"
+GPGKEYID="$(iniget "${CONFIG_INI:-config.ini}" "branch $branch" "gpg_keyid")"
 GPGPASS="$(iniget "${CONFIG_INI:-config.ini}" "branch $branch" "gpg_passphrase")"
 GPGCOMMENT="$(iniget "${CONFIG_INI:-config.ini}" "branch $branch" "gpg_comment")"
 
@@ -99,7 +101,7 @@ if [ -n "$APKSIGNKEY" ]; then
 	done
 fi
 
-if echo "$GPGKEY" | grep -q "BEGIN PGP PRIVATE KEY BLOCK"; then
+if echo "$GPGKEY" | grep -q "BEGIN PGP PRIVATE KEY BLOCK" && [ -z "$GPGKEYID" ]; then
 	umask 077
 	echo "$GPGPASS" > "$tmpdir/gpg.pass"
 	echo "$GPGKEY" | gpg --batch --homedir "$tmpdir/gpg" \
@@ -117,6 +119,17 @@ if echo "$GPGKEY" | grep -q "BEGIN PGP PRIVATE KEY BLOCK"; then
 			-o "{}.asc" "{}" \; || finish 4
 fi
 
+if [ -n "$GPGKEYID" ]; then
+	find "$tmpdir/tar/" -type f -not -name "*.asc" -and -not -name "*.sig" -print0 | while IFS= read -r -d '' file; do
+		if ! gpg --no-version --batch --detach-sign --armor \
+			--local-user "${GPGKEYID}" \
+			${GPGCOMMENT:+--comment="$GPGCOMMENT"} \
+			--homedir /home/buildbot/.gnupg "${file}.asc" "$file"; then
+			finish 4
+		fi
+	done
+fi
+
 if [ -n "$USIGNKEY" ]; then
 	USIGNID="$(echo "$USIGNKEY" | base64 -d -i | dd bs=1 skip=32 count=8 2>/dev/null | od -v -t x1 | sed -rne 's/^0+ //p' | tr -d ' ')"
 



From lede-commits at lists.infradead.org  Mon Nov  4 21:33:02 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 00:33:02 -0500
Subject: [buildbot]  scripts: signall: silence pushd/popd directory changes
In-Reply-To: <173078478288.1798056.16621802552732519572@git-01.infra.openwrt.org>
References: <173078478288.1798056.16621802552732519572@git-01.infra.openwrt.org>
Message-ID: <mailman.152243.1730784786.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to buildbot.git, branch main:
https://git.openwrt.org/7a869ad9c968c98a52ba4dcb20a693978f19ad99

commit 7a869ad9c968c98a52ba4dcb20a693978f19ad99
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Mon Nov 4 20:35:37 2024 +0000

    scripts: signall: silence pushd/popd directory changes
    
    Its not needed to have those visible in the job output as it might be
    misleading.
    
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 scripts/signall.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/scripts/signall.sh b/scripts/signall.sh
index 7b22386..325872f 100755
--- a/scripts/signall.sh
+++ b/scripts/signall.sh
@@ -84,7 +84,7 @@ if [ -n "$APKSIGNKEY" ]; then
 
 	find "$tmpdir/tar/" -type f -name sha256sums | while read -r file; do
 		dir=$(dirname "$file")
-		pushd "$dir" || finish 3
+		pushd "$dir" > /dev/null || finish 3
 
 		grep 'packages\.adb' sha256sums | while IFS= read -r line; do
 			filename="${line#*' *'}"
@@ -95,7 +95,7 @@ if [ -n "$APKSIGNKEY" ]; then
 			sed -i "s#.*[[:space:]]\*$escaped_filename\$#$new_checksum_line#" sha256sums
 		done
 
-		popd || finish 3
+		popd > /dev/null || finish 3
 	done
 fi
 



From lede-commits at lists.infradead.org  Tue Nov  5 00:31:26 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 03:31:26 -0500
Subject: [openwrt/openwrt]  kernel: r8126: update to v10.014.01
In-Reply-To: <173079548656.2043345.15392156534475625891@git-01.infra.openwrt.org>
References: <173079548656.2043345.15392156534475625891@git-01.infra.openwrt.org>
Message-ID: <mailman.152347.1730796083.1280.lede-commits@lists.infradead.org>

noltari pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/562b2c22fff363f060e72c9018d243981b7d6447

commit 562b2c22fff363f060e72c9018d243981b7d6447
Author: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
AuthorDate: Tue Nov 5 00:33:02 2024 +0100

    kernel: r8126: update to v10.014.01
    
    Changelog: https://github.com/openwrt/rtl8126/compare/10.013.00...10.014.01
    
    Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
---
 package/kernel/r8126/Makefile                      |  6 ++---
 .../r8126/patches/001-r8126.h-use-BIT_ULL.patch    | 21 -----------------
 .../patches/100-r8126_rss-silence-rxnfc-log.patch  | 27 ----------------------
 ...00-r8126-print-link-speed-and-duplex-mode.patch | 10 ++++----
 4 files changed, 8 insertions(+), 56 deletions(-)

diff --git a/package/kernel/r8126/Makefile b/package/kernel/r8126/Makefile
index c269cdcadc..a8f60f9dbb 100644
--- a/package/kernel/r8126/Makefile
+++ b/package/kernel/r8126/Makefile
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=r8126
-PKG_VERSION:=10.013.00
-PKG_RELEASE:=4
+PKG_VERSION:=10.014.01
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://github.com/openwrt/rtl8126/releases/download/$(PKG_VERSION)
-PKG_HASH:=b41bda6ff3bbb7d9bc5b81c5c21355f031587d3a3a5862abcd4d766e942272e7
+PKG_HASH:=dbb10a7abd0972e4abd1b89ea4eb22fc55d6c1dc2f711b5acf4a3bc376275e21
 
 PKG_BUILD_PARALLEL:=1
 PKG_LICENSE:=GPLv2
diff --git a/package/kernel/r8126/patches/001-r8126.h-use-BIT_ULL.patch b/package/kernel/r8126/patches/001-r8126.h-use-BIT_ULL.patch
deleted file mode 100644
index cfbf31fcbb..0000000000
--- a/package/kernel/r8126/patches/001-r8126.h-use-BIT_ULL.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 9649df50a239d1379cc8d9febd4854a0c7ca0731 Mon Sep 17 00:00:00 2001
-From: Mieczyslaw Nalewaj <namiltd at poczta.onet.pl>
-Date: Sat, 10 Aug 2024 17:42:44 +0200
-Subject: [PATCH] r8126.h: use BIT_ULL
-
-Fixes compilation on 32 bit systems.
----
- src/r8126.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/src/r8126.h
-+++ b/src/r8126.h
-@@ -678,7 +678,7 @@ This is free software, and you are welco
- #ifndef ADVERTISED_2500baseX_Full
- #define ADVERTISED_2500baseX_Full  0x8000
- #endif
--#define RTK_ADVERTISED_5000baseX_Full  BIT(48)
-+#define RTK_ADVERTISED_5000baseX_Full  BIT_ULL(48)
- 
- #define RTK_ADVERTISE_2500FULL  0x80
- #define RTK_ADVERTISE_5000FULL  0x100
diff --git a/package/kernel/r8126/patches/100-r8126_rss-silence-rxnfc-log.patch b/package/kernel/r8126/patches/100-r8126_rss-silence-rxnfc-log.patch
deleted file mode 100644
index d06406004c..0000000000
--- a/package/kernel/r8126/patches/100-r8126_rss-silence-rxnfc-log.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From cd20cf48c0ec2a01fd9f512e25218a6ac8131794 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari at gmail.com>
-Date: Sat, 17 Aug 2024 22:07:23 +0200
-Subject: [PATCH] r8126_rss: silence rxnfc log
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This log is noisy and useless, just ignore it.
-
-Signed-off-by: Chukun Pan <amadeus at jmu.edu.cn>
-Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
----
- src/r8126_rss.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/src/r8126_rss.c
-+++ b/src/r8126_rss.c
-@@ -91,7 +91,7 @@ int rtl8126_get_rxnfc(struct net_device
-         struct rtl8126_private *tp = netdev_priv(dev);
-         int ret = -EOPNOTSUPP;
- 
--        netif_info(tp, drv, tp->dev, "rss get rxnfc\n");
-+        netif_dbg(tp, drv, tp->dev, "rss get rxnfc\n");
- 
-         if (!(dev->features & NETIF_F_RXHASH))
-                 return ret;
diff --git a/package/kernel/r8126/patches/200-r8126-print-link-speed-and-duplex-mode.patch b/package/kernel/r8126/patches/200-r8126-print-link-speed-and-duplex-mode.patch
index 308d2494b3..27b3d626c1 100644
--- a/package/kernel/r8126/patches/200-r8126-print-link-speed-and-duplex-mode.patch
+++ b/package/kernel/r8126/patches/200-r8126-print-link-speed-and-duplex-mode.patch
@@ -18,7 +18,7 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
 
 --- a/src/r8126.h
 +++ b/src/r8126.h
-@@ -1561,6 +1561,8 @@ enum RTL8126_register_content {
+@@ -1740,6 +1740,8 @@ enum RTL8126_register_content {
          LinkStatus = 0x02,
          FullDup = 0x01,
  
@@ -37,7 +37,7 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
  #include <linux/netdevice.h>
  #include <linux/etherdevice.h>
  #include <linux/delay.h>
-@@ -4740,6 +4741,40 @@ rtl8126_link_down_patch(struct net_devic
+@@ -4744,6 +4745,40 @@ rtl8126_link_down_patch(struct net_devic
  #endif
  }
  
@@ -76,10 +76,10 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
 +}
 +
  static void
- _rtl8126_check_link_status(struct net_device *dev)
+ _rtl8126_check_link_status(struct net_device *dev, unsigned int link_state)
  {
-@@ -4748,11 +4783,18 @@ _rtl8126_check_link_status(struct net_de
-         if (tp->link_ok(dev)) {
+@@ -4756,11 +4791,18 @@ _rtl8126_check_link_status(struct net_de
+         if (link_state == R8126_LINK_STATE_ON) {
                  rtl8126_link_on_patch(dev);
  
 -                if (netif_msg_ifup(tp))



From lede-commits at lists.infradead.org  Tue Nov  5 00:59:58 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 03:59:58 -0500
Subject: [openwrt/openwrt]  packages: drop DEVICE specific dependency for
 omnia
In-Reply-To: <173079719839.2117132.18006384469555685914@git-01.infra.openwrt.org>
References: <173079719839.2117132.18006384469555685914@git-01.infra.openwrt.org>
Message-ID: <mailman.152360.1730797264.1280.lede-commits@lists.infradead.org>

aparcar pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/f35a29d63f445d784f1e266eaa6d3825a249cd6c

commit f35a29d63f445d784f1e266eaa6d3825a249cd6c
Author: Paul Spooren <mail at aparcar.org>
AuthorDate: Mon Nov 4 22:34:52 2024 +0100

    packages: drop DEVICE specific dependency for omnia
    
    Both packages `ombnia-mcu-firmware` and `omnia-mcutool` would depend on
    a specific device. The buildbots however build all devices and therefore
    the package isn't build at all, due to unmet dependencies.
    
    While this didn't cause issues with OPKG, APK fails actively due to the
    missing packages. Drop the specific dependency, however wants to install
    unrelated firmware on any device can do that anyway.
    
    Signed-off-by: Paul Spooren <mail at aparcar.org>
---
 package/firmware/omnia-mcu-firmware/Makefile | 1 -
 package/utils/omnia-mcutool/Makefile         | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/package/firmware/omnia-mcu-firmware/Makefile b/package/firmware/omnia-mcu-firmware/Makefile
index 6f7bd6ca70..9c1c8fbe6c 100644
--- a/package/firmware/omnia-mcu-firmware/Makefile
+++ b/package/firmware/omnia-mcu-firmware/Makefile
@@ -29,7 +29,6 @@ define Package/omnia-mcu-firmware
   CATEGORY:=Firmware
   URL:=https://gitlab.nic.cz/turris/hw/$(PKG_DISTNAME)/-/releases
   TITLE:=CZ.NIC Turris Omnia MCU firmware
-  DEPENDS:=@TARGET_mvebu_cortexa9_DEVICE_cznic_turris-omnia
 endef
 
 define Package/omnia-mcu-firmware/description
diff --git a/package/utils/omnia-mcutool/Makefile b/package/utils/omnia-mcutool/Makefile
index 2eca0cf190..66f8ffc6d4 100644
--- a/package/utils/omnia-mcutool/Makefile
+++ b/package/utils/omnia-mcutool/Makefile
@@ -27,7 +27,7 @@ define Package/omnia-mcutool
   CATEGORY:=Utilities
   URL:=https://gitlab.nic.cz/turris/$(PKG_NAME)
   TITLE:=CZ.NIC Turris Omnia MCU utility
-  DEPENDS:=+libopenssl +omnia-mcu-firmware @TARGET_mvebu_cortexa9_DEVICE_cznic_turris-omnia
+  DEPENDS:=+libopenssl +omnia-mcu-firmware
 endef
 
 define Package/omnia-mcutool/description



From lede-commits at lists.infradead.org  Tue Nov  5 01:20:34 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 04:20:34 -0500
Subject: [openwrt/openwrt]  mediatek: set mac increment to 7 for the 5G radio
 on OpenWrt One
In-Reply-To: <173079843475.2146779.6388210555701031199@git-01.infra.openwrt.org>
References: <173079843475.2146779.6388210555701031199@git-01.infra.openwrt.org>
Message-ID: <mailman.152385.1730798595.1280.lede-commits@lists.infradead.org>

blogic pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/6ec1477b4d8b1a7bcc3981c0584785d641c8facb

commit 6ec1477b4d8b1a7bcc3981c0584785d641c8facb
Author: John Crispin <john at phrozen.org>
AuthorDate: Sun Sep 22 09:07:58 2024 +0200

    mediatek: set mac increment to 7 for the 5G radio on OpenWrt One
    
    Mass production units will get 16 assigned MAC addresses. This allows each phy
    to spawn up to 7 VAPs which will each have unique MAC without needing the
    private bit.
    
    Signed-off-by: John Crispin <john at phrozen.org>
---
 target/linux/mediatek/dts/mt7981b-openwrt-one.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/linux/mediatek/dts/mt7981b-openwrt-one.dts b/target/linux/mediatek/dts/mt7981b-openwrt-one.dts
index 46d351f76d..584b482179 100644
--- a/target/linux/mediatek/dts/mt7981b-openwrt-one.dts
+++ b/target/linux/mediatek/dts/mt7981b-openwrt-one.dts
@@ -450,7 +450,7 @@
 
 	band at 1 {
 		reg = <1>;
-		nvmem-cells = <&macaddr_factory_4 1>;
+		nvmem-cells = <&macaddr_factory_4 7>;
 		nvmem-cell-names = "mac-address";
 	};
 };



From lede-commits at lists.infradead.org  Tue Nov  5 01:20:35 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 04:20:35 -0500
Subject: [openwrt/openwrt]  mediatek: set 7 MACs per wifi band in board.json
 on OpenWrt One
In-Reply-To: <173079843475.2146779.6388210555701031199@git-01.infra.openwrt.org>
References: <173079843475.2146779.6388210555701031199@git-01.infra.openwrt.org>
Message-ID: <mailman.152388.1730798595.1280.lede-commits@lists.infradead.org>

blogic pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/48028cd102cb709cc2d9a06cb45b53b7c2335a69

commit 48028cd102cb709cc2d9a06cb45b53b7c2335a69
Author: John Crispin <john at phrozen.org>
AuthorDate: Tue Nov 5 09:43:38 2024 +0100

    mediatek: set 7 MACs per wifi band in board.json on OpenWrt One
    
    Mass production units will get 16 assigned MAC addresses. This allows each phy
    to spawn up to 7 VAPs which will each have unique MAC without needing the
    private bit.
    
    Signed-off-by: John Crispin <john at phrozen.org>
---
 .../mediatek/filogic/base-files/etc/board.d/04_defaults  | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/04_defaults b/target/linux/mediatek/filogic/base-files/etc/board.d/04_defaults
new file mode 100644
index 0000000000..4d4131ec90
--- /dev/null
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/04_defaults
@@ -0,0 +1,16 @@
+. /lib/functions/uci-defaults.sh
+
+board=$(board_name)
+
+board_config_update
+
+case $board in
+openwrt,one)
+	ucidef_set_wireless_mac_count 2g 7
+	ucidef_set_wireless_mac_count 5g 7
+	;;
+esac
+
+board_config_flush
+
+exit 0



From lede-commits at lists.infradead.org  Tue Nov  5 01:58:41 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 04:58:41 -0500
Subject: [openwrt/openwrt]  nu801: Mark as nonshared to build in step 1
In-Reply-To: <173080072133.2219081.5843610787692879422@git-01.infra.openwrt.org>
References: <173080072133.2219081.5843610787692879422@git-01.infra.openwrt.org>
Message-ID: <mailman.152425.1730800825.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/4ec95518de3cf29d85136721921355f4cd2f9b35

commit 4ec95518de3cf29d85136721921355f4cd2f9b35
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Mon Nov 4 18:20:06 2024 +0100

    nu801: Mark as nonshared to build in step 1
    
    Mark the package as nonshared to build it in the target specific build
    step 1 of the build bots instead of the architecture generic build step 2.
    
    In the build step 2 it may be left out if we build it using a different
    target.
    
    Fixes: #16857
    Link: https://github.com/openwrt/openwrt/pull/16859
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/system/gpio-cdev/nu801/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/system/gpio-cdev/nu801/Makefile b/package/system/gpio-cdev/nu801/Makefile
index 82c04ccb41..7724cd808b 100644
--- a/package/system/gpio-cdev/nu801/Makefile
+++ b/package/system/gpio-cdev/nu801/Makefile
@@ -3,6 +3,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nu801
+PKG_FLAGS:=nonshared
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git



From lede-commits at lists.infradead.org  Tue Nov  5 01:59:07 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 04:59:07 -0500
Subject: [openwrt/openwrt]  nu801: Mark as nonshared to build in step 1
In-Reply-To: <173080074780.2219676.3776692427783028084@git-01.infra.openwrt.org>
References: <173080074780.2219676.3776692427783028084@git-01.infra.openwrt.org>
Message-ID: <mailman.152428.1730800935.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/1a75174b9bcfc183995730c38f30f271d053724f

commit 1a75174b9bcfc183995730c38f30f271d053724f
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Mon Nov 4 18:20:06 2024 +0100

    nu801: Mark as nonshared to build in step 1
    
    Mark the package as nonshared to build it in the target specific build
    step 1 of the build bots instead of the architecture generic build step 2.
    
    In the build step 2 it may be left out if we build it using a different
    target.
    
    Fixes: #16857
    Link: https://github.com/openwrt/openwrt/pull/16859
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/system/gpio-cdev/nu801/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/system/gpio-cdev/nu801/Makefile b/package/system/gpio-cdev/nu801/Makefile
index 67b2a771ec..0eb9afac26 100644
--- a/package/system/gpio-cdev/nu801/Makefile
+++ b/package/system/gpio-cdev/nu801/Makefile
@@ -3,6 +3,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nu801
+PKG_FLAGS:=nonshared
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git



From lede-commits at lists.infradead.org  Tue Nov  5 02:22:13 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 05:22:13 -0500
Subject: [openwrt/openwrt]  build: set PATH for post-install scripts
In-Reply-To: <173080213366.2251102.8737575715766494109@git-01.infra.openwrt.org>
References: <173080213366.2251102.8737575715766494109@git-01.infra.openwrt.org>
Message-ID: <mailman.152443.1730802258.1280.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/21b5ac862eed7ac373361c914cf6098cab04f503

commit 21b5ac862eed7ac373361c914cf6098cab04f503
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Tue Nov 5 03:05:31 2024 +0000

    build: set PATH for post-install scripts
    
    post-install scripts may need to call executables installed to
    STAGING_DIR_HOSTPKG which is not part of the PATH set to TARGET_PATH in
    rules.mk.
    Set PATH for post-install scripts to TARGET_PATH_PKG.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
    Link: https://github.com/openwrt/openwrt/pull/16865
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 include/rootfs.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/rootfs.mk b/include/rootfs.mk
index e6cadc531d..ff7fd185fe 100644
--- a/include/rootfs.mk
+++ b/include/rootfs.mk
@@ -84,7 +84,7 @@ define prepare_rootfs
 			IPKG_POSTINST_PATH=./usr/lib/opkg/info/*.postinst; \
 		fi; \
 		for script in $$IPKG_POSTINST_PATH; do \
-			IPKG_INSTROOT=$(1) $$(command -v bash) $$script; \
+			PATH="$(TARGET_PATH_PKG)" IPKG_INSTROOT=$(1) $$(command -v bash) $$script; \
 			ret=$$?; \
 			if [ $$ret -ne 0 ]; then \
 				echo "postinst script $$script has failed with exit code $$ret" >&2; \



From lede-commits at lists.infradead.org  Tue Nov  5 04:31:04 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 07:31:04 -0500
Subject: [openwrt/openwrt]  mediatek: set mac increment to 7 for the 5G radio
 on OpenWrt One
In-Reply-To: <173080985697.2458296.14571061443882024448@git-01.infra.openwrt.org>
References: <173080985697.2458296.14571061443882024448@git-01.infra.openwrt.org>
Message-ID: <mailman.152482.1730809861.1280.lede-commits@lists.infradead.org>

blogic pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/895f30e31ade4a0e130e59272ec8bc88ed5da415

commit 895f30e31ade4a0e130e59272ec8bc88ed5da415
Author: John Crispin <john at phrozen.org>
AuthorDate: Sun Sep 22 09:07:58 2024 +0200

    mediatek: set mac increment to 7 for the 5G radio on OpenWrt One
    
    Mass production units will get 16 assigned MAC addresses. This allows each phy
    to spawn up to 7 VAPs which will each have unique MAC without needing the
    private bit.
    
    Signed-off-by: John Crispin <john at phrozen.org>
---
 target/linux/mediatek/dts/mt7981b-openwrt-one.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/linux/mediatek/dts/mt7981b-openwrt-one.dts b/target/linux/mediatek/dts/mt7981b-openwrt-one.dts
index 46d351f76d..584b482179 100644
--- a/target/linux/mediatek/dts/mt7981b-openwrt-one.dts
+++ b/target/linux/mediatek/dts/mt7981b-openwrt-one.dts
@@ -450,7 +450,7 @@
 
 	band at 1 {
 		reg = <1>;
-		nvmem-cells = <&macaddr_factory_4 1>;
+		nvmem-cells = <&macaddr_factory_4 7>;
 		nvmem-cell-names = "mac-address";
 	};
 };



From lede-commits at lists.infradead.org  Tue Nov  5 04:31:03 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 07:31:03 -0500
Subject: [openwrt/openwrt]  mediatek: refresh patches
In-Reply-To: <173080985697.2458296.14571061443882024448@git-01.infra.openwrt.org>
References: <173080985697.2458296.14571061443882024448@git-01.infra.openwrt.org>
Message-ID: <mailman.152483.1730809861.1280.lede-commits@lists.infradead.org>

blogic pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/5b7357e0a10de581f5adb8984aa527f448966d98

commit 5b7357e0a10de581f5adb8984aa527f448966d98
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Sun Nov 3 02:38:17 2024 +0000

    mediatek: refresh patches
    
    The mediatek target requires refreshing after recent additions.
    
    Fixes: cfe8e6e75f ("mediatek: add support for Realtek RTL8261n 10G PHYs")
    Fixes: ddfae94a14 ("mediatek: add support for swapping the polarity on usxgmii interfaces")
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 .../linux/mediatek/patches-6.6/735-net-phy-realtek-rtl8261n.patch | 6 +++---
 .../736-net-pcs-mtk_usxgmii-add-polarity-control.patch            | 8 +++-----
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/target/linux/mediatek/patches-6.6/735-net-phy-realtek-rtl8261n.patch b/target/linux/mediatek/patches-6.6/735-net-phy-realtek-rtl8261n.patch
index 3612b521e1..40771202c5 100644
--- a/target/linux/mediatek/patches-6.6/735-net-phy-realtek-rtl8261n.patch
+++ b/target/linux/mediatek/patches-6.6/735-net-phy-realtek-rtl8261n.patch
@@ -1,6 +1,6 @@
 --- a/drivers/net/phy/Kconfig
 +++ b/drivers/net/phy/Kconfig
-@@ -334,6 +334,8 @@ config REALTEK_PHY
+@@ -399,6 +399,8 @@ config REALTEK_PHY
  	help
  	  Supports the Realtek 821x PHY.
  
@@ -11,11 +11,11 @@
  	help
 --- a/drivers/net/phy/Makefile
 +++ b/drivers/net/phy/Makefile
-@@ -85,6 +85,7 @@ obj-$(CONFIG_ADIN_PHY)		+= adin.o
+@@ -100,6 +100,7 @@ obj-$(CONFIG_NXP_TJA11XX_PHY)	+= nxp-tja
  obj-y				+= qcom/
  obj-$(CONFIG_QSEMI_PHY)		+= qsemi.o
  obj-$(CONFIG_REALTEK_PHY)	+= realtek.o
 +obj-y				+= rtl8261n/
  obj-$(CONFIG_RENESAS_PHY)	+= uPD60620.o
  obj-$(CONFIG_ROCKCHIP_PHY)	+= rockchip.o
- obj-$(CONFIG_SMSC_PHY)		+= smsc.o
+ obj-$(CONFIG_RTL8367S_GSW)	+= rtk/
diff --git a/target/linux/mediatek/patches-6.6/736-net-pcs-mtk_usxgmii-add-polarity-control.patch b/target/linux/mediatek/patches-6.6/736-net-pcs-mtk_usxgmii-add-polarity-control.patch
index 678761990b..68ee609aac 100644
--- a/target/linux/mediatek/patches-6.6/736-net-pcs-mtk_usxgmii-add-polarity-control.patch
+++ b/target/linux/mediatek/patches-6.6/736-net-pcs-mtk_usxgmii-add-polarity-control.patch
@@ -1,5 +1,3 @@
-diff --git a/drivers/net/pcs/pcs-mtk-usxgmii.c b/drivers/net/pcs/pcs-mtk-usxgmii.c
-index 9af9035..9caab92 100644
 --- a/drivers/net/pcs/pcs-mtk-usxgmii.c
 +++ b/drivers/net/pcs/pcs-mtk-usxgmii.c
 @@ -52,6 +52,12 @@
@@ -23,7 +21,7 @@ index 9af9035..9caab92 100644
  	unsigned int			neg_mode;
  	struct list_head		node;
  };
-@@ -155,6 +162,10 @@ static int mtk_usxgmii_pcs_config(struct phylink_pcs *pcs, unsigned int neg_mode
+@@ -155,6 +162,10 @@ static int mtk_usxgmii_pcs_config(struct
  
  	mtk_usxgmii_reset(mpcs);
  
@@ -34,7 +32,7 @@ index 9af9035..9caab92 100644
  	/* Setup USXGMII AN ctrl */
  	mtk_m32(mpcs, RG_PCS_AN_CTRL0,
  		USXGMII_AN_SYNC_CNT | USXGMII_AN_ENABLE,
-@@ -332,6 +343,7 @@ static const struct phylink_pcs_ops mtk_usxgmii_pcs_ops = {
+@@ -332,6 +343,7 @@ static const struct phylink_pcs_ops mtk_
  static int mtk_usxgmii_probe(struct platform_device *pdev)
  {
  	struct device *dev = &pdev->dev;
@@ -42,7 +40,7 @@ index 9af9035..9caab92 100644
  	struct mtk_usxgmii_pcs *mpcs;
  
  	mpcs = devm_kzalloc(dev, sizeof(*mpcs), GFP_KERNEL);
-@@ -342,6 +354,13 @@ static int mtk_usxgmii_probe(struct platform_device *pdev)
+@@ -342,6 +354,13 @@ static int mtk_usxgmii_probe(struct plat
  	if (IS_ERR(mpcs->base))
  		return PTR_ERR(mpcs->base);
  



From lede-commits at lists.infradead.org  Tue Nov  5 04:30:58 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 07:30:58 -0500
Subject: [openwrt/openwrt]  mediatek: add support for swapping the polarity on
 usxgmii interfaces
In-Reply-To: <173080985697.2458296.14571061443882024448@git-01.infra.openwrt.org>
References: <173080985697.2458296.14571061443882024448@git-01.infra.openwrt.org>
Message-ID: <mailman.152486.1730809863.1280.lede-commits@lists.infradead.org>

blogic pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/ab5c090077df21afa6046aee50678862814e22e0

commit ab5c090077df21afa6046aee50678862814e22e0
Author: John Crispin <john at phrozen.org>
AuthorDate: Tue Oct 29 13:40:11 2024 +0100

    mediatek: add support for swapping the polarity on usxgmii interfaces
    
    This patch comes from the MTK SDK.
    
    Signed-off-by: John Crispin <john at phrozen.org>
---
 ...-net-pcs-mtk_usxgmii-add-polarity-control.patch | 58 ++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/target/linux/mediatek/patches-6.6/736-net-pcs-mtk_usxgmii-add-polarity-control.patch b/target/linux/mediatek/patches-6.6/736-net-pcs-mtk_usxgmii-add-polarity-control.patch
new file mode 100644
index 0000000000..678761990b
--- /dev/null
+++ b/target/linux/mediatek/patches-6.6/736-net-pcs-mtk_usxgmii-add-polarity-control.patch
@@ -0,0 +1,58 @@
+diff --git a/drivers/net/pcs/pcs-mtk-usxgmii.c b/drivers/net/pcs/pcs-mtk-usxgmii.c
+index 9af9035..9caab92 100644
+--- a/drivers/net/pcs/pcs-mtk-usxgmii.c
++++ b/drivers/net/pcs/pcs-mtk-usxgmii.c
+@@ -52,6 +52,12 @@
+ #define USXGMII_LPA				GENMASK(15, 0)
+ #define USXGMII_LPA_LATCH			BIT(31)
+ 
++/* Register to control PCS polarity */
++#define RG_PHY_TOP_CTRL0			0x82C
++#define USXGMII_PN_SWAP_MASK			GENMASK(1, 0)
++#define USXGMII_PN_SWAP_RX			BIT(1)
++#define USXGMII_PN_SWAP_TX			BIT(0)
++
+ /* Register to read PCS link status */
+ #define RG_PCS_RX_STATUS0			0x904
+ #define RG_PCS_RX_STATUS_UPDATE			BIT(16)
+@@ -74,6 +80,7 @@ struct mtk_usxgmii_pcs {
+ 	struct clk			*clk;
+ 	struct reset_control		*reset;
+ 	phy_interface_t			interface;
++	unsigned int			polarity;
+ 	unsigned int			neg_mode;
+ 	struct list_head		node;
+ };
+@@ -155,6 +162,10 @@ static int mtk_usxgmii_pcs_config(struct phylink_pcs *pcs, unsigned int neg_mode
+ 
+ 	mtk_usxgmii_reset(mpcs);
+ 
++	/* Configure the interface polarity */
++	mtk_m32(mpcs, RG_PHY_TOP_CTRL0,
++		USXGMII_PN_SWAP_MASK, mpcs->polarity);
++
+ 	/* Setup USXGMII AN ctrl */
+ 	mtk_m32(mpcs, RG_PCS_AN_CTRL0,
+ 		USXGMII_AN_SYNC_CNT | USXGMII_AN_ENABLE,
+@@ -332,6 +343,7 @@ static const struct phylink_pcs_ops mtk_usxgmii_pcs_ops = {
+ static int mtk_usxgmii_probe(struct platform_device *pdev)
+ {
+ 	struct device *dev = &pdev->dev;
++	struct device_node *np = dev->of_node;
+ 	struct mtk_usxgmii_pcs *mpcs;
+ 
+ 	mpcs = devm_kzalloc(dev, sizeof(*mpcs), GFP_KERNEL);
+@@ -342,6 +354,13 @@ static int mtk_usxgmii_probe(struct platform_device *pdev)
+ 	if (IS_ERR(mpcs->base))
+ 		return PTR_ERR(mpcs->base);
+ 
++	if (of_property_read_bool(np->parent, "mediatek,pnswap"))
++		mpcs->polarity = USXGMII_PN_SWAP_TX | USXGMII_PN_SWAP_RX;
++	else if (of_property_read_bool(np, "mediatek,pnswap-tx"))
++		mpcs->polarity = USXGMII_PN_SWAP_TX;
++	else if (of_property_read_bool(np, "mediatek,pnswap-rx"))
++		mpcs->polarity = USXGMII_PN_SWAP_RX;
++
+ 	mpcs->dev = dev;
+ 	mpcs->pcs.ops = &mtk_usxgmii_pcs_ops;
+ 	mpcs->pcs.poll = true;



From lede-commits at lists.infradead.org  Tue Nov  5 04:30:59 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 07:30:59 -0500
Subject: [openwrt/openwrt]  mediatek: filogic: add Arcadyan Mozart platform
In-Reply-To: <173080985697.2458296.14571061443882024448@git-01.infra.openwrt.org>
References: <173080985697.2458296.14571061443882024448@git-01.infra.openwrt.org>
Message-ID: <mailman.152487.1730809863.1280.lede-commits@lists.infradead.org>

blogic pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/f4b62a6b28193570d803b50fd47e48f09cbfefe8

commit f4b62a6b28193570d803b50fd47e48f09cbfefe8
Author: John Crispin <john at phrozen.org>
AuthorDate: Sat Sep 21 09:48:47 2024 +0200

    mediatek: filogic: add Arcadyan Mozart platform
    
    * Mediatek MT7988A (4x Cortex-A73, up to 1.8 GHz clock speed)
    * 8 GiB eMMC
    * 4 GiB DDR4 RAM
    * 2x 10000M + 1x 1000M  ports
    * MT7996 Tri-band (2.4G, 5G, 6G) 4T4R 802.11be Wi-Fi
    * 2 buttons (Reset, WPS)
    * 2x LED for each GMAC
    * USB-C PD power input
    
    Signed-off-by: John Crispin <john at phrozen.org>
---
 .../linux/mediatek/dts/mt7988a-arcadyan-mozart.dts | 336 +++++++++++++++++++++
 .../filogic/base-files/etc/board.d/02_network      |   3 +
 .../filogic/base-files/lib/upgrade/platform.sh     |   2 +
 target/linux/mediatek/image/filogic.mk             |  24 ++
 4 files changed, 365 insertions(+)

diff --git a/target/linux/mediatek/dts/mt7988a-arcadyan-mozart.dts b/target/linux/mediatek/dts/mt7988a-arcadyan-mozart.dts
new file mode 100644
index 0000000000..8b5f0526b2
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7988a-arcadyan-mozart.dts
@@ -0,0 +1,336 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+
+/dts-v1/;
+#include "mt7988a-rfb.dts"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+	compatible = "arcadyan,mozart", "mediatek,mt7988a";
+	model = "MediaTek / Arcadyan - Mozart";
+
+	aliases {
+		serial0 = &uart0;
+		led-boot = &led_status_blue;
+		led-failsafe = &led_status_red;
+		led-running = &led_status_green;
+		led-upgrade = &led_status_green;
+	};
+
+	chosen {
+		rootdisk = <&emmc_rootfs>;
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+
+		wifi_white {
+			color = <LED_COLOR_ID_WHITE>;
+			function = LED_FUNCTION_STATUS;
+			gpios = <&pio 68 GPIO_ACTIVE_HIGH>;
+		};
+
+		led_status_red: wifi_red {
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			gpios = <&pio 29 GPIO_ACTIVE_HIGH>;
+		};
+
+		led_status_green: wifi_green {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			gpios = <&pio 30 GPIO_ACTIVE_HIGH>;
+		};
+
+		led_status_blue: wifi_blue {
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			gpios = <&pio 31 GPIO_ACTIVE_HIGH>;
+		};
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		button-reset {
+			label = "reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&pio 13 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
+
+&pio {
+	mdio0_pins: mdio0-pins {
+		mux {
+			function = "eth";
+			groups = "mdc_mdio0";
+		};
+
+		conf {
+			groups = "mdc_mdio0";
+			drive-strength = <MTK_DRIVE_10mA>;
+		};
+	};
+
+	spic_pins: spi1-pins {
+		mux {
+			function = "spi";
+			groups = "spi1";
+		};
+	};
+};
+
+&usxgmiisys0 {
+	mediatek,pnswap-rx;
+};
+
+&usxgmiisys1 {
+	mediatek,pnswap-rx;
+};
+
+&mdio_bus {
+	#address-cells = <1>;
+	#size-cells = <0>;
+	reset-gpios = <&pio 72 GPIO_ACTIVE_LOW>;
+	reset-assert-us = <100000>;
+	reset-deassert-us = <100000>;
+
+	phy0: ethernet-phy at 0 {
+		reg = <0>;
+		compatible = "ethernet-phy-ieee802.3-c45";
+	};
+
+	phy8: ethernet-phy at 8 {
+		reg = <8>;
+		compatible = "ethernet-phy-ieee802.3-c45";
+	};
+};
+
+&gmac0 {
+	nvmem-cells = <&macaddr_factory_4 3>;
+	nvmem-cell-names = "mac-address";
+};
+
+&gmac1 {
+	phy-mode = "usxgmii";
+	phy-connection-type = "usxgmii";
+	phy = <&phy0>;
+	nvmem-cells = <&macaddr_factory_4 4>;
+	nvmem-cell-names = "mac-address";
+	status = "okay";
+};
+
+&gmac2 {
+	phy-mode = "usxgmii";
+	phy-connection-type = "usxgmii";
+	phy = <&phy8>;
+	nvmem-cells = <&macaddr_factory_4 5>;
+	nvmem-cell-names = "mac-address";
+	status = "okay";
+};
+
+&switch {
+	/delete-node/ports;
+
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		gsw_port0: port at 0 {
+			reg = <0>;
+			label = "lan0";
+			phy-mode = "internal";
+			phy-handle = <&gsw_phy0>;
+		};
+
+		port at 6 {
+			reg = <6>;
+			ethernet = <&gmac0>;
+			phy-mode = "internal";
+
+			fixed-link {
+				speed = <10000>;
+				full-duplex;
+				pause;
+			};
+		};
+	};
+};
+
+&i2c1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c1_pins>;
+	clock-frequency = <100000>;
+	status = "okay";
+
+	icp201xx at 63{
+		compatible = "invensense,icp201xx";
+		reg = <0x63>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+	};
+};
+
+&uart1 {
+	status = "okay";
+};
+
+&fan {
+	pwms = <&pwm 1 40000 0>;
+	status = "okay";
+};
+
+&pwm {
+	status = "okay";
+};
+
+&spi1 {
+	pinctrl-names = "default";
+	/* pin shared with snfi */
+	pinctrl-0 = <&spic_pins>;
+	status = "disabled";
+};
+
+&mmc0 {
+	pinctrl-names = "default", "state_uhs";
+	pinctrl-0 = <&mmc0_pins_emmc_51>;
+	pinctrl-1 = <&mmc0_pins_emmc_51>;
+	bus-width = <8>;
+	max-frequency = <200000000>;
+	cap-mmc-highspeed;
+	mmc-hs200-1_8v;
+	mmc-hs400-1_8v;
+	hs400-ds-delay = <0x12814>;
+	vqmmc-supply = <&reg_1p8v>;
+	vmmc-supply = <&reg_3p3v>;
+	non-removable;
+	no-sd;
+	no-sdio;
+	status = "okay";
+
+	card at 0 {
+		compatible = "mmc-card";
+		reg = <0>;
+
+		block {
+			compatible = "block-device";
+			partitions {
+				block-partition-env {
+					partname = "u-boot-env";
+					nvmem-layout {
+						compatible = "u-boot,env-layout";
+					};
+				};
+
+				emmc_rootfs: block-partition-production {
+					partname = "production";
+				};
+
+				block-partition-factory {
+					partname = "factory";
+
+					nvmem-layout {
+						compatible = "fixed-layout";
+						#address-cells = <1>;
+						#size-cells = <1>;
+
+						eeprom_factory_0: eeprom at 0 {
+							reg = <0x0 0x1e00>;
+						};
+
+						macaddr_factory_4: macaddr at a {
+							compatible = "mac-base";
+							reg = <0x4 0x6>;
+							#nvmem-cell-cells = <1>;
+						};
+					};
+				};
+			};
+		};
+	};
+};
+
+&cpu_thermal {
+	/delete-node/cooling-maps;
+	/delete-node/trips;
+
+	trips {
+		cpu_trip_crit: crit {
+			temperature = <125000>;
+			hysteresis = <2000>;
+			type = "critical";
+		};
+
+		cpu_trip_hot: hot {
+			temperature = <120000>;
+			hysteresis = <2000>;
+			type = "hot";
+		};
+
+		cpu_trip_active_high: active-high {
+			temperature = <110000>;
+			hysteresis = <2000>;
+			type = "active";
+		};
+
+		cpu_trip_active_med: active-med {
+			temperature = <80000>;
+			hysteresis = <2000>;
+			type = "active";
+		};
+
+		cpu_trip_active_low: active-low {
+			temperature = <60000>;
+			hysteresis = <2000>;
+			type = "active";
+		};
+
+		cpu_trip_active_silent: active-silent {
+			temperature = <40000>;
+			hysteresis = <2000>;
+			type = "active";
+		};
+	};
+
+	cooling-maps {
+		cpu-active-high {
+			/* active: set fan to cooling level 3 */
+			cooling-device = <&fan 3 3>;
+			trip = <&cpu_trip_active_high>;
+		};
+
+		cpu-active-med {
+			/* active: set fan to cooling level 2 */
+			cooling-device = <&fan 2 2>;
+			trip = <&cpu_trip_active_med>;
+		};
+
+		cpu-active-low {
+			/* active: set fan to cooling level 1 */
+			cooling-device = <&fan 1 1>;
+			trip = <&cpu_trip_active_low>;
+		};
+
+		cpu-active-silent {
+			/* active: set fan to cooling level 0 */
+			cooling-device = <&fan 0 0>;
+			trip = <&cpu_trip_active_silent>;
+		};
+	};
+};
+
+&pcie0 {
+	status = "okay";
+
+	pcie at 0,0 {
+		reg = <0x0000 0 0 0 0>;
+
+		mt7996 at 1,0 {
+			reg = <0x0000 0 0 0 0>;
+			nvmem-cells = <&eeprom_factory_0>;
+			nvmem-cell-names = "eeprom";
+		};
+	};
+};
diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
index af5c4ceafe..fff39006da 100644
--- a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
@@ -21,6 +21,9 @@ mediatek_setup_interfaces()
 	acer,predator-w6)
 		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 game" eth1
 		;;
+	arcadyan,mozart)
+		ucidef_set_interfaces_lan_wan "lan0 eth1" eth2
+		;;
 	asus,rt-ax59u|\
 	cetron,ct3003|\
 	confiabits,mt7981|\
diff --git a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
index edc0456566..7fe2d29d31 100755
--- a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
@@ -90,6 +90,7 @@ platform_do_upgrade() {
 		fit_do_upgrade "$1"
 		;;
 	acer,predator-w6|\
+	arcadyan,mozart|\
 	smartrg,sdg-8612|\
 	smartrg,sdg-8614|\
 	smartrg,sdg-8622|\
@@ -202,6 +203,7 @@ platform_copy_config() {
 		fi
 		;;
 	acer,predator-w6|\
+	arcadyan,mozart|\
 	glinet,gl-mt2500|\
 	glinet,gl-mt6000|\
 	glinet,gl-x3000|\
diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index 37fe740c31..5dfde755a0 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -254,6 +254,30 @@ define Device/asus_tuf-ax4200
 endef
 TARGET_DEVICES += asus_tuf-ax4200
 
+define Device/arcadyan_mozart
+  DEVICE_VENDOR := Arcadyan
+  DEVICE_MODEL := Mozart
+  DEVICE_DTS := mt7988a-arcadyan-mozart
+  DEVICE_DTS_DIR := ../dts
+  DEVICE_DTC_FLAGS := --pad 4096
+  DEVICE_DTS_LOADADDR := 0x45f00000
+  DEVICE_PACKAGES := kmod-hwmon-pwmfan e2fsprogs f2fsck mkf2fs kmod-mt7996-firmware
+  KERNEL_LOADADDR := 0x46000000
+  KERNEL := kernel-bin | gzip
+  KERNEL_INITRAMFS := kernel-bin | lzma | \
+        fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
+  KERNEL_INITRAMFS_SUFFIX := .itb
+  IMAGE_SIZE := $$(shell expr 64 + $$(CONFIG_TARGET_ROOTFS_PARTSIZE))m
+  IMAGES := sysupgrade.itb
+  IMAGE/sysupgrade.itb := append-kernel | fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-with-rootfs | pad-rootfs | append-metadata
+  ARTIFACTS := emmc-preloader.bin emmc-bl31-uboot.fip emmc-gpt.bin
+  ARTIFACT/emmc-gpt.bin := mt798x-gpt emmc
+  ARTIFACT/emmc-preloader.bin	:= mt7988-bl2 emmc-comb
+  ARTIFACT/emmc-bl31-uboot.fip	:= mt7988-bl31-uboot arcadyan_mozart
+  SUPPORTED_DEVICES += arcadyan,mozart
+endef
+TARGET_DEVICES += arcadyan_mozart
+
 define Device/asus_tuf-ax6000
   DEVICE_VENDOR := ASUS
   DEVICE_MODEL := TUF-AX6000



From lede-commits at lists.infradead.org  Tue Nov  5 04:30:56 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 07:30:56 -0500
Subject: [openwrt/openwrt]  uboot-mediatek: add support for arcadyan,mozart
In-Reply-To: <173080985697.2458296.14571061443882024448@git-01.infra.openwrt.org>
References: <173080985697.2458296.14571061443882024448@git-01.infra.openwrt.org>
Message-ID: <mailman.152488.1730809863.1280.lede-commits@lists.infradead.org>

blogic pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/7c8bfc0be5cfbcdbeb937689210c2fe78572198c

commit 7c8bfc0be5cfbcdbeb937689210c2fe78572198c
Author: John Crispin <john at phrozen.org>
AuthorDate: Sat Sep 21 09:47:26 2024 +0200

    uboot-mediatek: add support for arcadyan,mozart
    
    Signed-off-by: John Crispin <john at phrozen.org>
---
 package/boot/uboot-mediatek/Makefile               |  13 +
 .../patches/456-add-arcadyan-mozart.patch          | 308 +++++++++++++++++++++
 2 files changed, 321 insertions(+)

diff --git a/package/boot/uboot-mediatek/Makefile b/package/boot/uboot-mediatek/Makefile
index 0376eea8f2..fe8d61e56c 100644
--- a/package/boot/uboot-mediatek/Makefile
+++ b/package/boot/uboot-mediatek/Makefile
@@ -629,6 +629,18 @@ define U-Boot/mt7986_zyxel_ex5601-t0
   DEPENDS:=+trusted-firmware-a-mt7986-spim-nand-4k-ddr4
 endef
 
+define U-Boot/mt7988_arcadyan_mozart
+  NAME:=Arcadyan Mozart
+  BUILD_SUBTARGET:=filogic
+  BUILD_DEVICES:=arcadyan_mozart
+  UBOOT_CONFIG:=mt7988a_arcadyan_mozart
+  UBOOT_IMAGE:=u-boot.fip
+  BL2_BOOTDEV:=emmc
+  BL2_SOC:=mt7988
+  BL2_DDRTYPE:=comb
+  DEPENDS:=+trusted-firmware-a-mt7988-emmc-comb
+endef
+
 define U-Boot/mt7988_bananapi_bpi-r4-emmc
   NAME:=BananaPi BPi-R4
   BUILD_SUBTARGET:=filogic
@@ -816,6 +828,7 @@ UBOOT_TARGETS := \
 	mt7986_xiaomi_redmi-router-ax6000 \
 	mt7986_zyxel_ex5601-t0 \
 	mt7986_rfb \
+	mt7988_arcadyan_mozart \
 	mt7988_bananapi_bpi-r4-emmc \
 	mt7988_bananapi_bpi-r4-sdmmc \
 	mt7988_bananapi_bpi-r4-snand \
diff --git a/package/boot/uboot-mediatek/patches/456-add-arcadyan-mozart.patch b/package/boot/uboot-mediatek/patches/456-add-arcadyan-mozart.patch
new file mode 100644
index 0000000000..5c9c6e6977
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/456-add-arcadyan-mozart.patch
@@ -0,0 +1,308 @@
+--- /dev/null
++++ b/configs/mt7988a_arcadyan_mozart_defconfig
+@@ -0,0 +1,119 @@
++CONFIG_ARM=y
++CONFIG_SYS_HAS_NONCACHED_MEMORY=y
++CONFIG_POSITION_INDEPENDENT=y
++CONFIG_ARCH_MEDIATEK=y
++CONFIG_TEXT_BASE=0x41e00000
++CONFIG_SYS_MALLOC_F_LEN=0x4000
++CONFIG_NR_DRAM_BANKS=1
++CONFIG_ENV_SIZE=0x40000
++CONFIG_ENV_OFFSET=0x400000
++CONFIG_DEFAULT_DEVICE_TREE="mt7988a-arcadyan-mozart"
++CONFIG_OF_LIBFDT_OVERLAY=y
++CONFIG_TARGET_MT7988=y
++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00
++CONFIG_DEBUG_UART_BASE=0x11000000
++CONFIG_DEBUG_UART_CLOCK=40000000
++CONFIG_ENV_OFFSET_REDUND=0x440000
++CONFIG_SYS_LOAD_ADDR=0x50000000
++CONFIG_PCI=y
++CONFIG_DEBUG_UART=y
++CONFIG_AHCI=y
++CONFIG_FIT=y
++CONFIG_BOOTDELAY=30
++CONFIG_AUTOBOOT_KEYED=y
++CONFIG_AUTOBOOT_MENU_SHOW=y
++CONFIG_OF_SYSTEM_SETUP=y
++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7988a-arcadyan-mozart.dtb"
++CONFIG_SYS_CBSIZE=512
++CONFIG_SYS_PBSIZE=1049
++CONFIG_LOGLEVEL=7
++CONFIG_PRE_CONSOLE_BUFFER=y
++CONFIG_LOG=y
++CONFIG_BOARD_LATE_INIT=y
++CONFIG_HUSH_PARSER=y
++CONFIG_SYS_PROMPT="MT7988> "
++CONFIG_CMD_CPU=y
++CONFIG_CMD_LICENSE=y
++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set
++CONFIG_CMD_BOOTMENU=y
++CONFIG_CMD_ASKENV=y
++CONFIG_CMD_ERASEENV=y
++CONFIG_CMD_ENV_FLAGS=y
++CONFIG_CMD_STRINGS=y
++CONFIG_CMD_DM=y
++CONFIG_CMD_GPIO=y
++CONFIG_CMD_PWM=y
++CONFIG_CMD_GPT=y
++CONFIG_CMD_MMC=y
++CONFIG_CMD_MTD=y
++CONFIG_CMD_PART=y
++CONFIG_CMD_PCI=y
++CONFIG_CMD_SF_TEST=y
++CONFIG_CMD_USB=y
++CONFIG_CMD_DHCP=y
++CONFIG_CMD_TFTPSRV=y
++CONFIG_CMD_RARP=y
++CONFIG_CMD_PING=y
++CONFIG_CMD_CDP=y
++CONFIG_CMD_SNTP=y
++CONFIG_CMD_DNS=y
++CONFIG_CMD_LINK_LOCAL=y
++CONFIG_CMD_PXE=y
++CONFIG_CMD_CACHE=y
++CONFIG_CMD_PSTORE=y
++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
++CONFIG_CMD_UUID=y
++CONFIG_CMD_HASH=y
++CONFIG_CMD_SMC=y
++CONFIG_CMD_EXT4=y
++CONFIG_CMD_FAT=y
++CONFIG_CMD_FS_GENERIC=y
++CONFIG_CMD_FS_UUID=y
++CONFIG_OF_EMBED=y
++CONFIG_ENV_OVERWRITE=y
++CONFIG_ENV_IS_IN_MMC=y
++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
++CONFIG_SYS_RELOC_GD_ENV_ADDR=y
++CONFIG_USE_DEFAULT_ENV_FILE=y
++CONFIG_DEFAULT_ENV_FILE="arcadyan_mozart_env"
++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
++CONFIG_VERSION_VARIABLE=y
++CONFIG_NET_RANDOM_ETHADDR=y
++CONFIG_NETCONSOLE=y
++CONFIG_USE_IPADDR=y
++CONFIG_IPADDR="192.168.1.1"
++CONFIG_USE_SERVERIP=y
++CONFIG_SERVERIP="192.168.1.254"
++CONFIG_REGMAP=y
++CONFIG_SYSCON=y
++CONFIG_BUTTON=y
++CONFIG_BUTTON_GPIO=y
++CONFIG_CLK=y
++CONFIG_GPIO_HOG=y
++CONFIG_LED=y
++CONFIG_LED_BLINK=y
++CONFIG_LED_GPIO=y
++CONFIG_SUPPORT_EMMC_BOOT=y
++CONFIG_MMC_HS200_SUPPORT=y
++CONFIG_MMC_MTK=y
++CONFIG_PHY_FIXED=y
++CONFIG_MEDIATEK_ETH=y
++CONFIG_PHY=y
++CONFIG_PHY_MTK_TPHY=y
++CONFIG_PINCTRL=y
++CONFIG_PINCONF=y
++CONFIG_PINCTRL_MT7988=y
++CONFIG_POWER_DOMAIN=y
++CONFIG_MTK_POWER_DOMAIN=y
++CONFIG_DM_REGULATOR=y
++CONFIG_DM_REGULATOR_FIXED=y
++CONFIG_DM_REGULATOR_GPIO=y
++CONFIG_DM_PWM=y
++CONFIG_PWM_MTK=y
++CONFIG_RAM=y
++CONFIG_SCSI=y
++CONFIG_DM_SERIAL=y
++CONFIG_MTK_SERIAL=y
++CONFIG_ZSTD=y
++CONFIG_HEXDUMP=y
++CONFIG_LMB_MAX_REGIONS=64
+--- /dev/null
++++ b/arcadyan_mozart_env
+@@ -0,0 +1,55 @@
++ipaddr=192.168.1.1
++serverip=192.168.1.254
++loadaddr=0x50000000
++bootargs=console=ttyS0,115200n1 pci=pcie_bus_perf root=/dev/fit0 rootwait
++bootcmd=if pstore check ; then run boot_recovery ; else run boot_emmc ; fi
++bootconf=config-1
++bootconf_extra=
++bootdelay=0
++bootfile=openwrt-mediatek-filogic-arcadyan_mozart-initramfs.itb
++bootfile_bl2=openwrt-mediatek-filogic-arcadyan_mozart-emmc-preloader.bin
++bootfile_fip=openwrt-mediatek-filogic-arcadyan_mozart-emmc-bl31-uboot.fip
++bootfile_upg=openwrt-mediatek-filogic-arcadyan_mozart-squashfs-sysupgrade.itb
++bootled_pwr=blue:status
++bootled_rec=red:status
++bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
++bootmenu_default=0
++bootmenu_delay=0
++bootmenu_title=      [0;34m( ( ( [1;39mOpenWrt[0;34m ) ) )  [0;36m[eMMC][0m
++bootmenu_0=Initialize environment.=run _firstboot
++bootmenu_0d=Run default boot command.=run boot_default
++bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return
++bootmenu_2=Boot production system from eMMC.=run boot_production ; run bootmenu_confirm_return
++bootmenu_3=Boot recovery system from eMMC.=run boot_recovery ; run bootmenu_confirm_return
++bootmenu_4=Load production system via TFTP then write to eMMC.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_production ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
++bootmenu_5=Load recovery system via TFTP then write to eMMC.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_recovery ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
++bootmenu_6=[31mLoad BL31+U-Boot FIP via TFTP then write to eMMC.[0m=run boot_tftp_write_fip ; run bootmenu_confirm_return
++bootmenu_7=[31mLoad BL2 preloader via TFTP then write to eMMC.[0m=run boot_tftp_write_bl2 ; run bootmenu_confirm_return
++bootmenu_8=Reboot.=reset
++bootmenu_9=Reset all settings to factory defaults.=run reset_factory ; reset
++boot_first=if button reset ; then led $bootled_rec on ; run boot_tftp_recovery ; setenv flag_recover 1 ; run boot_default ; fi ; bootmenu
++boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; setenv replacevol 1 ; run boot_tftp_forever
++boot_production=led $bootled_pwr on ; run emmc_read_production && bootm $loadaddr#$bootconf#$bootconf_extra ; led $bootled_pwr off
++boot_recovery=led $bootled_rec on ; run emmc_read_recovery && bootm $loadaddr#$bootconf#$bootconf_extra ; led $bootled_rec off
++boot_emmc=run boot_production ; run boot_recovery
++boot_tftp_forever=led $bootled_rec on ; while true ; do run boot_tftp_recovery ; sleep 1 ; done
++boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run emmc_write_production ; if env exists noboot ; then else bootm $loadaddr#$bootconf#$bootconf_extra ; fi
++boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run emmc_write_recovery ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
++boot_tftp_write_fip=tftpboot $loadaddr $bootfile_fip && run emmc_write_fip
++boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run emmc_write_bl2
++boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf
++mmc_write_vol=imszb $loadaddr image_size && test 0x$image_size -le 0x$part_size && mmc erase 0x$part_addr 0x$image_size && mmc write $loadaddr 0x$part_addr 0x$image_size
++mmc_read_vol=mmc read $loadaddr $part_addr 0x100 && imszb $loadaddr image_size && test 0x$image_size -le 0x$part_size && mmc read $loadaddr 0x$part_addr 0x$image_size && setexpr filesize $image_size * 0x200
++part_default=production
++part_recovery=recovery
++reset_factory=eraseenv && reset
++emmc_read_production=part start mmc 0 $part_default part_addr && part size mmc 0 $part_default part_size && run mmc_read_vol
++emmc_read_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_read_vol
++emmc_write_bl2=mmc partconf 0 1 1 1 && mmc erase 0x0 0x400 && mmc write $fileaddr 0x0 0x400 ; mmc partconf 0 1 1 0
++emmc_write_fip=mmc erase 0x3400 0x2000 && mmc write $fileaddr 0x3400 0x2000 && mmc erase 0x2000 0x800
++emmc_write_production=part start mmc 0 $part_default part_addr && part size mmc 0 $part_default part_size && run mmc_write_vol
++emmc_write_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_write_vol
++_init_env=setenv _init_env ; setenv _create_env ; saveenv ; saveenv
++_firstboot=setenv _firstboot ; run _switch_to_menu ; run _init_env ; run boot_first
++_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
++_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title       [33m$ver[0m"
+--- /dev/null
++++ b/arch/arm/dts/mt7988a-arcadyan-mozart.dts
+@@ -0,0 +1,125 @@
++// SPDX-License-Identifier: GPL-2.0
++
++/dts-v1/;
++#include "mt7988.dtsi"
++#include <dt-bindings/gpio/gpio.h>
++#include <dt-bindings/input/linux-event-codes.h>
++
++/ {
++	model = "MediaTek / Arcadyan - Mozart";
++	compatible = "arcadyan,mozart", "mediatek,mt7988";
++
++	chosen {
++		stdout-path = &uart0;
++	};
++
++	memory at 40000000 {
++		device_type = "memory";
++		reg = <0 0x40000000 0 0x40000000>;
++	};
++
++	reg_3p3v: regulator-3p3v {
++		compatible = "regulator-fixed";
++		regulator-name = "fixed-3.3V";
++		regulator-min-microvolt = <3300000>;
++		regulator-max-microvolt = <3300000>;
++		regulator-boot-on;
++		regulator-always-on;
++	};
++
++	reg_1p8v: regulator-1p8v {
++		compatible = "regulator-fixed";
++		regulator-name = "fixed-1.8V";
++		regulator-min-microvolt = <1800000>;
++		regulator-max-microvolt = <1800000>;
++		regulator-boot-on;
++		regulator-always-on;
++	};
++
++	keys {
++		compatible = "gpio-keys";
++
++		wps {
++			label = "reset";
++			linux,code = <KEY_RESTART>;
++			gpios = <&gpio 143 GPIO_ACTIVE_LOW>;
++		};
++	};
++
++	leds {
++		compatible = "gpio-leds";
++
++		led-red {
++			label = "red:status";
++			gpios = <&gpio 29 GPIO_ACTIVE_HIGH>;
++		};
++
++		led-green {
++			label = "blue:status";
++			gpios = <&gpio 30 GPIO_ACTIVE_HIGH>;
++		};
++		
++		led-blue {
++			label = "blue:status";
++			gpios = <&gpio 31 GPIO_ACTIVE_HIGH>;
++		};
++	};
++};
++
++&uart0 {
++	status = "okay";
++};
++
++&eth {
++	status = "okay";
++	mediatek,gmac-id = <0>;
++	phy-mode = "usxgmii";
++	mediatek,switch = "mt7988";
++
++	fixed-link {
++		speed = <1000>;
++		full-duplex;
++		pause;
++	};
++};
++
++&pinctrl {
++	mmc0_pins_default: mmc0default {
++		mux {
++			function = "flash";
++			groups =  "emmc_51";
++		};
++
++		conf-cmd-dat {
++			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
++			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
++			       "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
++			input-enable;
++		};
++
++		conf-clk {
++			pins = "EMMC_CK";
++		};
++
++		conf-dsl {
++			pins = "EMMC_DSL";
++		};
++
++		conf-rst {
++			pins = "EMMC_RSTB";
++		};
++	};
++};
++
++&mmc0 {
++	pinctrl-names = "default";
++	pinctrl-0 = <&mmc0_pins_default>;
++	max-frequency = <52000000>;
++	bus-width = <8>;
++	cap-mmc-highspeed;
++	cap-mmc-hw-reset;
++	vmmc-supply = <&reg_3p3v>;
++	vqmmc-supply = <&reg_1p8v>;
++	non-removable;
++	status = "okay";
++};



From lede-commits at lists.infradead.org  Tue Nov  5 04:31:00 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 07:31:00 -0500
Subject: [openwrt/openwrt]  uboot-mediatek: import patches improving menu
 navigation
In-Reply-To: <173080985697.2458296.14571061443882024448@git-01.infra.openwrt.org>
References: <173080985697.2458296.14571061443882024448@git-01.infra.openwrt.org>
Message-ID: <mailman.152491.1730809864.1280.lede-commits@lists.infradead.org>

blogic pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/de3dfe57148367f2a580b45680b8495ee75960c6

commit de3dfe57148367f2a580b45680b8495ee75960c6
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Thu Oct 31 21:08:10 2024 +0000

    uboot-mediatek: import patches improving menu navigation
    
    Using the arrow keys to navigate the U-Boot menu often leads to being
    dropped into the U-Boot shell unexpectedly.
    This can be prevented in most cases by improving the logic to detect the
    arrow key ESC sequence and only reprinting the menu if actually needed.
    Also enable CONFIG_SERIAL_RX_BUFFER for all boards as it helps preventing
    the remaining cases.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 package/boot/uboot-mediatek/Makefile               |   3 +-
 ...e-logic-checking-whether-ESC-key-is-press.patch |  63 ++++++++++++
 ...pport-to-check-if-menu-needs-to-be-reprin.patch | 112 +++++++++++++++++++++
 .../patches/012-bootmenu-add-reprint-check.patch   |  75 ++++++++++++++
 ...nu-add-ability-to-select-item-by-shortkey.patch |  45 +++++----
 .../patches/211-cmd-bootmenu-custom-title.patch    |   8 +-
 6 files changed, 279 insertions(+), 27 deletions(-)

diff --git a/package/boot/uboot-mediatek/Makefile b/package/boot/uboot-mediatek/Makefile
index fe8d61e56c..3485765368 100644
--- a/package/boot/uboot-mediatek/Makefile
+++ b/package/boot/uboot-mediatek/Makefile
@@ -844,7 +844,8 @@ UBOOT_TARGETS := \
 UBOOT_CUSTOMIZE_CONFIG := \
 	--disable TOOLS_KWBIMAGE \
 	--disable TOOLS_LIBCRYPTO \
-	--disable TOOLS_MKEFICAPSULE
+	--disable TOOLS_MKEFICAPSULE \
+	--enable SERIAL_RX_BUFFER
 
 ifdef CONFIG_TARGET_mediatek
 UBOOT_MAKE_FLAGS += $(UBOOT_IMAGE:.fip=.bin)
diff --git a/package/boot/uboot-mediatek/patches/010-menu-fix-the-logic-checking-whether-ESC-key-is-press.patch b/package/boot/uboot-mediatek/patches/010-menu-fix-the-logic-checking-whether-ESC-key-is-press.patch
new file mode 100644
index 0000000000..f3589c4622
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/010-menu-fix-the-logic-checking-whether-ESC-key-is-press.patch
@@ -0,0 +1,63 @@
+From 72b4ba8417d33516b8489bac3c90dbbbf781a3d2 Mon Sep 17 00:00:00 2001
+From: Weijie Gao <weijie.gao at mediatek.com>
+Date: Tue, 29 Oct 2024 17:47:10 +0800
+Subject: [PATCH 1/3] menu: fix the logic checking whether ESC key is pressed
+
+It's observed that the bootmenu on a serial console sometimes
+incorrectly quitted with superfluous characters filled to command
+line input:
+
+>  *** U-Boot Boot Menu ***
+>
+>      1. Startup system (Default)
+>      2. Upgrade firmware
+>      3. Upgrade ATF BL2
+>      4. Upgrade ATF FIP
+>      5. Load image
+>      0. U-Boot console
+>
+>
+>  Press UP/DOWN to move, ENTER to select, ESC to quit
+>MT7988> [B
+
+Analysis shows it was caused by the wrong logic of bootmenu_loop:
+
+At first the bootmenu_loop received the first ESC char correctly.
+
+However, during the second call to bootmenu_loop, there's no data
+in the UART Rx FIFO. Due to the low baudrate, the second char of
+the down array key sequence hasn't be fully received.
+
+But bootmenu_loop just did a mdelay(10), and then treated it as a
+single ESC key press event. It didn't even try tstc() again after
+the 10ms timeout.
+
+This patch fixes this issue by letting bootmenu_loop check tstc()
+twice.
+
+Tested-By: E Shattow <lucent at gmail.com>
+Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
+---
+ common/menu.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/common/menu.c
++++ b/common/menu.c
+@@ -525,14 +525,15 @@ enum bootmenu_key bootmenu_loop(struct b
+ 				struct cli_ch_state *cch)
+ {
+ 	enum bootmenu_key key;
+-	int c;
++	int c, errchar = 0;
+ 
+ 	c = cli_ch_process(cch, 0);
+ 	if (!c) {
+ 		while (!c && !tstc()) {
+ 			schedule();
+ 			mdelay(10);
+-			c = cli_ch_process(cch, -ETIMEDOUT);
++			c = cli_ch_process(cch, errchar);
++			errchar = -ETIMEDOUT;
+ 		}
+ 		if (!c) {
+ 			c = getchar();
diff --git a/package/boot/uboot-mediatek/patches/011-menu-add-support-to-check-if-menu-needs-to-be-reprin.patch b/package/boot/uboot-mediatek/patches/011-menu-add-support-to-check-if-menu-needs-to-be-reprin.patch
new file mode 100644
index 0000000000..9d356ff0b4
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/011-menu-add-support-to-check-if-menu-needs-to-be-reprin.patch
@@ -0,0 +1,112 @@
+From f1cbdd3330f0055dfbff0ef7d86276c4cc3cff2a Mon Sep 17 00:00:00 2001
+From: Weijie Gao <weijie.gao at mediatek.com>
+Date: Tue, 29 Oct 2024 17:47:16 +0800
+Subject: [PATCH 2/3] menu: add support to check if menu needs to be reprinted
+
+This patch adds a new callback named need_reprint for menu.
+The need_reprint will be called before printing the menu. If the
+callback exists and returns FALSE, menu printing will be canceled.
+
+This is very useful if the menu was not changed. It can save time
+for serial-based menu to handle more input data.
+
+Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
+---
+ boot/pxe_utils.c |  2 +-
+ cmd/bootmenu.c   |  2 +-
+ cmd/eficonfig.c  |  2 +-
+ common/menu.c    | 11 +++++++++++
+ include/menu.h   |  1 +
+ 5 files changed, 15 insertions(+), 3 deletions(-)
+
+--- a/boot/pxe_utils.c
++++ b/boot/pxe_utils.c
+@@ -1449,7 +1449,7 @@ static struct menu *pxe_menu_to_menu(str
+ 	 * Create a menu and add items for all the labels.
+ 	 */
+ 	m = menu_create(cfg->title, DIV_ROUND_UP(cfg->timeout, 10),
+-			cfg->prompt, NULL, label_print, NULL, NULL);
++			cfg->prompt, NULL, label_print, NULL, NULL, NULL);
+ 	if (!m)
+ 		return NULL;
+ 
+--- a/cmd/bootmenu.c
++++ b/cmd/bootmenu.c
+@@ -506,7 +506,7 @@ static enum bootmenu_ret bootmenu_show(i
+ 
+ 	menu = menu_create(NULL, bootmenu->delay, 1, menu_display_statusline,
+ 			   bootmenu_print_entry, bootmenu_choice_entry,
+-			   bootmenu);
++			   NULL, bootmenu);
+ 	if (!menu) {
+ 		bootmenu_destroy(bootmenu);
+ 		return BOOTMENU_RET_FAIL;
+--- a/cmd/eficonfig.c
++++ b/cmd/eficonfig.c
+@@ -443,7 +443,7 @@ efi_status_t eficonfig_process_common(st
+ 		efi_menu->menu_desc = menu_desc;
+ 
+ 	menu = menu_create(NULL, 0, 1, display_statusline, item_data_print,
+-			   item_choice, efi_menu);
++			   item_choice, NULL, efi_menu);
+ 	if (!menu)
+ 		return EFI_INVALID_PARAMETER;
+ 
+--- a/common/menu.c
++++ b/common/menu.c
+@@ -43,6 +43,7 @@ struct menu {
+ 	void (*display_statusline)(struct menu *);
+ 	void (*item_data_print)(void *);
+ 	char *(*item_choice)(void *);
++	bool (*need_reprint)(void *);
+ 	void *item_choice_data;
+ 	struct list_head items;
+ 	int item_cnt;
+@@ -117,6 +118,11 @@ static inline void *menu_item_destroy(st
+  */
+ static inline void menu_display(struct menu *m)
+ {
++	if (m->need_reprint) {
++		if (!m->need_reprint(m->item_choice_data))
++			return;
++	}
++
+ 	if (m->title) {
+ 		puts(m->title);
+ 		putc('\n');
+@@ -362,6 +368,9 @@ int menu_item_add(struct menu *m, char *
+  * item. Returns a key string corresponding to the chosen item or NULL if
+  * no item has been selected.
+  *
++ * need_reprint - If not NULL, will be called before printing the menu.
++ * Returning FALSE means the menu does not need reprint.
++ *
+  * item_choice_data - Will be passed as the argument to the item_choice function
+  *
+  * Returns a pointer to the menu if successful, or NULL if there is
+@@ -371,6 +380,7 @@ struct menu *menu_create(char *title, in
+ 				void (*display_statusline)(struct menu *),
+ 				void (*item_data_print)(void *),
+ 				char *(*item_choice)(void *),
++				bool (*need_reprint)(void *),
+ 				void *item_choice_data)
+ {
+ 	struct menu *m;
+@@ -386,6 +396,7 @@ struct menu *menu_create(char *title, in
+ 	m->display_statusline = display_statusline;
+ 	m->item_data_print = item_data_print;
+ 	m->item_choice = item_choice;
++	m->need_reprint = need_reprint;
+ 	m->item_choice_data = item_choice_data;
+ 	m->item_cnt = 0;
+ 
+--- a/include/menu.h
++++ b/include/menu.h
+@@ -13,6 +13,7 @@ struct menu *menu_create(char *title, in
+ 				void (*display_statusline)(struct menu *),
+ 				void (*item_data_print)(void *),
+ 				char *(*item_choice)(void *),
++				bool (*need_reprint)(void *),
+ 				void *item_choice_data);
+ int menu_default_set(struct menu *m, char *item_key);
+ int menu_get_choice(struct menu *m, void **choice);
diff --git a/package/boot/uboot-mediatek/patches/012-bootmenu-add-reprint-check.patch b/package/boot/uboot-mediatek/patches/012-bootmenu-add-reprint-check.patch
new file mode 100644
index 0000000000..8f4db3a82e
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/012-bootmenu-add-reprint-check.patch
@@ -0,0 +1,75 @@
+From 702752cfae954648d6133bdff19283343b3339ef Mon Sep 17 00:00:00 2001
+From: Weijie Gao <weijie.gao at mediatek.com>
+Date: Tue, 29 Oct 2024 17:47:22 +0800
+Subject: [PATCH 3/3] bootmenu: add reprint check
+
+Record the last active menu item and check if it equals to the
+current selected item before reprint.
+
+Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
+---
+ cmd/bootmenu.c | 16 +++++++++++++++-
+ include/menu.h |  1 +
+ 2 files changed, 16 insertions(+), 1 deletion(-)
+
+--- a/cmd/bootmenu.c
++++ b/cmd/bootmenu.c
+@@ -103,11 +103,13 @@ static char *bootmenu_choice_entry(void
+ 
+ 		switch (key) {
+ 		case BKEY_UP:
++			menu->last_active = menu->active;
+ 			if (menu->active > 0)
+ 				--menu->active;
+ 			/* no menu key selected, regenerate menu */
+ 			return NULL;
+ 		case BKEY_DOWN:
++			menu->last_active = menu->active;
+ 			if (menu->active < menu->count - 1)
+ 				++menu->active;
+ 			/* no menu key selected, regenerate menu */
+@@ -133,6 +135,17 @@ static char *bootmenu_choice_entry(void
+ 	return NULL;
+ }
+ 
++static bool bootmenu_need_reprint(void *data)
++{
++	struct bootmenu_data *menu = data;
++	bool need_reprint;
++
++	need_reprint = menu->last_active != menu->active;
++	menu->last_active = menu->active;
++
++	return need_reprint;
++}
++
+ static void bootmenu_destroy(struct bootmenu_data *menu)
+ {
+ 	struct bootmenu_entry *iter = menu->first;
+@@ -332,6 +345,7 @@ static struct bootmenu_data *bootmenu_cr
+ 
+ 	menu->delay = delay;
+ 	menu->active = 0;
++	menu->last_active = -1;
+ 	menu->first = NULL;
+ 
+ 	default_str = env_get("bootmenu_default");
+@@ -506,7 +520,7 @@ static enum bootmenu_ret bootmenu_show(i
+ 
+ 	menu = menu_create(NULL, bootmenu->delay, 1, menu_display_statusline,
+ 			   bootmenu_print_entry, bootmenu_choice_entry,
+-			   NULL, bootmenu);
++			   bootmenu_need_reprint, bootmenu);
+ 	if (!menu) {
+ 		bootmenu_destroy(bootmenu);
+ 		return BOOTMENU_RET_FAIL;
+--- a/include/menu.h
++++ b/include/menu.h
+@@ -40,6 +40,7 @@ int menu_show(int bootdelay);
+ struct bootmenu_data {
+ 	int delay;			/* delay for autoboot */
+ 	int active;			/* active menu entry */
++	int last_active;		/* last active menu entry */
+ 	int count;			/* total count of menu entries */
+ 	struct bootmenu_entry *first;	/* first menu entry */
+ };
diff --git a/package/boot/uboot-mediatek/patches/100-16-cmd-bootmenu-add-ability-to-select-item-by-shortkey.patch b/package/boot/uboot-mediatek/patches/100-16-cmd-bootmenu-add-ability-to-select-item-by-shortkey.patch
index 4aa4318493..47e158b521 100644
--- a/package/boot/uboot-mediatek/patches/100-16-cmd-bootmenu-add-ability-to-select-item-by-shortkey.patch
+++ b/package/boot/uboot-mediatek/patches/100-16-cmd-bootmenu-add-ability-to-select-item-by-shortkey.patch
@@ -35,7 +35,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  		}
  
  		switch (key) {
-@@ -112,6 +113,12 @@ static char *bootmenu_choice_entry(void
+@@ -114,6 +115,12 @@ static char *bootmenu_choice_entry(void
  				++menu->active;
  			/* no menu key selected, regenerate menu */
  			return NULL;
@@ -48,7 +48,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  		case BKEY_SELECT:
  			iter = menu->first;
  			for (i = 0; i < menu->active; ++i)
-@@ -169,6 +176,9 @@ static int prepare_bootmenu_entry(struct
+@@ -182,6 +189,9 @@ static int prepare_bootmenu_entry(struct
  	unsigned short int i = *index;
  	struct bootmenu_entry *entry = NULL;
  	struct bootmenu_entry *iter = *current;
@@ -58,7 +58,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  
  	while ((option = bootmenu_getoption(i))) {
  
-@@ -183,11 +193,24 @@ static int prepare_bootmenu_entry(struct
+@@ -196,11 +206,24 @@ static int prepare_bootmenu_entry(struct
  		if (!entry)
  			return -ENOMEM;
  
@@ -84,15 +84,15 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  
  		entry->command = strdup(sep + 1);
  		if (!entry->command) {
-@@ -333,6 +356,7 @@ static struct bootmenu_data *bootmenu_cr
- 	menu->delay = delay;
+@@ -347,6 +370,7 @@ static struct bootmenu_data *bootmenu_cr
  	menu->active = 0;
+ 	menu->last_active = -1;
  	menu->first = NULL;
 +	menu->last_choiced = false;
  
  	default_str = env_get("bootmenu_default");
  	if (default_str)
-@@ -368,9 +392,9 @@ static struct bootmenu_data *bootmenu_cr
+@@ -382,9 +406,9 @@ static struct bootmenu_data *bootmenu_cr
  
  		/* Add Quit entry if exiting bootmenu is disabled */
  		if (!IS_ENABLED(CONFIG_BOOTMENU_DISABLE_UBOOT_CONSOLE))
@@ -106,7 +106,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  			free(entry);
 --- a/common/menu.c
 +++ b/common/menu.c
-@@ -48,6 +48,33 @@ struct menu {
+@@ -49,6 +49,33 @@ struct menu {
  	int item_cnt;
  };
  
@@ -140,7 +140,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  /*
   * An iterator function for menu items. callback will be called for each item
   * in m, with m, a pointer to the item, and extra being passed to callback. If
-@@ -426,7 +453,7 @@ int menu_destroy(struct menu *m)
+@@ -437,7 +464,7 @@ int menu_destroy(struct menu *m)
  }
  
  enum bootmenu_key bootmenu_autoboot_loop(struct bootmenu_data *menu,
@@ -149,7 +149,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  {
  	enum bootmenu_key key = BKEY_NONE;
  	int i, c;
-@@ -461,6 +488,19 @@ enum bootmenu_key bootmenu_autoboot_loop
+@@ -472,6 +499,19 @@ enum bootmenu_key bootmenu_autoboot_loop
  				break;
  			default:
  				key = BKEY_NONE;
@@ -169,7 +169,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  				break;
  			}
  			break;
-@@ -481,7 +521,8 @@ enum bootmenu_key bootmenu_autoboot_loop
+@@ -492,7 +532,8 @@ enum bootmenu_key bootmenu_autoboot_loop
  	return key;
  }
  
@@ -179,7 +179,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  {
  	enum bootmenu_key key;
  
-@@ -513,6 +554,20 @@ enum bootmenu_key bootmenu_conv_key(int
+@@ -524,6 +565,20 @@ enum bootmenu_key bootmenu_conv_key(int
  	case ' ':
  		key = BKEY_SPACE;
  		break;
@@ -200,15 +200,16 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  	default:
  		key = BKEY_NONE;
  		break;
-@@ -522,11 +577,16 @@ enum bootmenu_key bootmenu_conv_key(int
+@@ -533,11 +588,17 @@ enum bootmenu_key bootmenu_conv_key(int
  }
  
  enum bootmenu_key bootmenu_loop(struct bootmenu_data *menu,
 -				struct cli_ch_state *cch)
-+				struct cli_ch_state *cch, int *choice)
++				struct cli_ch_state *cch,
++				int *choice)
  {
  	enum bootmenu_key key;
- 	int c;
+ 	int c, errchar = 0;
  
 +	if (menu->last_choiced) {
 +		menu->last_choiced = false;
@@ -218,7 +219,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  	c = cli_ch_process(cch, 0);
  	if (!c) {
  		while (!c && !tstc()) {
-@@ -540,7 +600,7 @@ enum bootmenu_key bootmenu_loop(struct b
+@@ -552,7 +613,7 @@ enum bootmenu_key bootmenu_loop(struct b
  		}
  	}
  
@@ -238,7 +239,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  struct cli_ch_state;
  struct menu;
  
-@@ -19,6 +21,8 @@ int menu_get_choice(struct menu *m, void
+@@ -20,6 +22,8 @@ int menu_get_choice(struct menu *m, void
  int menu_item_add(struct menu *m, char *item_key, void *item_data);
  int menu_destroy(struct menu *m);
  int menu_default_choice(struct menu *m, void **choice);
@@ -247,15 +248,15 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  
  /**
   * menu_show() Show a boot menu
-@@ -41,6 +45,7 @@ struct bootmenu_data {
- 	int active;			/* active menu entry */
+@@ -43,6 +47,7 @@ struct bootmenu_data {
+ 	int last_active;		/* last active menu entry */
  	int count;			/* total count of menu entries */
  	struct bootmenu_entry *first;	/* first menu entry */
 +	bool last_choiced;
  };
  
  /** enum bootmenu_key - keys that can be returned by the bootmenu */
-@@ -51,6 +56,7 @@ enum bootmenu_key {
+@@ -53,6 +58,7 @@ enum bootmenu_key {
  	BKEY_SELECT,
  	BKEY_QUIT,
  	BKEY_SAVE,
@@ -263,7 +264,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  
  	/* 'extra' keys, which are used by menus but not cedit */
  	BKEY_PLUS,
-@@ -81,7 +87,7 @@ enum bootmenu_key {
+@@ -83,7 +89,7 @@ enum bootmenu_key {
   *	anything else: KEY_NONE
   */
  enum bootmenu_key bootmenu_autoboot_loop(struct bootmenu_data *menu,
@@ -272,7 +273,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  
  /**
   * bootmenu_loop() - handle waiting for a keypress when autoboot is disabled
-@@ -107,7 +113,7 @@ enum bootmenu_key bootmenu_autoboot_loop
+@@ -109,7 +115,7 @@ enum bootmenu_key bootmenu_autoboot_loop
   *	Space: BKEY_SPACE
   */
  enum bootmenu_key bootmenu_loop(struct bootmenu_data *menu,
@@ -281,7 +282,7 @@ Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
  
  /**
   * bootmenu_conv_key() - Convert a U-Boot keypress into a menu key
-@@ -115,6 +121,7 @@ enum bootmenu_key bootmenu_loop(struct b
+@@ -117,6 +123,7 @@ enum bootmenu_key bootmenu_loop(struct b
   * @ichar: Keypress to convert (ASCII, including control characters)
   * Returns: Menu key that corresponds to @ichar, or BKEY_NONE if none
   */
diff --git a/package/boot/uboot-mediatek/patches/211-cmd-bootmenu-custom-title.patch b/package/boot/uboot-mediatek/patches/211-cmd-bootmenu-custom-title.patch
index 76ff745e93..be06832ea1 100644
--- a/package/boot/uboot-mediatek/patches/211-cmd-bootmenu-custom-title.patch
+++ b/package/boot/uboot-mediatek/patches/211-cmd-bootmenu-custom-title.patch
@@ -1,6 +1,6 @@
 --- a/cmd/bootmenu.c
 +++ b/cmd/bootmenu.c
-@@ -451,7 +451,11 @@ static void menu_display_statusline(stru
+@@ -465,7 +465,11 @@ static void menu_display_statusline(stru
  	printf(ANSI_CURSOR_POSITION, 1, 1);
  	puts(ANSI_CLEAR_LINE);
  	printf(ANSI_CURSOR_POSITION, 2, 3);
@@ -13,7 +13,7 @@
  	puts(ANSI_CLEAR_LINE_TO_END);
  	printf(ANSI_CURSOR_POSITION, 3, 1);
  	puts(ANSI_CLEAR_LINE);
-@@ -536,6 +540,7 @@ static enum bootmenu_ret bootmenu_show(i
+@@ -550,6 +554,7 @@ static enum bootmenu_ret bootmenu_show(i
  		return BOOTMENU_RET_FAIL;
  	}
  
@@ -23,8 +23,8 @@
  			goto cleanup;
 --- a/include/menu.h
 +++ b/include/menu.h
-@@ -45,6 +45,7 @@ struct bootmenu_data {
- 	int active;			/* active menu entry */
+@@ -47,6 +47,7 @@ struct bootmenu_data {
+ 	int last_active;		/* last active menu entry */
  	int count;			/* total count of menu entries */
  	struct bootmenu_entry *first;	/* first menu entry */
 +	char *mtitle;			/* custom menu title */



From lede-commits at lists.infradead.org  Tue Nov  5 04:31:05 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 07:31:05 -0500
Subject: [openwrt/openwrt]  mediatek: set 7 MACs per wifi band in board.json
 on OpenWrt One
In-Reply-To: <173080985697.2458296.14571061443882024448@git-01.infra.openwrt.org>
References: <173080985697.2458296.14571061443882024448@git-01.infra.openwrt.org>
Message-ID: <mailman.152492.1730809864.1280.lede-commits@lists.infradead.org>

blogic pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/0d97e775ac9c62e0feed932430c53db1965ed0db

commit 0d97e775ac9c62e0feed932430c53db1965ed0db
Author: John Crispin <john at phrozen.org>
AuthorDate: Tue Nov 5 09:43:38 2024 +0100

    mediatek: set 7 MACs per wifi band in board.json on OpenWrt One
    
    Mass production units will get 16 assigned MAC addresses. This allows each phy
    to spawn up to 7 VAPs which will each have unique MAC without needing the
    private bit.
    
    Signed-off-by: John Crispin <john at phrozen.org>
---
 .../mediatek/filogic/base-files/etc/board.d/04_defaults  | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/04_defaults b/target/linux/mediatek/filogic/base-files/etc/board.d/04_defaults
new file mode 100644
index 0000000000..4d4131ec90
--- /dev/null
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/04_defaults
@@ -0,0 +1,16 @@
+. /lib/functions/uci-defaults.sh
+
+board=$(board_name)
+
+board_config_update
+
+case $board in
+openwrt,one)
+	ucidef_set_wireless_mac_count 2g 7
+	ucidef_set_wireless_mac_count 5g 7
+	;;
+esac
+
+board_config_flush
+
+exit 0



From lede-commits at lists.infradead.org  Tue Nov  5 04:31:01 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 07:31:01 -0500
Subject: [openwrt/openwrt]  mediatek: pinctrl-mt7988: add missing PWM
 pingroups
In-Reply-To: <173080985697.2458296.14571061443882024448@git-01.infra.openwrt.org>
References: <173080985697.2458296.14571061443882024448@git-01.infra.openwrt.org>
Message-ID: <mailman.152493.1730809866.1280.lede-commits@lists.infradead.org>

blogic pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/4b4e307a013abcc4977a93c8118e4309f08e3d88

commit 4b4e307a013abcc4977a93c8118e4309f08e3d88
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Sat Nov 2 20:01:05 2024 +0000

    mediatek: pinctrl-mt7988: add missing PWM pingroups
    
    Add additionals possible pinctrl group for pwm2~7 on pins
    pin  4 (GPIO_A)        pwm7
    pin 58 (JTAG_JTDI)     pwm2
    pin 59 (JTAG_JTDO)     pwm3
    pin 60 (JTAG_JTMS)     pwm4
    pin 61 (JTAG_JTCLK)    pwm5
    pin 62 (JTAG_JTRST_N)  pwm6
    
    They can be useful e.g. on the BPi-R4 as in that way pwm2~6 can be exposed
    on the 26-pin header (pwm6 always, pwm2~5 instead of the full UART).
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 .../drivers/pinctrl/mediatek/pinctrl-mt7988.c      | 33 +++++++++++++++++++++-
 1 file changed, 32 insertions(+), 1 deletion(-)

diff --git a/target/linux/mediatek/files-6.6/drivers/pinctrl/mediatek/pinctrl-mt7988.c b/target/linux/mediatek/files-6.6/drivers/pinctrl/mediatek/pinctrl-mt7988.c
index 9f92911245..648bd03acb 100644
--- a/target/linux/mediatek/files-6.6/drivers/pinctrl/mediatek/pinctrl-mt7988.c
+++ b/target/linux/mediatek/files-6.6/drivers/pinctrl/mediatek/pinctrl-mt7988.c
@@ -776,21 +776,39 @@ static int mt7988_pwm1_funcs[] = { 1 };
 static int mt7988_pwm2_pins[] = { 80 };
 static int mt7988_pwm2_funcs[] = { 2 };
 
+static int mt7988_pwm2_0_pins[] = { 58 };
+static int mt7988_pwm2_0_funcs[] = { 5 };
+
 static int mt7988_pwm3_pins[] = { 81 };
 static int mt7988_pwm3_funcs[] = { 2 };
 
+static int mt7988_pwm3_0_pins[] = { 59 };
+static int mt7988_pwm3_0_funcs[] = { 5 };
+
 static int mt7988_pwm4_pins[] = { 82 };
 static int mt7988_pwm4_funcs[] = { 2 };
 
+static int mt7988_pwm4_0_pins[] = { 60 };
+static int mt7988_pwm4_0_funcs[] = { 5 };
+
 static int mt7988_pwm5_pins[] = { 83 };
 static int mt7988_pwm5_funcs[] = { 2 };
 
+static int mt7988_pwm5_0_pins[] = { 61 };
+static int mt7988_pwm5_0_funcs[] = { 5 };
+
 static int mt7988_pwm6_pins[] = { 69 };
 static int mt7988_pwm6_funcs[] = { 3 };
 
+static int mt7988_pwm6_0_pins[] = { 62 };
+static int mt7988_pwm6_0_funcs[] = { 5 };
+
 static int mt7988_pwm7_pins[] = { 70 };
 static int mt7988_pwm7_funcs[] = { 3 };
 
+static int mt7988_pwm7_0_pins[] = { 4 };
+static int mt7988_pwm7_0_funcs[] = { 3 };
+
 /* dfd */
 static int mt7988_dfd_pins[] = { 0, 1, 2, 3, 4 };
 static int mt7988_dfd_funcs[] = { 4, 4, 4, 4, 4 };
@@ -1113,6 +1131,8 @@ static const struct group_desc mt7988_groups[] = {
 	PINCTRL_PIN_GROUP("xfi_phy_pll_i2c0", mt7988_xfi_phy_pll_i2c0),
 	/*  @GPIO(3,4): xfi_phy_pll_i2c1 */
 	PINCTRL_PIN_GROUP("xfi_phy_pll_i2c1", mt7988_xfi_phy_pll_i2c1),
+	/*  @GPIO(4): pwm7 */
+	PINCTRL_PIN_GROUP("pwm7_0", mt7988_pwm7_0),
 	/*  @GPIO(5,6) i2c0_0 */
 	PINCTRL_PIN_GROUP("i2c0_0", mt7988_i2c0_0),
 	/*  @GPIO(5,6) i2c1_sfp */
@@ -1243,6 +1263,14 @@ static const struct group_desc mt7988_groups[] = {
 	PINCTRL_PIN_GROUP("wo2_jtag", mt7988_wo2_jtag),
 	/*  @GPIO(57) pwm0 */
 	PINCTRL_PIN_GROUP("pwm0", mt7988_pwm0),
+	/*  @GPIO(58) pwm2_0 */
+	PINCTRL_PIN_GROUP("pwm2_0", mt7988_pwm2_0),
+	/*  @GPIO(59) pwm3_0 */
+	PINCTRL_PIN_GROUP("pwm3_0", mt7988_pwm3_0),
+	/*  @GPIO(60) pwm4_0 */
+	PINCTRL_PIN_GROUP("pwm4_0", mt7988_pwm4_0),
+	/*  @GPIO(61) pwm5_0 */
+	PINCTRL_PIN_GROUP("pwm5_0", mt7988_pwm5_0),
 	/*  @GPIO(58,59,60,61,62) jtag */
 	PINCTRL_PIN_GROUP("jtag", mt7988_jtag),
 	/*  @GPIO(58,59,60,61,62) tops_jtag0_1 */
@@ -1256,6 +1284,8 @@ static const struct group_desc mt7988_groups[] = {
 	PINCTRL_PIN_GROUP("gbe1_led1", mt7988_gbe1_led1),
 	PINCTRL_PIN_GROUP("gbe2_led1", mt7988_gbe2_led1),
 	PINCTRL_PIN_GROUP("gbe3_led1", mt7988_gbe3_led1),
+	/*  @GPIO(62) pwm6_0 */
+	PINCTRL_PIN_GROUP("pwm6_0", mt7988_pwm6_0),
 	/*  @GPIO(62) 2p5gbe_led1 */
 	PINCTRL_PIN_GROUP("2p5gbe_led1", mt7988_2p5gbe_led1),
 	/*  @GPIO(64,65,66,67) gbe_led0 */
@@ -1336,7 +1366,8 @@ static const char * const mt7988_int_usxgmii_groups[] = {
 	"int_usxgmii",
 };
 static const char * const mt7988_pwm_groups[] = {
-	"pwm0", "pwm1", "pwm2", "pwm3", "pwm4",	"pwm5",	"pwm6", "pwm7"
+	"pwm0", "pwm1", "pwm2", "pwm2_0", "pwm3", "pwm3_0", "pwm4", "pwm4_0",
+	"pwm5", "pwm5_0", "pwm6", "pwm6_0", "pwm7", "pwm7_0",
 };
 static const char * const mt7988_dfd_groups[] = {
 	"dfd",



From lede-commits at lists.infradead.org  Tue Nov  5 04:31:02 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 07:31:02 -0500
Subject: [openwrt/openwrt]  mediatek: filogic: BPi-R4: wire up pinctrl for
 pwm-fan
In-Reply-To: <173080985697.2458296.14571061443882024448@git-01.infra.openwrt.org>
References: <173080985697.2458296.14571061443882024448@git-01.infra.openwrt.org>
Message-ID: <mailman.152496.1730809866.1280.lede-commits@lists.infradead.org>

blogic pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/ccd30b9ed7d83ec1d340c7f3193497b19251dc2a

commit ccd30b9ed7d83ec1d340c7f3193497b19251dc2a
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Sat Nov 2 20:17:52 2024 +0000

    mediatek: filogic: BPi-R4: wire up pinctrl for pwm-fan
    
    Assign pwm function of PWM0 pin to the pwm-fan.
    This is mostly just cosmetics as it basically reflects the default
    setting of that pin.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 .../arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/target/linux/mediatek/files-6.6/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi b/target/linux/mediatek/files-6.6/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
index fae5d0ebfa..c4455fbc74 100644
--- a/target/linux/mediatek/files-6.6/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
+++ b/target/linux/mediatek/files-6.6/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
@@ -297,11 +297,22 @@
 	status = "okay";
 };
 
+&pio {
+	pwm0_pins: pwm0-pins {
+		mux {
+			groups = "pwm0";
+			function = "pwm";
+		};
+	};
+};
+
 &pwm {
 	status = "okay";
 };
 
 &fan {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pwm0_pins>;
 	pwms = <&pwm 0 50000>;
 	status = "okay";
 };



From lede-commits at lists.infradead.org  Tue Nov  5 05:06:17 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 08:06:17 -0500
Subject: [openwrt/openwrt]  kernel: r8168: refresh patch
In-Reply-To: <173081197780.2499023.2901092054966852503@git-01.infra.openwrt.org>
References: <173081197780.2499023.2901092054966852503@git-01.infra.openwrt.org>
Message-ID: <mailman.152518.1730811981.1280.lede-commits@lists.infradead.org>

noltari pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/6490c88c75b3392aca9dae5f4d47a13a0aa35220

commit 6490c88c75b3392aca9dae5f4d47a13a0aa35220
Author: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
AuthorDate: Tue Nov 5 14:01:06 2024 +0100

    kernel: r8168: refresh patch
    
    Patches weren't refreshed when r8168 was updated to v8.054.00 in a85e18b53f0f.
    
    Fixes: a85e18b53f0f ("kernel: r8168: update to v8.054.00")
    Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
---
 .../r8168/patches/200-r8168-print-link-speed-and-duplex-mode.patch  | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/kernel/r8168/patches/200-r8168-print-link-speed-and-duplex-mode.patch b/package/kernel/r8168/patches/200-r8168-print-link-speed-and-duplex-mode.patch
index 0212ae9bc4..41162b4d9b 100644
--- a/package/kernel/r8168/patches/200-r8168-print-link-speed-and-duplex-mode.patch
+++ b/package/kernel/r8168/patches/200-r8168-print-link-speed-and-duplex-mode.patch
@@ -18,7 +18,7 @@ Signed-off-by: Chukun Pan <amadeus at jmu.edu.cn>
 
 --- a/src/r8168.h
 +++ b/src/r8168.h
-@@ -1385,6 +1385,8 @@ enum RTL8168_register_content {
+@@ -1468,6 +1468,8 @@ enum RTL8168_register_content {
          LinkStatus = 0x02,
          FullDup = 0x01,
  
@@ -37,7 +37,7 @@ Signed-off-by: Chukun Pan <amadeus at jmu.edu.cn>
  #include <linux/netdevice.h>
  #include <linux/etherdevice.h>
  #include <linux/delay.h>
-@@ -5373,6 +5374,36 @@ rtl8168_link_down_patch(struct net_devic
+@@ -5369,6 +5370,36 @@ rtl8168_link_down_patch(struct net_devic
  #endif
  }
  
@@ -74,7 +74,7 @@ Signed-off-by: Chukun Pan <amadeus at jmu.edu.cn>
  static void
  rtl8168_check_link_status(struct net_device *dev)
  {
-@@ -5392,11 +5423,18 @@ rtl8168_check_link_status(struct net_dev
+@@ -5388,11 +5419,18 @@ rtl8168_check_link_status(struct net_dev
                  if (link_status_on) {
                          rtl8168_link_on_patch(dev);
  



From lede-commits at lists.infradead.org  Tue Nov  5 05:13:27 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 08:13:27 -0500
Subject: [openwrt/openwrt]  kernel: r8168: update to v8.054.00
In-Reply-To: <173081240726.2505761.13982177439798798712@git-01.infra.openwrt.org>
References: <173081240726.2505761.13982177439798798712@git-01.infra.openwrt.org>
Message-ID: <mailman.152531.1730812737.1280.lede-commits@lists.infradead.org>

noltari pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/28d4b213bc441fde02ca7e7262618a7c1adc9db2

commit 28d4b213bc441fde02ca7e7262618a7c1adc9db2
Author: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
AuthorDate: Sun Oct 20 21:55:50 2024 +0200

    kernel: r8168: update to v8.054.00
    
    Changelog: https://github.com/openwrt/rtl8168/compare/8.053.00...8.054.00
    
    Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
    (cherry picked from commit a85e18b53f0f645d72806cc6fe46f1603bbdb355)
---
 package/kernel/r8168/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/kernel/r8168/Makefile b/package/kernel/r8168/Makefile
index dc764bbf2c..2604425dea 100644
--- a/package/kernel/r8168/Makefile
+++ b/package/kernel/r8168/Makefile
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=r8168
-PKG_VERSION:=8.053.00
-PKG_RELEASE:=2
+PKG_VERSION:=8.054.00
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://github.com/openwrt/rtl8168/releases/download/$(PKG_VERSION)
-PKG_HASH:=52f1e6200672b598a04d4ac21ac92a8a9e128b38208c7b03a464bfa93bbfcc8f
+PKG_HASH:=5480120cf823e991e8cbd325118c1ec0c57d8f42760ba1a7334bd07d291d235d
 
 PKG_BUILD_PARALLEL:=1
 PKG_LICENSE:=GPLv2



From lede-commits at lists.infradead.org  Tue Nov  5 05:13:28 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 08:13:28 -0500
Subject: [openwrt/openwrt]  kernel: r8126: update to v10.014.01
In-Reply-To: <173081240726.2505761.13982177439798798712@git-01.infra.openwrt.org>
References: <173081240726.2505761.13982177439798798712@git-01.infra.openwrt.org>
Message-ID: <mailman.152532.1730812737.1280.lede-commits@lists.infradead.org>

noltari pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/182af4caea096a2f4fb0955dc16ec8a9001d9d28

commit 182af4caea096a2f4fb0955dc16ec8a9001d9d28
Author: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
AuthorDate: Tue Nov 5 00:33:02 2024 +0100

    kernel: r8126: update to v10.014.01
    
    Changelog: https://github.com/openwrt/rtl8126/compare/10.013.00...10.014.01
    
    Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
    (cherry picked from commit 562b2c22fff363f060e72c9018d243981b7d6447)
---
 package/kernel/r8126/Makefile                      |  6 ++---
 .../r8126/patches/001-r8126.h-use-BIT_ULL.patch    | 21 -----------------
 .../patches/100-r8126_rss-silence-rxnfc-log.patch  | 27 ----------------------
 ...00-r8126-print-link-speed-and-duplex-mode.patch | 10 ++++----
 4 files changed, 8 insertions(+), 56 deletions(-)

diff --git a/package/kernel/r8126/Makefile b/package/kernel/r8126/Makefile
index c269cdcadc..a8f60f9dbb 100644
--- a/package/kernel/r8126/Makefile
+++ b/package/kernel/r8126/Makefile
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=r8126
-PKG_VERSION:=10.013.00
-PKG_RELEASE:=4
+PKG_VERSION:=10.014.01
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://github.com/openwrt/rtl8126/releases/download/$(PKG_VERSION)
-PKG_HASH:=b41bda6ff3bbb7d9bc5b81c5c21355f031587d3a3a5862abcd4d766e942272e7
+PKG_HASH:=dbb10a7abd0972e4abd1b89ea4eb22fc55d6c1dc2f711b5acf4a3bc376275e21
 
 PKG_BUILD_PARALLEL:=1
 PKG_LICENSE:=GPLv2
diff --git a/package/kernel/r8126/patches/001-r8126.h-use-BIT_ULL.patch b/package/kernel/r8126/patches/001-r8126.h-use-BIT_ULL.patch
deleted file mode 100644
index cfbf31fcbb..0000000000
--- a/package/kernel/r8126/patches/001-r8126.h-use-BIT_ULL.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 9649df50a239d1379cc8d9febd4854a0c7ca0731 Mon Sep 17 00:00:00 2001
-From: Mieczyslaw Nalewaj <namiltd at poczta.onet.pl>
-Date: Sat, 10 Aug 2024 17:42:44 +0200
-Subject: [PATCH] r8126.h: use BIT_ULL
-
-Fixes compilation on 32 bit systems.
----
- src/r8126.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/src/r8126.h
-+++ b/src/r8126.h
-@@ -678,7 +678,7 @@ This is free software, and you are welco
- #ifndef ADVERTISED_2500baseX_Full
- #define ADVERTISED_2500baseX_Full  0x8000
- #endif
--#define RTK_ADVERTISED_5000baseX_Full  BIT(48)
-+#define RTK_ADVERTISED_5000baseX_Full  BIT_ULL(48)
- 
- #define RTK_ADVERTISE_2500FULL  0x80
- #define RTK_ADVERTISE_5000FULL  0x100
diff --git a/package/kernel/r8126/patches/100-r8126_rss-silence-rxnfc-log.patch b/package/kernel/r8126/patches/100-r8126_rss-silence-rxnfc-log.patch
deleted file mode 100644
index d06406004c..0000000000
--- a/package/kernel/r8126/patches/100-r8126_rss-silence-rxnfc-log.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From cd20cf48c0ec2a01fd9f512e25218a6ac8131794 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari at gmail.com>
-Date: Sat, 17 Aug 2024 22:07:23 +0200
-Subject: [PATCH] r8126_rss: silence rxnfc log
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This log is noisy and useless, just ignore it.
-
-Signed-off-by: Chukun Pan <amadeus at jmu.edu.cn>
-Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
----
- src/r8126_rss.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/src/r8126_rss.c
-+++ b/src/r8126_rss.c
-@@ -91,7 +91,7 @@ int rtl8126_get_rxnfc(struct net_device
-         struct rtl8126_private *tp = netdev_priv(dev);
-         int ret = -EOPNOTSUPP;
- 
--        netif_info(tp, drv, tp->dev, "rss get rxnfc\n");
-+        netif_dbg(tp, drv, tp->dev, "rss get rxnfc\n");
- 
-         if (!(dev->features & NETIF_F_RXHASH))
-                 return ret;
diff --git a/package/kernel/r8126/patches/200-r8126-print-link-speed-and-duplex-mode.patch b/package/kernel/r8126/patches/200-r8126-print-link-speed-and-duplex-mode.patch
index 308d2494b3..27b3d626c1 100644
--- a/package/kernel/r8126/patches/200-r8126-print-link-speed-and-duplex-mode.patch
+++ b/package/kernel/r8126/patches/200-r8126-print-link-speed-and-duplex-mode.patch
@@ -18,7 +18,7 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
 
 --- a/src/r8126.h
 +++ b/src/r8126.h
-@@ -1561,6 +1561,8 @@ enum RTL8126_register_content {
+@@ -1740,6 +1740,8 @@ enum RTL8126_register_content {
          LinkStatus = 0x02,
          FullDup = 0x01,
  
@@ -37,7 +37,7 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
  #include <linux/netdevice.h>
  #include <linux/etherdevice.h>
  #include <linux/delay.h>
-@@ -4740,6 +4741,40 @@ rtl8126_link_down_patch(struct net_devic
+@@ -4744,6 +4745,40 @@ rtl8126_link_down_patch(struct net_devic
  #endif
  }
  
@@ -76,10 +76,10 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
 +}
 +
  static void
- _rtl8126_check_link_status(struct net_device *dev)
+ _rtl8126_check_link_status(struct net_device *dev, unsigned int link_state)
  {
-@@ -4748,11 +4783,18 @@ _rtl8126_check_link_status(struct net_de
-         if (tp->link_ok(dev)) {
+@@ -4756,11 +4791,18 @@ _rtl8126_check_link_status(struct net_de
+         if (link_state == R8126_LINK_STATE_ON) {
                  rtl8126_link_on_patch(dev);
  
 -                if (netif_msg_ifup(tp))



From lede-commits at lists.infradead.org  Tue Nov  5 05:13:29 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 08:13:29 -0500
Subject: [openwrt/openwrt]  kernel: r8168: refresh patch
In-Reply-To: <173081240726.2505761.13982177439798798712@git-01.infra.openwrt.org>
References: <173081240726.2505761.13982177439798798712@git-01.infra.openwrt.org>
Message-ID: <mailman.152533.1730812737.1280.lede-commits@lists.infradead.org>

noltari pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/e70669e6901e579d46bb67ee95e348b8e9fb79fb

commit e70669e6901e579d46bb67ee95e348b8e9fb79fb
Author: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
AuthorDate: Tue Nov 5 14:01:06 2024 +0100

    kernel: r8168: refresh patch
    
    Patches weren't refreshed when r8168 was updated to v8.054.00 in a85e18b53f0f.
    
    Fixes: a85e18b53f0f ("kernel: r8168: update to v8.054.00")
    Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
    (cherry picked from commit 6490c88c75b3392aca9dae5f4d47a13a0aa35220)
---
 .../r8168/patches/200-r8168-print-link-speed-and-duplex-mode.patch  | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/kernel/r8168/patches/200-r8168-print-link-speed-and-duplex-mode.patch b/package/kernel/r8168/patches/200-r8168-print-link-speed-and-duplex-mode.patch
index 0212ae9bc4..41162b4d9b 100644
--- a/package/kernel/r8168/patches/200-r8168-print-link-speed-and-duplex-mode.patch
+++ b/package/kernel/r8168/patches/200-r8168-print-link-speed-and-duplex-mode.patch
@@ -18,7 +18,7 @@ Signed-off-by: Chukun Pan <amadeus at jmu.edu.cn>
 
 --- a/src/r8168.h
 +++ b/src/r8168.h
-@@ -1385,6 +1385,8 @@ enum RTL8168_register_content {
+@@ -1468,6 +1468,8 @@ enum RTL8168_register_content {
          LinkStatus = 0x02,
          FullDup = 0x01,
  
@@ -37,7 +37,7 @@ Signed-off-by: Chukun Pan <amadeus at jmu.edu.cn>
  #include <linux/netdevice.h>
  #include <linux/etherdevice.h>
  #include <linux/delay.h>
-@@ -5373,6 +5374,36 @@ rtl8168_link_down_patch(struct net_devic
+@@ -5369,6 +5370,36 @@ rtl8168_link_down_patch(struct net_devic
  #endif
  }
  
@@ -74,7 +74,7 @@ Signed-off-by: Chukun Pan <amadeus at jmu.edu.cn>
  static void
  rtl8168_check_link_status(struct net_device *dev)
  {
-@@ -5392,11 +5423,18 @@ rtl8168_check_link_status(struct net_dev
+@@ -5388,11 +5419,18 @@ rtl8168_check_link_status(struct net_dev
                  if (link_status_on) {
                          rtl8168_link_on_patch(dev);
  



From lede-commits at lists.infradead.org  Tue Nov  5 06:43:39 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 09:43:39 -0500
Subject: [openwrt/openwrt]  kernel: r8168: refresh patch
In-Reply-To: <173081781842.2674997.17584017521412657491@git-01.infra.openwrt.org>
References: <173081781842.2674997.17584017521412657491@git-01.infra.openwrt.org>
Message-ID: <mailman.152622.1730817822.1280.lede-commits@lists.infradead.org>

noltari pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/49d8f4b83383253de7037611926230f8b04cf7b1

commit 49d8f4b83383253de7037611926230f8b04cf7b1
Author: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
AuthorDate: Tue Nov 5 14:01:06 2024 +0100

    kernel: r8168: refresh patch
    
    Patches weren't refreshed when r8168 was updated to v8.054.00 in a85e18b53f0f.
    
    Fixes: a85e18b53f0f ("kernel: r8168: update to v8.054.00")
    Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
    (cherry picked from commit 6490c88c75b3392aca9dae5f4d47a13a0aa35220)
---
 .../r8168/patches/200-r8168-print-link-speed-and-duplex-mode.patch  | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/kernel/r8168/patches/200-r8168-print-link-speed-and-duplex-mode.patch b/package/kernel/r8168/patches/200-r8168-print-link-speed-and-duplex-mode.patch
index 0212ae9bc4..41162b4d9b 100644
--- a/package/kernel/r8168/patches/200-r8168-print-link-speed-and-duplex-mode.patch
+++ b/package/kernel/r8168/patches/200-r8168-print-link-speed-and-duplex-mode.patch
@@ -18,7 +18,7 @@ Signed-off-by: Chukun Pan <amadeus at jmu.edu.cn>
 
 --- a/src/r8168.h
 +++ b/src/r8168.h
-@@ -1385,6 +1385,8 @@ enum RTL8168_register_content {
+@@ -1468,6 +1468,8 @@ enum RTL8168_register_content {
          LinkStatus = 0x02,
          FullDup = 0x01,
  
@@ -37,7 +37,7 @@ Signed-off-by: Chukun Pan <amadeus at jmu.edu.cn>
  #include <linux/netdevice.h>
  #include <linux/etherdevice.h>
  #include <linux/delay.h>
-@@ -5373,6 +5374,36 @@ rtl8168_link_down_patch(struct net_devic
+@@ -5369,6 +5370,36 @@ rtl8168_link_down_patch(struct net_devic
  #endif
  }
  
@@ -74,7 +74,7 @@ Signed-off-by: Chukun Pan <amadeus at jmu.edu.cn>
  static void
  rtl8168_check_link_status(struct net_device *dev)
  {
-@@ -5392,11 +5423,18 @@ rtl8168_check_link_status(struct net_dev
+@@ -5388,11 +5419,18 @@ rtl8168_check_link_status(struct net_dev
                  if (link_status_on) {
                          rtl8168_link_on_patch(dev);
  



From lede-commits at lists.infradead.org  Tue Nov  5 06:43:38 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 09:43:38 -0500
Subject: [openwrt/openwrt]  kernel: r8126: update to v10.014.01
In-Reply-To: <173081781842.2674997.17584017521412657491@git-01.infra.openwrt.org>
References: <173081781842.2674997.17584017521412657491@git-01.infra.openwrt.org>
Message-ID: <mailman.152625.1730817823.1280.lede-commits@lists.infradead.org>

noltari pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/7763c5aabc422f62ae4a7559b52ba30551283520

commit 7763c5aabc422f62ae4a7559b52ba30551283520
Author: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
AuthorDate: Tue Nov 5 00:33:02 2024 +0100

    kernel: r8126: update to v10.014.01
    
    Changelog: https://github.com/openwrt/rtl8126/compare/10.013.00...10.014.01
    
    Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
    (cherry picked from commit 562b2c22fff363f060e72c9018d243981b7d6447)
---
 package/kernel/r8126/Makefile                      |  6 ++---
 .../r8126/patches/001-r8126.h-use-BIT_ULL.patch    | 21 -----------------
 .../patches/100-r8126_rss-silence-rxnfc-log.patch  | 27 ----------------------
 ...00-r8126-print-link-speed-and-duplex-mode.patch | 10 ++++----
 4 files changed, 8 insertions(+), 56 deletions(-)

diff --git a/package/kernel/r8126/Makefile b/package/kernel/r8126/Makefile
index c269cdcadc..a8f60f9dbb 100644
--- a/package/kernel/r8126/Makefile
+++ b/package/kernel/r8126/Makefile
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=r8126
-PKG_VERSION:=10.013.00
-PKG_RELEASE:=4
+PKG_VERSION:=10.014.01
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://github.com/openwrt/rtl8126/releases/download/$(PKG_VERSION)
-PKG_HASH:=b41bda6ff3bbb7d9bc5b81c5c21355f031587d3a3a5862abcd4d766e942272e7
+PKG_HASH:=dbb10a7abd0972e4abd1b89ea4eb22fc55d6c1dc2f711b5acf4a3bc376275e21
 
 PKG_BUILD_PARALLEL:=1
 PKG_LICENSE:=GPLv2
diff --git a/package/kernel/r8126/patches/001-r8126.h-use-BIT_ULL.patch b/package/kernel/r8126/patches/001-r8126.h-use-BIT_ULL.patch
deleted file mode 100644
index cfbf31fcbb..0000000000
--- a/package/kernel/r8126/patches/001-r8126.h-use-BIT_ULL.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 9649df50a239d1379cc8d9febd4854a0c7ca0731 Mon Sep 17 00:00:00 2001
-From: Mieczyslaw Nalewaj <namiltd at poczta.onet.pl>
-Date: Sat, 10 Aug 2024 17:42:44 +0200
-Subject: [PATCH] r8126.h: use BIT_ULL
-
-Fixes compilation on 32 bit systems.
----
- src/r8126.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/src/r8126.h
-+++ b/src/r8126.h
-@@ -678,7 +678,7 @@ This is free software, and you are welco
- #ifndef ADVERTISED_2500baseX_Full
- #define ADVERTISED_2500baseX_Full  0x8000
- #endif
--#define RTK_ADVERTISED_5000baseX_Full  BIT(48)
-+#define RTK_ADVERTISED_5000baseX_Full  BIT_ULL(48)
- 
- #define RTK_ADVERTISE_2500FULL  0x80
- #define RTK_ADVERTISE_5000FULL  0x100
diff --git a/package/kernel/r8126/patches/100-r8126_rss-silence-rxnfc-log.patch b/package/kernel/r8126/patches/100-r8126_rss-silence-rxnfc-log.patch
deleted file mode 100644
index d06406004c..0000000000
--- a/package/kernel/r8126/patches/100-r8126_rss-silence-rxnfc-log.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From cd20cf48c0ec2a01fd9f512e25218a6ac8131794 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari at gmail.com>
-Date: Sat, 17 Aug 2024 22:07:23 +0200
-Subject: [PATCH] r8126_rss: silence rxnfc log
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This log is noisy and useless, just ignore it.
-
-Signed-off-by: Chukun Pan <amadeus at jmu.edu.cn>
-Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
----
- src/r8126_rss.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/src/r8126_rss.c
-+++ b/src/r8126_rss.c
-@@ -91,7 +91,7 @@ int rtl8126_get_rxnfc(struct net_device
-         struct rtl8126_private *tp = netdev_priv(dev);
-         int ret = -EOPNOTSUPP;
- 
--        netif_info(tp, drv, tp->dev, "rss get rxnfc\n");
-+        netif_dbg(tp, drv, tp->dev, "rss get rxnfc\n");
- 
-         if (!(dev->features & NETIF_F_RXHASH))
-                 return ret;
diff --git a/package/kernel/r8126/patches/200-r8126-print-link-speed-and-duplex-mode.patch b/package/kernel/r8126/patches/200-r8126-print-link-speed-and-duplex-mode.patch
index 308d2494b3..27b3d626c1 100644
--- a/package/kernel/r8126/patches/200-r8126-print-link-speed-and-duplex-mode.patch
+++ b/package/kernel/r8126/patches/200-r8126-print-link-speed-and-duplex-mode.patch
@@ -18,7 +18,7 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
 
 --- a/src/r8126.h
 +++ b/src/r8126.h
-@@ -1561,6 +1561,8 @@ enum RTL8126_register_content {
+@@ -1740,6 +1740,8 @@ enum RTL8126_register_content {
          LinkStatus = 0x02,
          FullDup = 0x01,
  
@@ -37,7 +37,7 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
  #include <linux/netdevice.h>
  #include <linux/etherdevice.h>
  #include <linux/delay.h>
-@@ -4740,6 +4741,40 @@ rtl8126_link_down_patch(struct net_devic
+@@ -4744,6 +4745,40 @@ rtl8126_link_down_patch(struct net_devic
  #endif
  }
  
@@ -76,10 +76,10 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
 +}
 +
  static void
- _rtl8126_check_link_status(struct net_device *dev)
+ _rtl8126_check_link_status(struct net_device *dev, unsigned int link_state)
  {
-@@ -4748,11 +4783,18 @@ _rtl8126_check_link_status(struct net_de
-         if (tp->link_ok(dev)) {
+@@ -4756,11 +4791,18 @@ _rtl8126_check_link_status(struct net_de
+         if (link_state == R8126_LINK_STATE_ON) {
                  rtl8126_link_on_patch(dev);
  
 -                if (netif_msg_ifup(tp))



From lede-commits at lists.infradead.org  Tue Nov  5 11:23:29 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 05 Nov 2024 14:23:29 -0500
Subject: [openwrt/openwrt]  fritz-tools: fix mixed indentation
In-Reply-To: <173083460950.3126684.17731073799577801082@git-01.infra.openwrt.org>
References: <173083460950.3126684.17731073799577801082@git-01.infra.openwrt.org>
Message-ID: <mailman.152861.1730834620.1280.lede-commits@lists.infradead.org>

blocktrron pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/685e979d470a09361defe1612b001dfc3b7d9832

commit 685e979d470a09361defe1612b001dfc3b7d9832
Author: David Bauer <mail at david-bauer.net>
AuthorDate: Tue Nov 5 20:03:39 2024 +0100

    fritz-tools: fix mixed indentation
    
    Signed-off-by: David Bauer <mail at david-bauer.net>
---
 package/utils/fritz-tools/src/fritz_cal_extract.c | 140 +++++++++++-----------
 1 file changed, 70 insertions(+), 70 deletions(-)

diff --git a/package/utils/fritz-tools/src/fritz_cal_extract.c b/package/utils/fritz-tools/src/fritz_cal_extract.c
index 2978d86e0c..9899cd53c3 100644
--- a/package/utils/fritz-tools/src/fritz_cal_extract.c
+++ b/package/utils/fritz-tools/src/fritz_cal_extract.c
@@ -48,86 +48,86 @@ static inline size_t special_min(size_t a, size_t b)
    is an error reading or writing the files. */
 static int inf(FILE *source, FILE *dest, size_t limit, size_t skip)
 {
-    int ret;
-    size_t have;
-    z_stream strm;
-    unsigned char in[CHUNK];
-    unsigned char out[CHUNK];
+	int ret;
+	size_t have;
+	z_stream strm;
+	unsigned char in[CHUNK];
+	unsigned char out[CHUNK];
 
-    /* allocate inflate state */
-    strm.zalloc = Z_NULL;
-    strm.zfree = Z_NULL;
-    strm.opaque = Z_NULL;
-    strm.avail_in = 0;
-    strm.next_in = Z_NULL;
-    ret = inflateInit(&strm);
-    if (ret != Z_OK)
-        return ret;
+	/* allocate inflate state */
+	strm.zalloc = Z_NULL;
+	strm.zfree = Z_NULL;
+	strm.opaque = Z_NULL;
+	strm.avail_in = 0;
+	strm.next_in = Z_NULL;
+	ret = inflateInit(&strm);
+	if (ret != Z_OK)
+		return ret;
 
-    /* decompress until deflate stream ends or end of file */
-    do {
-        strm.avail_in = fread(in, 1, CHUNK, source);
-        if (ferror(source)) {
-            (void)inflateEnd(&strm);
-            return Z_ERRNO;
-        }
-        if (strm.avail_in == 0)
-            break;
-        strm.next_in = in;
+	/* decompress until deflate stream ends or end of file */
+	do {
+		strm.avail_in = fread(in, 1, CHUNK, source);
+		if (ferror(source)) {
+			(void)inflateEnd(&strm);
+			return Z_ERRNO;
+		}
+		if (strm.avail_in == 0)
+			break;
+		strm.next_in = in;
 
-        /* run inflate() on input until output buffer not full */
-        do {
-            strm.avail_out = CHUNK;
-            strm.next_out = out;
-            ret = inflate(&strm, Z_NO_FLUSH);
-            assert(ret != Z_STREAM_ERROR);  /* state not clobbered */
-            switch (ret) {
-            case Z_NEED_DICT:
-                ret = Z_DATA_ERROR;     /* and fall through */
-            case Z_DATA_ERROR:
-            case Z_MEM_ERROR:
-                (void)inflateEnd(&strm);
-                return ret;
-            }
-            have = special_min(limit, CHUNK - strm.avail_out) - skip;
-            if (fwrite(&out[skip], have, 1, dest) != 1 || ferror(dest)) {
-                (void)inflateEnd(&strm);
-                return Z_ERRNO;
-            }
-	    skip = 0;
-	    limit -= have;
-        } while (strm.avail_out == 0 && limit > 0);
+		/* run inflate() on input until output buffer not full */
+		do {
+			strm.avail_out = CHUNK;
+			strm.next_out = out;
+			ret = inflate(&strm, Z_NO_FLUSH);
+			assert(ret != Z_STREAM_ERROR);  /* state not clobbered */
+			switch (ret) {
+			case Z_NEED_DICT:
+				ret = Z_DATA_ERROR;     /* and fall through */
+			case Z_DATA_ERROR:
+			case Z_MEM_ERROR:
+				(void)inflateEnd(&strm);
+				return ret;
+			}
+			have = special_min(limit, CHUNK - strm.avail_out) - skip;
+			if (fwrite(&out[skip], have, 1, dest) != 1 || ferror(dest)) {
+				(void)inflateEnd(&strm);
+				return Z_ERRNO;
+			}
+		skip = 0;
+		limit -= have;
+		} while (strm.avail_out == 0 && limit > 0);
 
-        /* done when inflate() says it's done */
-    } while (ret != Z_STREAM_END && limit > 0);
+		/* done when inflate() says it's done */
+	} while (ret != Z_STREAM_END && limit > 0);
 
-    /* clean up and return */
-    (void)inflateEnd(&strm);
-    return (limit == 0 ? Z_OK : (ret == Z_STREAM_END ? Z_OK : Z_DATA_ERROR));
+	/* clean up and return */
+	(void)inflateEnd(&strm);
+	return (limit == 0 ? Z_OK : (ret == Z_STREAM_END ? Z_OK : Z_DATA_ERROR));
 }
 
 /* report a zlib or i/o error */
 static void zerr(int ret)
 {
-    switch (ret) {
-    case Z_ERRNO:
-        if (ferror(stdin))
-            fputs("error reading stdin\n", stderr);
-        if (ferror(stdout))
-            fputs("error writing stdout\n", stderr);
-        break;
-    case Z_STREAM_ERROR:
-        fputs("invalid compression level\n", stderr);
-        break;
-    case Z_DATA_ERROR:
-        fputs("invalid or incomplete deflate data\n", stderr);
-        break;
-    case Z_MEM_ERROR:
-        fputs("out of memory\n", stderr);
-        break;
-    case Z_VERSION_ERROR:
-        fputs("zlib version mismatch!\n", stderr);
-    }
+	switch (ret) {
+	case Z_ERRNO:
+		if (ferror(stdin))
+			fputs("error reading stdin\n", stderr);
+		if (ferror(stdout))
+			fputs("error writing stdout\n", stderr);
+		break;
+	case Z_STREAM_ERROR:
+		fputs("invalid compression level\n", stderr);
+		break;
+	case Z_DATA_ERROR:
+		fputs("invalid or incomplete deflate data\n", stderr);
+		break;
+	case Z_MEM_ERROR:
+		fputs("out of memory\n", stderr);
+		break;
+	case Z_VERSION_ERROR:
+		fputs("zlib version mismatch!\n", stderr);
+	}
 }
 
 static unsigned int get_num(char *str)



From lede-commits at lists.infradead.org  Wed Nov  6 00:50:47 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 06 Nov 2024 03:50:47 -0500
Subject: [buildbot]  phase2: support multiple branch in parse_feed_entry and
 SingleBranchScheduler
In-Reply-To: <173088304783.634186.7442948522857876854@git-01.infra.openwrt.org>
References: <173088304783.634186.7442948522857876854@git-01.infra.openwrt.org>
Message-ID: <mailman.153171.1730883053.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to buildbot.git, branch main:
https://git.openwrt.org/115c39f64dbacb3e77e67dd8b3e7a083f3c45265

commit 115c39f64dbacb3e77e67dd8b3e7a083f3c45265
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Tue Nov 5 16:22:48 2024 +0100

    phase2: support multiple branch in parse_feed_entry and SingleBranchScheduler
    
    Add support for multiple branch in parse_feed_entry and
    SingleBranchScheduler.
    
    - Moving to GitPoller branches
    - Change feedbranches to define an array of branches
    - Update the filter_fn to check multiple entry in feedbranches
    
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 phase2/master.cfg | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/phase2/master.cfg b/phase2/master.cfg
index a3e7417..3fb117e 100644
--- a/phase2/master.cfg
+++ b/phase2/master.cfg
@@ -177,9 +177,9 @@ def parse_feed_entry(line):
 	if parts[0].startswith("src-git"):
 		feeds.append(parts)
 		url = parts[2].strip().split(';')
-		branch = url[1] if len(url) > 1 else 'main'
-		feedbranches[url[0]] = branch
-		c['change_source'].append(GitPoller(url[0], branch=branch, workdir='%s/%s.git' %(os.getcwd(), parts[1]), pollInterval=300))
+		branches = [url[1]] if len(url) > 1 else ['main', 'master']
+		feedbranches[url[0]] = branches
+		c['change_source'].append(GitPoller(url[0], branches=branches, workdir='%s/%s.git' %(os.getcwd(), parts[1]), pollInterval=300))
 
 make = subprocess.Popen(['make', '--no-print-directory', '-C', work_dir+'/source.git/target/sdk/', 'val.BASE_FEED'],
 	env = dict(os.environ, TOPDIR=work_dir+'/source.git'), stdout = subprocess.PIPE)
@@ -205,7 +205,7 @@ c['schedulers'] = []
 c['schedulers'].append(SingleBranchScheduler(
 	name            = "all",
 	change_filter   = filter.ChangeFilter(
-		filter_fn = lambda change: change.branch == feedbranches[change.repository]
+		filter_fn = lambda change: change.branch in feedbranches[change.repository]
 	),
 	treeStableTimer = 60,
 	builderNames    = archnames))



From lede-commits at lists.infradead.org  Wed Nov  6 01:39:01 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 06 Nov 2024 04:39:01 -0500
Subject: [openwrt/openwrt]  procd: update to Git HEAD (2024-11-06)
In-Reply-To: <173088594143.815141.3459393299559358689@git-01.infra.openwrt.org>
References: <173088594143.815141.3459393299559358689@git-01.infra.openwrt.org>
Message-ID: <mailman.153280.1730888834.1280.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/09a8b4920cf117942561237d639d5101283a53c4

commit 09a8b4920cf117942561237d639d5101283a53c4
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Wed Nov 6 10:38:20 2024 +0100

    procd: update to Git HEAD (2024-11-06)
    
    109fa41b2321 system: fix description value from os-release
    
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 package/system/procd/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/system/procd/Makefile b/package/system/procd/Makefile
index e07f3ec81d..86de4babfd 100644
--- a/package/system/procd/Makefile
+++ b/package/system/procd/Makefile
@@ -12,9 +12,9 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git
-PKG_MIRROR_HASH:=3d15a68fb614c4d7e129dc1bbe8a79adcb3115753c2fc95a36fd03855efc7a58
-PKG_SOURCE_DATE:=2024-10-20
-PKG_SOURCE_VERSION:=ef3ab8bc8fb18216793dd0c8106dd222c560453a
+PKG_MIRROR_HASH:=0f494faf2811af6cd7332acda8049ad9713dcabc4b2885dc14acbd9f61920be1
+PKG_SOURCE_DATE:=2024-11-06
+PKG_SOURCE_VERSION:=109fa41b2321506280397e03757976c468832668
 CMAKE_INSTALL:=1
 
 PKG_LICENSE:=GPL-2.0



From lede-commits at lists.infradead.org  Wed Nov  6 01:39:48 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 06 Nov 2024 04:39:48 -0500
Subject: [openwrt/openwrt]  procd: update to Git HEAD (2024-11-06)
In-Reply-To: <173088598811.819250.13784678422286549958@git-01.infra.openwrt.org>
References: <173088598811.819250.13784678422286549958@git-01.infra.openwrt.org>
Message-ID: <mailman.153281.1730888834.1280.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/a82b097635647a8d7717cd7a02ef5b20cc8d0810

commit a82b097635647a8d7717cd7a02ef5b20cc8d0810
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Wed Nov 6 10:38:20 2024 +0100

    procd: update to Git HEAD (2024-11-06)
    
    109fa41b2321 system: fix description value from os-release
    
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
    (cherry picked from commit 09a8b4920cf117942561237d639d5101283a53c4)
---
 package/system/procd/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/system/procd/Makefile b/package/system/procd/Makefile
index e07f3ec81d..86de4babfd 100644
--- a/package/system/procd/Makefile
+++ b/package/system/procd/Makefile
@@ -12,9 +12,9 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git
-PKG_MIRROR_HASH:=3d15a68fb614c4d7e129dc1bbe8a79adcb3115753c2fc95a36fd03855efc7a58
-PKG_SOURCE_DATE:=2024-10-20
-PKG_SOURCE_VERSION:=ef3ab8bc8fb18216793dd0c8106dd222c560453a
+PKG_MIRROR_HASH:=0f494faf2811af6cd7332acda8049ad9713dcabc4b2885dc14acbd9f61920be1
+PKG_SOURCE_DATE:=2024-11-06
+PKG_SOURCE_VERSION:=109fa41b2321506280397e03757976c468832668
 CMAKE_INSTALL:=1
 
 PKG_LICENSE:=GPL-2.0



From lede-commits at lists.infradead.org  Wed Nov  6 02:42:05 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 06 Nov 2024 05:42:05 -0500
Subject: [openwrt/openwrt]  kernel: r8125: update to v9.014.01
In-Reply-To: <173088972541.935537.14210482395438057142@git-01.infra.openwrt.org>
References: <173088972541.935537.14210482395438057142@git-01.infra.openwrt.org>
Message-ID: <mailman.153380.1730893075.1280.lede-commits@lists.infradead.org>

noltari pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/e29bc67f9d8451d3baf80da9358b3a01dc4b20b7

commit e29bc67f9d8451d3baf80da9358b3a01dc4b20b7
Author: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
AuthorDate: Wed Nov 6 10:00:56 2024 +0100

    kernel: r8125: update to v9.014.01
    
    Changelog: https://github.com/openwrt/rtl8125/compare/9.013.02...9.014.01
    
    Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
---
 package/kernel/r8125/Makefile                      |  6 ++---
 .../patches/100-r8125_rss-silence-rxnfc-log.patch  | 26 ----------------------
 ...00-r8125-print-link-speed-and-duplex-mode.patch | 10 ++++-----
 3 files changed, 8 insertions(+), 34 deletions(-)

diff --git a/package/kernel/r8125/Makefile b/package/kernel/r8125/Makefile
index ef95b52e67..647630393a 100644
--- a/package/kernel/r8125/Makefile
+++ b/package/kernel/r8125/Makefile
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=r8125
-PKG_VERSION:=9.013.02
-PKG_RELEASE:=4
+PKG_VERSION:=9.014.01
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://github.com/openwrt/rtl8125/releases/download/$(PKG_VERSION)
-PKG_HASH:=d36410ee99c956f250d9cd08340d8c36567d190f420a8ee128ff6e51225aac0c
+PKG_HASH:=f006aa95501738ca55c522812c9d1b473ac781675f3ad88ce341a09316b8aa13
 
 PKG_BUILD_PARALLEL:=1
 PKG_LICENSE:=GPLv2
diff --git a/package/kernel/r8125/patches/100-r8125_rss-silence-rxnfc-log.patch b/package/kernel/r8125/patches/100-r8125_rss-silence-rxnfc-log.patch
deleted file mode 100644
index 58eb470037..0000000000
--- a/package/kernel/r8125/patches/100-r8125_rss-silence-rxnfc-log.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From cd20cf48c0ec2a01fd9f512e25218a6ac8131794 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari at gmail.com>
-Date: Sat, 17 Aug 2024 22:07:23 +0200
-Subject: [PATCH] r8125_rss: silence rxnfc log
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This log is noisy and useless, just ignore it.
-
-Signed-off-by: Chukun Pan <amadeus at jmu.edu.cn>
----
- src/r8125_rss.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/src/r8125_rss.c
-+++ b/src/r8125_rss.c
-@@ -91,7 +91,7 @@ int rtl8125_get_rxnfc(struct net_device
-         struct rtl8125_private *tp = netdev_priv(dev);
-         int ret = -EOPNOTSUPP;
- 
--        netif_info(tp, drv, tp->dev, "rss get rxnfc\n");
-+        netif_dbg(tp, drv, tp->dev, "rss get rxnfc\n");
- 
-         if (!(dev->features & NETIF_F_RXHASH))
-                 return ret;
diff --git a/package/kernel/r8125/patches/200-r8125-print-link-speed-and-duplex-mode.patch b/package/kernel/r8125/patches/200-r8125-print-link-speed-and-duplex-mode.patch
index df649c9ae9..a3b3562149 100644
--- a/package/kernel/r8125/patches/200-r8125-print-link-speed-and-duplex-mode.patch
+++ b/package/kernel/r8125/patches/200-r8125-print-link-speed-and-duplex-mode.patch
@@ -18,7 +18,7 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
 
 --- a/src/r8125.h
 +++ b/src/r8125.h
-@@ -1563,6 +1563,8 @@ enum RTL8125_register_content {
+@@ -1672,6 +1672,8 @@ enum RTL8125_register_content {
          LinkStatus = 0x02,
          FullDup = 0x01,
  
@@ -37,7 +37,7 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
  #include <linux/netdevice.h>
  #include <linux/etherdevice.h>
  #include <linux/delay.h>
-@@ -5112,6 +5113,38 @@ rtl8125_link_down_patch(struct net_devic
+@@ -5116,6 +5117,38 @@ rtl8125_link_down_patch(struct net_devic
  #endif
  }
  
@@ -74,10 +74,10 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
 +}
 +
  static void
- _rtl8125_check_link_status(struct net_device *dev)
+ _rtl8125_check_link_status(struct net_device *dev, unsigned int link_state)
  {
-@@ -5120,11 +5153,18 @@ _rtl8125_check_link_status(struct net_de
-         if (tp->link_ok(dev)) {
+@@ -5128,11 +5161,18 @@ _rtl8125_check_link_status(struct net_de
+         if (link_state == R8125_LINK_STATE_ON) {
                  rtl8125_link_on_patch(dev);
  
 -                if (netif_msg_ifup(tp))



From lede-commits at lists.infradead.org  Wed Nov  6 02:42:50 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 06 Nov 2024 05:42:50 -0500
Subject: [openwrt/openwrt]  kernel: r8125: update to v9.014.01
In-Reply-To: <173088977005.936675.1902675828392023937@git-01.infra.openwrt.org>
References: <173088977005.936675.1902675828392023937@git-01.infra.openwrt.org>
Message-ID: <mailman.153381.1730893075.1280.lede-commits@lists.infradead.org>

noltari pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/f3359da4b89380144c91d1d05c5f6bacb14e6ce2

commit f3359da4b89380144c91d1d05c5f6bacb14e6ce2
Author: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
AuthorDate: Wed Nov 6 10:00:56 2024 +0100

    kernel: r8125: update to v9.014.01
    
    Changelog: https://github.com/openwrt/rtl8125/compare/9.013.02...9.014.01
    
    Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
    (cherry picked from commit e29bc67f9d8451d3baf80da9358b3a01dc4b20b7)
---
 package/kernel/r8125/Makefile                      |  6 ++---
 .../patches/100-r8125_rss-silence-rxnfc-log.patch  | 26 ----------------------
 ...00-r8125-print-link-speed-and-duplex-mode.patch | 10 ++++-----
 3 files changed, 8 insertions(+), 34 deletions(-)

diff --git a/package/kernel/r8125/Makefile b/package/kernel/r8125/Makefile
index ef95b52e67..647630393a 100644
--- a/package/kernel/r8125/Makefile
+++ b/package/kernel/r8125/Makefile
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=r8125
-PKG_VERSION:=9.013.02
-PKG_RELEASE:=4
+PKG_VERSION:=9.014.01
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://github.com/openwrt/rtl8125/releases/download/$(PKG_VERSION)
-PKG_HASH:=d36410ee99c956f250d9cd08340d8c36567d190f420a8ee128ff6e51225aac0c
+PKG_HASH:=f006aa95501738ca55c522812c9d1b473ac781675f3ad88ce341a09316b8aa13
 
 PKG_BUILD_PARALLEL:=1
 PKG_LICENSE:=GPLv2
diff --git a/package/kernel/r8125/patches/100-r8125_rss-silence-rxnfc-log.patch b/package/kernel/r8125/patches/100-r8125_rss-silence-rxnfc-log.patch
deleted file mode 100644
index 58eb470037..0000000000
--- a/package/kernel/r8125/patches/100-r8125_rss-silence-rxnfc-log.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From cd20cf48c0ec2a01fd9f512e25218a6ac8131794 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari at gmail.com>
-Date: Sat, 17 Aug 2024 22:07:23 +0200
-Subject: [PATCH] r8125_rss: silence rxnfc log
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This log is noisy and useless, just ignore it.
-
-Signed-off-by: Chukun Pan <amadeus at jmu.edu.cn>
----
- src/r8125_rss.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/src/r8125_rss.c
-+++ b/src/r8125_rss.c
-@@ -91,7 +91,7 @@ int rtl8125_get_rxnfc(struct net_device
-         struct rtl8125_private *tp = netdev_priv(dev);
-         int ret = -EOPNOTSUPP;
- 
--        netif_info(tp, drv, tp->dev, "rss get rxnfc\n");
-+        netif_dbg(tp, drv, tp->dev, "rss get rxnfc\n");
- 
-         if (!(dev->features & NETIF_F_RXHASH))
-                 return ret;
diff --git a/package/kernel/r8125/patches/200-r8125-print-link-speed-and-duplex-mode.patch b/package/kernel/r8125/patches/200-r8125-print-link-speed-and-duplex-mode.patch
index df649c9ae9..a3b3562149 100644
--- a/package/kernel/r8125/patches/200-r8125-print-link-speed-and-duplex-mode.patch
+++ b/package/kernel/r8125/patches/200-r8125-print-link-speed-and-duplex-mode.patch
@@ -18,7 +18,7 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
 
 --- a/src/r8125.h
 +++ b/src/r8125.h
-@@ -1563,6 +1563,8 @@ enum RTL8125_register_content {
+@@ -1672,6 +1672,8 @@ enum RTL8125_register_content {
          LinkStatus = 0x02,
          FullDup = 0x01,
  
@@ -37,7 +37,7 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
  #include <linux/netdevice.h>
  #include <linux/etherdevice.h>
  #include <linux/delay.h>
-@@ -5112,6 +5113,38 @@ rtl8125_link_down_patch(struct net_devic
+@@ -5116,6 +5117,38 @@ rtl8125_link_down_patch(struct net_devic
  #endif
  }
  
@@ -74,10 +74,10 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
 +}
 +
  static void
- _rtl8125_check_link_status(struct net_device *dev)
+ _rtl8125_check_link_status(struct net_device *dev, unsigned int link_state)
  {
-@@ -5120,11 +5153,18 @@ _rtl8125_check_link_status(struct net_de
-         if (tp->link_ok(dev)) {
+@@ -5128,11 +5161,18 @@ _rtl8125_check_link_status(struct net_de
+         if (link_state == R8125_LINK_STATE_ON) {
                  rtl8125_link_on_patch(dev);
  
 -                if (netif_msg_ifup(tp))



From lede-commits at lists.infradead.org  Wed Nov  6 02:43:24 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 06 Nov 2024 05:43:24 -0500
Subject: [openwrt/openwrt]  kernel: r8125: update to v9.014.01
In-Reply-To: <173088980417.937620.9672530935493834341@git-01.infra.openwrt.org>
References: <173088980417.937620.9672530935493834341@git-01.infra.openwrt.org>
Message-ID: <mailman.153384.1730893075.1280.lede-commits@lists.infradead.org>

noltari pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/33b45c0a0e1405d2b390e9231c29d5fb5314707a

commit 33b45c0a0e1405d2b390e9231c29d5fb5314707a
Author: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
AuthorDate: Wed Nov 6 10:00:56 2024 +0100

    kernel: r8125: update to v9.014.01
    
    Changelog: https://github.com/openwrt/rtl8125/compare/9.013.02...9.014.01
    
    Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
    (cherry-picked from commit e29bc67f9d8451d3baf80da9358b3a01dc4b20b7)
---
 package/kernel/r8125/Makefile                      |  6 ++---
 .../patches/100-r8125_rss-silence-rxnfc-log.patch  | 26 ----------------------
 ...00-r8125-print-link-speed-and-duplex-mode.patch | 10 ++++-----
 3 files changed, 8 insertions(+), 34 deletions(-)

diff --git a/package/kernel/r8125/Makefile b/package/kernel/r8125/Makefile
index ef95b52e67..647630393a 100644
--- a/package/kernel/r8125/Makefile
+++ b/package/kernel/r8125/Makefile
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=r8125
-PKG_VERSION:=9.013.02
-PKG_RELEASE:=4
+PKG_VERSION:=9.014.01
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://github.com/openwrt/rtl8125/releases/download/$(PKG_VERSION)
-PKG_HASH:=d36410ee99c956f250d9cd08340d8c36567d190f420a8ee128ff6e51225aac0c
+PKG_HASH:=f006aa95501738ca55c522812c9d1b473ac781675f3ad88ce341a09316b8aa13
 
 PKG_BUILD_PARALLEL:=1
 PKG_LICENSE:=GPLv2
diff --git a/package/kernel/r8125/patches/100-r8125_rss-silence-rxnfc-log.patch b/package/kernel/r8125/patches/100-r8125_rss-silence-rxnfc-log.patch
deleted file mode 100644
index 58eb470037..0000000000
--- a/package/kernel/r8125/patches/100-r8125_rss-silence-rxnfc-log.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From cd20cf48c0ec2a01fd9f512e25218a6ac8131794 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari at gmail.com>
-Date: Sat, 17 Aug 2024 22:07:23 +0200
-Subject: [PATCH] r8125_rss: silence rxnfc log
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This log is noisy and useless, just ignore it.
-
-Signed-off-by: Chukun Pan <amadeus at jmu.edu.cn>
----
- src/r8125_rss.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/src/r8125_rss.c
-+++ b/src/r8125_rss.c
-@@ -91,7 +91,7 @@ int rtl8125_get_rxnfc(struct net_device
-         struct rtl8125_private *tp = netdev_priv(dev);
-         int ret = -EOPNOTSUPP;
- 
--        netif_info(tp, drv, tp->dev, "rss get rxnfc\n");
-+        netif_dbg(tp, drv, tp->dev, "rss get rxnfc\n");
- 
-         if (!(dev->features & NETIF_F_RXHASH))
-                 return ret;
diff --git a/package/kernel/r8125/patches/200-r8125-print-link-speed-and-duplex-mode.patch b/package/kernel/r8125/patches/200-r8125-print-link-speed-and-duplex-mode.patch
index df649c9ae9..a3b3562149 100644
--- a/package/kernel/r8125/patches/200-r8125-print-link-speed-and-duplex-mode.patch
+++ b/package/kernel/r8125/patches/200-r8125-print-link-speed-and-duplex-mode.patch
@@ -18,7 +18,7 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
 
 --- a/src/r8125.h
 +++ b/src/r8125.h
-@@ -1563,6 +1563,8 @@ enum RTL8125_register_content {
+@@ -1672,6 +1672,8 @@ enum RTL8125_register_content {
          LinkStatus = 0x02,
          FullDup = 0x01,
  
@@ -37,7 +37,7 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
  #include <linux/netdevice.h>
  #include <linux/etherdevice.h>
  #include <linux/delay.h>
-@@ -5112,6 +5113,38 @@ rtl8125_link_down_patch(struct net_devic
+@@ -5116,6 +5117,38 @@ rtl8125_link_down_patch(struct net_devic
  #endif
  }
  
@@ -74,10 +74,10 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
 +}
 +
  static void
- _rtl8125_check_link_status(struct net_device *dev)
+ _rtl8125_check_link_status(struct net_device *dev, unsigned int link_state)
  {
-@@ -5120,11 +5153,18 @@ _rtl8125_check_link_status(struct net_de
-         if (tp->link_ok(dev)) {
+@@ -5128,11 +5161,18 @@ _rtl8125_check_link_status(struct net_de
+         if (link_state == R8125_LINK_STATE_ON) {
                  rtl8125_link_on_patch(dev);
  
 -                if (netif_msg_ifup(tp))



From lede-commits at lists.infradead.org  Thu Nov  7 05:56:42 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 07 Nov 2024 08:56:42 -0500
Subject: [openwrt/openwrt]  ath79: linksys_ea4500-v3: take over the space for
 user data
In-Reply-To: <173098780261.151500.2409423026046802324@git-01.infra.openwrt.org>
References: <173098780261.151500.2409423026046802324@git-01.infra.openwrt.org>
Message-ID: <mailman.154552.1730988342.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/6691ff86b70a44ea6683aad85a0fc76fd03417b8

commit 6691ff86b70a44ea6683aad85a0fc76fd03417b8
Author: Edward Chow <equu at openmail.cc>
AuthorDate: Tue Mar 5 01:24:10 2024 +0800

    ath79: linksys_ea4500-v3: take over the space for user data
    
    The last "syscfg" partition of the OEM firmware turns out to be a
    UBIFS used to store user data, just as the "rootfs_data" of OpenWrt,
    so it should be reasonable to absorb it into the "ubi" partition.
    
    Factory installations via either OEM firmware or tftp, or by forcibly
    flashing factory image to mtd5 (firmware) partition with mtd tool are
    confirmed working, but the UBI remaining inside "syscfg" partition
    could break upgrade. Fortunately, installing kmod-mtd-rw and erasing
    "syscfg" partition before upgrade is confirmed working, in which case,
    "ubi" will automatically expand to the blank space once occupied by
    the former mtd8 (syscfg), with the total block number increased, but
    the UBIFS for rootfs_data will not automatically claim the newly
    available space (since it is created when mtd8 still exists, and
    sysupgrade does not set "autoresize" flag to rootfs_data). These space
    will be claimed during the next upgrade, when rootfs_data is removed
    and created again.
    
    Fixes: 50f727b7737d1 ("ath79: add support for Linksys EA4500 v3")
    
    Signed-off-by: Edward Chow <equu at openmail.cc>
    Link: https://github.com/openwrt/openwrt/pull/14791
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/ath79/dts/qca9558_linksys_ea4500-v3.dts           | 10 +++++-----
 target/linux/ath79/image/nand.mk                               |  8 +++++++-
 .../linux/ath79/nand/base-files/etc/board.d/05_compat-version  |  1 +
 3 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/target/linux/ath79/dts/qca9558_linksys_ea4500-v3.dts b/target/linux/ath79/dts/qca9558_linksys_ea4500-v3.dts
index 6c799efe33..1da46d7214 100644
--- a/target/linux/ath79/dts/qca9558_linksys_ea4500-v3.dts
+++ b/target/linux/ath79/dts/qca9558_linksys_ea4500-v3.dts
@@ -123,7 +123,7 @@
 
 		partition at 2c0000 {
 			label = "firmware";
-			reg = <0x2c0000 0x5000000>;
+			reg = <0x2c0000 0x7d40000>;
 
 			compatible = "fixed-partitions";
 			#address-cells = <1>;
@@ -136,7 +136,7 @@
 
 			partition at 400000 {
 				label = "ubi";
-				reg = <0x400000 0x4c00000>;
+				reg = <0x400000 0x7940000>;
 			};
 
 			/* Original layout for secondary partitions */
@@ -151,11 +151,11 @@
 			}; */
 		};
 
-		partition at 52c0000 {
+		/* Original layout for user data partition */
+		/* partition at 52c0000 {
 			label = "syscfg";
 			reg = <0x52c0000 0x2d40000>;
-			read-only;
-		};
+		}; */
 	};
 };
 
diff --git a/target/linux/ath79/image/nand.mk b/target/linux/ath79/image/nand.mk
index a3bdedaf6d..d3c1120aa2 100644
--- a/target/linux/ath79/image/nand.mk
+++ b/target/linux/ath79/image/nand.mk
@@ -281,6 +281,12 @@ TARGET_DEVICES += glinet_gl-x1200-nor
 
 define Device/linksys_ea4500-v3
   SOC := qca9558
+  DEVICE_COMPAT_VERSION := 1.1
+  DEVICE_COMPAT_MESSAGE := Partition table has been changed. Please \
+	install kmod-mtd-rw and erase mtd8 (syscfg) before upgrade \
+	to keep configures, or forcibly flash factory image to mtd5 \
+	(firmware) partition with mtd tool to discard configures but \
+	claim additional space immediately.
   DEVICE_VENDOR := Linksys
   DEVICE_MODEL := EA4500
   DEVICE_VARIANT := v3
@@ -288,7 +294,7 @@ define Device/linksys_ea4500-v3
   BLOCKSIZE := 128k
   PAGESIZE := 2048
   KERNEL_SIZE := 4096k
-  IMAGE_SIZE := 81920k
+  IMAGE_SIZE := 128256k
   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
   LINKSYS_HWNAME := EA4500V3
   IMAGES += factory.img
diff --git a/target/linux/ath79/nand/base-files/etc/board.d/05_compat-version b/target/linux/ath79/nand/base-files/etc/board.d/05_compat-version
index 238927aa7b..4d826d978d 100644
--- a/target/linux/ath79/nand/base-files/etc/board.d/05_compat-version
+++ b/target/linux/ath79/nand/base-files/etc/board.d/05_compat-version
@@ -4,6 +4,7 @@
 board_config_update
 
 case "$(board_name)" in
+	linksys,ea4500-v3|\
 	netgear,wndr4300-v2|\
 	netgear,wndr4500-v3)
 		ucidef_set_compat_version "1.1"



From lede-commits at lists.infradead.org  Thu Nov  7 05:57:40 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 07 Nov 2024 08:57:40 -0500
Subject: [openwrt/openwrt]  ath79: linksys_ea4500-v3: take over the space for
 user data
In-Reply-To: <173098786009.153220.9267962530554238259@git-01.infra.openwrt.org>
References: <173098786009.153220.9267962530554238259@git-01.infra.openwrt.org>
Message-ID: <mailman.154553.1730988342.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/983a753f389efb893e3b75fff1b8af28839e3f3e

commit 983a753f389efb893e3b75fff1b8af28839e3f3e
Author: Edward Chow <equu at openmail.cc>
AuthorDate: Tue Mar 5 01:24:10 2024 +0800

    ath79: linksys_ea4500-v3: take over the space for user data
    
    The last "syscfg" partition of the OEM firmware turns out to be a
    UBIFS used to store user data, just as the "rootfs_data" of OpenWrt,
    so it should be reasonable to absorb it into the "ubi" partition.
    
    Factory installations via either OEM firmware or tftp, or by forcibly
    flashing factory image to mtd5 (firmware) partition with mtd tool are
    confirmed working, but the UBI remaining inside "syscfg" partition
    could break upgrade. Fortunately, installing kmod-mtd-rw and erasing
    "syscfg" partition before upgrade is confirmed working, in which case,
    "ubi" will automatically expand to the blank space once occupied by
    the former mtd8 (syscfg), with the total block number increased, but
    the UBIFS for rootfs_data will not automatically claim the newly
    available space (since it is created when mtd8 still exists, and
    sysupgrade does not set "autoresize" flag to rootfs_data). These space
    will be claimed during the next upgrade, when rootfs_data is removed
    and created again.
    
    Fixes: 50f727b7737d1 ("ath79: add support for Linksys EA4500 v3")
    
    Signed-off-by: Edward Chow <equu at openmail.cc>
    Link: https://github.com/openwrt/openwrt/pull/14791
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/ath79/dts/qca9558_linksys_ea4500-v3.dts           | 10 +++++-----
 target/linux/ath79/image/nand.mk                               |  8 +++++++-
 .../linux/ath79/nand/base-files/etc/board.d/05_compat-version  |  1 +
 3 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/target/linux/ath79/dts/qca9558_linksys_ea4500-v3.dts b/target/linux/ath79/dts/qca9558_linksys_ea4500-v3.dts
index 6c799efe33..1da46d7214 100644
--- a/target/linux/ath79/dts/qca9558_linksys_ea4500-v3.dts
+++ b/target/linux/ath79/dts/qca9558_linksys_ea4500-v3.dts
@@ -123,7 +123,7 @@
 
 		partition at 2c0000 {
 			label = "firmware";
-			reg = <0x2c0000 0x5000000>;
+			reg = <0x2c0000 0x7d40000>;
 
 			compatible = "fixed-partitions";
 			#address-cells = <1>;
@@ -136,7 +136,7 @@
 
 			partition at 400000 {
 				label = "ubi";
-				reg = <0x400000 0x4c00000>;
+				reg = <0x400000 0x7940000>;
 			};
 
 			/* Original layout for secondary partitions */
@@ -151,11 +151,11 @@
 			}; */
 		};
 
-		partition at 52c0000 {
+		/* Original layout for user data partition */
+		/* partition at 52c0000 {
 			label = "syscfg";
 			reg = <0x52c0000 0x2d40000>;
-			read-only;
-		};
+		}; */
 	};
 };
 
diff --git a/target/linux/ath79/image/nand.mk b/target/linux/ath79/image/nand.mk
index a3bdedaf6d..d3c1120aa2 100644
--- a/target/linux/ath79/image/nand.mk
+++ b/target/linux/ath79/image/nand.mk
@@ -281,6 +281,12 @@ TARGET_DEVICES += glinet_gl-x1200-nor
 
 define Device/linksys_ea4500-v3
   SOC := qca9558
+  DEVICE_COMPAT_VERSION := 1.1
+  DEVICE_COMPAT_MESSAGE := Partition table has been changed. Please \
+	install kmod-mtd-rw and erase mtd8 (syscfg) before upgrade \
+	to keep configures, or forcibly flash factory image to mtd5 \
+	(firmware) partition with mtd tool to discard configures but \
+	claim additional space immediately.
   DEVICE_VENDOR := Linksys
   DEVICE_MODEL := EA4500
   DEVICE_VARIANT := v3
@@ -288,7 +294,7 @@ define Device/linksys_ea4500-v3
   BLOCKSIZE := 128k
   PAGESIZE := 2048
   KERNEL_SIZE := 4096k
-  IMAGE_SIZE := 81920k
+  IMAGE_SIZE := 128256k
   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
   LINKSYS_HWNAME := EA4500V3
   IMAGES += factory.img
diff --git a/target/linux/ath79/nand/base-files/etc/board.d/05_compat-version b/target/linux/ath79/nand/base-files/etc/board.d/05_compat-version
index 238927aa7b..4d826d978d 100644
--- a/target/linux/ath79/nand/base-files/etc/board.d/05_compat-version
+++ b/target/linux/ath79/nand/base-files/etc/board.d/05_compat-version
@@ -4,6 +4,7 @@
 board_config_update
 
 case "$(board_name)" in
+	linksys,ea4500-v3|\
 	netgear,wndr4300-v2|\
 	netgear,wndr4500-v3)
 		ucidef_set_compat_version "1.1"



From lede-commits at lists.infradead.org  Thu Nov  7 16:58:02 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 07 Nov 2024 19:58:02 -0500
Subject: [openwrt/openwrt]  kernel: modules: package driver for generic MIPI
 DBI TFT panels
In-Reply-To: <173102748201.1714630.18422241147040967717@git-01.infra.openwrt.org>
References: <173102748201.1714630.18422241147040967717@git-01.infra.openwrt.org>
Message-ID: <mailman.154972.1731027492.1280.lede-commits@lists.infradead.org>

dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/0a7b7ef27cfc00521a0f99de073a7168f1b79e8f

commit 0a7b7ef27cfc00521a0f99de073a7168f1b79e8f
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Sat Nov 2 20:22:35 2024 +0000

    kernel: modules: package driver for generic MIPI DBI TFT panels
    
    Package kmod-drm-panel-mipi-dbi as well as modules it depends on in
    order to support a wide range of MIPI DBI complaint SPI-connected
    TFT panels.
    
    See https://github.com/notro/panel-mipi-dbi/ for more information on
    how to use specific panels.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 package/kernel/linux/modules/video.mk | 50 +++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/package/kernel/linux/modules/video.mk b/package/kernel/linux/modules/video.mk
index 52fc55bbad..8b4585a624 100644
--- a/package/kernel/linux/modules/video.mk
+++ b/package/kernel/linux/modules/video.mk
@@ -311,6 +311,38 @@ endef
 
 $(eval $(call KernelPackage,drm-exec))
 
+define KernelPackage/drm-dma-helper
+  SUBMENU:=$(VIDEO_MENU)
+  HIDDEN:=1
+  TITLE:=GEM DMA helper functions
+  DEPENDS:=@DISPLAY_SUPPORT +kmod-drm-kms-helper
+  KCONFIG:=CONFIG_DRM_GEM_DMA_HELPER
+  FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_dma_helper.ko
+  AUTOLOAD:=$(call AutoProbe,drm_dma_helper)
+endef
+
+define KernelPackage/drm-dma-helper/description
+  GEM DMA helper functions.
+endef
+
+$(eval $(call KernelPackage,drm-dma-helper))
+
+define KernelPackage/drm-mipi-dbi
+  SUBMENU:=$(VIDEO_MENU)
+  HIDDEN:=1
+  TITLE:=MIPI DBI helpers
+  DEPENDS:=@DISPLAY_SUPPORT +kmod-backlight +kmod-drm-kms-helper
+  KCONFIG:=CONFIG_DRM_MIPI_DBI
+  FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_mipi_dbi.ko
+  AUTOLOAD:=$(call AutoProbe,drm_mipi_dbi)
+endef
+
+define KernelPackage/drm-mipi-dbi/description
+  MIPI Display Bus Interface (DBI) LCD controller support.
+endef
+
+$(eval $(call KernelPackage,drm-mipi-dbi))
+
 define KernelPackage/drm-ttm
   SUBMENU:=$(VIDEO_MENU)
   TITLE:=GPU memory management subsystem
@@ -484,6 +516,24 @@ endef
 
 $(eval $(call KernelPackage,drm-imx-ldb))
 
+define KernelPackage/drm-panel-mipi-dbi
+  SUBMENU:=$(VIDEO_MENU)
+  TITLE:=Generic MIPI DBI LCD panel
+  DEPENDS:=+kmod-drm-mipi-dbi +kmod-drm-dma-helper
+  KCONFIG:=CONFIG_DRM_PANEL_MIPI_DBI \
+	CONFIG_DRM_FBDEV_EMULATION=y \
+	CONFIG_DRM_FBDEV_OVERALLOC=100
+  FILES:= \
+	$(LINUX_DIR)/drivers/gpu/drm/tiny/panel-mipi-dbi.ko
+  AUTOLOAD:=$(call AutoProbe,panel-mipi-dbi)
+endef
+
+define KernelPackage/drm-panel-mipi-dbi/description
+  Generic driver for MIPI Alliance Display Bus Interface
+endef
+
+$(eval $(call KernelPackage,drm-panel-mipi-dbi))
+
 define KernelPackage/drm-radeon
   SUBMENU:=$(VIDEO_MENU)
   TITLE:=Radeon DRM support



From lede-commits at lists.infradead.org  Fri Nov  8 01:53:38 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 08 Nov 2024 04:53:38 -0500
Subject: [openwrt/openwrt]  wifi-scripts: add free-form "tags" array option
 for wifi-iface
In-Reply-To: <173105961813.3142227.14802659295165929069@git-01.infra.openwrt.org>
References: <173105961813.3142227.14802659295165929069@git-01.infra.openwrt.org>
Message-ID: <mailman.155286.1731059622.1280.lede-commits@lists.infradead.org>

nbd pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/a3ec35cadb77265c0e00c8d3789734586a6f7111

commit a3ec35cadb77265c0e00c8d3789734586a6f7111
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Fri Nov 8 09:13:54 2024 +0100

    wifi-scripts: add free-form "tags" array option for wifi-iface
    
    This allows annotating wifi interfaces in the config in a way that can be
    queried through wifi status. One example use case is to mark wifi interfaces
    for use with specific services without having to explicitly reference the
    (often unnamed) sections from elsewhere.
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
 package/network/config/wifi-scripts/files/lib/netifd/netifd-wireless.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/network/config/wifi-scripts/files/lib/netifd/netifd-wireless.sh b/package/network/config/wifi-scripts/files/lib/netifd/netifd-wireless.sh
index 5b852e0937..c3772bb443 100644
--- a/package/network/config/wifi-scripts/files/lib/netifd/netifd-wireless.sh
+++ b/package/network/config/wifi-scripts/files/lib/netifd/netifd-wireless.sh
@@ -379,6 +379,7 @@ _wdev_common_device_config() {
 _wdev_common_iface_config() {
 	config_add_string mode ssid encryption 'key:wpakey'
 	config_add_boolean bridge_isolate
+	config_add_array tags
 }
 
 _wdev_common_vlan_config() {



From lede-commits at lists.infradead.org  Fri Nov  8 01:53:39 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 08 Nov 2024 04:53:39 -0500
Subject: [openwrt/openwrt]  netifd: update to Git HEAD (2024-11-08)
In-Reply-To: <173105961813.3142227.14802659295165929069@git-01.infra.openwrt.org>
References: <173105961813.3142227.14802659295165929069@git-01.infra.openwrt.org>
Message-ID: <mailman.155287.1731059622.1280.lede-commits@lists.infradead.org>

nbd pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/5f68e243338a653f44f079acc001de369aa42efa

commit 5f68e243338a653f44f079acc001de369aa42efa
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Fri Nov 8 10:50:39 2024 +0100

    netifd: update to Git HEAD (2024-11-08)
    
    e93f6c3fc729 main: fix format string related warnings for log/debug printf functions
    6ab44a2413f9 fix signed/unsigned comparison warnings
    4fe997b61d7d system-dummy: add system_if_apply_settings_after_up
    992d33cb42a6 ubus: add notifications on wireless device state changes
    34eb11eb6f5c device/interface: add "tags" attribute from config to status dump
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
 package/network/config/netifd/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile
index 771d7dadaf..a4400c9516 100644
--- a/package/network/config/netifd/Makefile
+++ b/package/network/config/netifd/Makefile
@@ -5,9 +5,9 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
-PKG_SOURCE_DATE:=2024-10-06
-PKG_SOURCE_VERSION:=3c6265fdbd02ebd35fa3e7a58d6dfeed081a09d7
-PKG_MIRROR_HASH:=00b01243b99995dc52a047e5663cf5c7732f8defd6b726f73ac15e142b02b4fa
+PKG_SOURCE_DATE:=2024-11-08
+PKG_SOURCE_VERSION:=34eb11eb6f5c62de480d6192f0ca840093127fee
+PKG_MIRROR_HASH:=c4c2bc626426d2cd73c9ece54b22ada6ed6254afa992f51b8725312aca240cfd
 PKG_MAINTAINER:=Felix Fietkau <nbd at nbd.name>
 
 PKG_LICENSE:=GPL-2.0



From lede-commits at lists.infradead.org  Fri Nov  8 04:38:07 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 08 Nov 2024 07:38:07 -0500
Subject: [openwrt/openwrt]  rampis: mt7621: Re-enable Edgerouter-X image
 builds
In-Reply-To: <173106948245.3580220.11554552487107265879@git-01.infra.openwrt.org>
References: <173106948245.3580220.11554552487107265879@git-01.infra.openwrt.org>
Message-ID: <mailman.155485.1731069608.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/71b4842e3bdaed91cd2daa4b28a208559c3de7c6

commit 71b4842e3bdaed91cd2daa4b28a208559c3de7c6
Author: Tim Lunn <tim at feathertop.org>
AuthorDate: Thu Apr 18 10:53:54 2024 +1000

    rampis: mt7621: Re-enable Edgerouter-X image builds
    
    With the new layout providing 6MB for kernel there will be no issues
    with kernel size affecting build of images.
    
    Re-enable image builds for Edgerouter-X and X-SFP.
    
    Signed-off-by: Tim Lunn <tim at feathertop.org>
    Tested-by: Mauri Sandberg <maukka at ext.kapsi.fi>
    Link: https://github.com/openwrt/openwrt/pull/15194
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ramips/image/mt7621.mk | 1 -
 1 file changed, 1 deletion(-)

diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index f4dacba894..b9692c5f3a 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -2869,7 +2869,6 @@ define Device/ubnt_edgerouter_common
   DEVICE_COMPAT_MESSAGE :=  Partition table has been changed due to kernel size restrictions. \
     Refer to the wiki page for instructions to migrate to the new layout: \
     https://openwrt.org/toh/ubiquiti/edgerouter_x_er-x_ka
-  DEFAULT := n
 endef
 
 define Device/ubnt_edgerouter-x



From lede-commits at lists.infradead.org  Fri Nov  8 04:38:03 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 08 Nov 2024 07:38:03 -0500
Subject: [openwrt/openwrt]  rampis: mt7621: Edgerouter-X disable toggling of
 kernel slots
In-Reply-To: <173106948245.3580220.11554552487107265879@git-01.infra.openwrt.org>
References: <173106948245.3580220.11554552487107265879@git-01.infra.openwrt.org>
Message-ID: <mailman.155486.1731069608.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/5e355f1f9084c1b6de3151fbcde948d736292d6c

commit 5e355f1f9084c1b6de3151fbcde948d736292d6c
Author: Tim Lunn <tim at feathertop.org>
AuthorDate: Wed Apr 17 12:51:22 2024 +1000

    rampis: mt7621: Edgerouter-X disable toggling of kernel slots
    
    Uboot selects which kernel slot to boot based on a flag in the factory
    mtd partition. Patch ubnt.sh to ensure always flash to kernel1 slot and
    update flag if required.
    
    Signed-off-by: Tim Lunn <tim at feathertop.org>
    Tested-by: Mauri Sandberg <maukka at ext.kapsi.fi>
    Link: https://github.com/openwrt/openwrt/pull/15194
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../ramips/mt7621/base-files/lib/upgrade/ubnt.sh   | 39 ++++------------------
 1 file changed, 7 insertions(+), 32 deletions(-)

diff --git a/target/linux/ramips/mt7621/base-files/lib/upgrade/ubnt.sh b/target/linux/ramips/mt7621/base-files/lib/upgrade/ubnt.sh
index 748ec8e628..7e9d937d79 100644
--- a/target/linux/ramips/mt7621/base-files/lib/upgrade/ubnt.sh
+++ b/target/linux/ramips/mt7621/base-files/lib/upgrade/ubnt.sh
@@ -8,32 +8,16 @@
 
 UBNT_ERX_KERNEL_INDEX_OFFSET=160
 
-ubnt_get_target_kernel() {
+ubnt_update_kernel_flag() {
 	local factory_mtd=$1
-	local current_kernel_index=$(hexdump -s $UBNT_ERX_KERNEL_INDEX_OFFSET -n 1 -e '/1 "%X "' ${factory_mtd})
+	local kernel_index=$(hexdump -s $UBNT_ERX_KERNEL_INDEX_OFFSET -n 1 -e '/1 "%X "' ${factory_mtd})
 
-	if [ $current_kernel_index == "0" ]; then
-		echo 'kernel2'
-	elif [ $current_kernel_index == "1" ]; then
-		echo 'kernel1'
-	fi
-}
-
-ubnt_update_target_kernel() {
-	local factory_mtd=$1
-	local kernel_part=$2
-
-	local new_kernel_index
-	if [ $kernel_part == "kernel1" ]; then
-		new_kernel_index="\x00"
-	elif [ $kernel_part == "kernel2" ]; then
-		new_kernel_index="\x01"
-	else
-		echo 'Unknown kernel image index' >&2
-		return 1
+	if [ $kernel_index = "0" ]; then
+		echo "Kernel flag already set to kernel slot 1"
+		return 0
 	fi
 
-	if ! (echo -e $new_kernel_index | dd of=${factory_mtd} bs=1 count=1 seek=$UBNT_ERX_KERNEL_INDEX_OFFSET); then
+	if ! (echo -e "\x00" | dd of=${factory_mtd} bs=1 count=1 seek=$UBNT_ERX_KERNEL_INDEX_OFFSET); then
 		echo 'Failed to update kernel bootup index' >&2
 		return 1
 	fi
@@ -46,15 +30,6 @@ platform_upgrade_ubnt_erx() {
 		exit 1
 	fi
 
-	local kernel_part="$(ubnt_get_target_kernel ${factory_mtd})"
-	if [ -z "$kernel_part" ]; then
-		echo "cannot find factory partition" >&2
-		exit 1
-	fi
-
-	# This is a global defined in nand.sh, sets partition kernel will be flashed into
-	CI_KERNPART=${kernel_part}
-
 	#Remove volume possibly left over from stock firmware
 	local ubidev="$( nand_find_ubi "$CI_UBIPART" )"
 	if [ -z "$ubidev" ]; then
@@ -72,7 +47,7 @@ platform_upgrade_ubnt_erx() {
 		[ -n "$troot_ubivol" ] && ubirmvol /dev/$ubidev -N troot || true
 	fi
 
-	ubnt_update_target_kernel ${factory_mtd} ${kernel_part} || exit 1
+	ubnt_update_kernel_flag ${factory_mtd} || exit 1
 
 	nand_do_upgrade "$1"
 }



From lede-commits at lists.infradead.org  Fri Nov  8 04:38:02 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 08 Nov 2024 07:38:02 -0500
Subject: [openwrt/openwrt]  rampis: mt7621: Convert Edgerouter-X dts to single
 kernel config
In-Reply-To: <173106948245.3580220.11554552487107265879@git-01.infra.openwrt.org>
References: <173106948245.3580220.11554552487107265879@git-01.infra.openwrt.org>
Message-ID: <mailman.155487.1731069608.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/dc51c4355d48e91ed8fd06d70f0bf71b0b4bc4d2

commit dc51c4355d48e91ed8fd06d70f0bf71b0b4bc4d2
Author: Tim Lunn <tim at feathertop.org>
AuthorDate: Wed Apr 17 10:49:49 2024 +1000

    rampis: mt7621: Convert Edgerouter-X dts to single kernel config
    
    The OEM layout for Edgerouter X provides for two 3MB kernel slots.
    As of linux 6.1 the kernel images no longer fit and as such
    Edgerouter X builds have been disabled in Main.
    
    Revise the layout to make kernel1 slot 6MB and drop kernel2 slot.
    
    This patch applies the required changes to the dts file.
    
    Signed-off-by: Tim Lunn <tim at feathertop.org>
    Tested-by: Mauri Sandberg <maukka at ext.kapsi.fi>
    Link: https://github.com/openwrt/openwrt/pull/15194
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi
index 0902ad56b9..dc9908ba34 100644
--- a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi
+++ b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi
@@ -100,13 +100,8 @@
 		};
 
 		partition at 140000 {
-			label = "kernel1";
-			reg = <0x140000 0x300000>;
-		};
-
-		partition at 440000 {
-			label = "kernel2";
-			reg = <0x440000 0x300000>;
+			label = "kernel";
+			reg = <0x140000 0x600000>;
 		};
 
 		partition at 740000 {



From lede-commits at lists.infradead.org  Fri Nov  8 04:38:05 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 08 Nov 2024 07:38:05 -0500
Subject: [openwrt/openwrt]  rampis: mt7621: Edgerouter-X set compat version
 message
In-Reply-To: <173106948245.3580220.11554552487107265879@git-01.infra.openwrt.org>
References: <173106948245.3580220.11554552487107265879@git-01.infra.openwrt.org>
Message-ID: <mailman.155490.1731069608.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/70c371d91cda300d7c655f019cb2076d2dd537fb

commit 70c371d91cda300d7c655f019cb2076d2dd537fb
Author: Tim Lunn <tim at feathertop.org>
AuthorDate: Thu Apr 18 10:56:07 2024 +1000

    rampis: mt7621: Edgerouter-X set compat version message
    
    Refer user to the wiki page for instructions on how to migrate to the
    new kernel layout.
    
    Signed-off-by: Tim Lunn <tim at feathertop.org>
    Tested-by: Mauri Sandberg <maukka at ext.kapsi.fi>
    Link: https://github.com/openwrt/openwrt/pull/15194
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ramips/image/mt7621.mk | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index 27adb06bf7..f4dacba894 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -2865,6 +2865,10 @@ define Device/ubnt_edgerouter_common
 	ubnt-erx-factory-image $(KDIR)/tmp/$$(KERNEL_INITRAMFS_PREFIX)-factory.tar
   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
   DEVICE_PACKAGES += -wpad-basic-mbedtls -uboot-envtools
+  DEVICE_COMPAT_VERSION := 2.0
+  DEVICE_COMPAT_MESSAGE :=  Partition table has been changed due to kernel size restrictions. \
+    Refer to the wiki page for instructions to migrate to the new layout: \
+    https://openwrt.org/toh/ubiquiti/edgerouter_x_er-x_ka
   DEFAULT := n
 endef
 



From lede-commits at lists.infradead.org  Fri Nov  8 04:38:08 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 08 Nov 2024 07:38:08 -0500
Subject: [openwrt/openwrt]  ramips: mt7621: Edgerouter-X drop factory image
In-Reply-To: <173106948245.3580220.11554552487107265879@git-01.infra.openwrt.org>
References: <173106948245.3580220.11554552487107265879@git-01.infra.openwrt.org>
Message-ID: <mailman.155491.1731069608.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/4d90b79704efba57ab158c47ae6936ce4c1ef185

commit 4d90b79704efba57ab158c47ae6936ce4c1ef185
Author: Tim Lunn <tim at feathertop.org>
AuthorDate: Fri Apr 19 22:16:11 2024 +1000

    ramips: mt7621: Edgerouter-X drop factory image
    
    Edgerouter-X factory images have not built automatically since 19.x due
    to images being over 3MB. While it was possible to build custom images
    with very stripped down config, this is no longer possible with the size
    increases of linux 6.1 and 6.6.
    
    Drop code for generation of factory images, if some dev later wishes to
    try custom images they can revert this commit.
    
    Signed-off-by: Tim Lunn <tim at feathertop.org>
    Link: https://github.com/openwrt/openwrt/pull/15194
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ramips/image/mt7621.mk | 26 --------------------------
 1 file changed, 26 deletions(-)

diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index b9692c5f3a..bebe40c216 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -229,30 +229,6 @@ define Build/belkin-header
 	mv $@.new $@
 endef
 
-define Build/ubnt-erx-factory-image
-	if [ -e $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) -a "$$(stat -c%s $@)" -lt "$(KERNEL_SIZE)" ]; then \
-		echo '21001:7' > $(1).compat; \
-		$(TAR) -cf $(1) --transform='s/^.*/compat/' $(1).compat; \
-		\
-		$(TAR) -rf $(1) --transform='s/^.*/vmlinux.tmp/' $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE); \
-		$(MKHASH) md5 $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) > $(1).md5; \
-		$(TAR) -rf $(1) --transform='s/^.*/vmlinux.tmp.md5/' $(1).md5; \
-		\
-		echo "dummy" > $(1).rootfs; \
-		$(TAR) -rf $(1) --transform='s/^.*/squashfs.tmp/' $(1).rootfs; \
-		\
-		$(MKHASH) md5 $(1).rootfs > $(1).md5; \
-		$(TAR) -rf $(1) --transform='s/^.*/squashfs.tmp.md5/' $(1).md5; \
-		\
-		echo '$(BOARD) $(VERSION_CODE) $(VERSION_NUMBER)' > $(1).version; \
-		$(TAR) -rf $(1) --transform='s/^.*/version.tmp/' $(1).version; \
-		\
-		$(CP) $(1) $(BIN_DIR)/; \
-	else \
-		echo "WARNING: initramfs kernel image too big, cannot generate factory image (actual $$(stat -c%s $@); max $(KERNEL_SIZE))" >&2; \
-	fi
-endef
-
 define Build/zytrx-header
 	$(eval board=$(word 1,$(1)))
 	$(eval version=$(word 2,$(1)))
@@ -2861,8 +2837,6 @@ define Device/ubnt_edgerouter_common
   IMAGE_SIZE := 256768k
   FILESYSTEMS := squashfs
   KERNEL_SIZE := 6144k
-  KERNEL_INITRAMFS := $$(KERNEL) | \
-	ubnt-erx-factory-image $(KDIR)/tmp/$$(KERNEL_INITRAMFS_PREFIX)-factory.tar
   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
   DEVICE_PACKAGES += -wpad-basic-mbedtls -uboot-envtools
   DEVICE_COMPAT_VERSION := 2.0



From lede-commits at lists.infradead.org  Fri Nov  8 04:38:04 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 08 Nov 2024 07:38:04 -0500
Subject: [openwrt/openwrt]  rampis: mt7621: resize Edgerouter-X kernel size to
 6MB
In-Reply-To: <173106948245.3580220.11554552487107265879@git-01.infra.openwrt.org>
References: <173106948245.3580220.11554552487107265879@git-01.infra.openwrt.org>
Message-ID: <mailman.155492.1731069608.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/09a6bffb6e0a714f20d71043ae8382af4c5925b6

commit 09a6bffb6e0a714f20d71043ae8382af4c5925b6
Author: Tim Lunn <tim at feathertop.org>
AuthorDate: Wed Apr 17 10:51:35 2024 +1000

    rampis: mt7621: resize Edgerouter-X kernel size to 6MB
    
    With the updated partition layout set in dts, set the KERNEL_SIZE
    parameter to 6MB allowing builds of Linux 6.1 and later to fit.
    
    Signed-off-by: Tim Lunn <tim at feathertop.org>
    Tested-by: Mauri Sandberg <maukka at ext.kapsi.fi>
    Link: https://github.com/openwrt/openwrt/pull/15194
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ramips/image/mt7621.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index 9654e237a8..27adb06bf7 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -2860,7 +2860,7 @@ define Device/ubnt_edgerouter_common
   DEVICE_VENDOR := Ubiquiti
   IMAGE_SIZE := 256768k
   FILESYSTEMS := squashfs
-  KERNEL_SIZE := 3145728
+  KERNEL_SIZE := 6144k
   KERNEL_INITRAMFS := $$(KERNEL) | \
 	ubnt-erx-factory-image $(KDIR)/tmp/$$(KERNEL_INITRAMFS_PREFIX)-factory.tar
   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata



From lede-commits at lists.infradead.org  Fri Nov  8 04:38:09 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 08 Nov 2024 07:38:09 -0500
Subject: [openwrt/openwrt]  rampis: mt7621: Edgerouter-X adjust IMAGE_SIZE to
 reflect new kernel size
In-Reply-To: <173106948245.3580220.11554552487107265879@git-01.infra.openwrt.org>
References: <173106948245.3580220.11554552487107265879@git-01.infra.openwrt.org>
Message-ID: <mailman.155493.1731069608.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/5b406bccaccadb494cad139b3f69e17ab62d3968

commit 5b406bccaccadb494cad139b3f69e17ab62d3968
Author: Tim Lunn <tim at feathertop.org>
AuthorDate: Fri Apr 26 11:27:45 2024 +1000

    rampis: mt7621: Edgerouter-X adjust IMAGE_SIZE to reflect new kernel size
    
    IMAGE_SIZE was previously set to kernel1 + ubi size = 256768k, now
    kernel1 is 6MB adjust this value to add 3072k to total image size.
    
    Signed-off-by: Tim Lunn <tim at feathertop.org>
    Link: https://github.com/openwrt/openwrt/pull/15194
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ramips/image/mt7621.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index bebe40c216..1dc1219d24 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -2834,7 +2834,7 @@ define Device/ubnt_edgerouter_common
   $(Device/dsa-migration)
   $(Device/uimage-lzma-loader)
   DEVICE_VENDOR := Ubiquiti
-  IMAGE_SIZE := 256768k
+  IMAGE_SIZE := 259840k
   FILESYSTEMS := squashfs
   KERNEL_SIZE := 6144k
   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata



From lede-commits at lists.infradead.org  Fri Nov  8 04:38:06 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 08 Nov 2024 07:38:06 -0500
Subject: [openwrt/openwrt]  rampis: mt7621: Edgerouter-X update compat version
 to 2.0
In-Reply-To: <173106948245.3580220.11554552487107265879@git-01.infra.openwrt.org>
References: <173106948245.3580220.11554552487107265879@git-01.infra.openwrt.org>
Message-ID: <mailman.155494.1731069608.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/1bdbd511b27017157e92ffe128e66853d169dcbf

commit 1bdbd511b27017157e92ffe128e66853d169dcbf
Author: Tim Lunn <tim at feathertop.org>
AuthorDate: Thu Apr 18 10:57:17 2024 +1000

    rampis: mt7621: Edgerouter-X update compat version to 2.0
    
    Use compat version to indicate that the new layout for larger kernels
    is in place. This handled by the patch to ubnt.sh to always select
    the kernel1 slot for flashing and as active kernel slot.
    
    Signed-off-by: Tim Lunn <tim at feathertop.org>
    Tested-by: Mauri Sandberg <maukka at ext.kapsi.fi>
    Link: https://github.com/openwrt/openwrt/pull/15194
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ramips/mt7621/base-files/etc/board.d/05_compat-version | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/05_compat-version b/target/linux/ramips/mt7621/base-files/etc/board.d/05_compat-version
index acc69021d0..156fb1735e 100644
--- a/target/linux/ramips/mt7621/base-files/etc/board.d/05_compat-version
+++ b/target/linux/ramips/mt7621/base-files/etc/board.d/05_compat-version
@@ -8,6 +8,8 @@
 board_config_update
 
 case "$(board_name)" in
+	ubnt,edgerouter-x|\
+	ubnt,edgerouter-x-sfp|\
 	iptime,ax2004m)
 		ucidef_set_compat_version "2.0"
 		;;



From lede-commits at lists.infradead.org  Fri Nov  8 08:22:35 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 08 Nov 2024 11:22:35 -0500
Subject: [openwrt/openwrt]  vrx518_tc: allow larger MTU to support RFC4638
In-Reply-To: <173108295583.81529.8871350628063324649@git-01.infra.openwrt.org>
References: <173108295583.81529.8871350628063324649@git-01.infra.openwrt.org>
Message-ID: <mailman.155753.1731083385.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/ca53f2d430ce1f9ff5a560291de1e93380963417

commit ca53f2d430ce1f9ff5a560291de1e93380963417
Author: Andrew MacIntyre <andymac at pcug.org.au>
AuthorDate: Fri Nov 8 23:44:13 2024 +1100

    vrx518_tc: allow larger MTU to support RFC4638
    
    vrx518_tc currently sets the interface maximum MTU to the ethernet default
    of 1500 bytes by default via ether_setup() called from ptm_setup().
    
    To support 1508 byte baby jumbo frames (RFC4638) for PPPoE connections
    over VDSL links as already supported by the VR9 ltq_ptm driver ([1], [2])
    set the interface maximum MTU to MAX_MTU.
    
    MAX_MTU is defined in dcdp/inc/tc_common.h to 2002 bytes and this value is
    used in ptm_change_mtu() and elsewhere as the maximum MTU, however this is
    short circuited by checks against the interface maximum MTU.
    
    [1]: https://forum.openwrt.org/t/fritzbox-7530-and-rfc4638-baby-jumbo-frames/181327
    [2]: https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=8a2a20e71e2909f84dab47e51dfda9e292a6c1ae
    
    Signed-off-by: Andrew MacIntyre <andymac at pcug.org.au>
    Link: https://github.com/openwrt/openwrt/pull/16856
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 ...tm_tc-allow-larger-mtu-to-support-rfc4638.patch | 34 ++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/package/kernel/lantiq/vrx518_tc/patches/206-dcdp-ptm_tc-allow-larger-mtu-to-support-rfc4638.patch b/package/kernel/lantiq/vrx518_tc/patches/206-dcdp-ptm_tc-allow-larger-mtu-to-support-rfc4638.patch
new file mode 100644
index 0000000000..35a709e9fa
--- /dev/null
+++ b/package/kernel/lantiq/vrx518_tc/patches/206-dcdp-ptm_tc-allow-larger-mtu-to-support-rfc4638.patch
@@ -0,0 +1,34 @@
+From 3983dc1674fec43beb8ce9d9bfdd6302fef86eae Mon Sep 17 00:00:00 2001
+From: Andrew MacIntyre <andymac at pcug.org.au>
+Date: Mon, 4 Nov 2024 22:41:25 +1100
+Subject: [PATCH] vrx518_tc: allow larger MTU to support RFC4638
+
+vrx518_tc currently sets the interface maximum MTU to the ethernet default
+of 1500 bytes by default via ether_setup() called from ptm_setup().
+
+To support 1508 byte baby jumbo frames (RFC4638) for PPPoE connections
+over VDSL links as already supported by the VR9 ltq_ptm driver ([1], [2])
+set the interface maximum MTU to MAX_MTU.
+
+MAX_MTU is defined in dcdp/inc/tc_common.h to 2002 bytes and this value is
+used in ptm_change_mtu() and elsewhere as the maximum MTU, however this is
+short circuited by checks against the interface maximum MTU.
+
+[1]: https://forum.openwrt.org/t/fritzbox-7530-and-rfc4638-baby-jumbo-frames/181327
+[2]: https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=8a2a20e71e2909f84dab47e51dfda9e292a6c1ae
+
+Signed-off-by: Andrew MacIntyre <andymac at pcug.org.au>
+---
+ dcdp/ptm_tc.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/dcdp/ptm_tc.c	2023-12-17 16:11:22.503500398 +1100
++++ b/dcdp/ptm_tc.c	2024-01-26 16:48:49.881623474 +1100
+@@ -657,6 +657,7 @@ static void ptm_setup(struct net_device
+ 	ether_setup(dev);
+ 	dev->watchdog_timeo = 10 * HZ;
+ 	dev->netdev_ops = &g_ptm_netdev_ops;
++	dev->max_mtu = MAX_MTU;
+ }
+ 
+ static int ptm_dev_init(struct tc_priv *tc_priv, u32 id,



From lede-commits at lists.infradead.org  Fri Nov  8 08:23:22 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 08 Nov 2024 11:23:22 -0500
Subject: [openwrt/openwrt]  vrx518_tc: allow larger MTU to support RFC4638
In-Reply-To: <173108300219.82801.3019545779694182738@git-01.infra.openwrt.org>
References: <173108300219.82801.3019545779694182738@git-01.infra.openwrt.org>
Message-ID: <mailman.155756.1731083385.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/c0a50b1d59b6555c1a41303177061115c1949e2d

commit c0a50b1d59b6555c1a41303177061115c1949e2d
Author: Andrew MacIntyre <andymac at pcug.org.au>
AuthorDate: Fri Nov 8 23:44:13 2024 +1100

    vrx518_tc: allow larger MTU to support RFC4638
    
    vrx518_tc currently sets the interface maximum MTU to the ethernet default
    of 1500 bytes by default via ether_setup() called from ptm_setup().
    
    To support 1508 byte baby jumbo frames (RFC4638) for PPPoE connections
    over VDSL links as already supported by the VR9 ltq_ptm driver ([1], [2])
    set the interface maximum MTU to MAX_MTU.
    
    MAX_MTU is defined in dcdp/inc/tc_common.h to 2002 bytes and this value is
    used in ptm_change_mtu() and elsewhere as the maximum MTU, however this is
    short circuited by checks against the interface maximum MTU.
    
    [1]: https://forum.openwrt.org/t/fritzbox-7530-and-rfc4638-baby-jumbo-frames/181327
    [2]: https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=8a2a20e71e2909f84dab47e51dfda9e292a6c1ae
    
    Signed-off-by: Andrew MacIntyre <andymac at pcug.org.au>
    Link: https://github.com/openwrt/openwrt/pull/16856
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit ca53f2d430ce1f9ff5a560291de1e93380963417)
---
 ...tm_tc-allow-larger-mtu-to-support-rfc4638.patch | 34 ++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/package/kernel/lantiq/vrx518_tc/patches/206-dcdp-ptm_tc-allow-larger-mtu-to-support-rfc4638.patch b/package/kernel/lantiq/vrx518_tc/patches/206-dcdp-ptm_tc-allow-larger-mtu-to-support-rfc4638.patch
new file mode 100644
index 0000000000..35a709e9fa
--- /dev/null
+++ b/package/kernel/lantiq/vrx518_tc/patches/206-dcdp-ptm_tc-allow-larger-mtu-to-support-rfc4638.patch
@@ -0,0 +1,34 @@
+From 3983dc1674fec43beb8ce9d9bfdd6302fef86eae Mon Sep 17 00:00:00 2001
+From: Andrew MacIntyre <andymac at pcug.org.au>
+Date: Mon, 4 Nov 2024 22:41:25 +1100
+Subject: [PATCH] vrx518_tc: allow larger MTU to support RFC4638
+
+vrx518_tc currently sets the interface maximum MTU to the ethernet default
+of 1500 bytes by default via ether_setup() called from ptm_setup().
+
+To support 1508 byte baby jumbo frames (RFC4638) for PPPoE connections
+over VDSL links as already supported by the VR9 ltq_ptm driver ([1], [2])
+set the interface maximum MTU to MAX_MTU.
+
+MAX_MTU is defined in dcdp/inc/tc_common.h to 2002 bytes and this value is
+used in ptm_change_mtu() and elsewhere as the maximum MTU, however this is
+short circuited by checks against the interface maximum MTU.
+
+[1]: https://forum.openwrt.org/t/fritzbox-7530-and-rfc4638-baby-jumbo-frames/181327
+[2]: https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=8a2a20e71e2909f84dab47e51dfda9e292a6c1ae
+
+Signed-off-by: Andrew MacIntyre <andymac at pcug.org.au>
+---
+ dcdp/ptm_tc.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/dcdp/ptm_tc.c	2023-12-17 16:11:22.503500398 +1100
++++ b/dcdp/ptm_tc.c	2024-01-26 16:48:49.881623474 +1100
+@@ -657,6 +657,7 @@ static void ptm_setup(struct net_device
+ 	ether_setup(dev);
+ 	dev->watchdog_timeo = 10 * HZ;
+ 	dev->netdev_ops = &g_ptm_netdev_ops;
++	dev->max_mtu = MAX_MTU;
+ }
+ 
+ static int ptm_dev_init(struct tc_priv *tc_priv, u32 id,



From lede-commits at lists.infradead.org  Fri Nov  8 18:21:56 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 08 Nov 2024 21:21:56 -0500
Subject: [openwrt/openwrt]  ath79: Add support for Sophos AP15C
In-Reply-To: <173111891634.1529918.4490723930533504123@git-01.infra.openwrt.org>
References: <173111891634.1529918.4490723930533504123@git-01.infra.openwrt.org>
Message-ID: <mailman.156103.1731118926.1280.lede-commits@lists.infradead.org>

blocktrron pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/a7abc7ec3b61be553f33c49e5acc90a4d539d992

commit a7abc7ec3b61be553f33c49e5acc90a4d539d992
Author: David Lutz <kpanic at hirnduenger.de>
AuthorDate: Tue Nov 5 10:55:43 2024 +0100

    ath79: Add support for Sophos AP15C
    
    The Sophos AP15C uses the same hardware as the AP15, but has a reset button.
    
    Based on:
    commit 6f1efb289837 ("ath79: add support for Sophos AP100/AP55 family")
    author    Andrew Powers-Holmes <andrew at omnom.net>
              Fri, 3 Sep 2021 15:53:57 +0200 (23:53 +1000)
    committer Hauke Mehrtens <hauke at hauke-m.de>
              Sat, 16 Apr 2022 16:59:29 +0200 (16:59 +0200)
    
    Unique to AP15C:
     - Reset button
     - External RJ45 serial console port
    
    Flashing instructions:
    
    This firmware can be flashed either via a compatible Sophos SG or XG
    firewall appliance, which does not require disassembling the device, or via
    the U-Boot console available on the internal UART header.
    
    To flash via XG appliance:
     - Register on Sophos' website for a no-cost Home Use XG firewall license
     - Download and install the XG software on a compatible PC or virtual
       machine, complete initial appliance setup, and enable SSH console access
     - Connect the target AP device to the XG appliance's LAN interface
     - Approve the AP from the XG Web UI and wait until it shows as Active
       (this can take 3-5 minutes)
     - Connect to the XG appliance over SSH and access the Advanced Console
       (Menu option 5, then menu option 3)
     - Run `sudo awetool` and select the menu option to connect to an AP via
       SSH. When prompted to enable SSH on the target AP, select Yes.
     - Wait 2-3 minutes, then select the AP from the awetool menu again. This
       will connect you to a root shell on the target AP.
     - Copy the firmware to /tmp/openwrt.bin on the target AP via SCP/TFTP/etc
     - Run `mtd -r write /tmp/openwrt.bin astaro_image`
     - When complete, the access point will reboot to OpenWRT.
    
    To flash via U-Boot serial console:
     - Configure a TFTP server on your PC, and set IP address 192.168.99.8 with
       netmask 255.255.255.0
     - Copy the firmware .bin to the TFTP server and rename to 'uImage_AP15C'
     - Open the target AP's enclosure and locate the 4-pin 3.3V UART header [4]
     - Connect the AP ethernet to your PC's ethernet port
     - Connect a terminal to the UART at 115200 8/N/1 as usual
     - Power on the AP and press a key to cancel autoboot when prompted
     - Run the following commands at the U-Boot console:
        - `tftpboot`
        - `cp.b $fileaddr 0x9f070000 $filesize`
        - `boot`
     - The access point will boot to OpenWRT.
    
    Signed-off-by: David Lutz <kpanic at hirnduenger.de>
---
 package/boot/uboot-envtools/files/ath79            |   1 +
 target/linux/ath79/dts/qca9557_sophos_ap15c.dts    | 159 +++++++++++++++++++++
 .../generic/base-files/etc/board.d/02_network      |   1 +
 target/linux/ath79/image/generic.mk                |   8 ++
 4 files changed, 169 insertions(+)

diff --git a/package/boot/uboot-envtools/files/ath79 b/package/boot/uboot-envtools/files/ath79
index 1d9d3bcfaa..c6d23ce73d 100644
--- a/package/boot/uboot-envtools/files/ath79
+++ b/package/boot/uboot-envtools/files/ath79
@@ -163,6 +163,7 @@ ruckus,zf7372)
 	ubootenv_add_uci_config "/dev/mtd2" "0x0" "0x40000" "0x10000"
 	;;
 sophos,ap15|\
+sophos,ap15c|\
 sophos,ap55|\
 sophos,ap55c|\
 sophos,ap100|\
diff --git a/target/linux/ath79/dts/qca9557_sophos_ap15c.dts b/target/linux/ath79/dts/qca9557_sophos_ap15c.dts
new file mode 100644
index 0000000000..68d02e97a5
--- /dev/null
+++ b/target/linux/ath79/dts/qca9557_sophos_ap15c.dts
@@ -0,0 +1,159 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qca955x.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+	compatible = "sophos,ap15c", "qca,qca9557";
+	model = "Sophos AP15C";
+
+	aliases {
+		led-boot = &led_status_green;
+		led-failsafe = &led_status_yellow;
+		led-running = &led_status_green;
+		led-upgrade = &led_status_yellow;
+		label-mac-device = &eth0;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+			debounce-interval = <60>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led_status_green: status_green {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_GREEN>;
+			gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+			default-state = "on";
+		};
+
+		led_status_yellow: status_yellow {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_YELLOW>;
+			gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
+
+&spi {
+	status = "okay";
+
+	flash at 0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <25000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "u-boot";
+				reg = <0x000000 0x040000>;
+				read-only;
+			};
+
+			partition at 40000 {
+				label = "u-boot-env";
+				reg = <0x040000 0x010000>;
+			};
+
+			partition at 50000 {
+				label = "art";
+				reg = <0x050000 0x010000>;
+				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					cal_art_1000: calibration at 1000 {
+						reg = <0x1000 0x440>;
+					};
+				};
+			};
+
+			partition at 60000 {
+				label = "config";
+				reg = <0x060000 0x010000>;
+				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_config_201a: macaddr at 201a {
+						reg = <0x201a 0x6>;
+					};
+				};
+			};
+
+			partition at 70000 {
+				compatible = "denx,uimage";
+				label = "firmware";
+				reg = <0x070000 0xf90000>;
+			};
+		};
+	};
+};
+
+&mdio0 {
+	status = "okay";
+
+	phy-mask = <0x10>;
+
+	phy4: ethernet-phy at 4 {
+		reg = <4>;
+		eee-broken-100tx;
+		eee-broken-1000t;
+	};
+};
+
+&eth0 {
+	status = "okay";
+
+	pll-data = <0xa6000000 0xa0000101 0xa0001313>;
+
+	nvmem-cells = <&macaddr_config_201a>;
+	nvmem-cell-names = "mac-address";
+
+	phy-mode = "rgmii-id";
+	phy-handle = <&phy4>;
+
+	gmac_config: gmac-config {
+		device = <&gmac>;
+
+		rgmii-enabled = <1>;
+
+		rxdv-delay = <3>;
+		rxd-delay = <3>;
+		txen-delay = <3>;
+		txd-delay = <3>;
+	};
+};
+
+&wmac {
+	status = "okay";
+
+	nvmem-cells = <&cal_art_1000>;
+	nvmem-cell-names = "calibration";
+};
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network
index 8474c1c4c2..8f79a3fad8 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
@@ -76,6 +76,7 @@ ath79_setup_interfaces()
 	ruckus,zf7351|\
 	siemens,ws-ap3610|\
 	sophos,ap15|\
+	sophos,ap15c|\
 	sophos,ap55|\
 	sophos,ap55c|\
 	sophos,ap100|\
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index c075f050db..0173f5cb16 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -2972,6 +2972,14 @@ define Device/sophos_ap15
 endef
 TARGET_DEVICES += sophos_ap15
 
+define Device/sophos_ap15c
+  SOC := qca9557
+  DEVICE_VENDOR := Sophos
+  DEVICE_MODEL := AP15C
+  IMAGE_SIZE := 15936k
+endef
+TARGET_DEVICES += sophos_ap15c
+
 define Device/sophos_ap55
   SOC := qca9558
   DEVICE_VENDOR := Sophos



From lede-commits at lists.infradead.org  Sat Nov  9 05:56:22 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 09 Nov 2024 08:56:22 -0500
Subject: [openwrt/openwrt]  Revert "build: set PATH for post-install scripts"
In-Reply-To: <173116058289.2233701.10248729611688081076@git-01.infra.openwrt.org>
References: <173116058289.2233701.10248729611688081076@git-01.infra.openwrt.org>
Message-ID: <mailman.156270.1731160680.1280.lede-commits@lists.infradead.org>

dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/15de218a566c0563adcc184c5aa83b71b24e8cde

commit 15de218a566c0563adcc184c5aa83b71b24e8cde
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Sat Nov 9 13:06:02 2024 +0000

    Revert "build: set PATH for post-install scripts"
    
    This reverts commit 21b5ac862eed7ac373361c914cf6098cab04f503.
    The approach is flawed and cannot work in the ImageBuilder.
    Using /etc/uci-defaults/ which is run on the target is the only
    possible way.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 include/rootfs.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/rootfs.mk b/include/rootfs.mk
index ff7fd185fe..e6cadc531d 100644
--- a/include/rootfs.mk
+++ b/include/rootfs.mk
@@ -84,7 +84,7 @@ define prepare_rootfs
 			IPKG_POSTINST_PATH=./usr/lib/opkg/info/*.postinst; \
 		fi; \
 		for script in $$IPKG_POSTINST_PATH; do \
-			PATH="$(TARGET_PATH_PKG)" IPKG_INSTROOT=$(1) $$(command -v bash) $$script; \
+			IPKG_INSTROOT=$(1) $$(command -v bash) $$script; \
 			ret=$$?; \
 			if [ $$ret -ne 0 ]; then \
 				echo "postinst script $$script has failed with exit code $$ret" >&2; \



From lede-commits at lists.infradead.org  Sat Nov  9 07:46:58 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 09 Nov 2024 10:46:58 -0500
Subject: [openwrt/openwrt]  imagebuilder: cleanup package inclusion
In-Reply-To: <173116721683.2368698.14075661854813549881@git-01.infra.openwrt.org>
References: <173116721683.2368698.14075661854813549881@git-01.infra.openwrt.org>
Message-ID: <mailman.156289.1731167221.1280.lede-commits@lists.infradead.org>

aparcar pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/15b7994c0198bef0b59bc78880529017387a239d

commit 15b7994c0198bef0b59bc78880529017387a239d
Author: Paul Spooren <mail at aparcar.org>
AuthorDate: Wed Nov 6 16:34:32 2024 +0100

    imagebuilder: cleanup package inclusion
    
    Previously three different ways to include packages in an ImageBuilder
    existed:
    
    * buildbot: include libc, kernel (and base-files) in $(IB_LDIR)
    * not buildbot, standalone: include all packages in ./packages/
    * not buildbot, not standalone: include libc, kernel (and base-files) in
      ./packages/
    
    First of, the separation between *buildbot* and *not buildbot, not
    standalone* is not required, we can just always copy packages to
    ./packages instead of ever using the special place $(IB_LDIR).
    Doing so drops the need to handle the extra case and also allows to
    clean up the OPKG package installation, which no longer requries the
    `firstword` logic, things are now always at ./packages.
    
    Signed-off-by: Paul Spooren <mail at aparcar.org>
---
 target/imagebuilder/Makefile       | 13 ++-----------
 target/imagebuilder/files/Makefile |  4 ++--
 2 files changed, 4 insertions(+), 13 deletions(-)

diff --git a/target/imagebuilder/Makefile b/target/imagebuilder/Makefile
index d455cbcd7a..19f21472bd 100644
--- a/target/imagebuilder/Makefile
+++ b/target/imagebuilder/Makefile
@@ -68,25 +68,16 @@ else
 	echo 'src imagebuilder file:packages'                          >> $(PKG_BUILD_DIR)/repositories.conf
 endif
 
-ifeq ($(CONFIG_BUILDBOT),)
-  ifeq ($(CONFIG_IB_STANDALONE),)
+ifeq ($(CONFIG_IB_STANDALONE),)
 	$(FIND) $(call FeedPackageDir,libc) -type f \
 	  \( \
 		-name 'base-files-*.$(PACKAGE_SUFFIX)' -or \
 		-name 'libc-*.$(PACKAGE_SUFFIX)' -or \
 		-name 'kernel-*.$(PACKAGE_SUFFIX)' \) \
 	  -exec $(CP) -t $(PKG_BUILD_DIR)/packages {} +
-  else
+else
 	$(FIND) $(wildcard $(PACKAGE_SUBDIRS)) -type f -name '*.$(PACKAGE_SUFFIX)' \
 		-exec $(CP) -t $(PKG_BUILD_DIR)/packages/ {} +
-  endif
-else
-	$(FIND) $(call FeedPackageDir,libc) -type f \
-		\( \
-		  -name 'base-files-*.$(PACKAGE_SUFFIX)' -or \
-		  -name 'libc-*.$(PACKAGE_SUFFIX)' -or \
-		  -name 'kernel-*.$(PACKAGE_SUFFIX)' \) \
-		-exec $(CP) -t $(IB_LDIR)/ {} +
 endif
 
 ifneq ($(CONFIG_SIGNATURE_CHECK),)
diff --git a/target/imagebuilder/files/Makefile b/target/imagebuilder/files/Makefile
index 1ac05baa50..914609ada1 100644
--- a/target/imagebuilder/files/Makefile
+++ b/target/imagebuilder/files/Makefile
@@ -222,8 +222,8 @@ package_install: FORCE
 	@echo
 	@echo Installing packages...
 ifeq ($(CONFIG_USE_APK),)
-	$(OPKG) install $(firstword $(wildcard $(LINUX_DIR)/libc_*.ipk $(PACKAGE_DIR)/libc_*.ipk))
-	$(OPKG) install $(firstword $(wildcard $(LINUX_DIR)/kernel_*.ipk $(PACKAGE_DIR)/kernel_*.ipk))
+	$(OPKG) install $(wildcard $(PACKAGE_DIR)/libc_*.ipk)
+	$(OPKG) install $(wildcard $(PACKAGE_DIR)/kernel_*.ipk)
 	$(OPKG) install $(BUILD_PACKAGES)
 else
 	$(APK) add --no-scripts $(BUILD_PACKAGES)



From lede-commits at lists.infradead.org  Sat Nov  9 07:46:57 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 09 Nov 2024 10:46:57 -0500
Subject: [openwrt/openwrt]  imagebuilder: fix package inclusion and APK index
In-Reply-To: <173116721683.2368698.14075661854813549881@git-01.infra.openwrt.org>
References: <173116721683.2368698.14075661854813549881@git-01.infra.openwrt.org>
Message-ID: <mailman.156290.1731167225.1280.lede-commits@lists.infradead.org>

aparcar pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/451e2ce006eaba5341d7e33ac587719c3bf18701

commit 451e2ce006eaba5341d7e33ac587719c3bf18701
Author: Paul Spooren <mail at aparcar.org>
AuthorDate: Wed Nov 6 16:32:03 2024 +0100

    imagebuilder: fix package inclusion and APK index
    
    We need to exclude packages from the APK index which must not be
    upgraded. To do so, the packages `libc`, `kernel` and `base-files` are
    excluded to APK never suggestes them as upgradable.
    
    The previous logic would however match packages like `libcomerr0`,
    causing build failures. Make the copying and excluding logic more
    precise by adding a single dash.
    
    Signed-off-by: Paul Spooren <mail at aparcar.org>
---
 package/Makefile             |  2 +-
 target/imagebuilder/Makefile | 12 ++++++------
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/package/Makefile b/package/Makefile
index d78200fd80..b60ed10fb6 100644
--- a/package/Makefile
+++ b/package/Makefile
@@ -130,7 +130,7 @@ ifneq ($(CONFIG_USE_APK),)
 			--keys-dir $(TOPDIR) \
 			--sign $(BUILD_KEY_APK_SEC) \
 			--output packages.adb \
-			$$(ls *.apk | grep -v 'base-files\|kernel\|libc'); \
+			$$(ls *.apk | grep -v 'base-files-\|kernel-\|libc-'); \
 	done
 else
 	@for d in $(PACKAGE_SUBDIRS); do ( \
diff --git a/target/imagebuilder/Makefile b/target/imagebuilder/Makefile
index ff14a43bed..d455cbcd7a 100644
--- a/target/imagebuilder/Makefile
+++ b/target/imagebuilder/Makefile
@@ -72,9 +72,9 @@ ifeq ($(CONFIG_BUILDBOT),)
   ifeq ($(CONFIG_IB_STANDALONE),)
 	$(FIND) $(call FeedPackageDir,libc) -type f \
 	  \( \
-		-name 'base-files*.$(PACKAGE_SUFFIX)' -or \
-		-name 'libc*.$(PACKAGE_SUFFIX)' -or \
-		-name 'kernel*.$(PACKAGE_SUFFIX)' \) \
+		-name 'base-files-*.$(PACKAGE_SUFFIX)' -or \
+		-name 'libc-*.$(PACKAGE_SUFFIX)' -or \
+		-name 'kernel-*.$(PACKAGE_SUFFIX)' \) \
 	  -exec $(CP) -t $(PKG_BUILD_DIR)/packages {} +
   else
 	$(FIND) $(wildcard $(PACKAGE_SUBDIRS)) -type f -name '*.$(PACKAGE_SUFFIX)' \
@@ -83,9 +83,9 @@ ifeq ($(CONFIG_BUILDBOT),)
 else
 	$(FIND) $(call FeedPackageDir,libc) -type f \
 		\( \
-		  -name 'base-files*.$(PACKAGE_SUFFIX)' -or \
-		  -name 'libc*.$(PACKAGE_SUFFIX)' -or \
-		  -name 'kernel*.$(PACKAGE_SUFFIX)' \) \
+		  -name 'base-files-*.$(PACKAGE_SUFFIX)' -or \
+		  -name 'libc-*.$(PACKAGE_SUFFIX)' -or \
+		  -name 'kernel-*.$(PACKAGE_SUFFIX)' \) \
 		-exec $(CP) -t $(IB_LDIR)/ {} +
 endif
 



From lede-commits at lists.infradead.org  Sat Nov  9 07:46:59 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 09 Nov 2024 10:46:59 -0500
Subject: [openwrt/openwrt]  imagebuilder: init APK dirs every time
In-Reply-To: <173116721683.2368698.14075661854813549881@git-01.infra.openwrt.org>
References: <173116721683.2368698.14075661854813549881@git-01.infra.openwrt.org>
Message-ID: <mailman.156291.1731167225.1280.lede-commits@lists.infradead.org>

aparcar pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/12a73078692da9d6b2e599d4cd4eb8a18daf3c63

commit 12a73078692da9d6b2e599d4cd4eb8a18daf3c63
Author: Paul Spooren <mail at aparcar.org>
AuthorDate: Fri Nov 8 10:37:16 2024 +0100

    imagebuilder: init APK dirs every time
    
    The `--initdb` command creates basic folders required by APK,
    previoiusly it would only run a single time when package_index is
    actually called. Since the function isn't called if nothing changes,
    `--initdb` doesn't initialize the rootfs again.
    
    This commit moves it to package_reload, which runs every time.
    
    Signed-off-by: Paul Spooren <mail at aparcar.org>
---
 target/imagebuilder/files/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/imagebuilder/files/Makefile b/target/imagebuilder/files/Makefile
index 914609ada1..72b36b0862 100644
--- a/target/imagebuilder/files/Makefile
+++ b/target/imagebuilder/files/Makefile
@@ -181,7 +181,6 @@ ifeq ($(CONFIG_USE_APK),)
 	) >/dev/null 2>/dev/null
 	$(OPKG) update >&2 || true
 else
-	$(APK) add --initdb
 	(cd $(PACKAGE_DIR); $(APK) mkndx \
 		$(if $(CONFIG_SIGNATURE_CHECK), --keys-dir $(APK_KEYS) --sign $(BUILD_KEY_APK_SEC)) \
 		--allow-untrusted --output packages.adb *.apk) >/dev/null 2>/dev/null || true
@@ -200,6 +199,7 @@ ifeq ($(CONFIG_USE_APK),)
 		$(OPKG) update >&2 || true; \
 	fi
 else
+	$(APK) add --initdb
 	if [ -d "$(PACKAGE_DIR)" ] && ( \
 			[ ! -f "$(PACKAGE_DIR)/packages.adb" ] || \
 			[ "`find $(PACKAGE_DIR) -cnewer $(PACKAGE_DIR)/packages.adb`" ] ); then \



From lede-commits at lists.infradead.org  Sat Nov  9 07:46:56 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 09 Nov 2024 10:46:56 -0500
Subject: [openwrt/openwrt]  imagebuilder: fix APK for packages dir and cache
In-Reply-To: <173116721683.2368698.14075661854813549881@git-01.infra.openwrt.org>
References: <173116721683.2368698.14075661854813549881@git-01.infra.openwrt.org>
Message-ID: <mailman.156294.1731167226.1280.lede-commits@lists.infradead.org>

aparcar pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/ad1c1b7047b2e716b75031e26af544532f429f10

commit ad1c1b7047b2e716b75031e26af544532f429f10
Author: Paul Spooren <mail at aparcar.org>
AuthorDate: Fri Nov 1 12:33:49 2024 +0100

    imagebuilder: fix APK for packages dir and cache
    
    This commit solves multiple issues. First of just install the three
    special packages base-files, libc and kernel directly from the index. In
    upstream indexes, those will never appear to prevent accidental upgrades
    may breaking the system.
    
    Next, enable caching for the ImageBuilder, which speeds up consecutive
    builds from ~33 seconds to ~5 seconds. Using cache however makes APK
    create the folder `/var/cache/apk/` which conflicts with the base-files
    installation, which ships a symlink from `/var` to `/tmp`, so specify
    `--no-cache` for the rootfs initialization.
    
    Lastly, drop the use of `apk update` since APK automatically does that.
    
    Signed-off-by: Paul Spooren <mail at aparcar.org>
---
 include/rootfs.mk                  |  1 -
 package/Makefile                   |  4 ++--
 target/imagebuilder/Makefile       | 12 +++++++++---
 target/imagebuilder/files/Makefile |  4 ----
 4 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/include/rootfs.mk b/include/rootfs.mk
index e6cadc531d..26f249d818 100644
--- a/include/rootfs.mk
+++ b/include/rootfs.mk
@@ -48,7 +48,6 @@ apk = \
   $(FAKEROOT) $(STAGING_DIR_HOST)/bin/apk \
 	--root $(1) \
 	--keys-dir $(if $(APK_KEYS),$(APK_KEYS),$(TOPDIR)) \
-	--no-cache \
 	--no-logfile \
 	--preserve-env
 
diff --git a/package/Makefile b/package/Makefile
index abe76a619f..d78200fd80 100644
--- a/package/Makefile
+++ b/package/Makefile
@@ -98,7 +98,7 @@ $(curdir)/install: $(TMP_DIR)/.build $(curdir)/merge $(curdir)/merge-index
 ifneq ($(CONFIG_USE_APK),)
 	$(file >$(TMP_DIR)/apk_install_list,\
 	    $(foreach pkg,$(shell cat $(PACKAGE_INSTALL_FILES) 2>/dev/null),$(pkg)$(call GetABISuffix,$(pkg))))
-	$(call apk,$(TARGET_DIR)) add --initdb --no-scripts --arch $(ARCH_PACKAGES) \
+	$(call apk,$(TARGET_DIR)) add --no-cache --initdb --no-scripts --arch $(ARCH_PACKAGES) \
 		--repositories-file /dev/zero --repository file://$(PACKAGE_DIR_ALL)/packages.adb \
 		$$(cat $(TMP_DIR)/apk_install_list)
 else
@@ -130,7 +130,7 @@ ifneq ($(CONFIG_USE_APK),)
 			--keys-dir $(TOPDIR) \
 			--sign $(BUILD_KEY_APK_SEC) \
 			--output packages.adb \
-			$$(ls *.apk | grep -v 'kernel\|libc'); \
+			$$(ls *.apk | grep -v 'base-files\|kernel\|libc'); \
 	done
 else
 	@for d in $(PACKAGE_SUBDIRS); do ( \
diff --git a/target/imagebuilder/Makefile b/target/imagebuilder/Makefile
index bdbbb45cb1..ff14a43bed 100644
--- a/target/imagebuilder/Makefile
+++ b/target/imagebuilder/Makefile
@@ -71,15 +71,21 @@ endif
 ifeq ($(CONFIG_BUILDBOT),)
   ifeq ($(CONFIG_IB_STANDALONE),)
 	$(FIND) $(call FeedPackageDir,libc) -type f \
-		\( -name 'libc*.$(PACKAGE_SUFFIX)' -or -name 'kernel*.$(PACKAGE_SUFFIX)' -or -name 'kmod-*.$(PACKAGE_SUFFIX)' \) \
-		-exec $(CP) -t $(PKG_BUILD_DIR)/packages {} +
+	  \( \
+		-name 'base-files*.$(PACKAGE_SUFFIX)' -or \
+		-name 'libc*.$(PACKAGE_SUFFIX)' -or \
+		-name 'kernel*.$(PACKAGE_SUFFIX)' \) \
+	  -exec $(CP) -t $(PKG_BUILD_DIR)/packages {} +
   else
 	$(FIND) $(wildcard $(PACKAGE_SUBDIRS)) -type f -name '*.$(PACKAGE_SUFFIX)' \
 		-exec $(CP) -t $(PKG_BUILD_DIR)/packages/ {} +
   endif
 else
 	$(FIND) $(call FeedPackageDir,libc) -type f \
-		\( -name 'libc*.$(PACKAGE_SUFFIX)' -or -name 'kernel*.$(PACKAGE_SUFFIX)' \) \
+		\( \
+		  -name 'base-files*.$(PACKAGE_SUFFIX)' -or \
+		  -name 'libc*.$(PACKAGE_SUFFIX)' -or \
+		  -name 'kernel*.$(PACKAGE_SUFFIX)' \) \
 		-exec $(CP) -t $(IB_LDIR)/ {} +
 endif
 
diff --git a/target/imagebuilder/files/Makefile b/target/imagebuilder/files/Makefile
index f46b61b787..1ac05baa50 100644
--- a/target/imagebuilder/files/Makefile
+++ b/target/imagebuilder/files/Makefile
@@ -185,7 +185,6 @@ else
 	(cd $(PACKAGE_DIR); $(APK) mkndx \
 		$(if $(CONFIG_SIGNATURE_CHECK), --keys-dir $(APK_KEYS) --sign $(BUILD_KEY_APK_SEC)) \
 		--allow-untrusted --output packages.adb *.apk) >/dev/null 2>/dev/null || true
-	$(APK) update >&2 || true
 endif
 
 package_reload:
@@ -208,7 +207,6 @@ else
 		$(MAKE) package_index; \
 	else \
 		mkdir -p $(TARGET_DIR)/tmp; \
-		$(APK) update >&2 || true; \
 	fi
 endif
 
@@ -228,8 +226,6 @@ ifeq ($(CONFIG_USE_APK),)
 	$(OPKG) install $(firstword $(wildcard $(LINUX_DIR)/kernel_*.ipk $(PACKAGE_DIR)/kernel_*.ipk))
 	$(OPKG) install $(BUILD_PACKAGES)
 else
-	$(APK) add --no-scripts $(firstword $(wildcard $(LINUX_DIR)/libc-*.apk $(PACKAGE_DIR)/libc-*.apk))
-	$(APK) add --no-scripts $(firstword $(wildcard $(LINUX_DIR)/kernel-*.apk $(PACKAGE_DIR)/kernel-*.apk))
 	$(APK) add --no-scripts $(BUILD_PACKAGES)
 endif
 



From lede-commits at lists.infradead.org  Sat Nov  9 08:32:03 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 09 Nov 2024 11:32:03 -0500
Subject: [openwrt/openwrt]  ramips: mt7621: add missing regulator-boot-on
In-Reply-To: <173116992341.2419238.4759312319700259750@git-01.infra.openwrt.org>
References: <173116992341.2419238.4759312319700259750@git-01.infra.openwrt.org>
Message-ID: <mailman.156304.1731169954.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/a7bc6bf7dba98c77724cb8284d21a9c77c263d56

commit a7bc6bf7dba98c77724cb8284d21a9c77c263d56
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Wed Nov 6 13:23:35 2024 -0800

    ramips: mt7621: add missing regulator-boot-on
    
    What seems to be happening is that the kernel requests an ACTIVE_LOW
    gpio initially and sets it to high later based on gpios in dts.
    
    This seems to break some devices where the bootloader sets it to high.
    
    Fixes: e612900ae0 ("ramips: mt7621: convert usb power to regulators")
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16877
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts          | 1 +
 target/linux/ramips/dts/mt7621_humax_e10.dts                 | 1 +
 target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi | 1 +
 target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts        | 1 +
 target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts        | 1 +
 5 files changed, 5 insertions(+)

diff --git a/target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts b/target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts
index 00ff80e3ca..cba4ceae72 100644
--- a/target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts
+++ b/target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts
@@ -87,6 +87,7 @@
 		regulator-max-microvolt = <5000000>;
 		gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
 		enable-active-high;
+		regulator-boot-on;
 	};
 };
 
diff --git a/target/linux/ramips/dts/mt7621_humax_e10.dts b/target/linux/ramips/dts/mt7621_humax_e10.dts
index 7ba772d5e5..fd66578eaf 100644
--- a/target/linux/ramips/dts/mt7621_humax_e10.dts
+++ b/target/linux/ramips/dts/mt7621_humax_e10.dts
@@ -63,6 +63,7 @@
 		regulator-max-microvolt = <5000000>;
 		gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
 		enable-active-high;
+		regulator-boot-on;
 	};
 };
 
diff --git a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi
index 4a3de8cfba..7429ce673d 100644
--- a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi
+++ b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi
@@ -22,6 +22,7 @@
 		regulator-max-microvolt = <5000000>;
 		gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
 		enable-active-high;
+		regulator-boot-on;
 	};
 };
 
diff --git a/target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts b/target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts
index 88894325b5..2a556190d0 100644
--- a/target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts
+++ b/target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts
@@ -103,6 +103,7 @@
 		regulator-max-microvolt = <5000000>;
 		gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
 		enable-active-high;
+		regulator-boot-on;
 	};
 };
 
diff --git a/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts b/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts
index e6ff5ecf6a..2d06b949f2 100644
--- a/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts
+++ b/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts
@@ -101,6 +101,7 @@
 		regulator-max-microvolt = <5000000>;
 		gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
 		enable-active-high;
+		regulator-boot-on;
 	};
 };
 



From lede-commits at lists.infradead.org  Sat Nov  9 08:36:04 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 09 Nov 2024 11:36:04 -0500
Subject: [openwrt/openwrt]  kernel: bump 6.6 to 6.6.59
In-Reply-To: <173117016471.2421746.9550517736237416069@git-01.infra.openwrt.org>
References: <173117016471.2421746.9550517736237416069@git-01.infra.openwrt.org>
Message-ID: <mailman.156305.1731170169.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/7a1815f64dcca632d1a707cdd987b4f5431baf5a

commit 7a1815f64dcca632d1a707cdd987b4f5431baf5a
Author: Mieczyslaw Nalewaj <namiltd at yahoo.com>
AuthorDate: Sun Nov 3 08:53:37 2024 +0100

    kernel: bump 6.6 to 6.6.59
    
    Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.59
    
    Removed upstreamed:
     - generic/backport-6.6/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch[1]
     - generic/backport-6.6/780-24-v6.12-r8169-avoid-unsolicited-interrupts.patch[2]
    
    All other patches automatically rebased.
    
    1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.59&id=433742ba96baf30c21e654ce3e698ad87100593b
    2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.59&id=7d6d46b429804b1a182106e27e2f8c0e84689e1a
    
    Signed-off-by: Mieczyslaw Nalewaj <namiltd at yahoo.com>
    Link: https://github.com/openwrt/openwrt/pull/16835
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 4fc47c60006ccacda5ef644c5447ebfcb26c0680)
---
 include/kernel-6.6                                 |  4 +-
 ...Use-more-event-ring-segment-table-entries.patch |  2 +-
 ...-xhci-quirks-add-link-TRB-quirk-for-VL805.patch |  2 +-
 ...84-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch |  2 +-
 ...0-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch |  2 +-
 ...usb-dwc3-Set-DMA-and-coherent-masks-early.patch |  2 +-
 ...-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch |  2 +-
 ...-add-support-for-performing-fake-doorbell.patch |  2 +-
 ...0-net-create-a-dummy-net_device-allocator.patch |  2 +-
 ...-causing-some-targets-to-not-load-on-IPv6.patch | 43 ----------------------
 ....8-r8169-improve-handling-task-scheduling.patch |  2 +-
 ...-add-support-for-LED-s-on-RTL8168-RTL8101.patch |  4 +-
 ...169-fix-building-with-CONFIG_LEDS_CLASS-m.patch |  2 +-
 .../780-07-v6.9-r8169-simplify-EEE-handling.patch  |  4 +-
 ...80-08-v6.9-r8169-add-support-for-RTL8126A.patch |  2 +-
 ...ify-code-by-using-core-provided-pcpu-stat.patch |  4 +-
 ...r8169-add-LED-support-for-RTL8125-RTL8126.patch |  2 +-
 ...ix-LED-related-deadlock-on-module-removal.patch |  4 +-
 ...issing-conditional-compiling-for-call-to-.patch |  2 +-
 ...r8169-disable-interrupt-source-RxOverflow.patch |  2 +-
 ...6.12-r8169-add-support-for-RTL8126A-rev.b.patch |  2 +-
 ...-v6.12-r8169-avoid-unsolicited-interrupts.patch | 39 --------------------
 ....13-net-dsa-mv88e6xxx-Support-LED-control.patch |  6 +--
 ...sb-dwc3-add-optional-PHY-interface-clocks.patch |  2 +-
 ...-improve-performance-usb-using-lowmem-for.patch |  6 +--
 25 files changed, 32 insertions(+), 114 deletions(-)

diff --git a/include/kernel-6.6 b/include/kernel-6.6
index df3464ab41..5e154f2d21 100644
--- a/include/kernel-6.6
+++ b/include/kernel-6.6
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.6 = .58
-LINUX_KERNEL_HASH-6.6.58 = e7df81e588d70fab5ec3ec3bb04ac53d51f0860fc3b1ec45e0a4167a026899db
+LINUX_VERSION-6.6 = .59
+LINUX_KERNEL_HASH-6.6.59 = 23616808d8c08f12815ff898f4edb4c11397a2b2843d029ee62452d21833a76d
diff --git a/target/linux/bcm27xx/patches-6.6/950-0481-xhci-Use-more-event-ring-segment-table-entries.patch b/target/linux/bcm27xx/patches-6.6/950-0481-xhci-Use-more-event-ring-segment-table-entries.patch
index 27a43828dd..ff8c9223b5 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0481-xhci-Use-more-event-ring-segment-table-entries.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0481-xhci-Use-more-event-ring-segment-table-entries.patch
@@ -52,7 +52,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	erst_base = xhci_read_64(xhci, &ir->ir_set->erst_base);
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1681,8 +1681,9 @@ struct urb_priv {
+@@ -1425,8 +1425,9 @@ struct urb_priv {
   * Each segment table entry is 4*32bits long.  1K seems like an ok size:
   * (1K bytes * 8bytes/bit) / (4*32 bits) = 64 segment entries in the table,
   * meaning 64 ring segments.
diff --git a/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch b/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
index ca49ada4e7..4a7bfd4f2e 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
@@ -52,7 +52,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	addr = xhci_trb_virt_to_dma(new_seg, new_deq);
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1918,6 +1918,9 @@ struct xhci_hcd {
+@@ -1662,6 +1662,9 @@ struct xhci_hcd {
  #define XHCI_WRITE_64_HI_LO	BIT_ULL(47)
  #define XHCI_CDNS_SCTX_QUIRK	BIT_ULL(48)
  
diff --git a/target/linux/bcm27xx/patches-6.6/950-0484-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch b/target/linux/bcm27xx/patches-6.6/950-0484-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch
index a7d255db40..663a2f9323 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0484-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0484-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch
@@ -100,7 +100,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1920,6 +1920,7 @@ struct xhci_hcd {
+@@ -1664,6 +1664,7 @@ struct xhci_hcd {
  
  /* Downstream VLI fixes */
  #define XHCI_AVOID_DQ_ON_LINK	BIT_ULL(56)
diff --git a/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch b/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
index 935ed89c08..f0c75c6bfa 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
@@ -144,7 +144,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	return 0;
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1921,6 +1921,7 @@ struct xhci_hcd {
+@@ -1665,6 +1665,7 @@ struct xhci_hcd {
  /* Downstream VLI fixes */
  #define XHCI_AVOID_DQ_ON_LINK	BIT_ULL(56)
  #define XHCI_VLI_SS_BULK_OUT_BUG	BIT_ULL(57)
diff --git a/target/linux/bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch b/target/linux/bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch
index 7d3a139a77..7609657162 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch
@@ -341,7 +341,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
   * @hsphy_interface: "utmi" or "ulpi"
   * @connected: true when we're connected to a host, false otherwise
   * @softconnect: true when gadget connect is called, false when disconnect runs
-@@ -1296,6 +1300,7 @@ struct dwc3 {
+@@ -1298,6 +1302,7 @@ struct dwc3 {
  	u8			tx_max_burst_prd;
  	u8			tx_fifo_resize_max_num;
  	u8			clear_stall_protocol;
diff --git a/target/linux/bcm27xx/patches-6.6/950-0853-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch b/target/linux/bcm27xx/patches-6.6/950-0853-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch
index 557bb033ef..901553cd6c 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0853-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0853-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch
@@ -62,7 +62,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
   * @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
   * @tx_de_emphasis: Tx de-emphasis value
   *	0	- -6dB de-emphasis
-@@ -1344,6 +1347,7 @@ struct dwc3 {
+@@ -1346,6 +1349,7 @@ struct dwc3 {
  	unsigned		ulpi_ext_vbus_drv:1;
  	unsigned		parkmode_disable_ss_quirk:1;
  	unsigned		parkmode_disable_hs_quirk:1;
diff --git a/target/linux/bcm53xx/patches-6.6/180-usb-xhci-add-support-for-performing-fake-doorbell.patch b/target/linux/bcm53xx/patches-6.6/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
index efcda98679..13b6566a8e 100644
--- a/target/linux/bcm53xx/patches-6.6/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
+++ b/target/linux/bcm53xx/patches-6.6/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
@@ -103,7 +103,7 @@ it on BCM4708 family.
  	if (xhci->quirks & XHCI_NEC_HOST)
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1916,6 +1916,7 @@ struct xhci_hcd {
+@@ -1660,6 +1660,7 @@ struct xhci_hcd {
  #define XHCI_ZHAOXIN_HOST	BIT_ULL(46)
  #define XHCI_WRITE_64_HI_LO	BIT_ULL(47)
  #define XHCI_CDNS_SCTX_QUIRK	BIT_ULL(48)
diff --git a/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch b/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch
index a17a91ec7c..aea95667e5 100644
--- a/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch
+++ b/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch
@@ -37,7 +37,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
 
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -4549,6 +4549,9 @@ static inline void netif_addr_unlock_bh(
+@@ -4561,6 +4561,9 @@ static inline void netif_addr_unlock_bh(
  
  void ether_setup(struct net_device *dev);
  
diff --git a/target/linux/generic/backport-6.6/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch b/target/linux/generic/backport-6.6/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch
deleted file mode 100644
index d29c7d463d..0000000000
--- a/target/linux/generic/backport-6.6/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Subject: [PATCH v2] netfilter: xtables: fix typo causing some targets to not load on IPv6
-Date: Sat, 19 Oct 2024 08:05:07 +0300	[thread overview]
-Message-ID: <20241019-xtables-typos-v2-1-6b8b1735dc8e at 0upti.me> (raw)
-
-These were added with the wrong family in 4cdc55e, which seems
-to just have been a typo, but now ip6tables rules with --set-mark
-don't work anymore, which is pretty bad.
-
-Fixes: 0bfcb7b71e73 ("netfilter: xtables: avoid NFPROTO_UNSPEC where needed")
-Reviewed-by: Phil Sutter <phil at nwl.cc>
-Signed-off-by: Ilya Katsnelson <me at 0upti.me>
----
-Changes in v2:
-- Fixed a typo in the commit message (that's karma).
-- Replaced a reference to backport commit.
-- Link to v1: https://lore.kernel.org/r/20241018-xtables-typos-v1-1-02a51789c0ec at 0upti.me
----
- net/netfilter/xt_NFLOG.c | 2 +-
- net/netfilter/xt_mark.c  | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
---- a/net/netfilter/xt_NFLOG.c
-+++ b/net/netfilter/xt_NFLOG.c
-@@ -79,7 +79,7 @@ static struct xt_target nflog_tg_reg[] _
- 	{
- 		.name       = "NFLOG",
- 		.revision   = 0,
--		.family     = NFPROTO_IPV4,
-+		.family     = NFPROTO_IPV6,
- 		.checkentry = nflog_tg_check,
- 		.destroy    = nflog_tg_destroy,
- 		.target     = nflog_tg,
---- a/net/netfilter/xt_mark.c
-+++ b/net/netfilter/xt_mark.c
-@@ -62,7 +62,7 @@ static struct xt_target mark_tg_reg[] __
- 	{
- 		.name           = "MARK",
- 		.revision       = 2,
--		.family         = NFPROTO_IPV4,
-+		.family         = NFPROTO_IPV6,
- 		.target         = mark_tg,
- 		.targetsize     = sizeof(struct xt_mark_tginfo2),
- 		.me             = THIS_MODULE,
diff --git a/target/linux/generic/backport-6.6/780-04-v6.8-r8169-improve-handling-task-scheduling.patch b/target/linux/generic/backport-6.6/780-04-v6.8-r8169-improve-handling-task-scheduling.patch
index f020284cc8..757c800533 100644
--- a/target/linux/generic/backport-6.6/780-04-v6.8-r8169-improve-handling-task-scheduling.patch
+++ b/target/linux/generic/backport-6.6/780-04-v6.8-r8169-improve-handling-task-scheduling.patch
@@ -29,7 +29,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	set_bit(flag, tp->wk.flags);
  	schedule_work(&tp->wk.work);
  }
-@@ -4518,8 +4521,7 @@ static void rtl_task(struct work_struct
+@@ -4520,8 +4523,7 @@ static void rtl_task(struct work_struct
  
  	rtnl_lock();
  
diff --git a/target/linux/generic/backport-6.6/780-05-v6.8-r8169-add-support-for-LED-s-on-RTL8168-RTL8101.patch b/target/linux/generic/backport-6.6/780-05-v6.8-r8169-add-support-for-LED-s-on-RTL8168-RTL8101.patch
index 95245b9a54..0504a00df4 100644
--- a/target/linux/generic/backport-6.6/780-05-v6.8-r8169-add-support-for-LED-s-on-RTL8168-RTL8101.patch
+++ b/target/linux/generic/backport-6.6/780-05-v6.8-r8169-add-support-for-LED-s-on-RTL8168-RTL8101.patch
@@ -296,7 +296,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  static void r8168fp_adjust_ocp_cmd(struct rtl8169_private *tp, u32 *cmd, int type)
  {
  	/* based on RTL8168FP_OOBMAC_BASE in vendor driver */
-@@ -5195,6 +5253,7 @@ static int rtl_init_one(struct pci_dev *
+@@ -5197,6 +5255,7 @@ static int rtl_init_one(struct pci_dev *
  	raw_spin_lock_init(&tp->cfg9346_usage_lock);
  	raw_spin_lock_init(&tp->config25_lock);
  	raw_spin_lock_init(&tp->mac_ocp_lock);
@@ -304,7 +304,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  
  	dev->tstats = devm_netdev_alloc_pcpu_stats(&pdev->dev,
  						   struct pcpu_sw_netstats);
-@@ -5351,6 +5410,12 @@ static int rtl_init_one(struct pci_dev *
+@@ -5353,6 +5412,12 @@ static int rtl_init_one(struct pci_dev *
  	if (rc)
  		return rc;
  
diff --git a/target/linux/generic/backport-6.6/780-06-v6.8-r8169-fix-building-with-CONFIG_LEDS_CLASS-m.patch b/target/linux/generic/backport-6.6/780-06-v6.8-r8169-fix-building-with-CONFIG_LEDS_CLASS-m.patch
index 819a611cb3..1adaf87625 100644
--- a/target/linux/generic/backport-6.6/780-06-v6.8-r8169-fix-building-with-CONFIG_LEDS_CLASS-m.patch
+++ b/target/linux/generic/backport-6.6/780-06-v6.8-r8169-fix-building-with-CONFIG_LEDS_CLASS-m.patch
@@ -59,7 +59,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  obj-$(CONFIG_R8169) += r8169.o
 --- a/drivers/net/ethernet/realtek/r8169_main.c
 +++ b/drivers/net/ethernet/realtek/r8169_main.c
-@@ -5410,11 +5410,10 @@ static int rtl_init_one(struct pci_dev *
+@@ -5412,11 +5412,10 @@ static int rtl_init_one(struct pci_dev *
  	if (rc)
  		return rc;
  
diff --git a/target/linux/generic/backport-6.6/780-07-v6.9-r8169-simplify-EEE-handling.patch b/target/linux/generic/backport-6.6/780-07-v6.9-r8169-simplify-EEE-handling.patch
index d3a26303ef..c3f94b3aff 100644
--- a/target/linux/generic/backport-6.6/780-07-v6.9-r8169-simplify-EEE-handling.patch
+++ b/target/linux/generic/backport-6.6/780-07-v6.9-r8169-simplify-EEE-handling.patch
@@ -75,7 +75,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	genphy_soft_reset(tp->phydev);
  }
  
-@@ -5112,7 +5087,9 @@ static int r8169_mdio_register(struct rt
+@@ -5114,7 +5089,9 @@ static int r8169_mdio_register(struct rt
  	}
  
  	tp->phydev->mac_managed_pm = true;
@@ -86,7 +86,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	phy_support_asym_pause(tp->phydev);
  
  	/* PHY will be woken up in rtl_open() */
-@@ -5247,7 +5224,6 @@ static int rtl_init_one(struct pci_dev *
+@@ -5249,7 +5226,6 @@ static int rtl_init_one(struct pci_dev *
  	tp->dev = dev;
  	tp->pci_dev = pdev;
  	tp->supports_gmii = ent->driver_data == RTL_CFG_NO_GBIT ? 0 : 1;
diff --git a/target/linux/generic/backport-6.6/780-08-v6.9-r8169-add-support-for-RTL8126A.patch b/target/linux/generic/backport-6.6/780-08-v6.9-r8169-add-support-for-RTL8126A.patch
index 6dfaa904a1..354aacf1cf 100644
--- a/target/linux/generic/backport-6.6/780-08-v6.9-r8169-add-support-for-RTL8126A.patch
+++ b/target/linux/generic/backport-6.6/780-08-v6.9-r8169-add-support-for-RTL8126A.patch
@@ -321,7 +321,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  		padto = max_t(unsigned int, padto, ETH_ZLEN);
  		break;
  	default:
-@@ -5139,7 +5196,7 @@ static void rtl_hw_initialize(struct rtl
+@@ -5141,7 +5198,7 @@ static void rtl_hw_initialize(struct rtl
  	case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_48:
  		rtl_hw_init_8168g(tp);
  		break;
diff --git a/target/linux/generic/backport-6.6/780-10-v6.9-r8169-simplify-code-by-using-core-provided-pcpu-stat.patch b/target/linux/generic/backport-6.6/780-10-v6.9-r8169-simplify-code-by-using-core-provided-pcpu-stat.patch
index 0288dcb11e..c155b11431 100644
--- a/target/linux/generic/backport-6.6/780-10-v6.9-r8169-simplify-code-by-using-core-provided-pcpu-stat.patch
+++ b/target/linux/generic/backport-6.6/780-10-v6.9-r8169-simplify-code-by-using-core-provided-pcpu-stat.patch
@@ -16,7 +16,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
 
 --- a/drivers/net/ethernet/realtek/r8169_main.c
 +++ b/drivers/net/ethernet/realtek/r8169_main.c
-@@ -5288,11 +5288,6 @@ static int rtl_init_one(struct pci_dev *
+@@ -5290,11 +5290,6 @@ static int rtl_init_one(struct pci_dev *
  	raw_spin_lock_init(&tp->mac_ocp_lock);
  	mutex_init(&tp->led_lock);
  
@@ -28,7 +28,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	/* Get the *optional* external "ether_clk" used on some boards */
  	tp->clk = devm_clk_get_optional_enabled(&pdev->dev, "ether_clk");
  	if (IS_ERR(tp->clk))
-@@ -5407,6 +5402,8 @@ static int rtl_init_one(struct pci_dev *
+@@ -5409,6 +5404,8 @@ static int rtl_init_one(struct pci_dev *
  	dev->hw_features |= NETIF_F_RXALL;
  	dev->hw_features |= NETIF_F_RXFCS;
  
diff --git a/target/linux/generic/backport-6.6/780-11-v6.9-r8169-add-LED-support-for-RTL8125-RTL8126.patch b/target/linux/generic/backport-6.6/780-11-v6.9-r8169-add-LED-support-for-RTL8125-RTL8126.patch
index 449aa11591..1c793f9b1d 100644
--- a/target/linux/generic/backport-6.6/780-11-v6.9-r8169-add-LED-support-for-RTL8125-RTL8126.patch
+++ b/target/linux/generic/backport-6.6/780-11-v6.9-r8169-add-LED-support-for-RTL8125-RTL8126.patch
@@ -225,7 +225,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  void r8169_get_led_name(struct rtl8169_private *tp, int idx,
  			char *buf, int buf_len)
  {
-@@ -5440,10 +5491,12 @@ static int rtl_init_one(struct pci_dev *
+@@ -5442,10 +5493,12 @@ static int rtl_init_one(struct pci_dev *
  	if (rc)
  		return rc;
  
diff --git a/target/linux/generic/backport-6.6/780-16-v6.9-r8169-fix-LED-related-deadlock-on-module-removal.patch b/target/linux/generic/backport-6.6/780-16-v6.9-r8169-fix-LED-related-deadlock-on-module-removal.patch
index 6e0ff9b14b..cb031d8f34 100644
--- a/target/linux/generic/backport-6.6/780-16-v6.9-r8169-fix-LED-related-deadlock-on-module-removal.patch
+++ b/target/linux/generic/backport-6.6/780-16-v6.9-r8169-fix-LED-related-deadlock-on-module-removal.patch
@@ -124,7 +124,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  	u32 ocp_base;
  };
  
-@@ -5067,6 +5069,8 @@ static void rtl_remove_one(struct pci_de
+@@ -5069,6 +5071,8 @@ static void rtl_remove_one(struct pci_de
  
  	cancel_work_sync(&tp->wk.work);
  
@@ -133,7 +133,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  	unregister_netdev(tp->dev);
  
  	if (tp->dash_type != RTL_DASH_NONE)
-@@ -5525,9 +5529,9 @@ static int rtl_init_one(struct pci_dev *
+@@ -5527,9 +5531,9 @@ static int rtl_init_one(struct pci_dev *
  
  	if (IS_ENABLED(CONFIG_R8169_LEDS)) {
  		if (rtl_is_8125(tp))
diff --git a/target/linux/generic/backport-6.6/780-17-v6.9-r8169-add-missing-conditional-compiling-for-call-to-.patch b/target/linux/generic/backport-6.6/780-17-v6.9-r8169-add-missing-conditional-compiling-for-call-to-.patch
index e647e18167..0412c91903 100644
--- a/target/linux/generic/backport-6.6/780-17-v6.9-r8169-add-missing-conditional-compiling-for-call-to-.patch
+++ b/target/linux/generic/backport-6.6/780-17-v6.9-r8169-add-missing-conditional-compiling-for-call-to-.patch
@@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/drivers/net/ethernet/realtek/r8169_main.c
 +++ b/drivers/net/ethernet/realtek/r8169_main.c
-@@ -5069,7 +5069,8 @@ static void rtl_remove_one(struct pci_de
+@@ -5071,7 +5071,8 @@ static void rtl_remove_one(struct pci_de
  
  	cancel_work_sync(&tp->wk.work);
  
diff --git a/target/linux/generic/backport-6.6/780-20-v6.11-r8169-disable-interrupt-source-RxOverflow.patch b/target/linux/generic/backport-6.6/780-20-v6.11-r8169-disable-interrupt-source-RxOverflow.patch
index 9389585f16..fc10a3ff14 100644
--- a/target/linux/generic/backport-6.6/780-20-v6.11-r8169-disable-interrupt-source-RxOverflow.patch
+++ b/target/linux/generic/backport-6.6/780-20-v6.11-r8169-disable-interrupt-source-RxOverflow.patch
@@ -18,7 +18,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/drivers/net/ethernet/realtek/r8169_main.c
 +++ b/drivers/net/ethernet/realtek/r8169_main.c
-@@ -5110,12 +5110,10 @@ static void rtl_set_irq_mask(struct rtl8
+@@ -5112,12 +5112,10 @@ static void rtl_set_irq_mask(struct rtl8
  	tp->irq_mask = RxOK | RxErr | TxOK | TxErr | LinkChg;
  
  	if (tp->mac_version <= RTL_GIGA_MAC_VER_06)
diff --git a/target/linux/generic/backport-6.6/780-22-v6.12-r8169-add-support-for-RTL8126A-rev.b.patch b/target/linux/generic/backport-6.6/780-22-v6.12-r8169-add-support-for-RTL8126A-rev.b.patch
index dd90fc1a65..a825627e74 100644
--- a/target/linux/generic/backport-6.6/780-22-v6.12-r8169-add-support-for-RTL8126A-rev.b.patch
+++ b/target/linux/generic/backport-6.6/780-22-v6.12-r8169-add-support-for-RTL8126A-rev.b.patch
@@ -224,7 +224,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		padto = max_t(unsigned int, padto, ETH_ZLEN);
  		break;
  	default:
-@@ -5286,7 +5298,7 @@ static void rtl_hw_initialize(struct rtl
+@@ -5288,7 +5300,7 @@ static void rtl_hw_initialize(struct rtl
  	case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_48:
  		rtl_hw_init_8168g(tp);
  		break;
diff --git a/target/linux/generic/backport-6.6/780-24-v6.12-r8169-avoid-unsolicited-interrupts.patch b/target/linux/generic/backport-6.6/780-24-v6.12-r8169-avoid-unsolicited-interrupts.patch
deleted file mode 100644
index 8332a285f9..0000000000
--- a/target/linux/generic/backport-6.6/780-24-v6.12-r8169-avoid-unsolicited-interrupts.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 10ce0db787004875f4dba068ea952207d1d8abeb Mon Sep 17 00:00:00 2001
-From: Heiner Kallweit <hkallweit1 at gmail.com>
-Date: Fri, 18 Oct 2024 11:08:16 +0200
-Subject: [PATCH] r8169: avoid unsolicited interrupts
-
-It was reported that after resume from suspend a PCI error is logged
-and connectivity is broken. Error message is:
-PCI error (cmd = 0x0407, status_errs = 0x0000)
-The message seems to be a red herring as none of the error bits is set,
-and the PCI command register value also is normal. Exception handling
-for a PCI error includes a chip reset what apparently brakes connectivity
-here. The interrupt status bit triggering the PCI error handling isn't
-actually used on PCIe chip versions, so it's not clear why this bit is
-set by the chip. Fix this by ignoring this bit on PCIe chip versions.
-
-Fixes: 0e4851502f84 ("r8169: merge with version 8.001.00 of Realtek's r8168 driver")
-Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219388
-Tested-by: Atlas Yu <atlas.yu at canonical.com>
-Signed-off-by: Heiner Kallweit <hkallweit1 at gmail.com>
-Reviewed-by: Simon Horman <horms at kernel.org>
-Link: https://patch.msgid.link/78e2f535-438f-4212-ad94-a77637ac6c9c at gmail.com
-Signed-off-by: Paolo Abeni <pabeni at redhat.com>
----
- drivers/net/ethernet/realtek/r8169_main.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
---- a/drivers/net/ethernet/realtek/r8169_main.c
-+++ b/drivers/net/ethernet/realtek/r8169_main.c
-@@ -4683,7 +4683,9 @@ static irqreturn_t rtl8169_interrupt(int
- 	if ((status & 0xffff) == 0xffff || !(status & tp->irq_mask))
- 		return IRQ_NONE;
- 
--	if (unlikely(status & SYSErr)) {
-+	/* At least RTL8168fp may unexpectedly set the SYSErr bit */
-+	if (unlikely(status & SYSErr &&
-+	    tp->mac_version <= RTL_GIGA_MAC_VER_06)) {
- 		rtl8169_pcierr_interrupt(tp->dev);
- 		goto out;
- 	}
diff --git a/target/linux/generic/backport-6.6/901-v6.13-net-dsa-mv88e6xxx-Support-LED-control.patch b/target/linux/generic/backport-6.6/901-v6.13-net-dsa-mv88e6xxx-Support-LED-control.patch
index 8557fe2510..711246da61 100644
--- a/target/linux/generic/backport-6.6/901-v6.13-net-dsa-mv88e6xxx-Support-LED-control.patch
+++ b/target/linux/generic/backport-6.6/901-v6.13-net-dsa-mv88e6xxx-Support-LED-control.patch
@@ -217,7 +217,7 @@ Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
  #include <linux/ptp_clock_kernel.h>
  #include <linux/timecounter.h>
  #include <net/dsa.h>
-@@ -275,6 +277,7 @@ struct mv88e6xxx_vlan {
+@@ -276,6 +278,7 @@ struct mv88e6xxx_vlan {
  struct mv88e6xxx_port {
  	struct mv88e6xxx_chip *chip;
  	int port;
@@ -225,7 +225,7 @@ Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
  	struct mv88e6xxx_vlan bridge_pvid;
  	u64 serdes_stats[2];
  	u64 atu_member_violation;
-@@ -289,6 +292,11 @@ struct mv88e6xxx_port {
+@@ -290,6 +293,11 @@ struct mv88e6xxx_port {
  	struct devlink_region *region;
  	void *pcs_private;
  
@@ -237,7 +237,7 @@ Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
  	/* MacAuth Bypass control flag */
  	bool mab;
  };
-@@ -561,6 +569,9 @@ struct mv88e6xxx_ops {
+@@ -563,6 +571,9 @@ struct mv88e6xxx_ops {
  			      phy_interface_t mode);
  	int (*port_get_cmode)(struct mv88e6xxx_chip *chip, int port, u8 *cmode);
  
diff --git a/target/linux/rockchip/patches-6.6/034-v6.7-usb-dwc3-add-optional-PHY-interface-clocks.patch b/target/linux/rockchip/patches-6.6/034-v6.7-usb-dwc3-add-optional-PHY-interface-clocks.patch
index 3ae1c54ef2..0b9e47da3c 100644
--- a/target/linux/rockchip/patches-6.6/034-v6.7-usb-dwc3-add-optional-PHY-interface-clocks.patch
+++ b/target/linux/rockchip/patches-6.6/034-v6.7-usb-dwc3-add-optional-PHY-interface-clocks.patch
@@ -80,7 +80,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
   * @reset: reset control
   * @regs: base address for our registers
   * @regs_size: address space size
-@@ -1167,6 +1169,8 @@ struct dwc3 {
+@@ -1169,6 +1171,8 @@ struct dwc3 {
  	struct clk		*bus_clk;
  	struct clk		*ref_clk;
  	struct clk		*susp_clk;
diff --git a/target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch b/target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch
index 2554e73198..44c6fe6126 100644
--- a/target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch
+++ b/target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch
@@ -263,7 +263,7 @@ Signed-off-by: minda.chen <minda.chen at starfivetech.com>
  /**
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1764,6 +1764,13 @@ struct xhci_hub {
+@@ -1508,6 +1508,13 @@ struct xhci_hub {
  	u8			min_rev;
  };
  
@@ -277,7 +277,7 @@ Signed-off-by: minda.chen <minda.chen at starfivetech.com>
  /* There is one xhci_hcd structure per controller */
  struct xhci_hcd {
  	struct usb_hcd *main_hcd;
-@@ -1917,6 +1924,8 @@ struct xhci_hcd {
+@@ -1661,6 +1668,8 @@ struct xhci_hcd {
  #define XHCI_WRITE_64_HI_LO	BIT_ULL(47)
  #define XHCI_CDNS_SCTX_QUIRK	BIT_ULL(48)
  
@@ -286,7 +286,7 @@ Signed-off-by: minda.chen <minda.chen at starfivetech.com>
  	unsigned int		num_active_eps;
  	unsigned int		limit_active_eps;
  	struct xhci_port	*hw_ports;
-@@ -1946,6 +1955,8 @@ struct xhci_hcd {
+@@ -1690,6 +1699,8 @@ struct xhci_hcd {
  	struct list_head	regset_list;
  
  	void			*dbc;



From lede-commits at lists.infradead.org  Sat Nov  9 17:14:06 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 09 Nov 2024 20:14:06 -0500
Subject: [openwrt/openwrt]  apk: Implement apk list --full patch
In-Reply-To: <173120124570.3352543.15316373175844283524@git-01.infra.openwrt.org>
References: <173120124570.3352543.15316373175844283524@git-01.infra.openwrt.org>
Message-ID: <mailman.156376.1731201255.1280.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/79f06827ff7145b850e072c0ed26802573a2199f

commit 79f06827ff7145b850e072c0ed26802573a2199f
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Wed Oct 23 01:13:15 2024 +0200

    apk: Implement apk list --full patch
    
    Implement apk list --full patch to mimik opkg package info.
    
    Link: https://github.com/openwrt/openwrt/pull/16759
    Link: https://github.com/openwrt/openwrt/pull/16759
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 .../apk/patches/0010-app_list-add-full-print.patch | 91 ++++++++++++++++++++++
 1 file changed, 91 insertions(+)

diff --git a/package/system/apk/patches/0010-app_list-add-full-print.patch b/package/system/apk/patches/0010-app_list-add-full-print.patch
new file mode 100644
index 0000000000..d0b2b7243d
--- /dev/null
+++ b/package/system/apk/patches/0010-app_list-add-full-print.patch
@@ -0,0 +1,91 @@
+From f74ca42e0fa5bf131644a46d8259edd493bf072c Mon Sep 17 00:00:00 2001
+From: Christian Marangi <ansuelsmth at gmail.com>
+Date: Wed, 23 Oct 2024 01:11:01 +0200
+Subject: [PATCH] app_list: add full print
+
+Add full print variant to dump info about each package.
+
+Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
+---
+ src/app_list.c | 42 +++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 41 insertions(+), 1 deletion(-)
+
+--- a/src/app_list.c
++++ b/src/app_list.c
+@@ -27,6 +27,7 @@ struct list_ctx {
+ 	unsigned int match_depends : 1;
+ 	unsigned int match_providers : 1;
+ 	unsigned int manifest : 1;
++	unsigned int full : 1;
+ 
+ 	struct apk_string_array *filters;
+ };
+@@ -118,6 +119,40 @@ static void print_manifest(const struct
+ 	printf("%s " BLOB_FMT "\n", pkg->name->name, BLOB_PRINTF(*pkg->version));
+ }
+ 
++static void print_full(const struct apk_package *pkg, const struct list_ctx *ctx)
++{
++	struct apk_dependency *d;
++
++	printf("Package: %s\n", pkg->name->name);
++	printf("Version: " BLOB_FMT "\n", BLOB_PRINTF(*pkg->version));
++	if (apk_array_len(pkg->depends)) {
++		int i = 0;
++
++		printf("Depends: ");
++		foreach_array_item(d, pkg->depends) {
++			i++;
++			printf("%s%s", d->name->name, i < apk_array_len(pkg->depends) ? ", ": "\n");
++		}
++	}
++	if (apk_array_len(pkg->provides)) {
++		int i = 0;
++
++		printf("Provides: ");
++		foreach_array_item(d, pkg->provides) {
++			i++;
++			printf("%s%s", d->name->name, i < apk_array_len(pkg->provides) ? ", ": "\n");
++		}
++	}
++	if (pkg->ipkg && ctx->installed)
++		printf("Status: install ok %s\n", pkg->marked ? "hold" : "installed");
++	if (pkg->description)
++		printf("Description: " BLOB_FMT "\n", BLOB_PRINTF(*pkg->description));
++	printf("License: " BLOB_FMT "\n", BLOB_PRINTF(*pkg->license));
++	printf("Installed-Size: %zu\n", pkg->installed_size);
++	printf("Size: %zu\n", pkg->size);
++	printf("\n");
++}
++
+ static void filter_package(const struct apk_database *db, const struct apk_package *pkg, const struct list_ctx *ctx, const struct apk_name *name)
+ {
+ 	if (ctx->match_origin && !origin_matches(ctx, pkg))
+@@ -138,7 +173,9 @@ static void filter_package(const struct
+ 	if (ctx->match_providers)
+ 		printf("<%s> ", name->name);
+ 
+-	if (ctx->manifest)
++	if (ctx->full)
++		print_full(pkg, ctx);
++	else if (ctx->manifest)
+ 		print_manifest(pkg, ctx);
+ 	else
+ 		print_package(db, pkg, ctx);
+@@ -178,6 +215,7 @@ static int print_result(struct apk_datab
+ 	OPT(OPT_LIST_depends,		APK_OPT_SH("d") "depends") \
+ 	OPT(OPT_LIST_installed,		APK_OPT_SH("I") "installed") \
+ 	OPT(OPT_LIST_manifest,		"manifest") \
++	OPT(OPT_LIST_full,		"full") \
+ 	OPT(OPT_LIST_origin,		APK_OPT_SH("o") "origin") \
+ 	OPT(OPT_LIST_orphaned,		APK_OPT_SH("O") "orphaned") \
+ 	OPT(OPT_LIST_providers,		APK_OPT_SH("P") "providers") \
+@@ -191,6 +229,8 @@ static int option_parse_applet(void *pct
+ 	struct list_ctx *ctx = pctx;
+ 
+ 	switch (opt) {
++	case OPT_LIST_full:
++		ctx->full = 1;
+ 	case OPT_LIST_available:
+ 		ctx->available = 1;
+ 		ctx->orphaned = 0;



From lede-commits at lists.infradead.org  Sat Nov  9 17:14:05 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 09 Nov 2024 20:14:05 -0500
Subject: [openwrt/openwrt]  apk: Bump to version 2024-11-08
In-Reply-To: <173120124570.3352543.15316373175844283524@git-01.infra.openwrt.org>
References: <173120124570.3352543.15316373175844283524@git-01.infra.openwrt.org>
Message-ID: <mailman.156377.1731201255.1280.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/b18ed663a52fa9f870c134bb2c032768894d5987

commit b18ed663a52fa9f870c134bb2c032768894d5987
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Sun Nov 10 02:09:43 2024 +0100

    apk: Bump to version 2024-11-08
    
    Bump APK to version 2024-11-08, multiple fixup and pending arch patch
    for ARM Big Endian merged upstream.
    
    Link: https://github.com/openwrt/openwrt/pull/16759
    Link: https://github.com/openwrt/openwrt/pull/16759
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 package/system/apk/Makefile                        |  6 ++---
 ...0001-openwrt-move-layer-db-to-temp-folder.patch |  2 +-
 ...fines-add-default-arch-for-ARM-Big-Endian.patch | 29 ----------------------
 3 files changed, 4 insertions(+), 33 deletions(-)

diff --git a/package/system/apk/Makefile b/package/system/apk/Makefile
index 3e2066e269..cd1b56caf6 100644
--- a/package/system/apk/Makefile
+++ b/package/system/apk/Makefile
@@ -5,9 +5,9 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_URL=https://gitlab.alpinelinux.org/alpine/apk-tools.git
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2024-10-28
-PKG_SOURCE_VERSION:=a1ad8568a1378d71c1f6354c428ebb1baa46fa05
-PKG_MIRROR_HASH:=68747e1253776dc00286c01e408f4c4e1eb61acf56009b7ecb3de4d49b34e567
+PKG_SOURCE_DATE:=2024-11-08
+PKG_SOURCE_VERSION:=d9c24813d983df9524fa7a2b78fc3132c159a20f
+PKG_MIRROR_HASH:=3d1a79c08ef8c8b9404f9287d9acda6468b8b1c2a99dd384287f522ed3b1a047
 
 PKG_VERSION=3.0.0_pre$(subst -,,$(PKG_SOURCE_DATE))
 
diff --git a/package/system/apk/patches/0001-openwrt-move-layer-db-to-temp-folder.patch b/package/system/apk/patches/0001-openwrt-move-layer-db-to-temp-folder.patch
index dbc4945d9e..8500512212 100644
--- a/package/system/apk/patches/0001-openwrt-move-layer-db-to-temp-folder.patch
+++ b/package/system/apk/patches/0001-openwrt-move-layer-db-to-temp-folder.patch
@@ -10,7 +10,7 @@ Signed-off-by: Paul Spooren <mail at aparcar.org>
 
 --- a/src/database.c
 +++ b/src/database.c
-@@ -1626,7 +1626,7 @@ const char *apk_db_layer_name(int layer)
+@@ -1627,7 +1627,7 @@ const char *apk_db_layer_name(int layer)
  {
  	switch (layer) {
  	case APK_DB_LAYER_ROOT: return "lib/apk/db";
diff --git a/package/system/apk/patches/0010-apk_defines-add-default-arch-for-ARM-Big-Endian.patch b/package/system/apk/patches/0010-apk_defines-add-default-arch-for-ARM-Big-Endian.patch
deleted file mode 100644
index 1d031e7783..0000000000
--- a/package/system/apk/patches/0010-apk_defines-add-default-arch-for-ARM-Big-Endian.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From ffcda7769279e75993110766555eea6d3c6baae7 Mon Sep 17 00:00:00 2001
-From: Christian Marangi <ansuelsmth at gmail.com>
-Date: Fri, 25 Oct 2024 01:09:41 +0200
-Subject: [PATCH] apk_defines: add default arch for ARM Big-Endian
-
-Add default arch for ARM Big-Endiang named armeb. One example of such
-target are devices based on the Intel XScale IXP4xx SoC.
-
-Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
----
- src/apk_defines.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/apk_defines.h b/src/apk_defines.h
-index c92dacd..06351df 100644
---- a/src/apk_defines.h
-+++ b/src/apk_defines.h
-@@ -126,6 +126,8 @@ static inline int IS_ERR(const void *ptr) { return (unsigned long)ptr >= (unsign
- #define APK_DEFAULT_BASE_ARCH	"armhf"
- #elif defined(__arm__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
- #define APK_DEFAULT_BASE_ARCH	"armel"
-+#elif defined(__arm__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
-+#define APK_DEFAULT_BASE_ARCH	"armeb"
- #elif defined(__aarch64__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
- #define APK_DEFAULT_BASE_ARCH	"aarch64"
- #elif defined(__s390x__)
--- 
-2.45.2
-



From lede-commits at lists.infradead.org  Sat Nov  9 17:14:27 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 09 Nov 2024 20:14:27 -0500
Subject: [openwrt/openwrt]  menuconfig: add help description for Stack
 Smashing Protection options
In-Reply-To: <173120126788.3352865.17594019059987788142@git-01.infra.openwrt.org>
References: <173120126788.3352865.17594019059987788142@git-01.infra.openwrt.org>
Message-ID: <mailman.156378.1731201271.1280.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/cbf7be9fb37baaaf7ee5c2b6315028bd47c764bc

commit cbf7be9fb37baaaf7ee5c2b6315028bd47c764bc
Author: Marius Dinu <m95d+git at psihoexpert.ro>
AuthorDate: Sat Nov 9 19:20:47 2024 +0200

    menuconfig: add help description for Stack Smashing Protection options
    
    Descriptions taken from:
    https://wiki.osdev.org/Stack_Smashing_Protector
    
    Signed-off-by: Marius Dinu <m95d+git at psihoexpert.ro>
    Link: https://github.com/openwrt/openwrt/pull/16897
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 config/Config-build.in | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/config/Config-build.in b/config/Config-build.in
index 41c1daccd9..481be0bb6c 100644
--- a/config/Config-build.in
+++ b/config/Config-build.in
@@ -295,12 +295,22 @@ menu "Global build settings"
 		  Enable GCC Stack Smashing Protection (SSP) for userspace applications
 		config PKG_CC_STACKPROTECTOR_NONE
 			bool "None"
+			help
+				No stack smashing protection.
 		config PKG_CC_STACKPROTECTOR_REGULAR
 			bool "Regular"
+			help
+				Protects functions with vulnerable objects.
+				This includes functions with buffers larger than 8 bytes or calls to alloca.
 		config PKG_CC_STACKPROTECTOR_STRONG
 			bool "Strong"
+			help
+				Like Regular, but also protects functions with
+				local arrays or references to local frame addresses.
 		config PKG_CC_STACKPROTECTOR_ALL
 			bool "All"
+			help
+				Protects all functions.
 	endchoice
 
 	choice
@@ -310,10 +320,18 @@ menu "Global build settings"
 		  Enable GCC Stack-Smashing Protection (SSP) for the kernel
 		config KERNEL_CC_STACKPROTECTOR_NONE
 			bool "None"
+			help
+				No stack smashing protection.
 		config KERNEL_CC_STACKPROTECTOR_REGULAR
 			bool "Regular"
+			help
+				Protects functions with vulnerable objects.
+				This includes functions with buffers larger than 8 bytes or calls to alloca.
 		config KERNEL_CC_STACKPROTECTOR_STRONG
 			bool "Strong"
+			help
+				Like Regular, but also protects functions with
+				local arrays or references to local frame addresses.
 	endchoice
 
 	config KERNEL_STACKPROTECTOR



From lede-commits at lists.infradead.org  Sat Nov  9 17:16:00 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 09 Nov 2024 20:16:00 -0500
Subject: [openwrt/openwrt]  hostapd: split long lines
In-Reply-To: <173120136039.3354615.5739182819618816909@git-01.infra.openwrt.org>
References: <173120136039.3354615.5739182819618816909@git-01.infra.openwrt.org>
Message-ID: <mailman.156379.1731201369.1280.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/8b6d5874b88bbe2e7a53bcab0e102b8781480880

commit 8b6d5874b88bbe2e7a53bcab0e102b8781480880
Author: Leon M. Busch-George <leon at georgemail.eu>
AuthorDate: Mon Feb 19 12:49:28 2024 +0100

    hostapd: split long lines
    
    These two were getting rather long.
    
    Signed-off-by: Leon M. Busch-George <leon at georgemail.eu>
    Link: https://github.com/openwrt/openwrt/pull/16849
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 package/network/services/hostapd/Makefile | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/package/network/services/hostapd/Makefile b/package/network/services/hostapd/Makefile
index 0e3396262d..16dfbff2b0 100644
--- a/package/network/services/hostapd/Makefile
+++ b/package/network/services/hostapd/Makefile
@@ -84,7 +84,11 @@ ifneq ($(CONFIG_DRIVER_11BE_SUPPORT),)
   HOSTAPD_IEEE80211BE:=y
 endif
 
-CORE_DEPENDS = +ucode +libubus +libucode +ucode-mod-fs +ucode-mod-nl80211 +ucode-mod-rtnl +ucode-mod-ubus +ucode-mod-uloop +libblobmsg-json +libudebug
+
+CORE_DEPENDS = +ucode +libucode \
+	+ucode-mod-fs +ucode-mod-nl80211 +ucode-mod-rtnl +ucode-mod-ubus +ucode-mod-uloop \
+	+libubus +libblobmsg-json \
+	+libudebug
 OPENSSL_DEPENDS = +PACKAGE_$(1):libopenssl +PACKAGE_$(1):libopenssl-legacy
 
 DRIVER_MAKEOPTS= \
@@ -716,7 +720,13 @@ define Install/supplicant
 endef
 
 define Package/hostapd-common/install
-	$(INSTALL_DIR) $(1)/etc/capabilities $(1)/etc/rc.button $(1)/etc/hotplug.d/ieee80211 $(1)/etc/init.d $(1)/lib/netifd  $(1)/usr/share/acl.d $(1)/usr/share/hostap
+	$(INSTALL_DIR) \
+	  $(1)/etc/capabilities \
+	  $(1)/etc/rc.button \
+	  $(1)/etc/hotplug.d/ieee80211 \
+	  $(1)/etc/init.d $(1)/lib/netifd \
+	  $(1)/usr/share/acl.d \
+	  $(1)/usr/share/hostap
 	$(INSTALL_BIN) ./files/dhcp-get-server.sh $(1)/lib/netifd/dhcp-get-server.sh
 	$(INSTALL_BIN) ./files/wpad.init $(1)/etc/init.d/wpad
 	$(INSTALL_BIN) ./files/wps-hotplug.sh $(1)/etc/rc.button/wps



From lede-commits at lists.infradead.org  Sat Nov  9 17:16:44 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 09 Nov 2024 20:16:44 -0500
Subject: [openwrt/openwrt]  treewide: remove THIS_MODULE assignment
In-Reply-To: <173120140419.3355357.3956090507489162645@git-01.infra.openwrt.org>
References: <173120140419.3355357.3956090507489162645@git-01.infra.openwrt.org>
Message-ID: <mailman.156380.1731201414.1280.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/cc98cfafd799d502fbe09ddb62bab68633d570f5

commit cc98cfafd799d502fbe09ddb62bab68633d570f5
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Thu Oct 31 12:22:04 2024 -0700

    treewide: remove THIS_MODULE assignment
    
    Matches upstream coccinelle check: api/platform_no_drv_owner.cocci.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16846
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c        | 2 --
 package/kernel/gpio-nct5104d/src/gpio-nct5104d.c                    | 1 -
 package/kernel/lantiq/ltq-adsl-mei/src/drv_mei_cpe.c                | 1 -
 package/kernel/lantiq/ltq-adsl/patches/120-platform.patch           | 3 +--
 package/kernel/lantiq/ltq-atm/src/ltq_atm.c                         | 1 -
 package/kernel/lantiq/ltq-deu/src/ifxmips_deu.c                     | 1 -
 package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_adsl.c                | 1 -
 package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c                | 1 -
 package/kernel/ubootenv-nvram/src/ubootenv-nvram.c                  | 1 -
 target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c         | 1 -
 target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c              | 1 -
 target/linux/ath79/files/drivers/mtd/nand/raw/ar934x_nand.c         | 1 -
 target/linux/ath79/files/drivers/mtd/nand/raw/rb91x_nand.c          | 1 -
 target/linux/bcm47xx/patches-6.6/831-old_gpio_wdt.patch             | 3 +--
 target/linux/generic/files/drivers/net/phy/rtl8366rb.c              | 1 -
 target/linux/generic/files/drivers/net/phy/rtl8366s.c               | 1 -
 target/linux/generic/files/drivers/net/phy/rtl8367.c                | 1 -
 target/linux/generic/files/drivers/net/phy/rtl8367b.c               | 1 -
 target/linux/generic/hack-6.6/800-GPIO-add-named-gpio-exports.patch | 3 +--
 .../510-block-add-uImage.FIT-subimage-block-driver.patch            | 3 +--
 target/linux/ipq40xx/patches-6.6/850-soc-add-qualcomm-syscon.patch  | 3 +--
 target/linux/ipq806x/patches-6.6/850-soc-add-qualcomm-syscon.patch  | 3 +--
 .../patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch      | 3 +--
 .../0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch           | 3 +--
 .../0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch        | 3 +--
 .../linux/lantiq/patches-6.6/0151-lantiq-ifxmips_pcie-use-of.patch  | 3 +--
 target/linux/mediatek/files/drivers/net/phy/rtk/rtl8367s_mdio.c     | 1 -
 .../linux/qualcommax/patches-6.6/0900-power-Add-Qualcomm-APM.patch  | 3 +--
 .../patches-6.6/0901-regulator-add-Qualcomm-CPR-regulators.patch    | 6 ++----
 target/linux/ramips/files/drivers/net/ethernet/ralink/esw_rt3050.c  | 1 -
 target/linux/ramips/files/drivers/net/ethernet/ralink/gsw_mt7620.c  | 1 -
 target/linux/ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c | 1 -
 target/linux/siflower/files-6.6/drivers/gpio/gpio-siflower.c        | 1 -
 33 files changed, 13 insertions(+), 48 deletions(-)

diff --git a/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c b/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
index 52346c25d9..9876dee90f 100644
--- a/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
+++ b/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
@@ -693,7 +693,6 @@ static struct platform_driver gpio_keys_driver = {
 	.remove	= gpio_keys_remove,
 	.driver	= {
 		.name	= "gpio-keys",
-		.owner	= THIS_MODULE,
 		.of_match_table = of_match_ptr(gpio_keys_of_match),
 	},
 };
@@ -703,7 +702,6 @@ static struct platform_driver gpio_keys_polled_driver = {
 	.remove	= gpio_keys_remove,
 	.driver	= {
 		.name	= "gpio-keys-polled",
-		.owner	= THIS_MODULE,
 		.of_match_table = of_match_ptr(gpio_keys_polled_of_match),
 	},
 };
diff --git a/package/kernel/gpio-nct5104d/src/gpio-nct5104d.c b/package/kernel/gpio-nct5104d/src/gpio-nct5104d.c
index e31a94b5cf..ffeab29eda 100644
--- a/package/kernel/gpio-nct5104d/src/gpio-nct5104d.c
+++ b/package/kernel/gpio-nct5104d/src/gpio-nct5104d.c
@@ -366,7 +366,6 @@ err:
 
 static struct platform_driver nct5104d_gpio_driver = {
 	.driver = {
-		.owner	= THIS_MODULE,
 		.name	= DRVNAME,
 	},
 	.probe		= nct5104d_gpio_probe,
diff --git a/package/kernel/lantiq/ltq-adsl-mei/src/drv_mei_cpe.c b/package/kernel/lantiq/ltq-adsl-mei/src/drv_mei_cpe.c
index ba23232ee9..20a63716a3 100644
--- a/package/kernel/lantiq/ltq-adsl-mei/src/drv_mei_cpe.c
+++ b/package/kernel/lantiq/ltq-adsl-mei/src/drv_mei_cpe.c
@@ -2807,7 +2807,6 @@ static struct platform_driver ltq_mei_driver = {
 	.remove = ltq_mei_remove,
 	.driver = {
 		.name = "lantiq,mei-xway",
-		.owner = THIS_MODULE,
 		.of_match_table = ltq_mei_match,
 	},
 };
diff --git a/package/kernel/lantiq/ltq-adsl/patches/120-platform.patch b/package/kernel/lantiq/ltq-adsl/patches/120-platform.patch
index 7bbcf35cd2..69f2b45e32 100644
--- a/package/kernel/lantiq/ltq-adsl/patches/120-platform.patch
+++ b/package/kernel/lantiq/ltq-adsl/patches/120-platform.patch
@@ -36,7 +36,7 @@
  }
  
  #ifndef _lint
-@@ -1159,8 +1159,30 @@ module_param(debug_level, byte, 0);
+@@ -1159,8 +1159,29 @@ module_param(debug_level, byte, 0);
  MODULE_PARM_DESC(debug_level, "set to get more (1) or fewer (4) debug outputs");
  #endif /* #ifndef DSL_DEBUG_DISABLE*/
  
@@ -59,7 +59,6 @@
 +	.remove = __devexit_p(ltq_adsl_remove),
 +	.driver = {
 +		.name = "adsl",
-+		.owner = THIS_MODULE,
 +		.of_match_table = ltq_adsl_match,
 +	},
 +};
diff --git a/package/kernel/lantiq/ltq-atm/src/ltq_atm.c b/package/kernel/lantiq/ltq-atm/src/ltq_atm.c
index 0cb49a59bd..6b1e0321b3 100644
--- a/package/kernel/lantiq/ltq-atm/src/ltq_atm.c
+++ b/package/kernel/lantiq/ltq-atm/src/ltq_atm.c
@@ -1894,7 +1894,6 @@ static struct platform_driver ltq_atm_driver = {
 	.remove = ltq_atm_remove,
 	.driver = {
 		.name = "atm",
-		.owner = THIS_MODULE,
 		.of_match_table = ltq_atm_match,
 	},
 };
diff --git a/package/kernel/lantiq/ltq-deu/src/ifxmips_deu.c b/package/kernel/lantiq/ltq-deu/src/ifxmips_deu.c
index 096b8b5bba..e44e84c03c 100644
--- a/package/kernel/lantiq/ltq-deu/src/ifxmips_deu.c
+++ b/package/kernel/lantiq/ltq-deu/src/ifxmips_deu.c
@@ -196,7 +196,6 @@ static struct platform_driver ltq_deu_driver = {
 	.remove = ltq_deu_remove,
 	.driver = {
 		.name = "deu",
-		.owner = THIS_MODULE,
 		.of_match_table = ltq_deu_match,
 	},
 };
diff --git a/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_adsl.c b/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_adsl.c
index 3ff01d588a..5e5535348d 100644
--- a/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_adsl.c
+++ b/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_adsl.c
@@ -1600,7 +1600,6 @@ static struct platform_driver ltq_ptm_driver = {
        .remove = ltq_ptm_remove,
        .driver = {
                .name = "ptm",
-               .owner = THIS_MODULE,
                .of_match_table = ltq_ptm_match,
        },
 };
diff --git a/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c b/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c
index 6731904bba..c5bbd9fd87 100644
--- a/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c
+++ b/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c
@@ -1138,7 +1138,6 @@ static struct platform_driver ltq_ptm_driver = {
 	.remove = ltq_ptm_remove,
 	.driver = {
 		.name = "ptm",
-		.owner = THIS_MODULE,
 		.of_match_table = ltq_ptm_match,
 	},
 };
diff --git a/package/kernel/ubootenv-nvram/src/ubootenv-nvram.c b/package/kernel/ubootenv-nvram/src/ubootenv-nvram.c
index f624414216..106e41231c 100644
--- a/package/kernel/ubootenv-nvram/src/ubootenv-nvram.c
+++ b/package/kernel/ubootenv-nvram/src/ubootenv-nvram.c
@@ -146,7 +146,6 @@ static struct platform_driver ubootenv_driver = {
 	.remove = ubootenv_remove,
 	.driver = {
 		.name           = NAME,
-		.owner          = THIS_MODULE,
 		.of_match_table = of_ubootenv_match,
 	},
 };
diff --git a/target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c b/target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c
index 4baed52e57..a0759fe9e3 100644
--- a/target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c
+++ b/target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c
@@ -168,7 +168,6 @@ static struct platform_driver gpio_latch_driver = {
 	.probe = gpio_latch_probe,
 	.driver = {
 		.name = GPIO_LATCH_DRIVER_NAME,
-		.owner = THIS_MODULE,
 		.of_match_table = gpio_latch_match,
 	},
 };
diff --git a/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c b/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c
index 02639cf011..d83b690afe 100644
--- a/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c
+++ b/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c
@@ -182,7 +182,6 @@ static struct platform_driver gpio_rb91x_key_driver = {
 	.probe = gpio_rb91x_key_probe,
 	.driver = {
 		.name = GPIO_RB91X_KEY_DRIVER_NAME,
-		.owner = THIS_MODULE,
 		.of_match_table = gpio_rb91x_key_match,
 	},
 };
diff --git a/target/linux/ath79/files/drivers/mtd/nand/raw/ar934x_nand.c b/target/linux/ath79/files/drivers/mtd/nand/raw/ar934x_nand.c
index d0d9e2090b..029142ca61 100644
--- a/target/linux/ath79/files/drivers/mtd/nand/raw/ar934x_nand.c
+++ b/target/linux/ath79/files/drivers/mtd/nand/raw/ar934x_nand.c
@@ -1478,7 +1478,6 @@ static struct platform_driver ar934x_nfc_driver = {
 	.remove		= ar934x_nfc_remove,
 	.driver = {
 		.name	= AR934X_NFC_DRIVER_NAME,
-		.owner	= THIS_MODULE,
 		.of_match_table = ar934x_nfc_match,
 	},
 };
diff --git a/target/linux/ath79/files/drivers/mtd/nand/raw/rb91x_nand.c b/target/linux/ath79/files/drivers/mtd/nand/raw/rb91x_nand.c
index 092cd85d82..cf2809bfa3 100644
--- a/target/linux/ath79/files/drivers/mtd/nand/raw/rb91x_nand.c
+++ b/target/linux/ath79/files/drivers/mtd/nand/raw/rb91x_nand.c
@@ -356,7 +356,6 @@ static struct platform_driver rb91x_nand_driver = {
 	.remove	= rb91x_nand_remove,
 	.driver	= {
 		.name	= "rb91x-nand",
-		.owner	= THIS_MODULE,
 		.of_match_table = rb91x_nand_match,
 	},
 };
diff --git a/target/linux/bcm47xx/patches-6.6/831-old_gpio_wdt.patch b/target/linux/bcm47xx/patches-6.6/831-old_gpio_wdt.patch
index 6c76cbeee7..f7ab33802c 100644
--- a/target/linux/bcm47xx/patches-6.6/831-old_gpio_wdt.patch
+++ b/target/linux/bcm47xx/patches-6.6/831-old_gpio_wdt.patch
@@ -32,7 +32,7 @@ Signed-off-by: Mathias Adam <m.adam--openwrt at adamis.de>
  obj-$(CONFIG_TXX9_WDT) += txx9wdt.o
 --- /dev/null
 +++ b/drivers/watchdog/old_gpio_wdt.c
-@@ -0,0 +1,301 @@
+@@ -0,0 +1,300 @@
 +/*
 + *      Driver for GPIO-controlled Hardware Watchdogs.
 + *
@@ -294,7 +294,6 @@ Signed-off-by: Mathias Adam <m.adam--openwrt at adamis.de>
 +	.probe = gpio_wdt_probe,
 +	.remove = gpio_wdt_remove,
 +	.driver.name = "gpio-wdt",
-+	.driver.owner = THIS_MODULE,
 +};
 +
 +static int __init gpio_wdt_init(void)
diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366rb.c b/target/linux/generic/files/drivers/net/phy/rtl8366rb.c
index 0e0116051a..0878ca9f14 100644
--- a/target/linux/generic/files/drivers/net/phy/rtl8366rb.c
+++ b/target/linux/generic/files/drivers/net/phy/rtl8366rb.c
@@ -1503,7 +1503,6 @@ MODULE_DEVICE_TABLE(of, rtl8366rb_match);
 static struct platform_driver rtl8366rb_driver = {
 	.driver = {
 		.name		= RTL8366RB_DRIVER_NAME,
-		.owner		= THIS_MODULE,
 		.of_match_table = of_match_ptr(rtl8366rb_match),
 	},
 	.probe		= rtl8366rb_probe,
diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366s.c b/target/linux/generic/files/drivers/net/phy/rtl8366s.c
index 8c746778b8..d4045fcc06 100644
--- a/target/linux/generic/files/drivers/net/phy/rtl8366s.c
+++ b/target/linux/generic/files/drivers/net/phy/rtl8366s.c
@@ -1291,7 +1291,6 @@ MODULE_DEVICE_TABLE(of, rtl8366s_match);
 static struct platform_driver rtl8366s_driver = {
 	.driver = {
 		.name		= RTL8366S_DRIVER_NAME,
-		.owner		= THIS_MODULE,
 #ifdef CONFIG_OF
 		.of_match_table = of_match_ptr(rtl8366s_match),
 #endif
diff --git a/target/linux/generic/files/drivers/net/phy/rtl8367.c b/target/linux/generic/files/drivers/net/phy/rtl8367.c
index 0acfeb54bb..950e9d2767 100644
--- a/target/linux/generic/files/drivers/net/phy/rtl8367.c
+++ b/target/linux/generic/files/drivers/net/phy/rtl8367.c
@@ -1834,7 +1834,6 @@ MODULE_DEVICE_TABLE(of, rtl8367_match);
 static struct platform_driver rtl8367_driver = {
 	.driver = {
 		.name		= RTL8367_DRIVER_NAME,
-		.owner		= THIS_MODULE,
 #ifdef CONFIG_OF
 		.of_match_table = of_match_ptr(rtl8367_match),
 #endif
diff --git a/target/linux/generic/files/drivers/net/phy/rtl8367b.c b/target/linux/generic/files/drivers/net/phy/rtl8367b.c
index 4236912dd5..5f885aa5be 100644
--- a/target/linux/generic/files/drivers/net/phy/rtl8367b.c
+++ b/target/linux/generic/files/drivers/net/phy/rtl8367b.c
@@ -1633,7 +1633,6 @@ MODULE_DEVICE_TABLE(of, rtl8367b_match);
 static struct platform_driver rtl8367b_driver = {
 	.driver = {
 		.name		= RTL8367B_DRIVER_NAME,
-		.owner		= THIS_MODULE,
 #ifdef CONFIG_OF
 		.of_match_table = of_match_ptr(rtl8367b_match),
 #endif
diff --git a/target/linux/generic/hack-6.6/800-GPIO-add-named-gpio-exports.patch b/target/linux/generic/hack-6.6/800-GPIO-add-named-gpio-exports.patch
index a1d787191c..e6dcdfd92b 100644
--- a/target/linux/generic/hack-6.6/800-GPIO-add-named-gpio-exports.patch
+++ b/target/linux/generic/hack-6.6/800-GPIO-add-named-gpio-exports.patch
@@ -15,7 +15,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  
  #include "gpiolib.h"
  #include "gpiolib-of.h"
-@@ -1129,3 +1131,74 @@ void of_gpiochip_remove(struct gpio_chip
+@@ -1129,3 +1131,73 @@ void of_gpiochip_remove(struct gpio_chip
  {
  	of_node_put(dev_of_node(&chip->gpiodev->dev));
  }
@@ -81,7 +81,6 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +static struct platform_driver gpio_export_driver = {
 +	.driver		= {
 +		.name		= "gpio-export",
-+		.owner	= THIS_MODULE,
 +		.of_match_table	= of_match_ptr(gpio_export_ids),
 +	},
 +	.probe		= of_gpio_export_probe,
diff --git a/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch b/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch
index ff38964ece..b06c29ffaf 100644
--- a/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch
+++ b/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch
@@ -81,7 +81,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  swim_mod-y	:= swim.o swim_asm.o
 --- /dev/null
 +++ b/drivers/block/fitblk.c
-@@ -0,0 +1,659 @@
+@@ -0,0 +1,658 @@
 +// SPDX-License-Identifier: GPL-2.0-only
 +/*
 + * uImage.FIT virtual block device driver.
@@ -714,7 +714,6 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 +	.probe		= fitblk_probe,
 +	.driver		= {
 +		.name   = "fitblk",
-+		.owner   = THIS_MODULE,
 +	},
 +};
 +
diff --git a/target/linux/ipq40xx/patches-6.6/850-soc-add-qualcomm-syscon.patch b/target/linux/ipq40xx/patches-6.6/850-soc-add-qualcomm-syscon.patch
index 0e93ebb646..7cd473b24e 100644
--- a/target/linux/ipq40xx/patches-6.6/850-soc-add-qualcomm-syscon.patch
+++ b/target/linux/ipq40xx/patches-6.6/850-soc-add-qualcomm-syscon.patch
@@ -23,7 +23,7 @@ Subject: SoC: add qualcomm syscon
 +obj-$(CONFIG_QCOM_TCSR)		+= qcom_tcsr.o
 --- /dev/null
 +++ b/drivers/soc/qcom/qcom_tcsr.c
-@@ -0,0 +1,96 @@
+@@ -0,0 +1,95 @@
 +/*
 + * Copyright (c) 2014, The Linux foundation. All rights reserved.
 + *
@@ -109,7 +109,6 @@ Subject: SoC: add qualcomm syscon
 +static struct platform_driver tcsr_driver = {
 +	.driver = {
 +		.name		= "tcsr",
-+		.owner		= THIS_MODULE,
 +		.of_match_table	= tcsr_dt_match,
 +	},
 +	.probe = tcsr_probe,
diff --git a/target/linux/ipq806x/patches-6.6/850-soc-add-qualcomm-syscon.patch b/target/linux/ipq806x/patches-6.6/850-soc-add-qualcomm-syscon.patch
index 8b49af8e84..2d639bbfd3 100644
--- a/target/linux/ipq806x/patches-6.6/850-soc-add-qualcomm-syscon.patch
+++ b/target/linux/ipq806x/patches-6.6/850-soc-add-qualcomm-syscon.patch
@@ -28,7 +28,7 @@ Subject: SoC: add qualcomm syscon
  	depends on ARCH_QCOM || COMPILE_TEST
 --- /dev/null
 +++ b/drivers/soc/qcom/qcom_tcsr.c
-@@ -0,0 +1,62 @@
+@@ -0,0 +1,61 @@
 +/*
 + * Copyright (c) 2014, The Linux foundation. All rights reserved.
 + *
@@ -80,7 +80,6 @@ Subject: SoC: add qualcomm syscon
 +static struct platform_driver tcsr_driver = {
 +	.driver = {
 +		.name		= "tcsr",
-+		.owner		= THIS_MODULE,
 +		.of_match_table	= tcsr_dt_match,
 +	},
 +	.probe = tcsr_probe,
diff --git a/target/linux/lantiq/patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch b/target/linux/lantiq/patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch
index 3e6c267685..81bf72913b 100644
--- a/target/linux/lantiq/patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch
+++ b/target/linux/lantiq/patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch
@@ -186,7 +186,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  obj-y += vmmc.o
 --- /dev/null
 +++ b/arch/mips/lantiq/xway/timer.c
-@@ -0,0 +1,887 @@
+@@ -0,0 +1,886 @@
 +#ifndef CONFIG_SOC_AMAZON_SE
 +
 +#include <linux/kernel.h>
@@ -1043,7 +1043,6 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +	.probe = gptu_probe,
 +	.driver = {
 +		.name = "gptu-xway",
-+		.owner = THIS_MODULE,
 +		.of_match_table = gptu_match,
 +	},
 +};
diff --git a/target/linux/lantiq/patches-6.6/0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch b/target/linux/lantiq/patches-6.6/0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch
index 1992b536f4..235e48f6de 100644
--- a/target/linux/lantiq/patches-6.6/0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch
+++ b/target/linux/lantiq/patches-6.6/0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch
@@ -47,7 +47,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  obj-$(CONFIG_I2C_MESON)		+= i2c-meson.o
 --- /dev/null
 +++ b/drivers/i2c/busses/i2c-lantiq.c
-@@ -0,0 +1,746 @@
+@@ -0,0 +1,745 @@
 +
 +/*
 + * Lantiq I2C bus adapter
@@ -782,7 +782,6 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +	.remove	= ltq_i2c_remove,
 +	.driver	= {
 +		.name	= DRV_NAME,
-+		.owner	= THIS_MODULE,
 +		.of_match_table = ltq_i2c_match,
 +	},
 +};
diff --git a/target/linux/lantiq/patches-6.6/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch b/target/linux/lantiq/patches-6.6/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch
index 8bb6e5a0da..3ece97052b 100644
--- a/target/linux/lantiq/patches-6.6/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch
+++ b/target/linux/lantiq/patches-6.6/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch
@@ -36,7 +36,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +obj-$(CONFIG_PCI) += ath5k_eep.o
 --- /dev/null
 +++ b/arch/mips/lantiq/xway/ath5k_eep.c
-@@ -0,0 +1,136 @@
+@@ -0,0 +1,135 @@
 +/*
 + *  Copyright (C) 2011 Luca Olivetti <luca at ventoso.org>
 + *  Copyright (C) 2011 John Crispin <blogic at openwrt.org>
@@ -149,7 +149,6 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +static struct platform_driver ath5k_eeprom_driver = {
 +	.driver		= {
 +		.name		= "ath5k,eeprom",
-+		.owner	= THIS_MODULE,
 +		.of_match_table	= of_match_ptr(ath5k_eeprom_ids),
 +	},
 +};
diff --git a/target/linux/lantiq/patches-6.6/0151-lantiq-ifxmips_pcie-use-of.patch b/target/linux/lantiq/patches-6.6/0151-lantiq-ifxmips_pcie-use-of.patch
index b83bf992a6..65253bc7e4 100644
--- a/target/linux/lantiq/patches-6.6/0151-lantiq-ifxmips_pcie-use-of.patch
+++ b/target/linux/lantiq/patches-6.6/0151-lantiq-ifxmips_pcie-use-of.patch
@@ -293,7 +293,7 @@ Signed-off-by: Eddi De Pieri <eddi at depieri.net>
  
              register_pci_controller(&ifx_pcie_controller[pcie_port].pcic);
              /* XXX, clear error status */
-@@ -1083,6 +1185,30 @@ static int __init ifx_pcie_bios_init(voi
+@@ -1083,6 +1185,29 @@ static int __init ifx_pcie_bios_init(voi
  
      return 0;
  }
@@ -308,7 +308,6 @@ Signed-off-by: Eddi De Pieri <eddi at depieri.net>
 +        .probe = ifx_pcie_bios_probe,
 +        .driver = {
 +                .name = "pcie-xrx200",
-+                .owner = THIS_MODULE,
 +                .of_match_table = ifxmips_pcie_match,
 +        },
 +};
diff --git a/target/linux/mediatek/files/drivers/net/phy/rtk/rtl8367s_mdio.c b/target/linux/mediatek/files/drivers/net/phy/rtk/rtl8367s_mdio.c
index b4d4554d4f..d958d622e0 100644
--- a/target/linux/mediatek/files/drivers/net/phy/rtk/rtl8367s_mdio.c
+++ b/target/linux/mediatek/files/drivers/net/phy/rtk/rtl8367s_mdio.c
@@ -296,7 +296,6 @@ static struct platform_driver gsw_driver = {
 	.remove = rtk_gsw_remove,
 	.driver = {
 		.name = "rtk-gsw",
-		.owner = THIS_MODULE,
 		.of_match_table = rtk_gsw_match,
 	},
 };
diff --git a/target/linux/qualcommax/patches-6.6/0900-power-Add-Qualcomm-APM.patch b/target/linux/qualcommax/patches-6.6/0900-power-Add-Qualcomm-APM.patch
index 2e5c72b7d1..f105351584 100644
--- a/target/linux/qualcommax/patches-6.6/0900-power-Add-Qualcomm-APM.patch
+++ b/target/linux/qualcommax/patches-6.6/0900-power-Add-Qualcomm-APM.patch
@@ -49,7 +49,7 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
 +obj-$(CONFIG_QCOM_APM)		+= apm.o
 --- /dev/null
 +++ b/drivers/power/qcom/apm.c
-@@ -0,0 +1,944 @@
+@@ -0,0 +1,943 @@
 +/*
 + * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
 + *
@@ -971,7 +971,6 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
 +	.driver		= {
 +		.name		= MSM_APM_DRIVER_NAME,
 +		.of_match_table	= msm_apm_match_table,
-+		.owner		= THIS_MODULE,
 +	},
 +	.probe		= msm_apm_probe,
 +	.remove		= msm_apm_remove,
diff --git a/target/linux/qualcommax/patches-6.6/0901-regulator-add-Qualcomm-CPR-regulators.patch b/target/linux/qualcommax/patches-6.6/0901-regulator-add-Qualcomm-CPR-regulators.patch
index c85be0357c..46d4fc246f 100644
--- a/target/linux/qualcommax/patches-6.6/0901-regulator-add-Qualcomm-CPR-regulators.patch
+++ b/target/linux/qualcommax/patches-6.6/0901-regulator-add-Qualcomm-CPR-regulators.patch
@@ -77,7 +77,7 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
  obj-$(CONFIG_REGULATOR_PF8X00) += pf8x00-regulator.o
 --- /dev/null
 +++ b/drivers/regulator/cpr3-npu-regulator.c
-@@ -0,0 +1,695 @@
+@@ -0,0 +1,694 @@
 +/*
 + * Copyright (c) 2017, The Linux Foundation. All rights reserved.
 + *
@@ -752,7 +752,6 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
 +	.driver		= {
 +		.name		= "qcom,cpr3-npu-regulator",
 +		.of_match_table	= cpr3_regulator_match_table,
-+		.owner		= THIS_MODULE,
 +	},
 +	.probe		= cpr3_npu_regulator_probe,
 +	.remove		= cpr3_npu_regulator_remove,
@@ -9866,7 +9865,7 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
 +}
 --- /dev/null
 +++ b/drivers/regulator/cpr4-apss-regulator.c
-@@ -0,0 +1,1819 @@
+@@ -0,0 +1,1818 @@
 +/*
 + * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
 + *
@@ -11663,7 +11662,6 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
 +	.driver		= {
 +		.name		= "qcom,cpr4-apss-regulator",
 +		.of_match_table	= cpr4_regulator_match_table,
-+		.owner		= THIS_MODULE,
 +	},
 +	.probe		= cpr4_apss_regulator_probe,
 +	.remove		= cpr4_apss_regulator_remove,
diff --git a/target/linux/ramips/files/drivers/net/ethernet/ralink/esw_rt3050.c b/target/linux/ramips/files/drivers/net/ethernet/ralink/esw_rt3050.c
index cafa28e7a4..bbb52d74b2 100644
--- a/target/linux/ramips/files/drivers/net/ethernet/ralink/esw_rt3050.c
+++ b/target/linux/ramips/files/drivers/net/ethernet/ralink/esw_rt3050.c
@@ -1525,7 +1525,6 @@ static struct platform_driver esw_driver = {
 	.remove = esw_remove,
 	.driver = {
 		.name = "rt3050-esw",
-		.owner = THIS_MODULE,
 		.of_match_table = ralink_esw_match,
 	},
 };
diff --git a/target/linux/ramips/files/drivers/net/ethernet/ralink/gsw_mt7620.c b/target/linux/ramips/files/drivers/net/ethernet/ralink/gsw_mt7620.c
index 9fc54a74b4..154983494e 100644
--- a/target/linux/ramips/files/drivers/net/ethernet/ralink/gsw_mt7620.c
+++ b/target/linux/ramips/files/drivers/net/ethernet/ralink/gsw_mt7620.c
@@ -296,7 +296,6 @@ static struct platform_driver gsw_driver = {
 	.remove = mt7620_gsw_remove,
 	.driver = {
 		.name = "mt7620-gsw",
-		.owner = THIS_MODULE,
 		.of_match_table = mediatek_gsw_match,
 	},
 };
diff --git a/target/linux/ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c b/target/linux/ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c
index d8d27fda3b..4dff1340d7 100644
--- a/target/linux/ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c
+++ b/target/linux/ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c
@@ -1657,7 +1657,6 @@ static struct platform_driver fe_driver = {
 	.remove = fe_remove,
 	.driver = {
 		.name = "mtk_soc_eth",
-		.owner = THIS_MODULE,
 		.of_match_table = of_fe_match,
 	},
 };
diff --git a/target/linux/siflower/files-6.6/drivers/gpio/gpio-siflower.c b/target/linux/siflower/files-6.6/drivers/gpio/gpio-siflower.c
index f061021e30..bd3d8906b4 100644
--- a/target/linux/siflower/files-6.6/drivers/gpio/gpio-siflower.c
+++ b/target/linux/siflower/files-6.6/drivers/gpio/gpio-siflower.c
@@ -333,7 +333,6 @@ static struct platform_driver sf_gpio_driver = {
 	.remove		= sf_gpio_remove,
 	.driver = {
 		.name		= "siflower_gpio",
-		.owner		= THIS_MODULE,
 		.of_match_table	= sf_gpio_ids,
 	},
 };



From lede-commits at lists.infradead.org  Sat Nov  9 19:29:58 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 09 Nov 2024 22:29:58 -0500
Subject: [openwrt/openwrt]  imagebuilder: fix OPKG package inclusion
In-Reply-To: <173120939843.3471277.9653139038553858716@git-01.infra.openwrt.org>
References: <173120939843.3471277.9653139038553858716@git-01.infra.openwrt.org>
Message-ID: <mailman.156383.1731209403.1280.lede-commits@lists.infradead.org>

aparcar pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/999ef8270fcce23ff976f3361f562f96ecee7b21

commit 999ef8270fcce23ff976f3361f562f96ecee7b21
Author: Paul Spooren <mail at aparcar.org>
AuthorDate: Sun Nov 10 04:26:43 2024 +0100

    imagebuilder: fix OPKG package inclusion
    
    In 451e2ce006 the code would only move packages separated by dashes,
    however OPKG uses underscores to split between package name and version.
    Result was the lack of such packages in the packed ImageBuilder.
    
    Use dashes or underscores depending on the select package manger.
    
    Fixes: 451e2ce006 "imagebuilder: fix package inclusion and APK index"
    
    Signed-off-by: Paul Spooren <mail at aparcar.org>
---
 target/imagebuilder/Makefile | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/target/imagebuilder/Makefile b/target/imagebuilder/Makefile
index 19f21472bd..9181d86a1c 100644
--- a/target/imagebuilder/Makefile
+++ b/target/imagebuilder/Makefile
@@ -23,6 +23,7 @@ BUNDLER_PATH := $(subst $(space),:,$(filter-out $(TOPDIR)/%,$(subst :,$(space),$
 BUNDLER_COMMAND := PATH=$(BUNDLER_PATH) $(XARGS) $(SCRIPT_DIR)/bundle-libraries.sh $(PKG_BUILD_DIR)/staging_dir/host
 
 PACKAGE_SUFFIX:=$(if $(CONFIG_USE_APK),apk,ipk)
+PACKAGE_VERSION_SEPARATOR:=$(if $(CONFIG_USE_APK),-,_)
 
 all: compile
 
@@ -71,9 +72,9 @@ endif
 ifeq ($(CONFIG_IB_STANDALONE),)
 	$(FIND) $(call FeedPackageDir,libc) -type f \
 	  \( \
-		-name 'base-files-*.$(PACKAGE_SUFFIX)' -or \
-		-name 'libc-*.$(PACKAGE_SUFFIX)' -or \
-		-name 'kernel-*.$(PACKAGE_SUFFIX)' \) \
+		-name 'base-files$(PACKAGE_VERSION_SEPARATOR)*.$(PACKAGE_SUFFIX)' -or \
+		-name 'libc$(PACKAGE_VERSION_SEPARATOR)*.$(PACKAGE_SUFFIX)' -or \
+		-name 'kernel$(PACKAGE_VERSION_SEPARATOR)*.$(PACKAGE_SUFFIX)' \) \
 	  -exec $(CP) -t $(PKG_BUILD_DIR)/packages {} +
 else
 	$(FIND) $(wildcard $(PACKAGE_SUBDIRS)) -type f -name '*.$(PACKAGE_SUFFIX)' \



From lede-commits at lists.infradead.org  Sun Nov 10 01:35:30 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 10 Nov 2024 04:35:30 -0500
Subject: [openwrt/openwrt]  kernel: bump 6.6 to 6.6.60
In-Reply-To: <173123133010.3804496.10651771881087403189@git-01.infra.openwrt.org>
References: <173123133010.3804496.10651771881087403189@git-01.infra.openwrt.org>
Message-ID: <mailman.156396.1731231337.1280.lede-commits@lists.infradead.org>

nick pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/85844cfc5c591d00997ade665340315d54bc5822

commit 85844cfc5c591d00997ade665340315d54bc5822
Author: John Audia <therealgraysky at proton.me>
AuthorDate: Fri Nov 8 14:57:44 2024 -0500

    kernel: bump 6.6 to 6.6.60
    
    Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.60
    
    Removed upstreamed:
            generic/backport-6.6/409-mtd-spi-nor-winbond-fix-w25q128-regression.patch
    
    All other patches automatically rebased.
    
    1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.60&id=27a58a19bd20a7afe369da2ce6d4ebea70768acd
    
    Build system: x86/64
    Build-tested: x86/64/AMD Cezanne, flogic/glinet_gl-mt6000, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
    Run-tested: x86/64/AMD Cezanne, flogic/glinet_gl-mt6000, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
    
    Signed-off-by: John Audia <therealgraysky at proton.me>
    Link: https://github.com/openwrt/openwrt/pull/16892
    Signed-off-by: Nick Hainke <vincent at systemli.org>
---
 include/kernel-6.6                                 |  4 +-
 ...Add-devm_thermal_of_zone_register_with_pa.patch |  4 +-
 ...t5x06-Poll-the-device-if-no-interrupt-is-.patch |  2 +-
 ...t54x6-Clean-up-timer-and-workqueue-on-rem.patch |  4 +-
 ...oth-hci_sync-Add-fallback-bd-address-prop.patch |  4 +-
 ...screen-edt-ft5x06-Suppress-bogus-data-on-.patch |  4 +-
 ...uetooth-hci_sync-Fix-crash-on-NULL-parent.patch |  2 +-
 ...td-spi-nor-winbond-fix-w25q128-regression.patch | 59 ----------------------
 ...conditional-threaded-NAPI-wakeup-based-on.patch |  6 +--
 ...Allow-to-use-SMP-threads-for-backlog-NAPI.patch | 22 ++++----
 ...e-backlog-NAPI-to-clean-up-the-defer_list.patch |  2 +-
 ...v6.10-net-Rename-rps_lock-to-backlog_lock.patch | 18 +++----
 ...v6.11-net-Make-USO-depend-on-CSUM-offload.patch |  6 +--
 ...stats64-if-device-if-driver-is-configured.patch |  2 +-
 ...0-net-create-a-dummy-net_device-allocator.patch |  6 +--
 ...70-net-introduce-napi_is_scheduled-helper.patch |  2 +-
 ...stmmac-move-TX-timer-arm-after-DMA-enable.patch | 12 ++---
 ....11-net-free_netdev-exit-earlier-if-dummy.patch |  2 +-
 ...rt-Revert-driver-core-Set-fw_devlink-on-b.patch |  2 +-
 ...-usb-fix-serdes-init-sequence-for-IPQ6018.patch |  2 +-
 .../1009-net-stmmac-use-GFP_DMA32.patch            |  2 +-
 21 files changed, 54 insertions(+), 113 deletions(-)

diff --git a/include/kernel-6.6 b/include/kernel-6.6
index 5e154f2d21..261a77428c 100644
--- a/include/kernel-6.6
+++ b/include/kernel-6.6
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.6 = .59
-LINUX_KERNEL_HASH-6.6.59 = 23616808d8c08f12815ff898f4edb4c11397a2b2843d029ee62452d21833a76d
+LINUX_VERSION-6.6 = .60
+LINUX_KERNEL_HASH-6.6.60 = 52f9e32d5082ab94253447fd66670d0c3bb765cfcb99b0bf61d1b8eae25952ef
diff --git a/target/linux/airoha/patches-6.6/101-01-thermal-of-Add-devm_thermal_of_zone_register_with_pa.patch b/target/linux/airoha/patches-6.6/101-01-thermal-of-Add-devm_thermal_of_zone_register_with_pa.patch
index e69f57d273..889ec1123e 100644
--- a/target/linux/airoha/patches-6.6/101-01-thermal-of-Add-devm_thermal_of_zone_register_with_pa.patch
+++ b/target/linux/airoha/patches-6.6/101-01-thermal-of-Add-devm_thermal_of_zone_register_with_pa.patch
@@ -181,7 +181,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
   * @dev: Device for which which resource was allocated.
 --- a/include/linux/thermal.h
 +++ b/include/linux/thermal.h
-@@ -261,6 +261,10 @@ struct thermal_zone_params {
+@@ -263,6 +263,10 @@ struct thermal_zone_params {
  #ifdef CONFIG_THERMAL_OF
  struct thermal_zone_device *devm_thermal_of_zone_register(struct device *dev, int id, void *data,
  							  const struct thermal_zone_device_ops *ops);
@@ -192,7 +192,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  
  void devm_thermal_of_zone_unregister(struct device *dev, struct thermal_zone_device *tz);
  
-@@ -272,6 +276,15 @@ struct thermal_zone_device *devm_thermal
+@@ -274,6 +278,15 @@ struct thermal_zone_device *devm_thermal
  {
  	return ERR_PTR(-ENOTSUPP);
  }
diff --git a/target/linux/bcm27xx/patches-6.6/950-0262-Input-edt-ft5x06-Poll-the-device-if-no-interrupt-is-.patch b/target/linux/bcm27xx/patches-6.6/950-0262-Input-edt-ft5x06-Poll-the-device-if-no-interrupt-is-.patch
index bfb26e8f02..9369883fc6 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0262-Input-edt-ft5x06-Poll-the-device-if-no-interrupt-is-.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0262-Input-edt-ft5x06-Poll-the-device-if-no-interrupt-is-.patch
@@ -193,7 +193,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  		tsdata->tdata_offset + crclen;
  }
  
-@@ -1317,17 +1374,27 @@ static int edt_ft5x06_ts_probe(struct i2
+@@ -1335,17 +1392,27 @@ static int edt_ft5x06_ts_probe(struct i2
  		return error;
  	}
  
diff --git a/target/linux/bcm27xx/patches-6.6/950-0302-Input-edt-ft54x6-Clean-up-timer-and-workqueue-on-rem.patch b/target/linux/bcm27xx/patches-6.6/950-0302-Input-edt-ft54x6-Clean-up-timer-and-workqueue-on-rem.patch
index 2b5abd2581..3486c2acaa 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0302-Input-edt-ft54x6-Clean-up-timer-and-workqueue-on-rem.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0302-Input-edt-ft54x6-Clean-up-timer-and-workqueue-on-rem.patch
@@ -18,7 +18,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
 
 --- a/drivers/input/touchscreen/edt-ft5x06.c
 +++ b/drivers/input/touchscreen/edt-ft5x06.c
-@@ -1420,6 +1420,10 @@ static void edt_ft5x06_ts_remove(struct
+@@ -1438,6 +1438,10 @@ static void edt_ft5x06_ts_remove(struct
  {
  	struct edt_ft5x06_ts_data *tsdata = i2c_get_clientdata(client);
  
@@ -27,5 +27,5 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
 +		cancel_work_sync(&tsdata->work_i2c_poll);
 +	}
  	edt_ft5x06_ts_teardown_debugfs(tsdata);
- 	regmap_exit(tsdata->regmap);
  }
+ 
diff --git a/target/linux/bcm27xx/patches-6.6/950-0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch b/target/linux/bcm27xx/patches-6.6/950-0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch
index 0e404906be..cc5e3d1dc3 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch
@@ -20,7 +20,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 
 --- a/net/bluetooth/hci_sync.c
 +++ b/net/bluetooth/hci_sync.c
-@@ -4861,6 +4861,7 @@ static const struct {
+@@ -4865,6 +4865,7 @@ static const struct {
   */
  static int hci_dev_setup_sync(struct hci_dev *hdev)
  {
@@ -28,7 +28,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	int ret = 0;
  	bool invalid_bdaddr;
  	size_t i;
-@@ -4889,7 +4890,8 @@ static int hci_dev_setup_sync(struct hci
+@@ -4893,7 +4894,8 @@ static int hci_dev_setup_sync(struct hci
  			 test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
  	if (!ret) {
  		if (test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks) &&
diff --git a/target/linux/bcm27xx/patches-6.6/950-0669-input-touchscreen-edt-ft5x06-Suppress-bogus-data-on-.patch b/target/linux/bcm27xx/patches-6.6/950-0669-input-touchscreen-edt-ft5x06-Suppress-bogus-data-on-.patch
index b3bf708ade..9019a43049 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0669-input-touchscreen-edt-ft5x06-Suppress-bogus-data-on-.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0669-input-touchscreen-edt-ft5x06-Suppress-bogus-data-on-.patch
@@ -58,7 +58,7 @@ Signed-off-by: Nick Hollinghurst <nick.hollinghurst at raspberrypi.com>
  		if (!error && num_points)
  			error = regmap_bulk_read(tsdata->regmap,
  						 tsdata->tdata_offset,
-@@ -1300,7 +1318,7 @@ static int edt_ft5x06_ts_probe(struct i2
+@@ -1318,7 +1336,7 @@ static int edt_ft5x06_ts_probe(struct i2
  	if (tsdata->reset_gpio) {
  		usleep_range(5000, 6000);
  		gpiod_set_value_cansleep(tsdata->reset_gpio, 0);
@@ -67,7 +67,7 @@ Signed-off-by: Nick Hollinghurst <nick.hollinghurst at raspberrypi.com>
  	}
  
  	input = devm_input_allocate_device(&client->dev);
-@@ -1389,11 +1407,12 @@ static int edt_ft5x06_ts_probe(struct i2
+@@ -1407,11 +1425,12 @@ static int edt_ft5x06_ts_probe(struct i2
  			return error;
  		}
  	} else {
diff --git a/target/linux/bcm27xx/patches-6.6/950-1218-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch b/target/linux/bcm27xx/patches-6.6/950-1218-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch
index 272f711e63..3b4c7e65af 100644
--- a/target/linux/bcm27xx/patches-6.6/950-1218-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-1218-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch
@@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 
 --- a/net/bluetooth/hci_sync.c
 +++ b/net/bluetooth/hci_sync.c
-@@ -4861,7 +4861,8 @@ static const struct {
+@@ -4865,7 +4865,8 @@ static const struct {
   */
  static int hci_dev_setup_sync(struct hci_dev *hdev)
  {
diff --git a/target/linux/generic/backport-6.6/409-mtd-spi-nor-winbond-fix-w25q128-regression.patch b/target/linux/generic/backport-6.6/409-mtd-spi-nor-winbond-fix-w25q128-regression.patch
deleted file mode 100644
index de79328138..0000000000
--- a/target/linux/generic/backport-6.6/409-mtd-spi-nor-winbond-fix-w25q128-regression.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 342672bbdf713654316a0ff73c7f2ecf7ea6693d Mon Sep 17 00:00:00 2001
-From: Michael Walle <mwalle at kernel.org>
-Date: Fri, 21 Jun 2024 14:09:29 +0200
-Subject: [PATCH] mtd: spi-nor: winbond: fix w25q128 regression
-
-Upstream commit d35df77707bf5ae1221b5ba1c8a88cf4fcdd4901
-
-("mtd: spi-nor: winbond: fix w25q128 regression")
-however the code has changed a lot after v6.6 so the patch did
-not apply to v6.6 or v6.1 which still has the problem.
-
-This patch fixes the issue in the way of the old API and has
-been tested on hardware. Please apply it for v6.1 and v6.6.
-
-Commit 83e824a4a595 ("mtd: spi-nor: Correct flags for Winbond w25q128")
-removed the flags for non-SFDP devices. It was assumed that it wasn't in
-use anymore. This wasn't true. Add the no_sfdp_flags as well as the size
-again.
-
-We add the additional flags for dual and quad read because they have
-been reported to work properly by Hartmut using both older and newer
-versions of this flash, the similar flashes with 64Mbit and 256Mbit
-already have these flags and because it will (luckily) trigger our
-legacy SFDP parsing, so newer versions with SFDP support will still get
-the parameters from the SFDP tables.
-
-Reported-by: Hartmut Birr <e9hack at gmail.com>
-Closes: https://lore.kernel.org/r/CALxbwRo_-9CaJmt7r7ELgu+vOcgk=xZcGHobnKf=oT2=u4d4aA at mail.gmail.com/
-Fixes: 83e824a4a595 ("mtd: spi-nor: Correct flags for Winbond w25q128")
-Reviewed-by: Linus Walleij <linus.walleij at linaro.org>
-Signed-off-by: Michael Walle <mwalle at kernel.org>
-Acked-by: Tudor Ambarus <tudor.ambarus at linaro.org>
-Reviewed-by: Esben Haabendal <esben at geanix.com>
-Reviewed-by: Pratyush Yadav <pratyush at kernel.org>
-Signed-off-by: Pratyush Yadav <pratyush at kernel.org>
-Link: https://lore.kernel.org/r/20240621120929.2670185-1-mwalle at kernel.org
-[Backported to v6.6 - vastly different due to upstream changes]
-Reviewed-by: Tudor Ambarus <tudor.ambarus at linaro.org>
-Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
----
- drivers/mtd/spi-nor/winbond.c | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
---- a/drivers/mtd/spi-nor/winbond.c
-+++ b/drivers/mtd/spi-nor/winbond.c
-@@ -120,9 +120,10 @@ static const struct flash_info winbond_n
- 		NO_SFDP_FLAGS(SECT_4K) },
- 	{ "w25q80bl", INFO(0xef4014, 0, 64 * 1024,  16)
- 		NO_SFDP_FLAGS(SECT_4K) },
--	{ "w25q128", INFO(0xef4018, 0, 0, 0)
--		PARSE_SFDP
--		FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) },
-+	{ "w25q128", INFO(0xef4018, 0, 64 * 1024, 256)
-+		FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
-+		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-+			      SPI_NOR_QUAD_READ) },
- 	{ "w25q256", INFO(0xef4019, 0, 64 * 1024, 512)
- 		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
- 		.fixups = &w25q256_fixups },
diff --git a/target/linux/generic/backport-6.6/600-v6.10-net-Remove-conditional-threaded-NAPI-wakeup-based-on.patch b/target/linux/generic/backport-6.6/600-v6.10-net-Remove-conditional-threaded-NAPI-wakeup-based-on.patch
index 3f75dffde7..6ee4716c5c 100644
--- a/target/linux/generic/backport-6.6/600-v6.10-net-Remove-conditional-threaded-NAPI-wakeup-based-on.patch
+++ b/target/linux/generic/backport-6.6/600-v6.10-net-Remove-conditional-threaded-NAPI-wakeup-based-on.patch
@@ -32,7 +32,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -4477,13 +4477,7 @@ static inline void ____napi_schedule(str
+@@ -4481,13 +4481,7 @@ static inline void ____napi_schedule(str
  		 */
  		thread = READ_ONCE(napi->thread);
  		if (thread) {
@@ -47,7 +47,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  			wake_up_process(thread);
  			return;
  		}
-@@ -6639,8 +6633,6 @@ static int napi_poll(struct napi_struct
+@@ -6643,8 +6637,6 @@ static int napi_poll(struct napi_struct
  
  static int napi_thread_wait(struct napi_struct *napi)
  {
@@ -56,7 +56,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	set_current_state(TASK_INTERRUPTIBLE);
  
  	while (!kthread_should_stop()) {
-@@ -6649,15 +6641,13 @@ static int napi_thread_wait(struct napi_
+@@ -6653,15 +6645,13 @@ static int napi_thread_wait(struct napi_
  		 * Testing SCHED bit is not enough because SCHED bit might be
  		 * set by some other busy poll thread or by napi_disable().
  		 */
diff --git a/target/linux/generic/backport-6.6/601-v6.10-net-Allow-to-use-SMP-threads-for-backlog-NAPI.patch b/target/linux/generic/backport-6.6/601-v6.10-net-Allow-to-use-SMP-threads-for-backlog-NAPI.patch
index b343a3f964..8c0b41f37b 100644
--- a/target/linux/generic/backport-6.6/601-v6.10-net-Allow-to-use-SMP-threads-for-backlog-NAPI.patch
+++ b/target/linux/generic/backport-6.6/601-v6.10-net-Allow-to-use-SMP-threads-for-backlog-NAPI.patch
@@ -108,7 +108,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  static inline void rps_lock_irqsave(struct softnet_data *sd,
  				    unsigned long *flags)
  {
-@@ -4445,6 +4471,7 @@ EXPORT_SYMBOL(__dev_direct_xmit);
+@@ -4449,6 +4475,7 @@ EXPORT_SYMBOL(__dev_direct_xmit);
  /*************************************************************************
   *			Receiver routines
   *************************************************************************/
@@ -116,7 +116,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  
  int netdev_max_backlog __read_mostly = 1000;
  EXPORT_SYMBOL(netdev_max_backlog);
-@@ -4477,12 +4504,16 @@ static inline void ____napi_schedule(str
+@@ -4481,12 +4508,16 @@ static inline void ____napi_schedule(str
  		 */
  		thread = READ_ONCE(napi->thread);
  		if (thread) {
@@ -133,7 +133,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	list_add_tail(&napi->poll_list, &sd->poll_list);
  	WRITE_ONCE(napi->list_owner, smp_processor_id());
  	/* If not called from net_rx_action()
-@@ -4728,6 +4759,11 @@ static void napi_schedule_rps(struct sof
+@@ -4732,6 +4763,11 @@ static void napi_schedule_rps(struct sof
  
  #ifdef CONFIG_RPS
  	if (sd != mysd) {
@@ -145,7 +145,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  		sd->rps_ipi_next = mysd->rps_ipi_list;
  		mysd->rps_ipi_list = sd;
  
-@@ -5951,7 +5987,7 @@ static void net_rps_action_and_irq_enabl
+@@ -5955,7 +5991,7 @@ static void net_rps_action_and_irq_enabl
  #ifdef CONFIG_RPS
  	struct softnet_data *remsd = sd->rps_ipi_list;
  
@@ -154,7 +154,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  		sd->rps_ipi_list = NULL;
  
  		local_irq_enable();
-@@ -5966,7 +6002,7 @@ static void net_rps_action_and_irq_enabl
+@@ -5970,7 +6006,7 @@ static void net_rps_action_and_irq_enabl
  static bool sd_has_rps_ipi_waiting(struct softnet_data *sd)
  {
  #ifdef CONFIG_RPS
@@ -163,7 +163,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  #else
  	return false;
  #endif
-@@ -6010,7 +6046,7 @@ static int process_backlog(struct napi_s
+@@ -6014,7 +6050,7 @@ static int process_backlog(struct napi_s
  			 * We can use a plain write instead of clear_bit(),
  			 * and we dont need an smp_mb() memory barrier.
  			 */
@@ -172,7 +172,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  			again = false;
  		} else {
  			skb_queue_splice_tail_init(&sd->input_pkt_queue,
-@@ -6676,43 +6712,48 @@ static void skb_defer_free_flush(struct
+@@ -6680,43 +6716,48 @@ static void skb_defer_free_flush(struct
  	}
  }
  
@@ -250,7 +250,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	return 0;
  }
  
-@@ -11293,7 +11334,7 @@ static int dev_cpu_dead(unsigned int old
+@@ -11297,7 +11338,7 @@ static int dev_cpu_dead(unsigned int old
  
  		list_del_init(&napi->poll_list);
  		if (napi->poll == process_backlog)
@@ -259,7 +259,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  		else
  			____napi_schedule(sd, napi);
  	}
-@@ -11301,12 +11342,14 @@ static int dev_cpu_dead(unsigned int old
+@@ -11305,12 +11346,14 @@ static int dev_cpu_dead(unsigned int old
  	raise_softirq_irqoff(NET_TX_SOFTIRQ);
  	local_irq_enable();
  
@@ -278,7 +278,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  
  	/* Process offline CPU's input_pkt_queue */
  	while ((skb = __skb_dequeue(&oldsd->process_queue))) {
-@@ -11569,6 +11612,38 @@ static struct pernet_operations __net_in
+@@ -11573,6 +11616,38 @@ static struct pernet_operations __net_in
   *
   */
  
@@ -317,7 +317,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  /*
   *       This is called single threaded during boot, so no need
   *       to take the rtnl semaphore.
-@@ -11619,7 +11694,10 @@ static int __init net_dev_init(void)
+@@ -11623,7 +11698,10 @@ static int __init net_dev_init(void)
  		init_gro_hash(&sd->backlog);
  		sd->backlog.poll = process_backlog;
  		sd->backlog.weight = weight_p;
diff --git a/target/linux/generic/backport-6.6/602-v6.10-net-Use-backlog-NAPI-to-clean-up-the-defer_list.patch b/target/linux/generic/backport-6.6/602-v6.10-net-Use-backlog-NAPI-to-clean-up-the-defer_list.patch
index 3b1a64e4c6..3fcc72e589 100644
--- a/target/linux/generic/backport-6.6/602-v6.10-net-Use-backlog-NAPI-to-clean-up-the-defer_list.patch
+++ b/target/linux/generic/backport-6.6/602-v6.10-net-Use-backlog-NAPI-to-clean-up-the-defer_list.patch
@@ -82,7 +82,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  		spin_unlock_irq(&sd->input_pkt_queue.lock);
  	else if (!IS_ENABLED(CONFIG_PREEMPT_RT))
  		local_irq_enable();
-@@ -4778,6 +4778,23 @@ static void napi_schedule_rps(struct sof
+@@ -4782,6 +4782,23 @@ static void napi_schedule_rps(struct sof
  	__napi_schedule_irqoff(&mysd->backlog);
  }
  
diff --git a/target/linux/generic/backport-6.6/603-v6.10-net-Rename-rps_lock-to-backlog_lock.patch b/target/linux/generic/backport-6.6/603-v6.10-net-Rename-rps_lock-to-backlog_lock.patch
index dab96763fc..056bd5686e 100644
--- a/target/linux/generic/backport-6.6/603-v6.10-net-Rename-rps_lock-to-backlog_lock.patch
+++ b/target/linux/generic/backport-6.6/603-v6.10-net-Rename-rps_lock-to-backlog_lock.patch
@@ -67,7 +67,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  {
  	if (IS_ENABLED(CONFIG_RPS) || use_backlog_threads())
  		spin_unlock_irq(&sd->input_pkt_queue.lock);
-@@ -4783,12 +4783,12 @@ void kick_defer_list_purge(struct softne
+@@ -4787,12 +4787,12 @@ void kick_defer_list_purge(struct softne
  	unsigned long flags;
  
  	if (use_backlog_threads()) {
@@ -82,7 +82,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  
  	} else if (!cmpxchg(&sd->defer_ipi_scheduled, 0, 1)) {
  		smp_call_function_single_async(cpu, &sd->defer_csd);
-@@ -4850,7 +4850,7 @@ static int enqueue_to_backlog(struct sk_
+@@ -4854,7 +4854,7 @@ static int enqueue_to_backlog(struct sk_
  	reason = SKB_DROP_REASON_NOT_SPECIFIED;
  	sd = &per_cpu(softnet_data, cpu);
  
@@ -91,7 +91,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	if (!netif_running(skb->dev))
  		goto drop;
  	qlen = skb_queue_len(&sd->input_pkt_queue);
-@@ -4859,7 +4859,7 @@ static int enqueue_to_backlog(struct sk_
+@@ -4863,7 +4863,7 @@ static int enqueue_to_backlog(struct sk_
  enqueue:
  			__skb_queue_tail(&sd->input_pkt_queue, skb);
  			input_queue_tail_incr_save(sd, qtail);
@@ -100,7 +100,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  			return NET_RX_SUCCESS;
  		}
  
-@@ -4874,7 +4874,7 @@ enqueue:
+@@ -4878,7 +4878,7 @@ enqueue:
  
  drop:
  	sd->dropped++;
@@ -109,7 +109,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  
  	dev_core_stats_rx_dropped_inc(skb->dev);
  	kfree_skb_reason(skb, reason);
-@@ -5905,7 +5905,7 @@ static void flush_backlog(struct work_st
+@@ -5909,7 +5909,7 @@ static void flush_backlog(struct work_st
  	local_bh_disable();
  	sd = this_cpu_ptr(&softnet_data);
  
@@ -118,7 +118,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	skb_queue_walk_safe(&sd->input_pkt_queue, skb, tmp) {
  		if (skb->dev->reg_state == NETREG_UNREGISTERING) {
  			__skb_unlink(skb, &sd->input_pkt_queue);
-@@ -5913,7 +5913,7 @@ static void flush_backlog(struct work_st
+@@ -5917,7 +5917,7 @@ static void flush_backlog(struct work_st
  			input_queue_head_incr(sd);
  		}
  	}
@@ -127,7 +127,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  
  	skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
  		if (skb->dev->reg_state == NETREG_UNREGISTERING) {
-@@ -5931,14 +5931,14 @@ static bool flush_required(int cpu)
+@@ -5935,14 +5935,14 @@ static bool flush_required(int cpu)
  	struct softnet_data *sd = &per_cpu(softnet_data, cpu);
  	bool do_flush;
  
@@ -144,7 +144,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  
  	return do_flush;
  #endif
-@@ -6053,7 +6053,7 @@ static int process_backlog(struct napi_s
+@@ -6057,7 +6057,7 @@ static int process_backlog(struct napi_s
  
  		}
  
@@ -153,7 +153,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  		if (skb_queue_empty(&sd->input_pkt_queue)) {
  			/*
  			 * Inline a custom version of __napi_complete().
-@@ -6069,7 +6069,7 @@ static int process_backlog(struct napi_s
+@@ -6073,7 +6073,7 @@ static int process_backlog(struct napi_s
  			skb_queue_splice_tail_init(&sd->input_pkt_queue,
  						   &sd->process_queue);
  		}
diff --git a/target/linux/generic/backport-6.6/611-02-v6.11-net-Make-USO-depend-on-CSUM-offload.patch b/target/linux/generic/backport-6.6/611-02-v6.11-net-Make-USO-depend-on-CSUM-offload.patch
index 30758f180f..42aff7f0af 100644
--- a/target/linux/generic/backport-6.6/611-02-v6.11-net-Make-USO-depend-on-CSUM-offload.patch
+++ b/target/linux/generic/backport-6.6/611-02-v6.11-net-Make-USO-depend-on-CSUM-offload.patch
@@ -20,7 +20,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -9755,6 +9755,15 @@ static void netdev_sync_lower_features(s
+@@ -9759,6 +9759,15 @@ static void netdev_sync_lower_features(s
  	}
  }
  
@@ -36,7 +36,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  static netdev_features_t netdev_fix_features(struct net_device *dev,
  	netdev_features_t features)
  {
-@@ -9836,15 +9845,9 @@ static netdev_features_t netdev_fix_feat
+@@ -9840,15 +9849,9 @@ static netdev_features_t netdev_fix_feat
  		features &= ~NETIF_F_LRO;
  	}
  
@@ -55,7 +55,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	}
  
  	if ((features & NETIF_F_HW_TLS_RX) && !(features & NETIF_F_RXCSUM)) {
-@@ -9852,6 +9855,11 @@ static netdev_features_t netdev_fix_feat
+@@ -9856,6 +9859,11 @@ static netdev_features_t netdev_fix_feat
  		features &= ~NETIF_F_HW_TLS_RX;
  	}
  
diff --git a/target/linux/generic/backport-6.6/612-v6.9-net-get-stats64-if-device-if-driver-is-configured.patch b/target/linux/generic/backport-6.6/612-v6.9-net-get-stats64-if-device-if-driver-is-configured.patch
index 2db89c5a05..d72882dbb6 100644
--- a/target/linux/generic/backport-6.6/612-v6.9-net-get-stats64-if-device-if-driver-is-configured.patch
+++ b/target/linux/generic/backport-6.6/612-v6.9-net-get-stats64-if-device-if-driver-is-configured.patch
@@ -18,7 +18,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -10662,6 +10662,8 @@ struct rtnl_link_stats64 *dev_get_stats(
+@@ -10666,6 +10666,8 @@ struct rtnl_link_stats64 *dev_get_stats(
  		ops->ndo_get_stats64(dev, storage);
  	} else if (ops->ndo_get_stats) {
  		netdev_stats_to_stats64(storage, ops->ndo_get_stats(dev));
diff --git a/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch b/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch
index aea95667e5..3f48a8c34a 100644
--- a/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch
+++ b/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch
@@ -49,7 +49,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  				    unsigned char name_assign_type,
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -10349,25 +10349,12 @@ err_free_name:
+@@ -10353,25 +10353,12 @@ err_free_name:
  }
  EXPORT_SYMBOL(register_netdevice);
  
@@ -79,7 +79,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  	/* make sure we BUG if trying to hit standard
  	 * register/unregister code path
  	 */
-@@ -10387,12 +10374,32 @@ int init_dummy_netdev(struct net_device
+@@ -10391,12 +10378,32 @@ int init_dummy_netdev(struct net_device
  	 * because users of this 'device' dont need to change
  	 * its refcount.
  	 */
@@ -113,7 +113,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  /**
   *	register_netdev	- register a network device
   *	@dev: device to register
-@@ -10986,6 +10993,19 @@ void free_netdev(struct net_device *dev)
+@@ -10990,6 +10997,19 @@ void free_netdev(struct net_device *dev)
  EXPORT_SYMBOL(free_netdev);
  
  /**
diff --git a/target/linux/generic/backport-6.6/770-net-introduce-napi_is_scheduled-helper.patch b/target/linux/generic/backport-6.6/770-net-introduce-napi_is_scheduled-helper.patch
index 838bd03c8c..d7b2b27506 100644
--- a/target/linux/generic/backport-6.6/770-net-introduce-napi_is_scheduled-helper.patch
+++ b/target/linux/generic/backport-6.6/770-net-introduce-napi_is_scheduled-helper.patch
@@ -85,7 +85,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  /**
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -6606,7 +6606,7 @@ static int __napi_poll(struct napi_struc
+@@ -6610,7 +6610,7 @@ static int __napi_poll(struct napi_struc
  	 * accidentally calling ->poll() when NAPI is not scheduled.
  	 */
  	work = 0;
diff --git a/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch b/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch
index 60dfe4c035..66a9251438 100644
--- a/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch
+++ b/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch
@@ -42,7 +42,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  
  	u64_stats_update_begin(&txq_stats->napi_syncp);
  	u64_stats_add(&txq_stats->napi.tx_packets, tx_packets);
-@@ -5590,6 +5594,7 @@ static int stmmac_napi_poll_tx(struct na
+@@ -5602,6 +5606,7 @@ static int stmmac_napi_poll_tx(struct na
  		container_of(napi, struct stmmac_channel, tx_napi);
  	struct stmmac_priv *priv = ch->priv_data;
  	struct stmmac_txq_stats *txq_stats;
@@ -50,7 +50,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	u32 chan = ch->index;
  	int work_done;
  
-@@ -5598,7 +5603,7 @@ static int stmmac_napi_poll_tx(struct na
+@@ -5610,7 +5615,7 @@ static int stmmac_napi_poll_tx(struct na
  	u64_stats_inc(&txq_stats->napi.poll);
  	u64_stats_update_end(&txq_stats->napi_syncp);
  
@@ -59,7 +59,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	work_done = min(work_done, budget);
  
  	if (work_done < budget && napi_complete_done(napi, work_done)) {
-@@ -5609,6 +5614,10 @@ static int stmmac_napi_poll_tx(struct na
+@@ -5621,6 +5626,10 @@ static int stmmac_napi_poll_tx(struct na
  		spin_unlock_irqrestore(&ch->lock, flags);
  	}
  
@@ -70,7 +70,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	return work_done;
  }
  
-@@ -5617,6 +5626,7 @@ static int stmmac_napi_poll_rxtx(struct
+@@ -5629,6 +5638,7 @@ static int stmmac_napi_poll_rxtx(struct
  	struct stmmac_channel *ch =
  		container_of(napi, struct stmmac_channel, rxtx_napi);
  	struct stmmac_priv *priv = ch->priv_data;
@@ -78,7 +78,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	int rx_done, tx_done, rxtx_done;
  	struct stmmac_rxq_stats *rxq_stats;
  	struct stmmac_txq_stats *txq_stats;
-@@ -5632,7 +5642,7 @@ static int stmmac_napi_poll_rxtx(struct
+@@ -5644,7 +5654,7 @@ static int stmmac_napi_poll_rxtx(struct
  	u64_stats_inc(&txq_stats->napi.poll);
  	u64_stats_update_end(&txq_stats->napi_syncp);
  
@@ -87,7 +87,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	tx_done = min(tx_done, budget);
  
  	rx_done = stmmac_rx_zc(priv, budget, chan);
-@@ -5657,6 +5667,10 @@ static int stmmac_napi_poll_rxtx(struct
+@@ -5669,6 +5679,10 @@ static int stmmac_napi_poll_rxtx(struct
  		spin_unlock_irqrestore(&ch->lock, flags);
  	}
  
diff --git a/target/linux/generic/backport-6.6/900-v6.11-net-free_netdev-exit-earlier-if-dummy.patch b/target/linux/generic/backport-6.6/900-v6.11-net-free_netdev-exit-earlier-if-dummy.patch
index 9e38d88e22..21db87419e 100644
--- a/target/linux/generic/backport-6.6/900-v6.11-net-free_netdev-exit-earlier-if-dummy.patch
+++ b/target/linux/generic/backport-6.6/900-v6.11-net-free_netdev-exit-earlier-if-dummy.patch
@@ -23,7 +23,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -10979,7 +10979,8 @@ void free_netdev(struct net_device *dev)
+@@ -10983,7 +10983,8 @@ void free_netdev(struct net_device *dev)
  	dev->xdp_bulkq = NULL;
  
  	/*  Compatibility with error handling in drivers */
diff --git a/target/linux/generic/hack-6.6/930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch b/target/linux/generic/hack-6.6/930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch
index 85a19027fd..1c5fb11ff5 100644
--- a/target/linux/generic/hack-6.6/930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch
+++ b/target/linux/generic/hack-6.6/930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch
@@ -19,7 +19,7 @@ Signed-off-by: Rafa? Mi?ecki <rafal at milecki.pl>
 
 --- a/drivers/base/core.c
 +++ b/drivers/base/core.c
-@@ -1658,7 +1658,7 @@ static void device_links_purge(struct de
+@@ -1657,7 +1657,7 @@ static void device_links_purge(struct de
  #define FW_DEVLINK_FLAGS_RPM		(FW_DEVLINK_FLAGS_ON | \
  					 DL_FLAG_PM_RUNTIME)
  
diff --git a/target/linux/qualcommax/patches-6.6/0061-v6.8-phy-qcom-qmp-usb-fix-serdes-init-sequence-for-IPQ6018.patch b/target/linux/qualcommax/patches-6.6/0061-v6.8-phy-qcom-qmp-usb-fix-serdes-init-sequence-for-IPQ6018.patch
index 4082e3d852..9021b572e8 100644
--- a/target/linux/qualcommax/patches-6.6/0061-v6.8-phy-qcom-qmp-usb-fix-serdes-init-sequence-for-IPQ6018.patch
+++ b/target/linux/qualcommax/patches-6.6/0061-v6.8-phy-qcom-qmp-usb-fix-serdes-init-sequence-for-IPQ6018.patch
@@ -47,7 +47,7 @@ Signed-off-by: Vinod Koul <vkoul at kernel.org>
  static const struct qmp_phy_cfg ipq8074_usb3phy_cfg = {
  	.lanes			= 1,
  
-@@ -2238,7 +2258,7 @@ err_node_put:
+@@ -2239,7 +2259,7 @@ err_node_put:
  static const struct of_device_id qmp_usb_of_match_table[] = {
  	{
  		.compatible = "qcom,ipq6018-qmp-usb3-phy",
diff --git a/target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch b/target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch
index ad8b92f715..25849e7c26 100644
--- a/target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch
+++ b/target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch
@@ -19,7 +19,7 @@ Signed-off-by: Matteo Croce <mcroce at microsoft.com>
  
  	if (priv->dma_cap.host_dma_width <= 32)
  		gfp |= GFP_DMA32;
-@@ -4673,7 +4673,7 @@ static inline void stmmac_rx_refill(stru
+@@ -4685,7 +4685,7 @@ static inline void stmmac_rx_refill(stru
  	struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue];
  	int dirty = stmmac_rx_dirty(priv, queue);
  	unsigned int entry = rx_q->dirty_rx;



From lede-commits at lists.infradead.org  Sun Nov 10 02:42:57 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 10 Nov 2024 05:42:57 -0500
Subject: [openwrt/openwrt]  mac80211: compatibility with kernel 6.6.59
In-Reply-To: <173123537762.3875398.128473200510347099@git-01.infra.openwrt.org>
References: <173123537762.3875398.128473200510347099@git-01.infra.openwrt.org>
Message-ID: <mailman.156408.1731235382.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/4b413687e68084d2c81472ae40eaa7d15e89c37b

commit 4b413687e68084d2c81472ae40eaa7d15e89c37b
Author: Mieczyslaw Nalewaj <namiltd at yahoo.com>
AuthorDate: Fri Nov 1 21:59:23 2024 +0100

    mac80211: compatibility with kernel 6.6.59
    
    Fix genlmsg_multicast_allns() build error on kernel 6.6.59.
    Based on kernel patch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit?h=v6.6.59&id=e0f83d268974dab0361d11904dfc9acec53f96a6
    
    Signed-off-by: Mieczyslaw Nalewaj <namiltd at yahoo.com>
    Link: https://github.com/openwrt/openwrt/pull/16835
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 31f1dabb4b9727b300ddaa2801903ae4b72e4e1e)
    Link: https://github.com/openwrt/openwrt/pull/16894
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 ...ticast_allns-build-error-on-kernel-6.6.59.patch | 169 +++++++++++++++++++++
 1 file changed, 169 insertions(+)

diff --git a/package/kernel/mac80211/patches/build/236-fix-genlmsg_multicast_allns-build-error-on-kernel-6.6.59.patch b/package/kernel/mac80211/patches/build/236-fix-genlmsg_multicast_allns-build-error-on-kernel-6.6.59.patch
new file mode 100644
index 0000000000..905bf8dfc1
--- /dev/null
+++ b/package/kernel/mac80211/patches/build/236-fix-genlmsg_multicast_allns-build-error-on-kernel-6.6.59.patch
@@ -0,0 +1,169 @@
+From e0f83d268974dab0361d11904dfc9acec53f96a6 Mon Sep 17 00:00:00 2001
+From: Eric Dumazet <edumazet at google.com>
+Date: Fri, 11 Oct 2024 17:12:17 +0000
+Subject: [PATCH] genetlink: hold RCU in genlmsg_mcast()
+
+[ Upstream commit 56440d7ec28d60f8da3bfa09062b3368ff9b16db ]
+
+While running net selftests with CONFIG_PROVE_RCU_LIST=y I saw
+one lockdep splat [1].
+
+genlmsg_mcast() uses for_each_net_rcu(), and must therefore hold RCU.
+
+Instead of letting all callers guard genlmsg_multicast_allns()
+with a rcu_read_lock()/rcu_read_unlock() pair, do it in genlmsg_mcast().
+
+This also means the @flags parameter is useless, we need to always use
+GFP_ATOMIC.
+
+[1]
+[10882.424136] =============================
+[10882.424166] WARNING: suspicious RCU usage
+[10882.424309] 6.12.0-rc2-virtme #1156 Not tainted
+[10882.424400] -----------------------------
+[10882.424423] net/netlink/genetlink.c:1940 RCU-list traversed in non-reader section!!
+[10882.424469]
+other info that might help us debug this:
+
+[10882.424500]
+rcu_scheduler_active = 2, debug_locks = 1
+[10882.424744] 2 locks held by ip/15677:
+[10882.424791] #0: ffffffffb6b491b0 (cb_lock){++++}-{3:3}, at: genl_rcv (net/netlink/genetlink.c:1219)
+[10882.426334] #1: ffffffffb6b49248 (genl_mutex){+.+.}-{3:3}, at: genl_rcv_msg (net/netlink/genetlink.c:61 net/netlink/genetlink.c:57 net/netlink/genetlink.c:1209)
+[10882.426465]
+stack backtrace:
+[10882.426805] CPU: 14 UID: 0 PID: 15677 Comm: ip Not tainted 6.12.0-rc2-virtme #1156
+[10882.426919] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
+[10882.427046] Call Trace:
+[10882.427131]  <TASK>
+[10882.427244] dump_stack_lvl (lib/dump_stack.c:123)
+[10882.427335] lockdep_rcu_suspicious (kernel/locking/lockdep.c:6822)
+[10882.427387] genlmsg_multicast_allns (net/netlink/genetlink.c:1940 (discriminator 7) net/netlink/genetlink.c:1977 (discriminator 7))
+[10882.427436] l2tp_tunnel_notify.constprop.0 (net/l2tp/l2tp_netlink.c:119) l2tp_netlink
+[10882.427683] l2tp_nl_cmd_tunnel_create (net/l2tp/l2tp_netlink.c:253) l2tp_netlink
+[10882.427748] genl_family_rcv_msg_doit (net/netlink/genetlink.c:1115)
+[10882.427834] genl_rcv_msg (net/netlink/genetlink.c:1195 net/netlink/genetlink.c:1210)
+[10882.427877] ? __pfx_l2tp_nl_cmd_tunnel_create (net/l2tp/l2tp_netlink.c:186) l2tp_netlink
+[10882.427927] ? __pfx_genl_rcv_msg (net/netlink/genetlink.c:1201)
+[10882.427959] netlink_rcv_skb (net/netlink/af_netlink.c:2551)
+[10882.428069] genl_rcv (net/netlink/genetlink.c:1220)
+[10882.428095] netlink_unicast (net/netlink/af_netlink.c:1332 net/netlink/af_netlink.c:1357)
+[10882.428140] netlink_sendmsg (net/netlink/af_netlink.c:1901)
+[10882.428210] ____sys_sendmsg (net/socket.c:729 (discriminator 1) net/socket.c:744 (discriminator 1) net/socket.c:2607 (discriminator 1))
+
+Fixes: 33f72e6f0c67 ("l2tp : multicast notification to the registered listeners")
+Signed-off-by: Eric Dumazet <edumazet at google.com>
+Cc: James Chapman <jchapman at katalix.com>
+Cc: Tom Parkin <tparkin at katalix.com>
+Cc: Johannes Berg <johannes.berg at intel.com>
+Link: https://patch.msgid.link/20241011171217.3166614-1-edumazet at google.com
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
+Signed-off-by: Sasha Levin <sashal at kernel.org>
+---
+ drivers/target/target_core_user.c |  2 +-
+ include/net/genetlink.h           |  3 +--
+ net/l2tp/l2tp_netlink.c           |  4 ++--
+ net/netlink/genetlink.c           | 28 ++++++++++++++--------------
+ net/wireless/nl80211.c            |  8 ++------
+ 5 files changed, 20 insertions(+), 25 deletions(-)
+
+--- a/backport-include/net/genetlink.h
++++ b/backport-include/net/genetlink.h
+@@ -150,7 +150,7 @@ int genlmsg_multicast(const struct genl_
+ #define genlmsg_multicast_allns LINUX_BACKPORT(genlmsg_multicast_allns)
+ int backport_genlmsg_multicast_allns(const struct genl_family *family,
+ 				     struct sk_buff *skb, u32 portid,
+-				     unsigned int group, gfp_t flags);
++				     unsigned int group);
+ 
+ #define genl_family_attrbuf LINUX_BACKPORT(genl_family_attrbuf)
+ static inline struct nlattr **genl_family_attrbuf(struct genl_family *family)
+--- a/compat/backport-genetlink.c
++++ b/compat/backport-genetlink.c
+@@ -198,23 +198,23 @@ int genlmsg_multicast(const struct genl_
+ }
+ EXPORT_SYMBOL_GPL(genlmsg_multicast);
+ 
+-static int genlmsg_mcast(struct sk_buff *skb, u32 portid, unsigned long group,
+-			 gfp_t flags)
++static int genlmsg_mcast(struct sk_buff *skb, u32 portid, unsigned long group)
+ {
+ 	struct sk_buff *tmp;
+ 	struct net *net, *prev = NULL;
+ 	bool delivered = false;
+ 	int err;
+ 
++	rcu_read_lock();
+ 	for_each_net_rcu(net) {
+ 		if (prev) {
+-			tmp = skb_clone(skb, flags);
++			tmp = skb_clone(skb, GFP_ATOMIC);
+ 			if (!tmp) {
+ 				err = -ENOMEM;
+ 				goto error;
+ 			}
+ 			err = nlmsg_multicast(prev->genl_sock, tmp,
+-					      portid, group, flags);
++					      portid, group, GFP_ATOMIC);
+ 			if (!err)
+ 				delivered = true;
+ 			else if (err != -ESRCH)
+@@ -223,25 +223,29 @@ static int genlmsg_mcast(struct sk_buff
+ 
+ 		prev = net;
+ 	}
++	err = nlmsg_multicast(prev->genl_sock, skb, portid, group, GFP_ATOMIC);
++
++	rcu_read_unlock();
+ 
+-	err = nlmsg_multicast(prev->genl_sock, skb, portid, group, flags);
+ 	if (!err)
+ 		delivered = true;
+ 	else if (err != -ESRCH)
+ 		return err;
+ 	return delivered ? 0 : -ESRCH;
+  error:
++	rcu_read_unlock();
++
+ 	kfree_skb(skb);
+ 	return err;
+ }
+ 
+ int backport_genlmsg_multicast_allns(const struct genl_family *family,
+ 				     struct sk_buff *skb, u32 portid,
+-				     unsigned int group, gfp_t flags)
++				     unsigned int group)
+ {
+ 	group = __backport_genl_group(family, group);
+ 	if (group == INVALID_GROUP)
+ 		return -EINVAL;
+-	return genlmsg_mcast(skb, portid, group, flags);
++	return genlmsg_mcast(skb, portid, group);
+ }
+ EXPORT_SYMBOL_GPL(backport_genlmsg_multicast_allns);
+--- a/net/wireless/nl80211.c
++++ b/net/wireless/nl80211.c
+@@ -17956,10 +17956,8 @@ void nl80211_common_reg_change_event(enu
+ 
+ 	genlmsg_end(msg, hdr);
+ 
+-	rcu_read_lock();
+ 	genlmsg_multicast_allns(&nl80211_fam, msg, 0,
+-				NL80211_MCGRP_REGULATORY, GFP_ATOMIC);
+-	rcu_read_unlock();
++				NL80211_MCGRP_REGULATORY);
+ 
+ 	return;
+ 
+@@ -18692,10 +18690,8 @@ void nl80211_send_beacon_hint_event(stru
+ 
+ 	genlmsg_end(msg, hdr);
+ 
+-	rcu_read_lock();
+ 	genlmsg_multicast_allns(&nl80211_fam, msg, 0,
+-				NL80211_MCGRP_REGULATORY, GFP_ATOMIC);
+-	rcu_read_unlock();
++				NL80211_MCGRP_REGULATORY);
+ 
+ 	return;
+ 



From lede-commits at lists.infradead.org  Sun Nov 10 04:20:25 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 10 Nov 2024 07:20:25 -0500
Subject: [openwrt/openwrt]  base-files: Remove pkg_check when using apk
In-Reply-To: <173124122555.3962027.7864948191555615673@git-01.infra.openwrt.org>
References: <173124122555.3962027.7864948191555615673@git-01.infra.openwrt.org>
Message-ID: <mailman.156477.1731241230.1280.lede-commits@lists.infradead.org>

aparcar pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/0ce237a20cc5168c62afcacb3b47d77a952d64c1

commit 0ce237a20cc5168c62afcacb3b47d77a952d64c1
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Thu Nov 7 22:49:21 2024 +0100

    base-files: Remove pkg_check when using apk
    
    /sbin/pkg_check uses opkg and is not even packaged when using the
    default opkg configuration. remove it when using apk too.
    
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/base-files/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 4da50a2736..4bcb4882d7 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -251,6 +251,7 @@ ifneq ($(CONFIG_USE_APK),)
 	$(VERSION_SED_SCRIPT) $(1)/etc/apk/repositories
 
 	rm -f $(1)/etc/uci-defaults/13_fix-group-user
+	rm -f $(1)/sbin/pkg_check
 else
 	$(if $(CONFIG_CLEAN_IPKG),, \
 		mkdir -p $(1)/etc/opkg; \



From lede-commits at lists.infradead.org  Sun Nov 10 06:36:55 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 10 Nov 2024 09:36:55 -0500
Subject: [openwrt/openwrt]  wolfssl: Adjust version for apk
In-Reply-To: <173124941522.4086299.10711116269783017392@git-01.infra.openwrt.org>
References: <173124941522.4086299.10711116269783017392@git-01.infra.openwrt.org>
Message-ID: <mailman.156508.1731249420.1280.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/be952e98bc1d768a0da5b84e59a6e7c04a1cdab8

commit be952e98bc1d768a0da5b84e59a6e7c04a1cdab8
Author: Hannu Nyman <hannu.nyman at iki.fi>
AuthorDate: Sun Nov 10 15:57:01 2024 +0200

    wolfssl: Adjust version for apk
    
    Adjust wolfssl version for apk by removing the "-stable"
    from the OpenWrt version, although it is still needed for
    upstream download archive name.
    
    Define PKG_BUILD_DIR accordingly.
    
    Utilize new short version to simplify ABI_VERSION calculation.
    
    Signed-off-by: Hannu Nyman <hannu.nyman at iki.fi>
    Link: https://github.com/openwrt/openwrt/pull/16906
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 package/libs/wolfssl/Makefile | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/package/libs/wolfssl/Makefile b/package/libs/wolfssl/Makefile
index bac4a8ef52..56daacc71b 100644
--- a/package/libs/wolfssl/Makefile
+++ b/package/libs/wolfssl/Makefile
@@ -8,13 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=wolfssl
-PKG_VERSION:=5.7.2-stable
+PKG_VERSION:=5.7.2
+PKG_REAL_VERSION:=$(PKG_VERSION)-stable
 PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/wolfSSL/wolfssl/archive/v$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_REAL_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/wolfSSL/wolfssl/archive/v$(PKG_REAL_VERSION)
 PKG_HASH:=0f2ed82e345b833242705bbc4b08a2a2037a33f7bf9c610efae6464f6b10e305
 
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_REAL_VERSION)
+
 PKG_FIXUP:=libtool libtool-abiver
 PKG_INSTALL:=1
 PKG_BUILD_FLAGS:=no-mips16 lto
@@ -40,7 +43,7 @@ PKG_CONFIG_DEPENDS:=\
 	CONFIG_WOLFSSL_HAS_TLSV13 \
 	CONFIG_WOLFSSL_HAS_WPAS
 
-PKG_ABI_VERSION:=$(patsubst %-stable,%,$(PKG_VERSION)).$(call version_abbrev,$(call confvar,$(PKG_CONFIG_DEPENDS)))
+PKG_ABI_VERSION:=$(PKG_VERSION).$(call version_abbrev,$(call confvar,$(PKG_CONFIG_DEPENDS)))
 
 PKG_CONFIG_DEPENDS+=\
 	CONFIG_PACKAGE_libwolfssl-benchmark \



From lede-commits at lists.infradead.org  Sun Nov 10 08:09:19 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 10 Nov 2024 11:09:19 -0500
Subject: [openwrt/openwrt]  kernel: bump 6.6 to 6.6.60
In-Reply-To: <173125495950.16806.3935061141807145607@git-01.infra.openwrt.org>
References: <173125495950.16806.3935061141807145607@git-01.infra.openwrt.org>
Message-ID: <mailman.156528.1731255011.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/92eb867873414e67df398859e082bffe0fcdfe80

commit 92eb867873414e67df398859e082bffe0fcdfe80
Author: John Audia <therealgraysky at proton.me>
AuthorDate: Fri Nov 8 14:57:44 2024 -0500

    kernel: bump 6.6 to 6.6.60
    
    Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.60
    
    Removed upstreamed:
            generic/backport-6.6/409-mtd-spi-nor-winbond-fix-w25q128-regression.patch
    
    All other patches automatically rebased.
    
    1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.60&id=27a58a19bd20a7afe369da2ce6d4ebea70768acd
    
    Build system: x86/64
    Build-tested: x86/64/AMD Cezanne, flogic/glinet_gl-mt6000, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
    Run-tested: x86/64/AMD Cezanne, flogic/glinet_gl-mt6000, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
    
    Signed-off-by: John Audia <therealgraysky at proton.me>
    Link: https://github.com/openwrt/openwrt/pull/16892
    Signed-off-by: Nick Hainke <vincent at systemli.org>
    (cherry picked from commit 85844cfc5c591d00997ade665340315d54bc5822)
---
 include/kernel-6.6                                 |  4 +-
 ...Add-devm_thermal_of_zone_register_with_pa.patch |  4 +-
 ...t5x06-Poll-the-device-if-no-interrupt-is-.patch |  2 +-
 ...t54x6-Clean-up-timer-and-workqueue-on-rem.patch |  4 +-
 ...oth-hci_sync-Add-fallback-bd-address-prop.patch |  4 +-
 ...screen-edt-ft5x06-Suppress-bogus-data-on-.patch |  4 +-
 ...uetooth-hci_sync-Fix-crash-on-NULL-parent.patch |  2 +-
 ...td-spi-nor-winbond-fix-w25q128-regression.patch | 59 ----------------------
 ...conditional-threaded-NAPI-wakeup-based-on.patch |  6 +--
 ...Allow-to-use-SMP-threads-for-backlog-NAPI.patch | 22 ++++----
 ...e-backlog-NAPI-to-clean-up-the-defer_list.patch |  2 +-
 ...v6.10-net-Rename-rps_lock-to-backlog_lock.patch | 18 +++----
 ...v6.11-net-Make-USO-depend-on-CSUM-offload.patch |  6 +--
 ...stats64-if-device-if-driver-is-configured.patch |  2 +-
 ...0-net-create-a-dummy-net_device-allocator.patch |  6 +--
 ...70-net-introduce-napi_is_scheduled-helper.patch |  2 +-
 ...stmmac-move-TX-timer-arm-after-DMA-enable.patch | 12 ++---
 ....11-net-free_netdev-exit-earlier-if-dummy.patch |  2 +-
 ...rt-Revert-driver-core-Set-fw_devlink-on-b.patch |  2 +-
 ...-usb-fix-serdes-init-sequence-for-IPQ6018.patch |  2 +-
 .../1009-net-stmmac-use-GFP_DMA32.patch            |  2 +-
 21 files changed, 54 insertions(+), 113 deletions(-)

diff --git a/include/kernel-6.6 b/include/kernel-6.6
index 5e154f2d21..261a77428c 100644
--- a/include/kernel-6.6
+++ b/include/kernel-6.6
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.6 = .59
-LINUX_KERNEL_HASH-6.6.59 = 23616808d8c08f12815ff898f4edb4c11397a2b2843d029ee62452d21833a76d
+LINUX_VERSION-6.6 = .60
+LINUX_KERNEL_HASH-6.6.60 = 52f9e32d5082ab94253447fd66670d0c3bb765cfcb99b0bf61d1b8eae25952ef
diff --git a/target/linux/airoha/patches-6.6/101-01-thermal-of-Add-devm_thermal_of_zone_register_with_pa.patch b/target/linux/airoha/patches-6.6/101-01-thermal-of-Add-devm_thermal_of_zone_register_with_pa.patch
index e69f57d273..889ec1123e 100644
--- a/target/linux/airoha/patches-6.6/101-01-thermal-of-Add-devm_thermal_of_zone_register_with_pa.patch
+++ b/target/linux/airoha/patches-6.6/101-01-thermal-of-Add-devm_thermal_of_zone_register_with_pa.patch
@@ -181,7 +181,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
   * @dev: Device for which which resource was allocated.
 --- a/include/linux/thermal.h
 +++ b/include/linux/thermal.h
-@@ -261,6 +261,10 @@ struct thermal_zone_params {
+@@ -263,6 +263,10 @@ struct thermal_zone_params {
  #ifdef CONFIG_THERMAL_OF
  struct thermal_zone_device *devm_thermal_of_zone_register(struct device *dev, int id, void *data,
  							  const struct thermal_zone_device_ops *ops);
@@ -192,7 +192,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  
  void devm_thermal_of_zone_unregister(struct device *dev, struct thermal_zone_device *tz);
  
-@@ -272,6 +276,15 @@ struct thermal_zone_device *devm_thermal
+@@ -274,6 +278,15 @@ struct thermal_zone_device *devm_thermal
  {
  	return ERR_PTR(-ENOTSUPP);
  }
diff --git a/target/linux/bcm27xx/patches-6.6/950-0262-Input-edt-ft5x06-Poll-the-device-if-no-interrupt-is-.patch b/target/linux/bcm27xx/patches-6.6/950-0262-Input-edt-ft5x06-Poll-the-device-if-no-interrupt-is-.patch
index bfb26e8f02..9369883fc6 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0262-Input-edt-ft5x06-Poll-the-device-if-no-interrupt-is-.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0262-Input-edt-ft5x06-Poll-the-device-if-no-interrupt-is-.patch
@@ -193,7 +193,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  		tsdata->tdata_offset + crclen;
  }
  
-@@ -1317,17 +1374,27 @@ static int edt_ft5x06_ts_probe(struct i2
+@@ -1335,17 +1392,27 @@ static int edt_ft5x06_ts_probe(struct i2
  		return error;
  	}
  
diff --git a/target/linux/bcm27xx/patches-6.6/950-0302-Input-edt-ft54x6-Clean-up-timer-and-workqueue-on-rem.patch b/target/linux/bcm27xx/patches-6.6/950-0302-Input-edt-ft54x6-Clean-up-timer-and-workqueue-on-rem.patch
index 2b5abd2581..3486c2acaa 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0302-Input-edt-ft54x6-Clean-up-timer-and-workqueue-on-rem.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0302-Input-edt-ft54x6-Clean-up-timer-and-workqueue-on-rem.patch
@@ -18,7 +18,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
 
 --- a/drivers/input/touchscreen/edt-ft5x06.c
 +++ b/drivers/input/touchscreen/edt-ft5x06.c
-@@ -1420,6 +1420,10 @@ static void edt_ft5x06_ts_remove(struct
+@@ -1438,6 +1438,10 @@ static void edt_ft5x06_ts_remove(struct
  {
  	struct edt_ft5x06_ts_data *tsdata = i2c_get_clientdata(client);
  
@@ -27,5 +27,5 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
 +		cancel_work_sync(&tsdata->work_i2c_poll);
 +	}
  	edt_ft5x06_ts_teardown_debugfs(tsdata);
- 	regmap_exit(tsdata->regmap);
  }
+ 
diff --git a/target/linux/bcm27xx/patches-6.6/950-0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch b/target/linux/bcm27xx/patches-6.6/950-0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch
index 0e404906be..cc5e3d1dc3 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch
@@ -20,7 +20,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 
 --- a/net/bluetooth/hci_sync.c
 +++ b/net/bluetooth/hci_sync.c
-@@ -4861,6 +4861,7 @@ static const struct {
+@@ -4865,6 +4865,7 @@ static const struct {
   */
  static int hci_dev_setup_sync(struct hci_dev *hdev)
  {
@@ -28,7 +28,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	int ret = 0;
  	bool invalid_bdaddr;
  	size_t i;
-@@ -4889,7 +4890,8 @@ static int hci_dev_setup_sync(struct hci
+@@ -4893,7 +4894,8 @@ static int hci_dev_setup_sync(struct hci
  			 test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
  	if (!ret) {
  		if (test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks) &&
diff --git a/target/linux/bcm27xx/patches-6.6/950-0669-input-touchscreen-edt-ft5x06-Suppress-bogus-data-on-.patch b/target/linux/bcm27xx/patches-6.6/950-0669-input-touchscreen-edt-ft5x06-Suppress-bogus-data-on-.patch
index b3bf708ade..9019a43049 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0669-input-touchscreen-edt-ft5x06-Suppress-bogus-data-on-.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0669-input-touchscreen-edt-ft5x06-Suppress-bogus-data-on-.patch
@@ -58,7 +58,7 @@ Signed-off-by: Nick Hollinghurst <nick.hollinghurst at raspberrypi.com>
  		if (!error && num_points)
  			error = regmap_bulk_read(tsdata->regmap,
  						 tsdata->tdata_offset,
-@@ -1300,7 +1318,7 @@ static int edt_ft5x06_ts_probe(struct i2
+@@ -1318,7 +1336,7 @@ static int edt_ft5x06_ts_probe(struct i2
  	if (tsdata->reset_gpio) {
  		usleep_range(5000, 6000);
  		gpiod_set_value_cansleep(tsdata->reset_gpio, 0);
@@ -67,7 +67,7 @@ Signed-off-by: Nick Hollinghurst <nick.hollinghurst at raspberrypi.com>
  	}
  
  	input = devm_input_allocate_device(&client->dev);
-@@ -1389,11 +1407,12 @@ static int edt_ft5x06_ts_probe(struct i2
+@@ -1407,11 +1425,12 @@ static int edt_ft5x06_ts_probe(struct i2
  			return error;
  		}
  	} else {
diff --git a/target/linux/bcm27xx/patches-6.6/950-1218-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch b/target/linux/bcm27xx/patches-6.6/950-1218-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch
index 272f711e63..3b4c7e65af 100644
--- a/target/linux/bcm27xx/patches-6.6/950-1218-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-1218-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch
@@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 
 --- a/net/bluetooth/hci_sync.c
 +++ b/net/bluetooth/hci_sync.c
-@@ -4861,7 +4861,8 @@ static const struct {
+@@ -4865,7 +4865,8 @@ static const struct {
   */
  static int hci_dev_setup_sync(struct hci_dev *hdev)
  {
diff --git a/target/linux/generic/backport-6.6/409-mtd-spi-nor-winbond-fix-w25q128-regression.patch b/target/linux/generic/backport-6.6/409-mtd-spi-nor-winbond-fix-w25q128-regression.patch
deleted file mode 100644
index de79328138..0000000000
--- a/target/linux/generic/backport-6.6/409-mtd-spi-nor-winbond-fix-w25q128-regression.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 342672bbdf713654316a0ff73c7f2ecf7ea6693d Mon Sep 17 00:00:00 2001
-From: Michael Walle <mwalle at kernel.org>
-Date: Fri, 21 Jun 2024 14:09:29 +0200
-Subject: [PATCH] mtd: spi-nor: winbond: fix w25q128 regression
-
-Upstream commit d35df77707bf5ae1221b5ba1c8a88cf4fcdd4901
-
-("mtd: spi-nor: winbond: fix w25q128 regression")
-however the code has changed a lot after v6.6 so the patch did
-not apply to v6.6 or v6.1 which still has the problem.
-
-This patch fixes the issue in the way of the old API and has
-been tested on hardware. Please apply it for v6.1 and v6.6.
-
-Commit 83e824a4a595 ("mtd: spi-nor: Correct flags for Winbond w25q128")
-removed the flags for non-SFDP devices. It was assumed that it wasn't in
-use anymore. This wasn't true. Add the no_sfdp_flags as well as the size
-again.
-
-We add the additional flags for dual and quad read because they have
-been reported to work properly by Hartmut using both older and newer
-versions of this flash, the similar flashes with 64Mbit and 256Mbit
-already have these flags and because it will (luckily) trigger our
-legacy SFDP parsing, so newer versions with SFDP support will still get
-the parameters from the SFDP tables.
-
-Reported-by: Hartmut Birr <e9hack at gmail.com>
-Closes: https://lore.kernel.org/r/CALxbwRo_-9CaJmt7r7ELgu+vOcgk=xZcGHobnKf=oT2=u4d4aA at mail.gmail.com/
-Fixes: 83e824a4a595 ("mtd: spi-nor: Correct flags for Winbond w25q128")
-Reviewed-by: Linus Walleij <linus.walleij at linaro.org>
-Signed-off-by: Michael Walle <mwalle at kernel.org>
-Acked-by: Tudor Ambarus <tudor.ambarus at linaro.org>
-Reviewed-by: Esben Haabendal <esben at geanix.com>
-Reviewed-by: Pratyush Yadav <pratyush at kernel.org>
-Signed-off-by: Pratyush Yadav <pratyush at kernel.org>
-Link: https://lore.kernel.org/r/20240621120929.2670185-1-mwalle at kernel.org
-[Backported to v6.6 - vastly different due to upstream changes]
-Reviewed-by: Tudor Ambarus <tudor.ambarus at linaro.org>
-Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
----
- drivers/mtd/spi-nor/winbond.c | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
---- a/drivers/mtd/spi-nor/winbond.c
-+++ b/drivers/mtd/spi-nor/winbond.c
-@@ -120,9 +120,10 @@ static const struct flash_info winbond_n
- 		NO_SFDP_FLAGS(SECT_4K) },
- 	{ "w25q80bl", INFO(0xef4014, 0, 64 * 1024,  16)
- 		NO_SFDP_FLAGS(SECT_4K) },
--	{ "w25q128", INFO(0xef4018, 0, 0, 0)
--		PARSE_SFDP
--		FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) },
-+	{ "w25q128", INFO(0xef4018, 0, 64 * 1024, 256)
-+		FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
-+		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-+			      SPI_NOR_QUAD_READ) },
- 	{ "w25q256", INFO(0xef4019, 0, 64 * 1024, 512)
- 		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
- 		.fixups = &w25q256_fixups },
diff --git a/target/linux/generic/backport-6.6/600-v6.10-net-Remove-conditional-threaded-NAPI-wakeup-based-on.patch b/target/linux/generic/backport-6.6/600-v6.10-net-Remove-conditional-threaded-NAPI-wakeup-based-on.patch
index 3f75dffde7..6ee4716c5c 100644
--- a/target/linux/generic/backport-6.6/600-v6.10-net-Remove-conditional-threaded-NAPI-wakeup-based-on.patch
+++ b/target/linux/generic/backport-6.6/600-v6.10-net-Remove-conditional-threaded-NAPI-wakeup-based-on.patch
@@ -32,7 +32,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -4477,13 +4477,7 @@ static inline void ____napi_schedule(str
+@@ -4481,13 +4481,7 @@ static inline void ____napi_schedule(str
  		 */
  		thread = READ_ONCE(napi->thread);
  		if (thread) {
@@ -47,7 +47,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  			wake_up_process(thread);
  			return;
  		}
-@@ -6639,8 +6633,6 @@ static int napi_poll(struct napi_struct
+@@ -6643,8 +6637,6 @@ static int napi_poll(struct napi_struct
  
  static int napi_thread_wait(struct napi_struct *napi)
  {
@@ -56,7 +56,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	set_current_state(TASK_INTERRUPTIBLE);
  
  	while (!kthread_should_stop()) {
-@@ -6649,15 +6641,13 @@ static int napi_thread_wait(struct napi_
+@@ -6653,15 +6645,13 @@ static int napi_thread_wait(struct napi_
  		 * Testing SCHED bit is not enough because SCHED bit might be
  		 * set by some other busy poll thread or by napi_disable().
  		 */
diff --git a/target/linux/generic/backport-6.6/601-v6.10-net-Allow-to-use-SMP-threads-for-backlog-NAPI.patch b/target/linux/generic/backport-6.6/601-v6.10-net-Allow-to-use-SMP-threads-for-backlog-NAPI.patch
index b343a3f964..8c0b41f37b 100644
--- a/target/linux/generic/backport-6.6/601-v6.10-net-Allow-to-use-SMP-threads-for-backlog-NAPI.patch
+++ b/target/linux/generic/backport-6.6/601-v6.10-net-Allow-to-use-SMP-threads-for-backlog-NAPI.patch
@@ -108,7 +108,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  static inline void rps_lock_irqsave(struct softnet_data *sd,
  				    unsigned long *flags)
  {
-@@ -4445,6 +4471,7 @@ EXPORT_SYMBOL(__dev_direct_xmit);
+@@ -4449,6 +4475,7 @@ EXPORT_SYMBOL(__dev_direct_xmit);
  /*************************************************************************
   *			Receiver routines
   *************************************************************************/
@@ -116,7 +116,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  
  int netdev_max_backlog __read_mostly = 1000;
  EXPORT_SYMBOL(netdev_max_backlog);
-@@ -4477,12 +4504,16 @@ static inline void ____napi_schedule(str
+@@ -4481,12 +4508,16 @@ static inline void ____napi_schedule(str
  		 */
  		thread = READ_ONCE(napi->thread);
  		if (thread) {
@@ -133,7 +133,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	list_add_tail(&napi->poll_list, &sd->poll_list);
  	WRITE_ONCE(napi->list_owner, smp_processor_id());
  	/* If not called from net_rx_action()
-@@ -4728,6 +4759,11 @@ static void napi_schedule_rps(struct sof
+@@ -4732,6 +4763,11 @@ static void napi_schedule_rps(struct sof
  
  #ifdef CONFIG_RPS
  	if (sd != mysd) {
@@ -145,7 +145,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  		sd->rps_ipi_next = mysd->rps_ipi_list;
  		mysd->rps_ipi_list = sd;
  
-@@ -5951,7 +5987,7 @@ static void net_rps_action_and_irq_enabl
+@@ -5955,7 +5991,7 @@ static void net_rps_action_and_irq_enabl
  #ifdef CONFIG_RPS
  	struct softnet_data *remsd = sd->rps_ipi_list;
  
@@ -154,7 +154,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  		sd->rps_ipi_list = NULL;
  
  		local_irq_enable();
-@@ -5966,7 +6002,7 @@ static void net_rps_action_and_irq_enabl
+@@ -5970,7 +6006,7 @@ static void net_rps_action_and_irq_enabl
  static bool sd_has_rps_ipi_waiting(struct softnet_data *sd)
  {
  #ifdef CONFIG_RPS
@@ -163,7 +163,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  #else
  	return false;
  #endif
-@@ -6010,7 +6046,7 @@ static int process_backlog(struct napi_s
+@@ -6014,7 +6050,7 @@ static int process_backlog(struct napi_s
  			 * We can use a plain write instead of clear_bit(),
  			 * and we dont need an smp_mb() memory barrier.
  			 */
@@ -172,7 +172,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  			again = false;
  		} else {
  			skb_queue_splice_tail_init(&sd->input_pkt_queue,
-@@ -6676,43 +6712,48 @@ static void skb_defer_free_flush(struct
+@@ -6680,43 +6716,48 @@ static void skb_defer_free_flush(struct
  	}
  }
  
@@ -250,7 +250,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	return 0;
  }
  
-@@ -11293,7 +11334,7 @@ static int dev_cpu_dead(unsigned int old
+@@ -11297,7 +11338,7 @@ static int dev_cpu_dead(unsigned int old
  
  		list_del_init(&napi->poll_list);
  		if (napi->poll == process_backlog)
@@ -259,7 +259,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  		else
  			____napi_schedule(sd, napi);
  	}
-@@ -11301,12 +11342,14 @@ static int dev_cpu_dead(unsigned int old
+@@ -11305,12 +11346,14 @@ static int dev_cpu_dead(unsigned int old
  	raise_softirq_irqoff(NET_TX_SOFTIRQ);
  	local_irq_enable();
  
@@ -278,7 +278,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  
  	/* Process offline CPU's input_pkt_queue */
  	while ((skb = __skb_dequeue(&oldsd->process_queue))) {
-@@ -11569,6 +11612,38 @@ static struct pernet_operations __net_in
+@@ -11573,6 +11616,38 @@ static struct pernet_operations __net_in
   *
   */
  
@@ -317,7 +317,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  /*
   *       This is called single threaded during boot, so no need
   *       to take the rtnl semaphore.
-@@ -11619,7 +11694,10 @@ static int __init net_dev_init(void)
+@@ -11623,7 +11698,10 @@ static int __init net_dev_init(void)
  		init_gro_hash(&sd->backlog);
  		sd->backlog.poll = process_backlog;
  		sd->backlog.weight = weight_p;
diff --git a/target/linux/generic/backport-6.6/602-v6.10-net-Use-backlog-NAPI-to-clean-up-the-defer_list.patch b/target/linux/generic/backport-6.6/602-v6.10-net-Use-backlog-NAPI-to-clean-up-the-defer_list.patch
index 3b1a64e4c6..3fcc72e589 100644
--- a/target/linux/generic/backport-6.6/602-v6.10-net-Use-backlog-NAPI-to-clean-up-the-defer_list.patch
+++ b/target/linux/generic/backport-6.6/602-v6.10-net-Use-backlog-NAPI-to-clean-up-the-defer_list.patch
@@ -82,7 +82,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  		spin_unlock_irq(&sd->input_pkt_queue.lock);
  	else if (!IS_ENABLED(CONFIG_PREEMPT_RT))
  		local_irq_enable();
-@@ -4778,6 +4778,23 @@ static void napi_schedule_rps(struct sof
+@@ -4782,6 +4782,23 @@ static void napi_schedule_rps(struct sof
  	__napi_schedule_irqoff(&mysd->backlog);
  }
  
diff --git a/target/linux/generic/backport-6.6/603-v6.10-net-Rename-rps_lock-to-backlog_lock.patch b/target/linux/generic/backport-6.6/603-v6.10-net-Rename-rps_lock-to-backlog_lock.patch
index dab96763fc..056bd5686e 100644
--- a/target/linux/generic/backport-6.6/603-v6.10-net-Rename-rps_lock-to-backlog_lock.patch
+++ b/target/linux/generic/backport-6.6/603-v6.10-net-Rename-rps_lock-to-backlog_lock.patch
@@ -67,7 +67,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  {
  	if (IS_ENABLED(CONFIG_RPS) || use_backlog_threads())
  		spin_unlock_irq(&sd->input_pkt_queue.lock);
-@@ -4783,12 +4783,12 @@ void kick_defer_list_purge(struct softne
+@@ -4787,12 +4787,12 @@ void kick_defer_list_purge(struct softne
  	unsigned long flags;
  
  	if (use_backlog_threads()) {
@@ -82,7 +82,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  
  	} else if (!cmpxchg(&sd->defer_ipi_scheduled, 0, 1)) {
  		smp_call_function_single_async(cpu, &sd->defer_csd);
-@@ -4850,7 +4850,7 @@ static int enqueue_to_backlog(struct sk_
+@@ -4854,7 +4854,7 @@ static int enqueue_to_backlog(struct sk_
  	reason = SKB_DROP_REASON_NOT_SPECIFIED;
  	sd = &per_cpu(softnet_data, cpu);
  
@@ -91,7 +91,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	if (!netif_running(skb->dev))
  		goto drop;
  	qlen = skb_queue_len(&sd->input_pkt_queue);
-@@ -4859,7 +4859,7 @@ static int enqueue_to_backlog(struct sk_
+@@ -4863,7 +4863,7 @@ static int enqueue_to_backlog(struct sk_
  enqueue:
  			__skb_queue_tail(&sd->input_pkt_queue, skb);
  			input_queue_tail_incr_save(sd, qtail);
@@ -100,7 +100,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  			return NET_RX_SUCCESS;
  		}
  
-@@ -4874,7 +4874,7 @@ enqueue:
+@@ -4878,7 +4878,7 @@ enqueue:
  
  drop:
  	sd->dropped++;
@@ -109,7 +109,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  
  	dev_core_stats_rx_dropped_inc(skb->dev);
  	kfree_skb_reason(skb, reason);
-@@ -5905,7 +5905,7 @@ static void flush_backlog(struct work_st
+@@ -5909,7 +5909,7 @@ static void flush_backlog(struct work_st
  	local_bh_disable();
  	sd = this_cpu_ptr(&softnet_data);
  
@@ -118,7 +118,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	skb_queue_walk_safe(&sd->input_pkt_queue, skb, tmp) {
  		if (skb->dev->reg_state == NETREG_UNREGISTERING) {
  			__skb_unlink(skb, &sd->input_pkt_queue);
-@@ -5913,7 +5913,7 @@ static void flush_backlog(struct work_st
+@@ -5917,7 +5917,7 @@ static void flush_backlog(struct work_st
  			input_queue_head_incr(sd);
  		}
  	}
@@ -127,7 +127,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  
  	skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
  		if (skb->dev->reg_state == NETREG_UNREGISTERING) {
-@@ -5931,14 +5931,14 @@ static bool flush_required(int cpu)
+@@ -5935,14 +5935,14 @@ static bool flush_required(int cpu)
  	struct softnet_data *sd = &per_cpu(softnet_data, cpu);
  	bool do_flush;
  
@@ -144,7 +144,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  
  	return do_flush;
  #endif
-@@ -6053,7 +6053,7 @@ static int process_backlog(struct napi_s
+@@ -6057,7 +6057,7 @@ static int process_backlog(struct napi_s
  
  		}
  
@@ -153,7 +153,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  		if (skb_queue_empty(&sd->input_pkt_queue)) {
  			/*
  			 * Inline a custom version of __napi_complete().
-@@ -6069,7 +6069,7 @@ static int process_backlog(struct napi_s
+@@ -6073,7 +6073,7 @@ static int process_backlog(struct napi_s
  			skb_queue_splice_tail_init(&sd->input_pkt_queue,
  						   &sd->process_queue);
  		}
diff --git a/target/linux/generic/backport-6.6/611-02-v6.11-net-Make-USO-depend-on-CSUM-offload.patch b/target/linux/generic/backport-6.6/611-02-v6.11-net-Make-USO-depend-on-CSUM-offload.patch
index 30758f180f..42aff7f0af 100644
--- a/target/linux/generic/backport-6.6/611-02-v6.11-net-Make-USO-depend-on-CSUM-offload.patch
+++ b/target/linux/generic/backport-6.6/611-02-v6.11-net-Make-USO-depend-on-CSUM-offload.patch
@@ -20,7 +20,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -9755,6 +9755,15 @@ static void netdev_sync_lower_features(s
+@@ -9759,6 +9759,15 @@ static void netdev_sync_lower_features(s
  	}
  }
  
@@ -36,7 +36,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  static netdev_features_t netdev_fix_features(struct net_device *dev,
  	netdev_features_t features)
  {
-@@ -9836,15 +9845,9 @@ static netdev_features_t netdev_fix_feat
+@@ -9840,15 +9849,9 @@ static netdev_features_t netdev_fix_feat
  		features &= ~NETIF_F_LRO;
  	}
  
@@ -55,7 +55,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	}
  
  	if ((features & NETIF_F_HW_TLS_RX) && !(features & NETIF_F_RXCSUM)) {
-@@ -9852,6 +9855,11 @@ static netdev_features_t netdev_fix_feat
+@@ -9856,6 +9859,11 @@ static netdev_features_t netdev_fix_feat
  		features &= ~NETIF_F_HW_TLS_RX;
  	}
  
diff --git a/target/linux/generic/backport-6.6/612-v6.9-net-get-stats64-if-device-if-driver-is-configured.patch b/target/linux/generic/backport-6.6/612-v6.9-net-get-stats64-if-device-if-driver-is-configured.patch
index 2db89c5a05..d72882dbb6 100644
--- a/target/linux/generic/backport-6.6/612-v6.9-net-get-stats64-if-device-if-driver-is-configured.patch
+++ b/target/linux/generic/backport-6.6/612-v6.9-net-get-stats64-if-device-if-driver-is-configured.patch
@@ -18,7 +18,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -10662,6 +10662,8 @@ struct rtnl_link_stats64 *dev_get_stats(
+@@ -10666,6 +10666,8 @@ struct rtnl_link_stats64 *dev_get_stats(
  		ops->ndo_get_stats64(dev, storage);
  	} else if (ops->ndo_get_stats) {
  		netdev_stats_to_stats64(storage, ops->ndo_get_stats(dev));
diff --git a/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch b/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch
index aea95667e5..3f48a8c34a 100644
--- a/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch
+++ b/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch
@@ -49,7 +49,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  				    unsigned char name_assign_type,
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -10349,25 +10349,12 @@ err_free_name:
+@@ -10353,25 +10353,12 @@ err_free_name:
  }
  EXPORT_SYMBOL(register_netdevice);
  
@@ -79,7 +79,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  	/* make sure we BUG if trying to hit standard
  	 * register/unregister code path
  	 */
-@@ -10387,12 +10374,32 @@ int init_dummy_netdev(struct net_device
+@@ -10391,12 +10378,32 @@ int init_dummy_netdev(struct net_device
  	 * because users of this 'device' dont need to change
  	 * its refcount.
  	 */
@@ -113,7 +113,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  /**
   *	register_netdev	- register a network device
   *	@dev: device to register
-@@ -10986,6 +10993,19 @@ void free_netdev(struct net_device *dev)
+@@ -10990,6 +10997,19 @@ void free_netdev(struct net_device *dev)
  EXPORT_SYMBOL(free_netdev);
  
  /**
diff --git a/target/linux/generic/backport-6.6/770-net-introduce-napi_is_scheduled-helper.patch b/target/linux/generic/backport-6.6/770-net-introduce-napi_is_scheduled-helper.patch
index 838bd03c8c..d7b2b27506 100644
--- a/target/linux/generic/backport-6.6/770-net-introduce-napi_is_scheduled-helper.patch
+++ b/target/linux/generic/backport-6.6/770-net-introduce-napi_is_scheduled-helper.patch
@@ -85,7 +85,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  /**
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -6606,7 +6606,7 @@ static int __napi_poll(struct napi_struc
+@@ -6610,7 +6610,7 @@ static int __napi_poll(struct napi_struc
  	 * accidentally calling ->poll() when NAPI is not scheduled.
  	 */
  	work = 0;
diff --git a/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch b/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch
index 60dfe4c035..66a9251438 100644
--- a/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch
+++ b/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch
@@ -42,7 +42,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  
  	u64_stats_update_begin(&txq_stats->napi_syncp);
  	u64_stats_add(&txq_stats->napi.tx_packets, tx_packets);
-@@ -5590,6 +5594,7 @@ static int stmmac_napi_poll_tx(struct na
+@@ -5602,6 +5606,7 @@ static int stmmac_napi_poll_tx(struct na
  		container_of(napi, struct stmmac_channel, tx_napi);
  	struct stmmac_priv *priv = ch->priv_data;
  	struct stmmac_txq_stats *txq_stats;
@@ -50,7 +50,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	u32 chan = ch->index;
  	int work_done;
  
-@@ -5598,7 +5603,7 @@ static int stmmac_napi_poll_tx(struct na
+@@ -5610,7 +5615,7 @@ static int stmmac_napi_poll_tx(struct na
  	u64_stats_inc(&txq_stats->napi.poll);
  	u64_stats_update_end(&txq_stats->napi_syncp);
  
@@ -59,7 +59,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	work_done = min(work_done, budget);
  
  	if (work_done < budget && napi_complete_done(napi, work_done)) {
-@@ -5609,6 +5614,10 @@ static int stmmac_napi_poll_tx(struct na
+@@ -5621,6 +5626,10 @@ static int stmmac_napi_poll_tx(struct na
  		spin_unlock_irqrestore(&ch->lock, flags);
  	}
  
@@ -70,7 +70,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	return work_done;
  }
  
-@@ -5617,6 +5626,7 @@ static int stmmac_napi_poll_rxtx(struct
+@@ -5629,6 +5638,7 @@ static int stmmac_napi_poll_rxtx(struct
  	struct stmmac_channel *ch =
  		container_of(napi, struct stmmac_channel, rxtx_napi);
  	struct stmmac_priv *priv = ch->priv_data;
@@ -78,7 +78,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	int rx_done, tx_done, rxtx_done;
  	struct stmmac_rxq_stats *rxq_stats;
  	struct stmmac_txq_stats *txq_stats;
-@@ -5632,7 +5642,7 @@ static int stmmac_napi_poll_rxtx(struct
+@@ -5644,7 +5654,7 @@ static int stmmac_napi_poll_rxtx(struct
  	u64_stats_inc(&txq_stats->napi.poll);
  	u64_stats_update_end(&txq_stats->napi_syncp);
  
@@ -87,7 +87,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	tx_done = min(tx_done, budget);
  
  	rx_done = stmmac_rx_zc(priv, budget, chan);
-@@ -5657,6 +5667,10 @@ static int stmmac_napi_poll_rxtx(struct
+@@ -5669,6 +5679,10 @@ static int stmmac_napi_poll_rxtx(struct
  		spin_unlock_irqrestore(&ch->lock, flags);
  	}
  
diff --git a/target/linux/generic/backport-6.6/900-v6.11-net-free_netdev-exit-earlier-if-dummy.patch b/target/linux/generic/backport-6.6/900-v6.11-net-free_netdev-exit-earlier-if-dummy.patch
index 9e38d88e22..21db87419e 100644
--- a/target/linux/generic/backport-6.6/900-v6.11-net-free_netdev-exit-earlier-if-dummy.patch
+++ b/target/linux/generic/backport-6.6/900-v6.11-net-free_netdev-exit-earlier-if-dummy.patch
@@ -23,7 +23,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -10979,7 +10979,8 @@ void free_netdev(struct net_device *dev)
+@@ -10983,7 +10983,8 @@ void free_netdev(struct net_device *dev)
  	dev->xdp_bulkq = NULL;
  
  	/*  Compatibility with error handling in drivers */
diff --git a/target/linux/generic/hack-6.6/930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch b/target/linux/generic/hack-6.6/930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch
index 85a19027fd..1c5fb11ff5 100644
--- a/target/linux/generic/hack-6.6/930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch
+++ b/target/linux/generic/hack-6.6/930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch
@@ -19,7 +19,7 @@ Signed-off-by: Rafa? Mi?ecki <rafal at milecki.pl>
 
 --- a/drivers/base/core.c
 +++ b/drivers/base/core.c
-@@ -1658,7 +1658,7 @@ static void device_links_purge(struct de
+@@ -1657,7 +1657,7 @@ static void device_links_purge(struct de
  #define FW_DEVLINK_FLAGS_RPM		(FW_DEVLINK_FLAGS_ON | \
  					 DL_FLAG_PM_RUNTIME)
  
diff --git a/target/linux/qualcommax/patches-6.6/0061-v6.8-phy-qcom-qmp-usb-fix-serdes-init-sequence-for-IPQ6018.patch b/target/linux/qualcommax/patches-6.6/0061-v6.8-phy-qcom-qmp-usb-fix-serdes-init-sequence-for-IPQ6018.patch
index 4082e3d852..9021b572e8 100644
--- a/target/linux/qualcommax/patches-6.6/0061-v6.8-phy-qcom-qmp-usb-fix-serdes-init-sequence-for-IPQ6018.patch
+++ b/target/linux/qualcommax/patches-6.6/0061-v6.8-phy-qcom-qmp-usb-fix-serdes-init-sequence-for-IPQ6018.patch
@@ -47,7 +47,7 @@ Signed-off-by: Vinod Koul <vkoul at kernel.org>
  static const struct qmp_phy_cfg ipq8074_usb3phy_cfg = {
  	.lanes			= 1,
  
-@@ -2238,7 +2258,7 @@ err_node_put:
+@@ -2239,7 +2259,7 @@ err_node_put:
  static const struct of_device_id qmp_usb_of_match_table[] = {
  	{
  		.compatible = "qcom,ipq6018-qmp-usb3-phy",
diff --git a/target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch b/target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch
index ad8b92f715..25849e7c26 100644
--- a/target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch
+++ b/target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch
@@ -19,7 +19,7 @@ Signed-off-by: Matteo Croce <mcroce at microsoft.com>
  
  	if (priv->dma_cap.host_dma_width <= 32)
  		gfp |= GFP_DMA32;
-@@ -4673,7 +4673,7 @@ static inline void stmmac_rx_refill(stru
+@@ -4685,7 +4685,7 @@ static inline void stmmac_rx_refill(stru
  	struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue];
  	int dirty = stmmac_rx_dirty(priv, queue);
  	unsigned int entry = rx_q->dirty_rx;



From lede-commits at lists.infradead.org  Sun Nov 10 13:25:35 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 10 Nov 2024 16:25:35 -0500
Subject: [openwrt/openwrt]  gdb: Fix description for apk, remove backtick
In-Reply-To: <173127393549.366964.13028877870697142383@git-01.infra.openwrt.org>
References: <173127393549.366964.13028877870697142383@git-01.infra.openwrt.org>
Message-ID: <mailman.156576.1731273941.1280.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/adb921c34ff220951a699665bb35dc0e3538b3b2

commit adb921c34ff220951a699665bb35dc0e3538b3b2
Author: Hannu Nyman <hannu.nyman at iki.fi>
AuthorDate: Sun Nov 10 17:16:51 2024 +0200

    gdb: Fix description for apk, remove backtick
    
    Remove backtick from gdb description text, as that seems to
    be recognized as a shell action by compilation with apk,
    causing error.
    
    Example from test buildbot:
     rstrip.sh: /builder/shared-workdir/build/sdk/build_dir/target-aarch64_generic_musl/gdb-15.2/ipkg-aarch64_generic/gdb/usr/bin/gdb: executable
     bash: -c: line 1: unexpected EOF while looking for matching ``'
     bash: -c: line 2: syntax error: unexpected end of file
     make[3]: *** [Makefile:123: /builder/shared-workdir/build/sdk/bin/packages/aarch64_generic/base/gdb-15.2-r1.apk] Error 2
    
    Local compilation:
     rstrip.sh: /OpenWrt/aarch64/build_dir/target-aarch64_cortex-a53_musl/gdb-15.2/ipkg-aarch64_cortex-a53/gdb/usr/bin/gdb: executable
     bash: -c: line 1: unexpected EOF while looking for matching ``'
     make[2]: *** [Makefile:123: /OpenWrt/aarch64/bin/packages/aarch64_cortex-a53/base/gdb-15.2-r1.apk] Error 2
    
    Signed-off-by: Hannu Nyman <hannu.nyman at iki.fi>
    Link: https://github.com/openwrt/openwrt/pull/16908
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/devel/gdb/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package/devel/gdb/Makefile b/package/devel/gdb/Makefile
index 366746be87..7bdc6c83cb 100644
--- a/package/devel/gdb/Makefile
+++ b/package/devel/gdb/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gdb
 PKG_VERSION:=15.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNU/gdb
@@ -37,7 +37,7 @@ $(call Package/gdb/Default)
 endef
 
 define Package/gdb/description
-GDB, the GNU Project debugger, allows you to see what is going on `inside'
+GDB, the GNU Project debugger, allows you to see what is going on 'inside'
 another program while it executes -- or what another program was doing at the
 moment it crashed.
 endef



From lede-commits at lists.infradead.org  Sun Nov 10 13:38:42 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 10 Nov 2024 16:38:42 -0500
Subject: [openwrt/openwrt]  lantiq: use more devm for i2c
In-Reply-To: <173127472277.384777.15888876073964669074@git-01.infra.openwrt.org>
References: <173127472277.384777.15888876073964669074@git-01.infra.openwrt.org>
Message-ID: <mailman.156579.1731274726.1280.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/44824f0b787b13e2f2fccc58256b2c42fa3f9f5d

commit 44824f0b787b13e2f2fccc58256b2c42fa3f9f5d
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Fri Oct 18 19:08:02 2024 -0700

    lantiq: use more devm for i2c
    
    i2c_add_numbered_adapter is the wrong function to use here. It requires
    setting nr to some value, otherwise it behaves the same as
    i2c_add_adapter. nr is not set.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16825
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 .../0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch   | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/target/linux/lantiq/patches-6.6/0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch b/target/linux/lantiq/patches-6.6/0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch
index 235e48f6de..1f2f5139d6 100644
--- a/target/linux/lantiq/patches-6.6/0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch
+++ b/target/linux/lantiq/patches-6.6/0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch
@@ -47,7 +47,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  obj-$(CONFIG_I2C_MESON)		+= i2c-meson.o
 --- /dev/null
 +++ b/drivers/i2c/busses/i2c-lantiq.c
-@@ -0,0 +1,745 @@
+@@ -0,0 +1,742 @@
 +
 +/*
 + * Lantiq I2C bus adapter
@@ -658,7 +658,9 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +	}
 +
 +	init_completion(&priv->cmd_complete);
-+	mutex_init(&priv->mutex);
++	ret = devm_mutex_init(&pdev->dev, &priv->mutex);
++	if (ret)
++		return ret;
 +
 +	priv->membase = devm_platform_ioremap_resource(pdev, 0);
 +	if (IS_ERR(priv->membase))
@@ -719,7 +721,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +	clk_activate(priv->clk_gate);
 +
 +	/* add our adapter to the i2c stack */
-+	ret = i2c_add_numbered_adapter(adap);
++	ret = devm_i2c_add_adapter(&pdev->dev, adap);
 +	if (ret) {
 +		dev_err(&pdev->dev, "can't register I2C adapter\n");
 +		goto out;
@@ -737,7 +739,6 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +	ret = ltq_i2c_hw_init(adap);
 +	if (ret) {
 +		dev_err(&pdev->dev, "can't configure adapter\n");
-+		i2c_del_adapter(adap);
 +		platform_set_drvdata(pdev, NULL);
 +		goto out;
 +	} else {
@@ -762,10 +763,6 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +	/* power down the core */
 +	clk_deactivate(priv->clk_gate);
 +
-+	/* remove driver */
-+	i2c_del_adapter(&priv->adap);
-+	kfree(priv);
-+
 +	dev_dbg(&pdev->dev, "removed\n");
 +	platform_set_drvdata(pdev, NULL);
 +



From lede-commits at lists.infradead.org  Sun Nov 10 13:40:24 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 10 Nov 2024 16:40:24 -0500
Subject: [openwrt/openwrt]  lantiq: use devm for mutex_init
In-Reply-To: <173127482418.386295.16666423006586321447@git-01.infra.openwrt.org>
References: <173127482418.386295.16666423006586321447@git-01.infra.openwrt.org>
Message-ID: <mailman.156580.1731274833.1280.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/fccff963c0a6ba035455daea61566f4d121643e3

commit fccff963c0a6ba035455daea61566f4d121643e3
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Thu Oct 31 12:22:04 2024 -0700

    lantiq: use devm for mutex_init
    
    It's common to avoid calling mutex_destroy when done. It's not correct strictly speaking.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16832
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 .../patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch      | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/target/linux/lantiq/patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch b/target/linux/lantiq/patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch
index 81bf72913b..a396efd990 100644
--- a/target/linux/lantiq/patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch
+++ b/target/linux/lantiq/patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch
@@ -186,7 +186,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  obj-y += vmmc.o
 --- /dev/null
 +++ b/arch/mips/lantiq/xway/timer.c
-@@ -0,0 +1,886 @@
+@@ -0,0 +1,888 @@
 +#ifndef CONFIG_SOC_AMAZON_SE
 +
 +#include <linux/kernel.h>
@@ -989,7 +989,9 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +	ltq_w32(0xfff, LQ_GPTU_IRNCR);
 +
 +	memset(&timer_dev, 0, sizeof(timer_dev));
-+	mutex_init(&timer_dev.gptu_mutex);
++	ret = devm_mutex_init(&pdev->dev, &timer_dev.gptu_mutex);
++	if (ret)
++		return ret;
 +
 +	lq_enable_gptu();
 +	timer_dev.number_of_timers = GPTU_ID_CFG * 2;



From lede-commits at lists.infradead.org  Sun Nov 10 15:05:38 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 10 Nov 2024 18:05:38 -0500
Subject: [openwrt/openwrt]  nftables: update to 1.1.1
In-Reply-To: <173127993787.474739.15681346755351199597@git-01.infra.openwrt.org>
References: <173127993787.474739.15681346755351199597@git-01.infra.openwrt.org>
Message-ID: <mailman.156591.1731279943.1280.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/c11a18be0dc38c81280baa948500fe1a57de0685

commit c11a18be0dc38c81280baa948500fe1a57de0685
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Thu Oct 24 00:09:22 2024 +0200

    nftables: update to 1.1.1
    
    Release Announcement:
    https://lwn.net/Articles/982283/
    https://lwn.net/Articles/992760/
    
    Link: https://github.com/openwrt/openwrt/pull/16769
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/network/utils/nftables/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package/network/utils/nftables/Makefile b/package/network/utils/nftables/Makefile
index 38a8199d11..06b3fcfcda 100644
--- a/package/network/utils/nftables/Makefile
+++ b/package/network/utils/nftables/Makefile
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nftables
-PKG_VERSION:=1.0.9
+PKG_VERSION:=1.1.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://netfilter.org/projects/$(PKG_NAME)/files
-PKG_HASH:=a3c304cd9ba061239ee0474f9afb938a9bb99d89b960246f66f0c3a0a85e14cd
+PKG_HASH:=6358830f3a64f31e39b0ad421d7dadcd240b72343ded48d8ef13b8faf204865a
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=GPL-2.0



From lede-commits at lists.infradead.org  Sun Nov 10 15:05:37 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 10 Nov 2024 18:05:37 -0500
Subject: [openwrt/openwrt]  libnftnl: update to 1.2.8
In-Reply-To: <173127993787.474739.15681346755351199597@git-01.infra.openwrt.org>
References: <173127993787.474739.15681346755351199597@git-01.infra.openwrt.org>
Message-ID: <mailman.156592.1731279947.1280.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/d9ed0d438b0ec7d813764d629be7a753dc3fbac5

commit d9ed0d438b0ec7d813764d629be7a753dc3fbac5
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Thu Oct 24 00:06:09 2024 +0200

    libnftnl: update to 1.2.8
    
    Release Announcement:
    https://www.spinics.net/lists/netfilter-devel/msg87287.html
    https://www.spinics.net/lists/netfilter-devel/msg88520.html
    
    Link: https://github.com/openwrt/openwrt/pull/16769
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/libs/libnftnl/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package/libs/libnftnl/Makefile b/package/libs/libnftnl/Makefile
index b512d4d58f..f06b223993 100644
--- a/package/libs/libnftnl/Makefile
+++ b/package/libs/libnftnl/Makefile
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libnftnl
 PKG_CPE_ID:=cpe:/a:netfilter:libnftnl
-PKG_VERSION:=1.2.6
+PKG_VERSION:=1.2.8
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://netfilter.org/projects/$(PKG_NAME)/files
-PKG_HASH:=ceeaea2cd92147da19f13a35a7f1a4bc2767ff897e838e4b479cf54b59c777f4
+PKG_HASH:=37fea5d6b5c9b08de7920d298de3cdc942e7ae64b1a3e8b880b2d390ae67ad95
 
 PKG_MAINTAINER:=Steven Barth <steven at midlink.org>
 PKG_LICENSE:=GPL-2.0-or-later



From lede-commits at lists.infradead.org  Sun Nov 10 15:10:04 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 10 Nov 2024 18:10:04 -0500
Subject: [openwrt/openwrt]  config: Use APK as package manager by default
In-Reply-To: <173128020416.478994.8878779912413806719@git-01.infra.openwrt.org>
References: <173128020416.478994.8878779912413806719@git-01.infra.openwrt.org>
Message-ID: <mailman.156593.1731280209.1280.lede-commits@lists.infradead.org>

aparcar pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/40b8fbaa9754c86480eefc3692c9116a51a64718

commit 40b8fbaa9754c86480eefc3692c9116a51a64718
Author: Paul Spooren <mail at aparcar.org>
AuthorDate: Wed Nov 6 16:08:32 2024 +0100

    config: Use APK as package manager by default
    
    This commit comes after a long period of hard work, starting back in
    early 2021 as a proof of concept.
    
    Thanks to the Alpine Linux project for creating such a nice package
    manager. Thanks to everyone involved; this is going to be great!
    
    Signed-off-by: Paul Spooren <mail at aparcar.org>
---
 config/Config-build.in | 1 +
 1 file changed, 1 insertion(+)

diff --git a/config/Config-build.in b/config/Config-build.in
index 481be0bb6c..6db2354e88 100644
--- a/config/Config-build.in
+++ b/config/Config-build.in
@@ -71,6 +71,7 @@ menu "Global build settings"
 	config USE_APK
 		imply PACKAGE_apk-mbedtls
 		bool "Use APK instead of OPKG to build distribution (EXPERIMENTAL)"
+		default y
 
 	comment "General build options"
 



From lede-commits at lists.infradead.org  Mon Nov 11 03:35:09 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 11 Nov 2024 06:35:09 -0500
Subject: [openwrt/openwrt]  spidev_test: fix version for APK
In-Reply-To: <173132490957.1251537.4918533726348993738@git-01.infra.openwrt.org>
References: <173132490957.1251537.4918533726348993738@git-01.infra.openwrt.org>
Message-ID: <mailman.157168.1731324920.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/cdfe413d263409e33eda936c34c4338eed66b5a5

commit cdfe413d263409e33eda936c34c4338eed66b5a5
Author: Mieczyslaw Nalewaj <namiltd at yahoo.com>
AuthorDate: Mon Nov 11 09:14:28 2024 +0100

    spidev_test: fix version for APK
    
    Refactor version of spidev_test for APK.
    
    Signed-off-by: Mieczyslaw Nalewaj <namiltd at yahoo.com>
    Link: https://github.com/openwrt/openwrt/pull/16917
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/utils/spidev_test/Makefile | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/package/utils/spidev_test/Makefile b/package/utils/spidev_test/Makefile
index fef5c8f646..d264a8950a 100644
--- a/package/utils/spidev_test/Makefile
+++ b/package/utils/spidev_test/Makefile
@@ -9,7 +9,8 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=spidev-test
-PKG_RELEASE:=$(LINUX_VERSION)
+PKG_VERSION:=$(LINUX_VERSION)
+PKG_RELEASE:=1
 PKG_BUILD_DIR:=$(LINUX_DIR)/tools/spi-$(TARGET_DIR_NAME)
 PKG_BUILD_PARALLEL:=1
 
@@ -20,7 +21,7 @@ define Package/spidev-test
   CATEGORY:=Utilities
   DEPENDS:=+kmod-spi-dev
   TITLE:=SPI testing utility
-  VERSION:=$(LINUX_VERSION)-$(PKG_RELEASE)
+  VERSION:=$(LINUX_VERSION)-r$(PKG_RELEASE)
   URL:=http://www.kernel.org
 endef
 



From lede-commits at lists.infradead.org  Mon Nov 11 11:41:12 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 11 Nov 2024 14:41:12 -0500
Subject: [openwrt/openwrt]  build: remove broken dependency of metadata on
 toplevel .config variables
In-Reply-To: <173135407216.1915457.3364656791663848026@git-01.infra.openwrt.org>
References: <173135407216.1915457.3364656791663848026@git-01.infra.openwrt.org>
Message-ID: <mailman.157469.1731354081.1280.lede-commits@lists.infradead.org>

nbd pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/44598c233dd9a676bc34666968f33f8b9ff4dd0c

commit 44598c233dd9a676bc34666968f33f8b9ff4dd0c
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Mon Nov 11 19:52:14 2024 +0100

    build: remove broken dependency of metadata on toplevel .config variables
    
    Instead of relying on .config symbols for metadata, alter the DEFAULT
    variable of affected packages. Fixes enabling opkg vs apk among others.
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
 include/target.mk              | 40 ++--------------------------------------
 package/system/apk/Makefile    |  1 +
 package/system/opkg/Makefile   |  1 +
 package/system/procd/Makefile  |  3 +++
 package/utils/busybox/Makefile |  2 ++
 5 files changed, 9 insertions(+), 38 deletions(-)

diff --git a/include/target.mk b/include/target.mk
index d13902ad6e..3dc0acff5c 100644
--- a/include/target.mk
+++ b/include/target.mk
@@ -77,45 +77,9 @@ else
   endif
 endif
 
-ifneq ($(DUMP),)
-  # Parse generic config that might be set before a .config is generated to modify the
-  # default package configuration
-  # Keep DYNAMIC_DEF_PKG_CONF in sync with toplevel.mk to reflect the same configs
-  DYNAMIC_DEF_PKG_CONF := CONFIG_USE_APK CONFIG_SELINUX CONFIG_SMALL_FLASH CONFIG_SECCOMP
-  $(foreach config, $(DYNAMIC_DEF_PKG_CONF), \
-    $(eval $(config) := $(shell grep "$(config)=y" $(TOPDIR)/.config 2>/dev/null)) \
-  )
-  # The config options that are enabled by default and where other default
-  # packages depends on needs to be set if they are missing in the .config.
-  ifeq ($(shell grep "CONFIG_SECCOMP" $(TOPDIR)/.config 2>/dev/null),)
-    ifeq ($(filter $(BOARD), uml),)
-    ifneq ($(filter $(ARCH), aarch64 arm armeb mips mipsel mips64 mips64el i386 powerpc x86_64),)
-      CONFIG_SECCOMP := y
-    endif
-    endif
-  endif
-endif
-
-ifneq ($(CONFIG_USE_APK),)
-DEFAULT_PACKAGES+=apk-mbedtls
-else
-DEFAULT_PACKAGES+=opkg
-endif
-
-ifneq ($(CONFIG_SELINUX),)
-DEFAULT_PACKAGES+=busybox-selinux procd-selinux
-else
-DEFAULT_PACKAGES+=busybox procd
-endif
-
 # include ujail on systems with enough storage
-ifeq ($(CONFIG_SMALL_FLASH),)
-DEFAULT_PACKAGES+=procd-ujail
-endif
-
-# include seccomp ld-preload hooks if kernel supports it
-ifneq ($(CONFIG_SECCOMP),)
-DEFAULT_PACKAGES+=procd-seccomp
+ifeq ($(filter small_flash,$(FEATURES)),)
+  DEFAULT_PACKAGES+=procd-ujail
 endif
 
 # Add device specific packages (here below to allow device type set from subtarget)
diff --git a/package/system/apk/Makefile b/package/system/apk/Makefile
index cd1b56caf6..2d637fa180 100644
--- a/package/system/apk/Makefile
+++ b/package/system/apk/Makefile
@@ -36,6 +36,7 @@ define Package/apk-mbedtls
   $(Package/apk/default)
   TITLE += (mbedtls)
   DEPENDS +=+libmbedtls
+  DEFAULT:=y if USE_APK
   VARIANT:=mbedtls
   DEFAULT_VARIANT:=1
   CONFLICTS:=apk-openssl
diff --git a/package/system/opkg/Makefile b/package/system/opkg/Makefile
index 9fea969ae9..e7c45e3523 100644
--- a/package/system/opkg/Makefile
+++ b/package/system/opkg/Makefile
@@ -39,6 +39,7 @@ define Package/opkg
   CATEGORY:=Base system
   TITLE:=opkg package manager
   DEPENDS:=+uclient-fetch +libpthread +libubox
+  DEFAULT:=y if !USE_APK
   URL:=$(PKG_SOURCE_URL)
   MENU:=1
 endef
diff --git a/package/system/procd/Makefile b/package/system/procd/Makefile
index 86de4babfd..9ff6fb80f7 100644
--- a/package/system/procd/Makefile
+++ b/package/system/procd/Makefile
@@ -50,6 +50,7 @@ define Package/procd
   $(call Package/procd/Default)
   VARIANT:=default
   CONFLICTS:=procd-selinux
+  DEFAULT:=y if !SELINUX
 endef
 
 define Package/procd-selinux
@@ -58,6 +59,7 @@ define Package/procd-selinux
   TITLE += with SELinux support
   PROVIDES:=procd
   VARIANT:=selinux
+  DEFAULT:=y if SELINUX
 endef
 
 define Package/procd-ujail
@@ -73,6 +75,7 @@ define Package/procd-seccomp
   CATEGORY:=Base system
   DEPENDS:=@SECCOMP +libubox +libblobmsg-json
   TITLE:=OpenWrt process seccomp helper + utrace
+  DEFAULT:=y if SECCOMP
 endef
 
 define Package/uxc
diff --git a/package/utils/busybox/Makefile b/package/utils/busybox/Makefile
index 4ef470df75..7b591db716 100644
--- a/package/utils/busybox/Makefile
+++ b/package/utils/busybox/Makefile
@@ -56,6 +56,7 @@ define Package/busybox
   $(call Package/busybox/Default)
   CONFLICTS:=busybox-selinux
   VARIANT:=default
+  DEFAULT:=y if !SELINUX
 endef
 
 define Package/busybox-selinux
@@ -64,6 +65,7 @@ define Package/busybox-selinux
   DEPENDS += +libselinux
   VARIANT:=selinux
   PROVIDES:=busybox
+  DEFAULT:=y if SELINUX
 endef
 
 define Package/busybox/description



From lede-commits at lists.infradead.org  Mon Nov 11 12:20:05 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 11 Nov 2024 15:20:05 -0500
Subject: [openwrt/openwrt]  mdadm: backport musl patch
In-Reply-To: <173135640566.1975567.4008611544457000322@git-01.infra.openwrt.org>
References: <173135640566.1975567.4008611544457000322@git-01.infra.openwrt.org>
Message-ID: <mailman.157490.1731356442.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/1f3d5858b441cf4e1195b96242dd08d68538e83d

commit 1f3d5858b441cf4e1195b96242dd08d68538e83d
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Sat Nov 9 15:46:26 2024 -0800

    mdadm: backport musl patch
    
    Needed to fix compilation with GCC14.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16912
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/utils/mdadm/Makefile                |  2 +-
 package/utils/mdadm/patches/060-gcc14.patch | 24 ++++++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/package/utils/mdadm/Makefile b/package/utils/mdadm/Makefile
index c2778fe351..b521daaefc 100644
--- a/package/utils/mdadm/Makefile
+++ b/package/utils/mdadm/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mdadm
 PKG_VERSION:=4.3
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/utils/raid/mdadm
diff --git a/package/utils/mdadm/patches/060-gcc14.patch b/package/utils/mdadm/patches/060-gcc14.patch
new file mode 100644
index 0000000000..545a40ac0a
--- /dev/null
+++ b/package/utils/mdadm/patches/060-gcc14.patch
@@ -0,0 +1,24 @@
+From 8bda86099089b44129ef6206764f9de47a45f0db Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex at linutronix.de>
+Date: Tue, 12 Mar 2024 11:01:50 +0100
+Subject: [PATCH] util.c: add limits.h include for NAME_MAX definition
+
+Add limits.h include for NAME_MAX definition.
+
+Signed-off-by: Alexander Kanavin <alex at linutronix.de>
+Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk at linux.intel.com>
+---
+ util.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/util.c
++++ b/util.c
+@@ -36,7 +36,7 @@
+ #include	<ctype.h>
+ #include	<dirent.h>
+ #include	<dlfcn.h>
+-
++#include	<limits.h>
+ 
+ /*
+  * following taken from linux/blkpg.h because they aren't



From lede-commits at lists.infradead.org  Mon Nov 11 12:28:35 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 11 Nov 2024 15:28:35 -0500
Subject: [openwrt/openwrt]  ramips: mt7621: fix typo
In-Reply-To: <173135691590.1986611.12786844771507592026@git-01.infra.openwrt.org>
References: <173135691590.1986611.12786844771507592026@git-01.infra.openwrt.org>
Message-ID: <mailman.157491.1731356924.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/3e42526404f021094ae3fa41524c396d753f4c6c

commit 3e42526404f021094ae3fa41524c396d753f4c6c
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Mon Nov 11 12:23:01 2024 -0800

    ramips: mt7621: fix typo
    
    Missing u caused the regulator to fail probe.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16925
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts b/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts
index 2d06b949f2..41173dd129 100644
--- a/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts
+++ b/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts
@@ -96,7 +96,7 @@
 
 	reg_usb_power: regulator {
 		compatible = "regulator-fixed";
-		reglator-name = "usb_power";
+		regulator-name = "usb_power";
 		regulator-min-microvolt = <5000000>;
 		regulator-max-microvolt = <5000000>;
 		gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;



From lede-commits at lists.infradead.org  Mon Nov 11 18:31:55 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 11 Nov 2024 21:31:55 -0500
Subject: [openwrt/openwrt]  include: cmake.mk: honor CONFIG_DEBUG
In-Reply-To: <173137871534.2418021.6038847661294069158@git-01.infra.openwrt.org>
References: <173137871534.2418021.6038847661294069158@git-01.infra.openwrt.org>
Message-ID: <mailman.157688.1731378732.1280.lede-commits@lists.infradead.org>

dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/fc9ec5bd3d22d50654af154fc779517fa7aecb33

commit fc9ec5bd3d22d50654af154fc779517fa7aecb33
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Sun Nov 10 00:31:18 2024 +0100

    include: cmake.mk: honor CONFIG_DEBUG
    
    Set CMAKE_BUILD_TYPE according to CONFIG_DEBUG.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 include/cmake.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/cmake.mk b/include/cmake.mk
index 87309dd045..f59410c2f3 100644
--- a/include/cmake.mk
+++ b/include/cmake.mk
@@ -97,7 +97,7 @@ define Build/Configure/Default
 			-DCMAKE_SYSTEM_NAME=Linux \
 			-DCMAKE_SYSTEM_VERSION=1 \
 			-DCMAKE_SYSTEM_PROCESSOR=$(ARCH) \
-			-DCMAKE_BUILD_TYPE=Release \
+			-DCMAKE_BUILD_TYPE=$(if $(CONFIG_DEBUG),Debug,Release) \
 			-DCMAKE_C_FLAGS_RELEASE="-DNDEBUG" \
 			-DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG" \
 			-DCMAKE_C_COMPILER_LAUNCHER="$(CMAKE_C_COMPILER_LAUNCHER)" \



From lede-commits at lists.infradead.org  Mon Nov 11 18:31:56 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 11 Nov 2024 21:31:56 -0500
Subject: [openwrt/openwrt]  include: meson.mk: honor CONFIG_DEBUG
In-Reply-To: <173137871534.2418021.6038847661294069158@git-01.infra.openwrt.org>
References: <173137871534.2418021.6038847661294069158@git-01.infra.openwrt.org>
Message-ID: <mailman.157689.1731378733.1280.lede-commits@lists.infradead.org>

dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/be3e7a84bd37f29e14e4c6a89b8c79bc9808c36c

commit be3e7a84bd37f29e14e4c6a89b8c79bc9808c36c
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Sun Nov 10 00:32:05 2024 +0100

    include: meson.mk: honor CONFIG_DEBUG
    
    Set buildtype according to CONFIG_DEBUG.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 include/meson.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/meson.mk b/include/meson.mk
index 2a20c2bd6b..ff452d8b01 100644
--- a/include/meson.mk
+++ b/include/meson.mk
@@ -124,7 +124,7 @@ define Build/Configure/Meson
 	$(call Meson/CreateCrossFile,$(PKG_BUILD_DIR)/openwrt-cross.txt)
 	$(call Meson, \
 		setup \
-		--buildtype plain \
+		--buildtype $(if $(CONFIG_DEBUG),debug,plain) \
 		--native-file $(PKG_BUILD_DIR)/openwrt-native.txt \
 		--cross-file $(PKG_BUILD_DIR)/openwrt-cross.txt \
 		-Ddefault_library=both \



From lede-commits at lists.infradead.org  Tue Nov 12 02:19:55 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 12 Nov 2024 05:19:55 -0500
Subject: [openwrt/openwrt]  realtek: rtl83xx: use devm for mutex_init
In-Reply-To: <173140679528.2940094.9742481022493046555@git-01.infra.openwrt.org>
References: <173140679528.2940094.9742481022493046555@git-01.infra.openwrt.org>
Message-ID: <mailman.157924.1731407495.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/1125ed408c7f0d130b5606ab39e4dd98a41d5f0a

commit 1125ed408c7f0d130b5606ab39e4dd98a41d5f0a
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Sun Nov 10 15:54:14 2024 -0800

    realtek: rtl83xx: use devm for mutex_init
    
    mutex_destroy is missing in remove.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16926
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/common.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/common.c b/target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/common.c
index 5468fc0653..fe0980a1be 100644
--- a/target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/common.c
+++ b/target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/common.c
@@ -1492,7 +1492,9 @@ static int __init rtl83xx_sw_probe(struct platform_device *pdev)
 	priv->ds->needs_standalone_vlan_filtering = true;
 	priv->dev = dev;
 
-	mutex_init(&priv->reg_mutex);
+	err = devm_mutex_init(dev, &priv->reg_mutex);
+	if (err)
+		return err;
 
 	priv->family_id = soc_info.family;
 	priv->id = soc_info.id;



From lede-commits at lists.infradead.org  Tue Nov 12 04:56:48 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 12 Nov 2024 07:56:48 -0500
Subject: [openwrt/openwrt]  airoha: an7581: backport upstream ethernet fixes
In-Reply-To: <173141620807.3128093.16116261686182410344@git-01.infra.openwrt.org>
References: <173141620807.3128093.16116261686182410344@git-01.infra.openwrt.org>
Message-ID: <mailman.158090.1731416211.1280.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/64fbc965958a752c6ae722b1a9162e5a3438fbce

commit 64fbc965958a752c6ae722b1a9162e5a3438fbce
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Tue Nov 12 13:55:30 2024 +0100

    airoha: an7581: backport upstream ethernet fixes
    
    Backport patches fixing some ethernet problem merged upstream.
    
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 ...Read-completion-queue-data-in-airoha_qdma.patch |  92 +++++++++++++++
 ...2-v6.13-net-airoha-Simplify-Tx-napi-logic.patch | 130 +++++++++++++++++++++
 2 files changed, 222 insertions(+)

diff --git a/target/linux/airoha/patches-6.6/031-01-v6.13-net-airoha-Read-completion-queue-data-in-airoha_qdma.patch b/target/linux/airoha/patches-6.6/031-01-v6.13-net-airoha-Read-completion-queue-data-in-airoha_qdma.patch
new file mode 100644
index 0000000000..306ce65883
--- /dev/null
+++ b/target/linux/airoha/patches-6.6/031-01-v6.13-net-airoha-Read-completion-queue-data-in-airoha_qdma.patch
@@ -0,0 +1,92 @@
+From 3affa310de523d63e52ea8e2efb3c476df29e414 Mon Sep 17 00:00:00 2001
+From: Lorenzo Bianconi <lorenzo at kernel.org>
+Date: Tue, 29 Oct 2024 13:17:09 +0100
+Subject: [PATCH 1/2] net: airoha: Read completion queue data in
+ airoha_qdma_tx_napi_poll()
+
+In order to avoid any possible race, read completion queue head and
+pending entry in airoha_qdma_tx_napi_poll routine instead of doing it in
+airoha_irq_handler. Remove unused airoha_tx_irq_queue unused fields.
+This is a preliminary patch to add Qdisc offload for airoha_eth driver.
+
+Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
+Link: https://patch.msgid.link/20241029-airoha-en7581-tx-napi-work-v1-1-96ad1686b946 at kernel.org
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
+---
+ drivers/net/ethernet/mediatek/airoha_eth.c | 31 +++++++++-------------
+ 1 file changed, 13 insertions(+), 18 deletions(-)
+
+--- a/drivers/net/ethernet/mediatek/airoha_eth.c
++++ b/drivers/net/ethernet/mediatek/airoha_eth.c
+@@ -752,11 +752,9 @@ struct airoha_tx_irq_queue {
+ 	struct airoha_qdma *qdma;
+ 
+ 	struct napi_struct napi;
+-	u32 *q;
+ 
+ 	int size;
+-	int queued;
+-	u16 head;
++	u32 *q;
+ };
+ 
+ struct airoha_hw_stats {
+@@ -1656,25 +1654,31 @@ static int airoha_qdma_init_rx(struct ai
+ static int airoha_qdma_tx_napi_poll(struct napi_struct *napi, int budget)
+ {
+ 	struct airoha_tx_irq_queue *irq_q;
++	int id, done = 0, irq_queued;
+ 	struct airoha_qdma *qdma;
+ 	struct airoha_eth *eth;
+-	int id, done = 0;
++	u32 status, head;
+ 
+ 	irq_q = container_of(napi, struct airoha_tx_irq_queue, napi);
+ 	qdma = irq_q->qdma;
+ 	id = irq_q - &qdma->q_tx_irq[0];
+ 	eth = qdma->eth;
+ 
+-	while (irq_q->queued > 0 && done < budget) {
+-		u32 qid, last, val = irq_q->q[irq_q->head];
++	status = airoha_qdma_rr(qdma, REG_IRQ_STATUS(id));
++	head = FIELD_GET(IRQ_HEAD_IDX_MASK, status);
++	head = head % irq_q->size;
++	irq_queued = FIELD_GET(IRQ_ENTRY_LEN_MASK, status);
++
++	while (irq_queued > 0 && done < budget) {
++		u32 qid, last, val = irq_q->q[head];
+ 		struct airoha_queue *q;
+ 
+ 		if (val == 0xff)
+ 			break;
+ 
+-		irq_q->q[irq_q->head] = 0xff; /* mark as done */
+-		irq_q->head = (irq_q->head + 1) % irq_q->size;
+-		irq_q->queued--;
++		irq_q->q[head] = 0xff; /* mark as done */
++		head = (head + 1) % irq_q->size;
++		irq_queued--;
+ 		done++;
+ 
+ 		last = FIELD_GET(IRQ_DESC_IDX_MASK, val);
+@@ -2026,20 +2030,11 @@ static irqreturn_t airoha_irq_handler(in
+ 
+ 	if (intr[0] & INT_TX_MASK) {
+ 		for (i = 0; i < ARRAY_SIZE(qdma->q_tx_irq); i++) {
+-			struct airoha_tx_irq_queue *irq_q = &qdma->q_tx_irq[i];
+-			u32 status, head;
+-
+ 			if (!(intr[0] & TX_DONE_INT_MASK(i)))
+ 				continue;
+ 
+ 			airoha_qdma_irq_disable(qdma, QDMA_INT_REG_IDX0,
+ 						TX_DONE_INT_MASK(i));
+-
+-			status = airoha_qdma_rr(qdma, REG_IRQ_STATUS(i));
+-			head = FIELD_GET(IRQ_HEAD_IDX_MASK, status);
+-			irq_q->head = head % irq_q->size;
+-			irq_q->queued = FIELD_GET(IRQ_ENTRY_LEN_MASK, status);
+-
+ 			napi_schedule(&qdma->q_tx_irq[i].napi);
+ 		}
+ 	}
diff --git a/target/linux/airoha/patches-6.6/031-02-v6.13-net-airoha-Simplify-Tx-napi-logic.patch b/target/linux/airoha/patches-6.6/031-02-v6.13-net-airoha-Simplify-Tx-napi-logic.patch
new file mode 100644
index 0000000000..b35f828f11
--- /dev/null
+++ b/target/linux/airoha/patches-6.6/031-02-v6.13-net-airoha-Simplify-Tx-napi-logic.patch
@@ -0,0 +1,130 @@
+From 0c729f53b8c33b9e5eadc2d5e673759e3510501e Mon Sep 17 00:00:00 2001
+From: Lorenzo Bianconi <lorenzo at kernel.org>
+Date: Tue, 29 Oct 2024 13:17:10 +0100
+Subject: [PATCH 2/2] net: airoha: Simplify Tx napi logic
+
+Simplify Tx napi logic relying just on the packet index provided by
+completion queue indicating the completed packet that can be removed
+from the Tx DMA ring.
+This is a preliminary patch to add Qdisc offload for airoha_eth driver.
+
+Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
+Link: https://patch.msgid.link/20241029-airoha-en7581-tx-napi-work-v1-2-96ad1686b946 at kernel.org
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
+---
+ drivers/net/ethernet/mediatek/airoha_eth.c | 73 ++++++++++++----------
+ 1 file changed, 41 insertions(+), 32 deletions(-)
+
+--- a/drivers/net/ethernet/mediatek/airoha_eth.c
++++ b/drivers/net/ethernet/mediatek/airoha_eth.c
+@@ -1670,8 +1670,12 @@ static int airoha_qdma_tx_napi_poll(stru
+ 	irq_queued = FIELD_GET(IRQ_ENTRY_LEN_MASK, status);
+ 
+ 	while (irq_queued > 0 && done < budget) {
+-		u32 qid, last, val = irq_q->q[head];
++		u32 qid, val = irq_q->q[head];
++		struct airoha_qdma_desc *desc;
++		struct airoha_queue_entry *e;
+ 		struct airoha_queue *q;
++		u32 index, desc_ctrl;
++		struct sk_buff *skb;
+ 
+ 		if (val == 0xff)
+ 			break;
+@@ -1681,9 +1685,7 @@ static int airoha_qdma_tx_napi_poll(stru
+ 		irq_queued--;
+ 		done++;
+ 
+-		last = FIELD_GET(IRQ_DESC_IDX_MASK, val);
+ 		qid = FIELD_GET(IRQ_RING_IDX_MASK, val);
+-
+ 		if (qid >= ARRAY_SIZE(qdma->q_tx))
+ 			continue;
+ 
+@@ -1691,46 +1693,53 @@ static int airoha_qdma_tx_napi_poll(stru
+ 		if (!q->ndesc)
+ 			continue;
+ 
++		index = FIELD_GET(IRQ_DESC_IDX_MASK, val);
++		if (index >= q->ndesc)
++			continue;
++
+ 		spin_lock_bh(&q->lock);
+ 
+-		while (q->queued > 0) {
+-			struct airoha_qdma_desc *desc = &q->desc[q->tail];
+-			struct airoha_queue_entry *e = &q->entry[q->tail];
+-			u32 desc_ctrl = le32_to_cpu(desc->ctrl);
+-			struct sk_buff *skb = e->skb;
+-			u16 index = q->tail;
+-
+-			if (!(desc_ctrl & QDMA_DESC_DONE_MASK) &&
+-			    !(desc_ctrl & QDMA_DESC_DROP_MASK))
+-				break;
++		if (!q->queued)
++			goto unlock;
+ 
+-			q->tail = (q->tail + 1) % q->ndesc;
+-			q->queued--;
++		desc = &q->desc[index];
++		desc_ctrl = le32_to_cpu(desc->ctrl);
+ 
+-			dma_unmap_single(eth->dev, e->dma_addr, e->dma_len,
+-					 DMA_TO_DEVICE);
+-
+-			WRITE_ONCE(desc->msg0, 0);
+-			WRITE_ONCE(desc->msg1, 0);
++		if (!(desc_ctrl & QDMA_DESC_DONE_MASK) &&
++		    !(desc_ctrl & QDMA_DESC_DROP_MASK))
++			goto unlock;
++
++		e = &q->entry[index];
++		skb = e->skb;
++
++		dma_unmap_single(eth->dev, e->dma_addr, e->dma_len,
++				 DMA_TO_DEVICE);
++		memset(e, 0, sizeof(*e));
++		WRITE_ONCE(desc->msg0, 0);
++		WRITE_ONCE(desc->msg1, 0);
++		q->queued--;
++
++		/* completion ring can report out-of-order indexes if hw QoS
++		 * is enabled and packets with different priority are queued
++		 * to same DMA ring. Take into account possible out-of-order
++		 * reports incrementing DMA ring tail pointer
++		 */
++		while (q->tail != q->head && !q->entry[q->tail].dma_addr)
++			q->tail = (q->tail + 1) % q->ndesc;
+ 
+-			if (skb) {
+-				u16 queue = skb_get_queue_mapping(skb);
+-				struct netdev_queue *txq;
+-
+-				txq = netdev_get_tx_queue(skb->dev, queue);
+-				netdev_tx_completed_queue(txq, 1, skb->len);
+-				if (netif_tx_queue_stopped(txq) &&
+-				    q->ndesc - q->queued >= q->free_thr)
+-					netif_tx_wake_queue(txq);
+-
+-				dev_kfree_skb_any(skb);
+-				e->skb = NULL;
+-			}
++		if (skb) {
++			u16 queue = skb_get_queue_mapping(skb);
++			struct netdev_queue *txq;
++
++			txq = netdev_get_tx_queue(skb->dev, queue);
++			netdev_tx_completed_queue(txq, 1, skb->len);
++			if (netif_tx_queue_stopped(txq) &&
++			    q->ndesc - q->queued >= q->free_thr)
++				netif_tx_wake_queue(txq);
+ 
+-			if (index == last)
+-				break;
++			dev_kfree_skb_any(skb);
+ 		}
+-
++unlock:
+ 		spin_unlock_bh(&q->lock);
+ 	}
+ 



From lede-commits at lists.infradead.org  Tue Nov 12 04:57:35 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 12 Nov 2024 07:57:35 -0500
Subject: [openwrt/openwrt]  airoha: an7581: backport upstream ethernet fixes
In-Reply-To: <173141625545.3128952.8023978613304131871@git-01.infra.openwrt.org>
References: <173141625545.3128952.8023978613304131871@git-01.infra.openwrt.org>
Message-ID: <mailman.158095.1731416405.1280.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/d83ae23d08c8e8bd3c5028f8756d9b234d5bb820

commit d83ae23d08c8e8bd3c5028f8756d9b234d5bb820
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Tue Nov 12 13:55:30 2024 +0100

    airoha: an7581: backport upstream ethernet fixes
    
    Backport patches fixing some ethernet problem merged upstream.
    
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 ...Read-completion-queue-data-in-airoha_qdma.patch |  92 +++++++++++++++
 ...2-v6.13-net-airoha-Simplify-Tx-napi-logic.patch | 130 +++++++++++++++++++++
 2 files changed, 222 insertions(+)

diff --git a/target/linux/airoha/patches-6.6/031-01-v6.13-net-airoha-Read-completion-queue-data-in-airoha_qdma.patch b/target/linux/airoha/patches-6.6/031-01-v6.13-net-airoha-Read-completion-queue-data-in-airoha_qdma.patch
new file mode 100644
index 0000000000..306ce65883
--- /dev/null
+++ b/target/linux/airoha/patches-6.6/031-01-v6.13-net-airoha-Read-completion-queue-data-in-airoha_qdma.patch
@@ -0,0 +1,92 @@
+From 3affa310de523d63e52ea8e2efb3c476df29e414 Mon Sep 17 00:00:00 2001
+From: Lorenzo Bianconi <lorenzo at kernel.org>
+Date: Tue, 29 Oct 2024 13:17:09 +0100
+Subject: [PATCH 1/2] net: airoha: Read completion queue data in
+ airoha_qdma_tx_napi_poll()
+
+In order to avoid any possible race, read completion queue head and
+pending entry in airoha_qdma_tx_napi_poll routine instead of doing it in
+airoha_irq_handler. Remove unused airoha_tx_irq_queue unused fields.
+This is a preliminary patch to add Qdisc offload for airoha_eth driver.
+
+Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
+Link: https://patch.msgid.link/20241029-airoha-en7581-tx-napi-work-v1-1-96ad1686b946 at kernel.org
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
+---
+ drivers/net/ethernet/mediatek/airoha_eth.c | 31 +++++++++-------------
+ 1 file changed, 13 insertions(+), 18 deletions(-)
+
+--- a/drivers/net/ethernet/mediatek/airoha_eth.c
++++ b/drivers/net/ethernet/mediatek/airoha_eth.c
+@@ -752,11 +752,9 @@ struct airoha_tx_irq_queue {
+ 	struct airoha_qdma *qdma;
+ 
+ 	struct napi_struct napi;
+-	u32 *q;
+ 
+ 	int size;
+-	int queued;
+-	u16 head;
++	u32 *q;
+ };
+ 
+ struct airoha_hw_stats {
+@@ -1656,25 +1654,31 @@ static int airoha_qdma_init_rx(struct ai
+ static int airoha_qdma_tx_napi_poll(struct napi_struct *napi, int budget)
+ {
+ 	struct airoha_tx_irq_queue *irq_q;
++	int id, done = 0, irq_queued;
+ 	struct airoha_qdma *qdma;
+ 	struct airoha_eth *eth;
+-	int id, done = 0;
++	u32 status, head;
+ 
+ 	irq_q = container_of(napi, struct airoha_tx_irq_queue, napi);
+ 	qdma = irq_q->qdma;
+ 	id = irq_q - &qdma->q_tx_irq[0];
+ 	eth = qdma->eth;
+ 
+-	while (irq_q->queued > 0 && done < budget) {
+-		u32 qid, last, val = irq_q->q[irq_q->head];
++	status = airoha_qdma_rr(qdma, REG_IRQ_STATUS(id));
++	head = FIELD_GET(IRQ_HEAD_IDX_MASK, status);
++	head = head % irq_q->size;
++	irq_queued = FIELD_GET(IRQ_ENTRY_LEN_MASK, status);
++
++	while (irq_queued > 0 && done < budget) {
++		u32 qid, last, val = irq_q->q[head];
+ 		struct airoha_queue *q;
+ 
+ 		if (val == 0xff)
+ 			break;
+ 
+-		irq_q->q[irq_q->head] = 0xff; /* mark as done */
+-		irq_q->head = (irq_q->head + 1) % irq_q->size;
+-		irq_q->queued--;
++		irq_q->q[head] = 0xff; /* mark as done */
++		head = (head + 1) % irq_q->size;
++		irq_queued--;
+ 		done++;
+ 
+ 		last = FIELD_GET(IRQ_DESC_IDX_MASK, val);
+@@ -2026,20 +2030,11 @@ static irqreturn_t airoha_irq_handler(in
+ 
+ 	if (intr[0] & INT_TX_MASK) {
+ 		for (i = 0; i < ARRAY_SIZE(qdma->q_tx_irq); i++) {
+-			struct airoha_tx_irq_queue *irq_q = &qdma->q_tx_irq[i];
+-			u32 status, head;
+-
+ 			if (!(intr[0] & TX_DONE_INT_MASK(i)))
+ 				continue;
+ 
+ 			airoha_qdma_irq_disable(qdma, QDMA_INT_REG_IDX0,
+ 						TX_DONE_INT_MASK(i));
+-
+-			status = airoha_qdma_rr(qdma, REG_IRQ_STATUS(i));
+-			head = FIELD_GET(IRQ_HEAD_IDX_MASK, status);
+-			irq_q->head = head % irq_q->size;
+-			irq_q->queued = FIELD_GET(IRQ_ENTRY_LEN_MASK, status);
+-
+ 			napi_schedule(&qdma->q_tx_irq[i].napi);
+ 		}
+ 	}
diff --git a/target/linux/airoha/patches-6.6/031-02-v6.13-net-airoha-Simplify-Tx-napi-logic.patch b/target/linux/airoha/patches-6.6/031-02-v6.13-net-airoha-Simplify-Tx-napi-logic.patch
new file mode 100644
index 0000000000..b35f828f11
--- /dev/null
+++ b/target/linux/airoha/patches-6.6/031-02-v6.13-net-airoha-Simplify-Tx-napi-logic.patch
@@ -0,0 +1,130 @@
+From 0c729f53b8c33b9e5eadc2d5e673759e3510501e Mon Sep 17 00:00:00 2001
+From: Lorenzo Bianconi <lorenzo at kernel.org>
+Date: Tue, 29 Oct 2024 13:17:10 +0100
+Subject: [PATCH 2/2] net: airoha: Simplify Tx napi logic
+
+Simplify Tx napi logic relying just on the packet index provided by
+completion queue indicating the completed packet that can be removed
+from the Tx DMA ring.
+This is a preliminary patch to add Qdisc offload for airoha_eth driver.
+
+Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
+Link: https://patch.msgid.link/20241029-airoha-en7581-tx-napi-work-v1-2-96ad1686b946 at kernel.org
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
+---
+ drivers/net/ethernet/mediatek/airoha_eth.c | 73 ++++++++++++----------
+ 1 file changed, 41 insertions(+), 32 deletions(-)
+
+--- a/drivers/net/ethernet/mediatek/airoha_eth.c
++++ b/drivers/net/ethernet/mediatek/airoha_eth.c
+@@ -1670,8 +1670,12 @@ static int airoha_qdma_tx_napi_poll(stru
+ 	irq_queued = FIELD_GET(IRQ_ENTRY_LEN_MASK, status);
+ 
+ 	while (irq_queued > 0 && done < budget) {
+-		u32 qid, last, val = irq_q->q[head];
++		u32 qid, val = irq_q->q[head];
++		struct airoha_qdma_desc *desc;
++		struct airoha_queue_entry *e;
+ 		struct airoha_queue *q;
++		u32 index, desc_ctrl;
++		struct sk_buff *skb;
+ 
+ 		if (val == 0xff)
+ 			break;
+@@ -1681,9 +1685,7 @@ static int airoha_qdma_tx_napi_poll(stru
+ 		irq_queued--;
+ 		done++;
+ 
+-		last = FIELD_GET(IRQ_DESC_IDX_MASK, val);
+ 		qid = FIELD_GET(IRQ_RING_IDX_MASK, val);
+-
+ 		if (qid >= ARRAY_SIZE(qdma->q_tx))
+ 			continue;
+ 
+@@ -1691,46 +1693,53 @@ static int airoha_qdma_tx_napi_poll(stru
+ 		if (!q->ndesc)
+ 			continue;
+ 
++		index = FIELD_GET(IRQ_DESC_IDX_MASK, val);
++		if (index >= q->ndesc)
++			continue;
++
+ 		spin_lock_bh(&q->lock);
+ 
+-		while (q->queued > 0) {
+-			struct airoha_qdma_desc *desc = &q->desc[q->tail];
+-			struct airoha_queue_entry *e = &q->entry[q->tail];
+-			u32 desc_ctrl = le32_to_cpu(desc->ctrl);
+-			struct sk_buff *skb = e->skb;
+-			u16 index = q->tail;
+-
+-			if (!(desc_ctrl & QDMA_DESC_DONE_MASK) &&
+-			    !(desc_ctrl & QDMA_DESC_DROP_MASK))
+-				break;
++		if (!q->queued)
++			goto unlock;
+ 
+-			q->tail = (q->tail + 1) % q->ndesc;
+-			q->queued--;
++		desc = &q->desc[index];
++		desc_ctrl = le32_to_cpu(desc->ctrl);
+ 
+-			dma_unmap_single(eth->dev, e->dma_addr, e->dma_len,
+-					 DMA_TO_DEVICE);
+-
+-			WRITE_ONCE(desc->msg0, 0);
+-			WRITE_ONCE(desc->msg1, 0);
++		if (!(desc_ctrl & QDMA_DESC_DONE_MASK) &&
++		    !(desc_ctrl & QDMA_DESC_DROP_MASK))
++			goto unlock;
++
++		e = &q->entry[index];
++		skb = e->skb;
++
++		dma_unmap_single(eth->dev, e->dma_addr, e->dma_len,
++				 DMA_TO_DEVICE);
++		memset(e, 0, sizeof(*e));
++		WRITE_ONCE(desc->msg0, 0);
++		WRITE_ONCE(desc->msg1, 0);
++		q->queued--;
++
++		/* completion ring can report out-of-order indexes if hw QoS
++		 * is enabled and packets with different priority are queued
++		 * to same DMA ring. Take into account possible out-of-order
++		 * reports incrementing DMA ring tail pointer
++		 */
++		while (q->tail != q->head && !q->entry[q->tail].dma_addr)
++			q->tail = (q->tail + 1) % q->ndesc;
+ 
+-			if (skb) {
+-				u16 queue = skb_get_queue_mapping(skb);
+-				struct netdev_queue *txq;
+-
+-				txq = netdev_get_tx_queue(skb->dev, queue);
+-				netdev_tx_completed_queue(txq, 1, skb->len);
+-				if (netif_tx_queue_stopped(txq) &&
+-				    q->ndesc - q->queued >= q->free_thr)
+-					netif_tx_wake_queue(txq);
+-
+-				dev_kfree_skb_any(skb);
+-				e->skb = NULL;
+-			}
++		if (skb) {
++			u16 queue = skb_get_queue_mapping(skb);
++			struct netdev_queue *txq;
++
++			txq = netdev_get_tx_queue(skb->dev, queue);
++			netdev_tx_completed_queue(txq, 1, skb->len);
++			if (netif_tx_queue_stopped(txq) &&
++			    q->ndesc - q->queued >= q->free_thr)
++				netif_tx_wake_queue(txq);
+ 
+-			if (index == last)
+-				break;
++			dev_kfree_skb_any(skb);
+ 		}
+-
++unlock:
+ 		spin_unlock_bh(&q->lock);
+ 	}
+ 



From lede-commits at lists.infradead.org  Tue Nov 12 05:28:53 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 12 Nov 2024 08:28:53 -0500
Subject: [openwrt/openwrt]  cryptodev-linux: give a coherent description
In-Reply-To: <173141813378.3169980.11290611349757367871@git-01.infra.openwrt.org>
References: <173141813378.3169980.11290611349757367871@git-01.infra.openwrt.org>
Message-ID: <mailman.158140.1731418382.1280.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/3df5966f9453ecefcabc893f6449c8c4f1054aef

commit 3df5966f9453ecefcabc893f6449c8c4f1054aef
Author: Paul Donald <newtwen+github at gmail.com>
AuthorDate: Sun Nov 10 19:53:07 2024 +0100

    cryptodev-linux: give a coherent description
    
    For the last ten years, nobody has noticed that this driver doesn't
    actually say what it is for. ;)
    
    Signed-off-by: Paul Donald <newtwen+github at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16910
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 package/kernel/cryptodev-linux/Makefile | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/package/kernel/cryptodev-linux/Makefile b/package/kernel/cryptodev-linux/Makefile
index ea1bd24161..611d4ae27a 100644
--- a/package/kernel/cryptodev-linux/Makefile
+++ b/package/kernel/cryptodev-linux/Makefile
@@ -36,8 +36,9 @@ define KernelPackage/cryptodev
 endef
 
 define KernelPackage/cryptodev/description
-  This is a driver for that allows to use the Linux kernel supported
-  hardware ciphers by user-space applications.
+  This driver allows use of the Linux kernel supported hardware-based
+  cryptographic and hash accelerators by user-space applications,
+  via a "/dev/crypto" device.
 endef
 
 define Build/Configure



From lede-commits at lists.infradead.org  Tue Nov 12 05:28:54 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 12 Nov 2024 08:28:54 -0500
Subject: [openwrt/openwrt]  cryptodev-linux: change home-page URL
In-Reply-To: <173141813378.3169980.11290611349757367871@git-01.infra.openwrt.org>
References: <173141813378.3169980.11290611349757367871@git-01.infra.openwrt.org>
Message-ID: <mailman.158141.1731418382.1280.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/ce0b843ac7d27e124cb9ca13e9a1aeb115fcaf23

commit ce0b843ac7d27e124cb9ca13e9a1aeb115fcaf23
Author: Paul Donald <newtwen+github at gmail.com>
AuthorDate: Sun Nov 10 19:47:34 2024 +0100

    cryptodev-linux: change home-page URL
    
    Most links and info on the org page are broken or defunct, and all new
    versions are available on the github based repo anyway.
    
    Signed-off-by: Paul Donald <newtwen+github at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16910
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 package/kernel/cryptodev-linux/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/kernel/cryptodev-linux/Makefile b/package/kernel/cryptodev-linux/Makefile
index 611d4ae27a..165cc60487 100644
--- a/package/kernel/cryptodev-linux/Makefile
+++ b/package/kernel/cryptodev-linux/Makefile
@@ -28,7 +28,7 @@ include $(INCLUDE_DIR)/package.mk
 define KernelPackage/cryptodev
   SUBMENU:=Cryptographic API modules
   TITLE:=Driver for cryptographic acceleration
-  URL:=http://cryptodev-linux.org/
+  URL:=https://github.com/cryptodev-linux/cryptodev-linux
   DEPENDS:=+kmod-crypto-authenc +kmod-crypto-hash
   FILES:=$(PKG_BUILD_DIR)/cryptodev.$(LINUX_KMOD_SUFFIX)
   AUTOLOAD:=$(call AutoLoad,50,cryptodev)



From lede-commits at lists.infradead.org  Tue Nov 12 08:42:47 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 12 Nov 2024 11:42:47 -0500
Subject: [openwrt/openwrt]  qualcommax: ipq60xx: add NSS reserved memory
In-Reply-To: <173142976767.3422962.10203156730578487328@git-01.infra.openwrt.org>
References: <173142976767.3422962.10203156730578487328@git-01.infra.openwrt.org>
Message-ID: <mailman.158302.1731429910.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/8729d2a64d282d37b69c0853269af401a0102517

commit 8729d2a64d282d37b69c0853269af401a0102517
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Wed Nov 6 20:13:06 2024 +0100

    qualcommax: ipq60xx: add NSS reserved memory
    
    It seems that despite NSS not being supported in OpenWrt the memory it
    usually uses needs to be reserved anyway for stability reasons.
    
    Link: https://github.com/openwrt/openwrt/pull/16928
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 ...-dts-qcom-ipq6018-add-NSS-reserved-memory.patch | 27 ++++++++++++++++++++++
 ...0906-arm64-dts-qcom-ipq6018-add-wifi-node.patch |  2 +-
 .../0907-soc-qcom-fix-smp2p-ack-on-ipq6018.patch   |  2 +-
 ...com-ipq6018-assign-QDSS_AT-clock-to-wifi-.patch |  2 +-
 4 files changed, 30 insertions(+), 3 deletions(-)

diff --git a/target/linux/qualcommax/patches-6.6/0140-arm64-dts-qcom-ipq6018-add-NSS-reserved-memory.patch b/target/linux/qualcommax/patches-6.6/0140-arm64-dts-qcom-ipq6018-add-NSS-reserved-memory.patch
new file mode 100644
index 0000000000..84591c845d
--- /dev/null
+++ b/target/linux/qualcommax/patches-6.6/0140-arm64-dts-qcom-ipq6018-add-NSS-reserved-memory.patch
@@ -0,0 +1,27 @@
+From 7e102b1eb2ca3eff7a6f33ebeab17825e6f70956 Mon Sep 17 00:00:00 2001
+From: Robert Marko <robimarko at gmail.com>
+Date: Mon, 4 Nov 2024 22:01:24 +0100
+Subject: [PATCH] arm64: dts: qcom: ipq6018: add NSS reserved memory
+
+It seems that despite NSS not being supported in OpenWrt the memory it
+usually uses needs to be reserved anyway for stability reasons.
+
+Signed-off-by: Robert Marko <robimarko at gmail.com>
+---
+ arch/arm64/boot/dts/qcom/ipq6018.dtsi | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
++++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
+@@ -199,6 +199,11 @@
+ 			no-map;
+ 		};
+ 
++		nss_region: memory at 40000000 {
++			reg = <0x0 0x40000000 0x0 0x01000000>;
++			no-map;
++		};
++
+ 		bootloader at 4a100000 {
+ 			reg = <0x0 0x4a100000 0x0 0x400000>;
+ 			no-map;
diff --git a/target/linux/qualcommax/patches-6.6/0906-arm64-dts-qcom-ipq6018-add-wifi-node.patch b/target/linux/qualcommax/patches-6.6/0906-arm64-dts-qcom-ipq6018-add-wifi-node.patch
index f4968f1a4d..d41244d65a 100644
--- a/target/linux/qualcommax/patches-6.6/0906-arm64-dts-qcom-ipq6018-add-wifi-node.patch
+++ b/target/linux/qualcommax/patches-6.6/0906-arm64-dts-qcom-ipq6018-add-wifi-node.patch
@@ -15,7 +15,7 @@ Signed-off-by: Mantas Pucka <mantas at 8devices.com>
 
 --- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
-@@ -809,6 +809,102 @@
+@@ -814,6 +814,102 @@
  			};
  		};
  
diff --git a/target/linux/qualcommax/patches-6.6/0907-soc-qcom-fix-smp2p-ack-on-ipq6018.patch b/target/linux/qualcommax/patches-6.6/0907-soc-qcom-fix-smp2p-ack-on-ipq6018.patch
index 094442a59b..5154aad531 100644
--- a/target/linux/qualcommax/patches-6.6/0907-soc-qcom-fix-smp2p-ack-on-ipq6018.patch
+++ b/target/linux/qualcommax/patches-6.6/0907-soc-qcom-fix-smp2p-ack-on-ipq6018.patch
@@ -15,7 +15,7 @@ Signed-off-by: Mantas Pucka <mantas at 8devices.com>
 
 --- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
-@@ -1157,6 +1157,7 @@
+@@ -1162,6 +1162,7 @@
  
  		wcss_smp2p_out: master-kernel {
  			qcom,entry-name = "master-kernel";
diff --git a/target/linux/qualcommax/patches-6.6/0909-arm64-dts-qcom-ipq6018-assign-QDSS_AT-clock-to-wifi-.patch b/target/linux/qualcommax/patches-6.6/0909-arm64-dts-qcom-ipq6018-assign-QDSS_AT-clock-to-wifi-.patch
index a0528e7f50..993d60870b 100644
--- a/target/linux/qualcommax/patches-6.6/0909-arm64-dts-qcom-ipq6018-assign-QDSS_AT-clock-to-wifi-.patch
+++ b/target/linux/qualcommax/patches-6.6/0909-arm64-dts-qcom-ipq6018-assign-QDSS_AT-clock-to-wifi-.patch
@@ -13,7 +13,7 @@ Signed-off-by: Mantas Pucka <mantas at 8devices.com>
 
 --- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
-@@ -930,8 +930,8 @@
+@@ -935,8 +935,8 @@
  				      "wcss_reset",
  				      "wcss_q6_reset";
  



From lede-commits at lists.infradead.org  Tue Nov 12 08:55:21 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 12 Nov 2024 11:55:21 -0500
Subject: [openwrt/openwrt]  perf: fix version for APK
In-Reply-To: <173143052138.3434297.8581071392748172524@git-01.infra.openwrt.org>
References: <173143052138.3434297.8581071392748172524@git-01.infra.openwrt.org>
Message-ID: <mailman.158315.1731430788.1280.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/dbe01f7d999d0e02fa1e01aa596562ce04ec1f6a

commit dbe01f7d999d0e02fa1e01aa596562ce04ec1f6a
Author: Til Kaiser <mail at tk154.de>
AuthorDate: Tue Nov 12 16:33:56 2024 +0100

    perf: fix version for APK
    
    Change the version schema of perf to be compatible with APK as
    described in this commit: e8725a932e16eaf6ec51add8c084d959cbe32ff2.
    
    Signed-off-by: Til Kaiser <mail at tk154.de>
    Link: https://github.com/openwrt/openwrt/pull/16930
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 package/devel/perf/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/devel/perf/Makefile b/package/devel/perf/Makefile
index 20be59516d..a2830420cc 100644
--- a/package/devel/perf/Makefile
+++ b/package/devel/perf/Makefile
@@ -30,7 +30,7 @@ define Package/perf
   DEPENDS:= +libelf +libdw +PACKAGE_libunwind:libunwind +libpthread +librt +objdump @!IN_SDK @KERNEL_PERF_EVENTS \
 	    +PACKAGE_libbfd:libbfd +PACKAGE_libopcodes:libopcodes +libtraceevent
   TITLE:=Linux performance monitoring tool
-  VERSION:=$(LINUX_VERSION)-$(PKG_RELEASE)
+  VERSION:=$(LINUX_VERSION)-r$(PKG_RELEASE)
   URL:=http://www.kernel.org
 endef
 



From lede-commits at lists.infradead.org  Tue Nov 12 08:56:13 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 12 Nov 2024 11:56:13 -0500
Subject: [openwrt/openwrt]  build: add comments to makefiles
In-Reply-To: <173143057329.3434961.12207075512624241578@git-01.infra.openwrt.org>
References: <173143057329.3434961.12207075512624241578@git-01.infra.openwrt.org>
Message-ID: <mailman.158330.1731431477.1280.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/a72c8c770584075782959f2aa5c1487d68517edd

commit a72c8c770584075782959f2aa5c1487d68517edd
Author: Sergey Matsievskiy <matsievskiysv at gmail.com>
AuthorDate: Fri Nov 8 14:43:52 2024 +0300

    build: add comments to makefiles
    
    Add comments to build system makefile functions and variables to help
    developers in understanding build system internals and ease the
    development process.
    
    This patch adds some documentation examples with proposed doxygen-like
    syntax. Hopefully, this would start the discussion and result in
    generation of the makefile documentation guidelines.
    
    Signed-off-by: Sergey Matsievskiy <matsievskiysv at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16888
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 include/image.mk  | 56 ++++++++++++++++++++++++++++++++
 include/target.mk | 34 ++++++++++++++++---
 rules.mk          | 97 +++++++++++++++++++++++++++++++++++++++++++++++--------
 3 files changed, 169 insertions(+), 18 deletions(-)

diff --git a/include/image.mk b/include/image.mk
index a4ac1b49cf..9a4dff2167 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -21,6 +21,11 @@ include $(INCLUDE_DIR)/rootfs.mk
 override MAKE:=$(_SINGLE)$(SUBMAKE)
 override NO_TRACE_MAKE:=$(_SINGLE)$(NO_TRACE_MAKE)
 
+##@
+# @brief Convert size with unit postfix to unitless expression in bytes.
+#
+# @param 1: Size with unit. Possible unit postfix are `g`, `m`, `k`.
+##
 exp_units = $(subst k, * 1024,$(subst m, * 1024k,$(subst g, * 1024m,$(1))))
 
 target_params = $(subst +,$(space),$*)
@@ -111,6 +116,12 @@ endef
 
 PROFILE_SANITIZED := $(call tolower,$(subst DEVICE_,,$(subst $(space),-,$(PROFILE))))
 
+##@
+# @brief Call function for each group of arguments.
+#
+# @param 1: List of lists of arguments. Lists are separated by `|`.
+# @param 2: Function to call for list of arguments.
+##
 define split_args
 $(foreach data, \
 	$(subst |,$(space),\
@@ -118,12 +129,24 @@ $(foreach data, \
 	$(call $(2),$(strip $(subst ^,$(space),$(data)))))
 endef
 
+##@
+# @brief Call build function with arguments.
+#
+# @param 1: Function to call. Function name is prepended with `Build/`.
+# @param 2...: Function arguments.
+##
 define build_cmd
 $(if $(Build/$(word 1,$(1))),,$(error Missing Build/$(word 1,$(1))))
 $(call Build/$(word 1,$(1)),$(wordlist 2,$(words $(1)),$(1)))
 
 endef
 
+##@
+# @brief Call build functions from the list.
+#
+# @param 1: List of build functions with arguments, separated by `|`.
+#           First word in each group is a build command without `Build/` prefix.
+##
 define concat_cmd
 $(call split_args,$(1),build_cmd)
 endef
@@ -163,6 +186,12 @@ DTC_WARN_FLAGS := \
 DTC_FLAGS += $(DTC_WARN_FLAGS)
 DTCO_FLAGS += $(DTC_WARN_FLAGS)
 
+##@
+# @brief Pad file to specified size.
+#
+# @param 1: File.
+# @param 2: Padding.
+##
 define Image/pad-to
 	dd if=$(1) of=$(1).new bs=$(2) conv=sync
 	mv $(1).new $(1)
@@ -403,26 +432,53 @@ define Device/InitProfile
   DEVICE_DESCRIPTION = Build firmware images for $$(DEVICE_TITLE)
 endef
 
+##@
+# @brief Image configuration variables.
+#
+# @param 1: Device name.
+##
 define Device/Init
+  ##@ Device name.
   DEVICE_NAME := $(1)
+  ##@ Commands to build kernel.
+  # Commands with arguments are separated by `|`.
+  ##
   KERNEL:=
+  ##@ Commands to build initramfs.
+  # Commands with arguments are separated by `|`.
+  ##
   KERNEL_INITRAMFS = $$(KERNEL)
+  ##@ Kernel command line.
   CMDLINE:=
 
+  ##@ Images to build.
   IMAGES :=
+  ##@ Artifacts to build.
   ARTIFACTS :=
+  ##@ Device image prefix.
   DEVICE_IMG_PREFIX := $(IMG_PREFIX)-$(1)
+  ##@ Device image name.
   DEVICE_IMG_NAME = $$(DEVICE_IMG_PREFIX)-$$(1)-$$(2)
+  ##@ Factory image name.
   FACTORY_IMG_NAME :=
+  ##@ Maximum image size. Optional.
   IMAGE_SIZE :=
+  ##@ Maximum image size. Optional.
   NAND_SIZE :=
+  ##@ Kernel image prefix.
   KERNEL_PREFIX = $$(DEVICE_IMG_PREFIX)
+  ##@ Kernel image suffix.
   KERNEL_SUFFIX := -kernel.bin
+  ##@ Initramfs image suffix.
   KERNEL_INITRAMFS_SUFFIX = $$(KERNEL_SUFFIX)
+  ##@ Kernel image name.
   KERNEL_IMAGE = $$(KERNEL_PREFIX)$$(KERNEL_SUFFIX)
+  ##@ Initramfs image prefix.
   KERNEL_INITRAMFS_PREFIX = $$(DEVICE_IMG_PREFIX)-initramfs
   KERNEL_INITRAMFS_IMAGE = $$(KERNEL_INITRAMFS_PREFIX)$$(KERNEL_INITRAMFS_SUFFIX)
+  ##@ Initramfs image name.
   KERNEL_INITRAMFS_NAME = $$(KERNEL_NAME)-initramfs
+  ##@ Kernel install flag.
   KERNEL_INSTALL :=
   KERNEL_NAME := vmlinux
   KERNEL_DEPENDS :=
diff --git a/include/target.mk b/include/target.mk
index 3dc0acff5c..02ea68b15c 100644
--- a/include/target.mk
+++ b/include/target.mk
@@ -7,10 +7,17 @@ ifneq ($(__target_inc),1)
 __target_inc=1
 
 
-# default device type
+##@
+# @brief Default device type ( basic | nas | router ).
+##
 DEVICE_TYPE?=router
 
-# Default packages - the really basic set
+##@
+# @brief Default packages.
+#
+# The really basic set. Additional packages are added based on @DEVICE_TYPE and
+# @CONFIG_* values.
+##
 DEFAULT_PACKAGES:=\
 	base-files \
 	ca-bundle \
@@ -27,15 +34,21 @@ DEFAULT_PACKAGES:=\
 	urandom-seed \
 	urngd
 
-# For the basic set
+##@
+# @brief Default packages for @DEVICE_TYPE basic.
+##
 DEFAULT_PACKAGES.basic:=
-# For nas targets
+##@
+# @brief Default packages for @DEVICE_TYPE nas.
+##
 DEFAULT_PACKAGES.nas:=\
 	block-mount \
 	fdisk \
 	lsblk \
 	mdadm
-# For router targets
+##@
+# @brief Default packages for @DEVICE_TYPE router.
+##
 DEFAULT_PACKAGES.router:=\
 	dnsmasq \
 	firewall4 \
@@ -85,7 +98,18 @@ endif
 # Add device specific packages (here below to allow device type set from subtarget)
 DEFAULT_PACKAGES += $(DEFAULT_PACKAGES.$(DEVICE_TYPE))
 
+##@
+# @brief Filter out packages, prepended with `-`.
+#
+# @param 1: Package list.
+##
 filter_packages = $(filter-out -% $(patsubst -%,%,$(filter -%,$(1))),$(1))
+
+##@
+# @brief Append extra package dependencies.
+#
+# @param 1: Package list.
+##
 extra_packages = $(if $(filter wpad wpad-% nas,$(1)),iwinfo)
 
 define ProfileDefault
diff --git a/rules.mk b/rules.mk
index 973fd1cbb9..54df407fca 100644
--- a/rules.mk
+++ b/rules.mk
@@ -20,6 +20,11 @@ endif
 export TMP_DIR:=$(TOPDIR)/tmp
 export TMPDIR:=$(TMP_DIR)
 
+##@
+# @brief Strip quotes `"` and pounds `#` from string.
+#
+# @param 1: String.
+##
 qstrip=$(strip $(subst ",,$(1)))
 #"))
 
@@ -27,8 +32,23 @@ empty:=
 space:= $(empty) $(empty)
 comma:=,
 pound:=\#
+##@
+# @brief Merge strings by removing spaces.
+#
+# @param 1: String.
+##
 merge=$(subst $(space),,$(1))
+##@
+# @brief Get hash sum of variable list.
+#
+# @param 1: List of variable names.
+##
 confvar=$(shell echo '$(foreach v,$(1),$(v)=$(subst ','\'',$($(v))))' | $(MKHASH) md5)
+##@
+# @brief Strip last extension from file name.
+#
+# @param 1: File name.
+##
 strip_last=$(patsubst %.$(lastword $(subst .,$(space),$(1))),%,$(1))
 
 paren_left = (
@@ -51,9 +71,18 @@ __tr_head = $(subst $(paren_left)subst,$(paren_left)subst$(space),$(__tr_head_st
 __tr_tail = $(subst $(space),,$(foreach cv,$(1),$(paren_right)))
 __tr_template = $(__tr_head)$$(1)$(__tr_tail)
 
+##@
+# @brief Convert string characters to upper.
+##
 $(eval toupper = $(call __tr_template,$(chars_lower),$(chars_upper)))
+##@
+# @brief Convert string characters to lower.
+##
 $(eval tolower = $(call __tr_template,$(chars_upper),$(chars_lower)))
 
+##@
+# @brief Abbreviate version. Truncate to 8 characters.
+##
 version_abbrev = $(if $(if $(CHECK),,$(DUMP)),$(1),$(shell printf '%.8s' $(1)))
 
 _SINGLE=export MAKEFLAGS=$(space);
@@ -102,6 +131,13 @@ endif
 
 DEFAULT_SUBDIR_TARGETS:=clean download prepare compile update refresh prereq dist distcheck configure check check-depends
 
+##@
+# @brief Create default targets.
+#
+# Targets are created from @DEFAULT_SUBDIR_TARGETS and input argument lists.
+#
+# @param 1: Additional targets list.
+##
 define DefaultTargets
 $(foreach t,$(DEFAULT_SUBDIR_TARGETS) $(1),
   .$(t):
@@ -371,16 +407,28 @@ export BISON_PKGDATADIR:=$(STAGING_DIR_HOST)/share/bison
 export HOST_GNULIB_SRCDIR:=$(STAGING_DIR_HOST)/share/gnulib
 export M4:=$(STAGING_DIR_HOST)/bin/m4
 
+##@
+# @brief Slugify variable name and prepend suffix.
+##
 define shvar
 V_$(subst .,_,$(subst -,_,$(subst /,_,$(1))))
 endef
 
+##@
+# @brief Create and export variable, set to function result.
+#
+# @param 1: Function name. Used as variable name, prepended with `V_`.
+##
 define shexport
 export $(call shvar,$(1))=$$(call $(1))
 endef
 
+##@
+# @brief Support 64 bit tine in C code.
+#
 # Test support for 64-bit time with C code from largefile.m4 provided by GNU Gnulib
-# the value is 'y' when successful and '' otherwise
+# the value is `y` when successful and `` otherwise
+##
 define YEAR_2038
 $(shell \
   mkdir -p $(TMP_DIR); \
@@ -392,9 +440,12 @@ $(shell \
 )
 endef
 
-# Execute commands under flock
-# $(1) => The shell expression.
-# $(2) => The lock name. If not given, the global lock will be used.
+##@
+# @brief Execute commands under flock
+#
+# @param 1: The shell expression.
+# @param 2: The lock name. If not given, the global lock will be used.
+##
 ifneq ($(wildcard $(STAGING_DIR_HOST)/bin/flock),)
   define locked
 	SHELL= \
@@ -406,10 +457,14 @@ else
   locked=$(1)
 endif
 
-# Recursively copy paths into another directory, purge dangling
+
+##@
+# @brief Recursively copy paths into another directory, purge dangling
 # symlinks before.
-# $(1) => File glob expression
-# $(2) => Destination directory
+#
+# @param 1: File glob expression.
+# @param 1: Destination directory.
+##
 define file_copy
 	for src_dir in $(sort $(foreach d,$(wildcard $(1)),$(dir $(d)))); do \
 		( cd $$src_dir; find -type f -or -type d ) | \
@@ -424,19 +479,30 @@ define file_copy
 	$(CP) $(1) $(2)
 endef
 
-# Calculate sha256sum of any plain file within a given directory
-# $(1) => Input directory
-# $(2) => If set, recurse into subdirectories
+##@
+# @brief Calculate sha256sum of any plain file within a given directory.
+#
+# @param 1: Input directory.
+# @param 2: If set, recurse into subdirectories.
+##
 define sha256sums
 	(cd $(1); find . $(if $(2),,-maxdepth 1) -type f -not -name 'sha256sums' -printf "%P\n" | sort | \
 		xargs -r $(MKHASH) -n sha256 | sed -ne 's!^\(.*\) \(.*\)$$!\1 *\2!p' > sha256sums)
 endef
 
-# file extension
+##@
+# @brief Retrieve file extension.
+#
+# @param 1: File name.
+##
 ext=$(word $(words $(subst ., ,$(1))),$(subst ., ,$(1)))
 
-# Count Git commits of a package
-# $(1) => if non-empty: count commits since last ": [uU]pdate to " or ": [bB]ump to " in commit message
+##@
+# @brief Count Git commits of a package.
+#
+# @param 1: if non-empty: count commits since last ": [uU]pdate to "
+#           or ": [bB]ump to " in commit message.
+##
 define commitcount
 $(shell \
   if git log -1 >/dev/null 2>/dev/null; then \
@@ -458,6 +524,11 @@ $(shell \
 )
 endef
 
+##@
+# @brief Get ABI version string, stripping `-`, `_` and `.`.
+#
+# @param 1: Version string.
+##
 abi_version_str = $(subst -,,$(subst _,,$(subst .,,$(1))))
 
 COMMITCOUNT = $(if $(DUMP),0,$(call commitcount))



From lede-commits at lists.infradead.org  Tue Nov 12 09:35:30 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 12 Nov 2024 12:35:30 -0500
Subject: [openwrt/openwrt]  build: create package index.json
In-Reply-To: <173143293021.3478097.4036135347303615647@git-01.infra.openwrt.org>
References: <173143293021.3478097.4036135347303615647@git-01.infra.openwrt.org>
Message-ID: <mailman.158385.1731434418.1280.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/f84187035e96d6d9912deebc25822910a7d539a5

commit f84187035e96d6d9912deebc25822910a7d539a5
Author: Eric Fahlgren <ericfahlgren at gmail.com>
AuthorDate: Tue Nov 12 09:10:02 2024 -0800

    build: create package index.json
    
    Duplicate the old opkg index.json using the new apk database.
    Needed to get the ASU server working on new snapshots.
    
    Signed-off-by: Eric Fahlgren <ericfahlgren at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16931
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 package/Makefile | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/package/Makefile b/package/Makefile
index b60ed10fb6..88d312d4ed 100644
--- a/package/Makefile
+++ b/package/Makefile
@@ -131,6 +131,11 @@ ifneq ($(CONFIG_USE_APK),)
 			--sign $(BUILD_KEY_APK_SEC) \
 			--output packages.adb \
 			$$(ls *.apk | grep -v 'base-files-\|kernel-\|libc-'); \
+		echo -n '{"architecture": "$(ARCH_PACKAGES)", "packages":{' > index.json; \
+		$(STAGING_DIR_HOST)/bin/apk adbdump packages.adb | \
+			awk '/- name: / {pkg = $$NF} ; / version: / {printf "\"%s\": \"%s\", ", pkg, $$NF}' | \
+			sed 's/, $$//' >> index.json; \
+		echo '}}' >> index.json; \
 	done
 else
 	@for d in $(PACKAGE_SUBDIRS); do ( \



From lede-commits at lists.infradead.org  Tue Nov 12 22:13:04 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 13 Nov 2024 01:13:04 -0500
Subject: [openwrt/openwrt]  build: fix including busybox,
 procd and apk/opkg in imagebuilder
In-Reply-To: <173147838436.250888.220695435876947429@git-01.infra.openwrt.org>
References: <173147838436.250888.220695435876947429@git-01.infra.openwrt.org>
Message-ID: <mailman.158597.1731478391.1280.lede-commits@lists.infradead.org>

nbd pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/4c65359af49b6ccecd98987f842db5eba985f64b

commit 4c65359af49b6ccecd98987f842db5eba985f64b
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Wed Nov 13 07:04:31 2024 +0100

    build: fix including busybox, procd and apk/opkg in imagebuilder
    
    Since the image builder pulls package lists from metadata directly,
    add procd and busybox as depdendencies to base-files.
    As for the package manager itself, since it can be disabled it needs
    to be added directly in the image builder makefile
    
    Fixes: 44598c233dd9 ("build: remove broken dependency of metadata on toplevel .config variables")
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
 package/base-files/Makefile        | 6 +++++-
 package/system/procd/Makefile      | 3 ---
 package/utils/busybox/Makefile     | 2 --
 target/imagebuilder/files/Makefile | 5 +++++
 4 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 4bcb4882d7..7ac4ea557f 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -39,7 +39,11 @@ endif
 define Package/base-files
   SECTION:=base
   CATEGORY:=Base system
-  DEPENDS:=+netifd +libc +jsonfilter +SIGNED_PACKAGES:usign +SIGNED_PACKAGES:openwrt-keyring +NAND_SUPPORT:ubi-utils +fstools +fwtool
+  DEPENDS:= \
+	+netifd +libc +jsonfilter +SIGNED_PACKAGES:usign +SIGNED_PACKAGES:openwrt-keyring \
+	+NAND_SUPPORT:ubi-utils +fstools +fwtool \
+	+SELINUX:procd-selinux +!SELINUX:procd +SECCOMP:procd-seccomp \
+	+SELINUX:busybox-selinux +!SELINUX:busybox
   TITLE:=Base filesystem for OpenWrt
   URL:=http://openwrt.org/
   VERSION:=$(PKG_RELEASE)~$(lastword $(subst -, ,$(REVISION)))
diff --git a/package/system/procd/Makefile b/package/system/procd/Makefile
index 9ff6fb80f7..86de4babfd 100644
--- a/package/system/procd/Makefile
+++ b/package/system/procd/Makefile
@@ -50,7 +50,6 @@ define Package/procd
   $(call Package/procd/Default)
   VARIANT:=default
   CONFLICTS:=procd-selinux
-  DEFAULT:=y if !SELINUX
 endef
 
 define Package/procd-selinux
@@ -59,7 +58,6 @@ define Package/procd-selinux
   TITLE += with SELinux support
   PROVIDES:=procd
   VARIANT:=selinux
-  DEFAULT:=y if SELINUX
 endef
 
 define Package/procd-ujail
@@ -75,7 +73,6 @@ define Package/procd-seccomp
   CATEGORY:=Base system
   DEPENDS:=@SECCOMP +libubox +libblobmsg-json
   TITLE:=OpenWrt process seccomp helper + utrace
-  DEFAULT:=y if SECCOMP
 endef
 
 define Package/uxc
diff --git a/package/utils/busybox/Makefile b/package/utils/busybox/Makefile
index 7b591db716..4ef470df75 100644
--- a/package/utils/busybox/Makefile
+++ b/package/utils/busybox/Makefile
@@ -56,7 +56,6 @@ define Package/busybox
   $(call Package/busybox/Default)
   CONFLICTS:=busybox-selinux
   VARIANT:=default
-  DEFAULT:=y if !SELINUX
 endef
 
 define Package/busybox-selinux
@@ -65,7 +64,6 @@ define Package/busybox-selinux
   DEPENDS += +libselinux
   VARIANT:=selinux
   PROVIDES:=busybox
-  DEFAULT:=y if SELINUX
 endef
 
 define Package/busybox/description
diff --git a/target/imagebuilder/files/Makefile b/target/imagebuilder/files/Makefile
index 72b36b0862..c92ab74306 100644
--- a/target/imagebuilder/files/Makefile
+++ b/target/imagebuilder/files/Makefile
@@ -138,6 +138,11 @@ _call_info: FORCE
 	echo 'Available Profiles:'
 	echo; $(PROFILE_LIST)
 
+ifneq ($(CONFIG_USE_APK),)
+  DEFAULT_PACKAGES += apk-mbedtls
+else
+  DEFAULT_PACKAGES += opkg
+endif
 BUILD_PACKAGES:=$(sort $(DEFAULT_PACKAGES) $($(USER_PROFILE)_PACKAGES) kernel)
 # "-pkgname" in the package list means remove "pkgname" from the package list
 BUILD_PACKAGES:=$(filter-out $(filter -%,$(BUILD_PACKAGES)) $(patsubst -%,%,$(filter -%,$(BUILD_PACKAGES))),$(BUILD_PACKAGES))



From lede-commits at lists.infradead.org  Tue Nov 12 22:54:18 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 13 Nov 2024 01:54:18 -0500
Subject: [openwrt/openwrt]  base-files: improve default root-passwd script
In-Reply-To: <173148085806.299332.5386948426117899084@git-01.infra.openwrt.org>
References: <173148085806.299332.5386948426117899084@git-01.infra.openwrt.org>
Message-ID: <mailman.158606.1731480861.1280.lede-commits@lists.infradead.org>

blogic pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/b902284290b846423ca30d8f4f69eda6bb2c9ee2

commit b902284290b846423ca30d8f4f69eda6bb2c9ee2
Author: John Crispin <john at phrozen.org>
AuthorDate: Tue Nov 12 07:49:22 2024 +0100

    base-files: improve default root-passwd script
    
    The script was not exiting cleanly causing it to not be removed from the
    uci-defaults folder.
    
    Signed-off-by: John Crispin <john at phrozen.org>
---
 .../base-files/files/etc/uci-defaults/50-root-passwd   | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/package/base-files/files/etc/uci-defaults/50-root-passwd b/package/base-files/files/etc/uci-defaults/50-root-passwd
index 9eddf1559b..f0bb519aec 100644
--- a/package/base-files/files/etc/uci-defaults/50-root-passwd
+++ b/package/base-files/files/etc/uci-defaults/50-root-passwd
@@ -3,10 +3,16 @@
 json_init
 json_load "$(cat /etc/board.json)"
 
-json_select credentials
-	json_get_vars root_password_hash root_password_hash
-	[ -z "$root_password_hash" ] || sed -i "s|^root:[^:]*|root:$root_password_hash|g" /etc/shadow
+if json_is_a credentials object; then
+	json_select credentials
+		json_get_vars root_password_hash root_password_hash
+		if [ -n "$root_password_hash" ]; then
+			sed -i "s|^root:[^:]*|root:$root_password_hash|g" /etc/shadow
+		fi
 
-	json_get_vars root_password_plain root_password_plain
-	[ -z "$root_password_plain" ] || { (echo "$root_password_plain"; sleep 1; echo "$root_password_plain") | passwd root }
-json_select ..
+		json_get_vars root_password_plain root_password_plain
+		if [ -n "$root_password_plain" ]; then
+			(echo "$root_password_plain"; sleep 1; echo "$root_password_plain") | passwd root
+		fi
+	json_select ..
+fi



From lede-commits at lists.infradead.org  Tue Nov 12 22:54:57 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 13 Nov 2024 01:54:57 -0500
Subject: [openwrt/openwrt]  base-files: improve default root-passwd script
In-Reply-To: <173148089706.299899.14626463004501336388@git-01.infra.openwrt.org>
References: <173148089706.299899.14626463004501336388@git-01.infra.openwrt.org>
Message-ID: <mailman.158607.1731480900.1280.lede-commits@lists.infradead.org>

blogic pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/e39f5d4b360ca3e163550592cea35949f0ea8622

commit e39f5d4b360ca3e163550592cea35949f0ea8622
Author: John Crispin <john at phrozen.org>
AuthorDate: Tue Nov 12 07:49:22 2024 +0100

    base-files: improve default root-passwd script
    
    The script was not exiting cleanly causing it to not be removed from the
    uci-defaults folder.
    
    Signed-off-by: John Crispin <john at phrozen.org>
---
 .../base-files/files/etc/uci-defaults/50-root-passwd   | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/package/base-files/files/etc/uci-defaults/50-root-passwd b/package/base-files/files/etc/uci-defaults/50-root-passwd
index 9eddf1559b..f0bb519aec 100644
--- a/package/base-files/files/etc/uci-defaults/50-root-passwd
+++ b/package/base-files/files/etc/uci-defaults/50-root-passwd
@@ -3,10 +3,16 @@
 json_init
 json_load "$(cat /etc/board.json)"
 
-json_select credentials
-	json_get_vars root_password_hash root_password_hash
-	[ -z "$root_password_hash" ] || sed -i "s|^root:[^:]*|root:$root_password_hash|g" /etc/shadow
+if json_is_a credentials object; then
+	json_select credentials
+		json_get_vars root_password_hash root_password_hash
+		if [ -n "$root_password_hash" ]; then
+			sed -i "s|^root:[^:]*|root:$root_password_hash|g" /etc/shadow
+		fi
 
-	json_get_vars root_password_plain root_password_plain
-	[ -z "$root_password_plain" ] || { (echo "$root_password_plain"; sleep 1; echo "$root_password_plain") | passwd root }
-json_select ..
+		json_get_vars root_password_plain root_password_plain
+		if [ -n "$root_password_plain" ]; then
+			(echo "$root_password_plain"; sleep 1; echo "$root_password_plain") | passwd root
+		fi
+	json_select ..
+fi



From lede-commits at lists.infradead.org  Wed Nov 13 08:42:16 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 13 Nov 2024 11:42:16 -0500
Subject: [openwrt/openwrt]  imagebuilder: fix APK keys dir creation
In-Reply-To: <173151613664.952254.11736278467383476337@git-01.infra.openwrt.org>
References: <173151613664.952254.11736278467383476337@git-01.infra.openwrt.org>
Message-ID: <mailman.158968.1731516146.1280.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/93d005e6bc571e062b3dd263c06b2d9957552e9c

commit 93d005e6bc571e062b3dd263c06b2d9957552e9c
Author: Kuan-Yi Li <kyli at abysm.org>
AuthorDate: Thu Nov 14 00:29:21 2024 +0800

    imagebuilder: fix APK keys dir creation
    
    Make keys directory for APK instead of OPKG while adding local key.
    
    Signed-off-by: Kuan-Yi Li <kyli at abysm.org>
    Link: https://github.com/openwrt/openwrt/pull/16942
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 target/imagebuilder/files/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/imagebuilder/files/Makefile b/target/imagebuilder/files/Makefile
index c92ab74306..56f761e966 100644
--- a/target/imagebuilder/files/Makefile
+++ b/target/imagebuilder/files/Makefile
@@ -249,7 +249,7 @@ ifeq ($(CONFIG_USE_APK),)
 else
 	$(if $(CONFIG_SIGNATURE_CHECK), \
 		$(if $(ADD_LOCAL_KEY), \
-			mkdir -p $(TARGET_DIR)/etc/opkg/keys/; \
+			mkdir -p $(TARGET_DIR)/etc/apk/keys/; \
 			cp $(BUILD_KEY_APK_PUB) $(TARGET_DIR)/etc/apk/keys/; \
 		) \
 	)



From lede-commits at lists.infradead.org  Wed Nov 13 12:19:51 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 13 Nov 2024 15:19:51 -0500
Subject: [openwrt/openwrt]  apk: update to Git
 417a93ceae540444fdbd3f76d1dadf0e15621fdc (2024-11-13)
In-Reply-To: <173152919184.1155579.6372651070033741285@git-01.infra.openwrt.org>
References: <173152919184.1155579.6372651070033741285@git-01.infra.openwrt.org>
Message-ID: <mailman.159042.1731529200.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/c6a3a11c07fdd85baf9ae43d718eb7a317995ed8

commit c6a3a11c07fdd85baf9ae43d718eb7a317995ed8
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Wed Nov 13 08:11:38 2024 +0000

    apk: update to Git 417a93ceae540444fdbd3f76d1dadf0e15621fdc (2024-11-13)
    
    c1a3e69f24e2 db: validate package arch against compatible arches
    2a3dbfc9db58 db: add and use apk_db_parse_file helper to parse files line by line
    b231eacd8121 db: simplify add_repos_from_file
    98d7196a48d4 db: fix permissions of arch file
    d2aaf13ee488 commit: sort matched dependencies on error analysis
    c259642c006d tests: rework solver tests to not require apk-test binary
    08b4d21f922e tests: move solver test data to separate directory
    563d36481166 tests: minor updates to root tests
    a236fdd39040 pkg: use memfd_create only if target root has dev/fd working
    a5aeb3db113f test: unify makefile and meson tests
    d86afdef88b0 db: print message when a file is written to .apk-new
    5dd91e3c387d db: consider --force-no-chroot when determining /dev/fd availability
    5add6fce22d4 apk-tools-3.0.0_pre4
    8a13ed96d1d5 test: fix solver.sh for parallel use
    fcd4defc18e6 test: move vertest to cmocka based unit testing infrastructure
    e38d5b5a9d04 test: add missing alpine tests makefile
    19b1df79ebca blob: refactor apk_blob_for_each_segment into apk_blob_foreach_word
    76970a938dd7 package: move the location of executable package scripts
    1e0411568dad package: respect libexecdir instead of hard-coding /usr/libexec
    a4837ae8ffe2 package: don't call make_device_tree when APK_NO_CHROOT is set
    ade0be3449e4 db, extract: handle file/directory extraction errors more consistently
    4050f9e69d2e db: fix hardlink handling: root directory and v3 checksums
    89e4bf1db040 db, fs: do not extract devices in --usermode
    64ff8c72d9fb db: allow files starting with a dot in the root directory of apk3 packages
    d26b65d30f55 db, audit: remove support for files without embedded checksum
    417a93ceae54 pkg: truncate apkv3 description to 256 bytes
    
    Fixes: #16929
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/system/apk/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/system/apk/Makefile b/package/system/apk/Makefile
index 2d637fa180..e911f4ae4b 100644
--- a/package/system/apk/Makefile
+++ b/package/system/apk/Makefile
@@ -5,9 +5,9 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_URL=https://gitlab.alpinelinux.org/alpine/apk-tools.git
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2024-11-08
-PKG_SOURCE_VERSION:=d9c24813d983df9524fa7a2b78fc3132c159a20f
-PKG_MIRROR_HASH:=3d1a79c08ef8c8b9404f9287d9acda6468b8b1c2a99dd384287f522ed3b1a047
+PKG_SOURCE_DATE:=2024-11-13
+PKG_SOURCE_VERSION:=417a93ceae540444fdbd3f76d1dadf0e15621fdc
+PKG_MIRROR_HASH:=3888aa506f0ce808cbe0287b98abfb7ba92e68b1eb17516fef4b58068bc72131
 
 PKG_VERSION=3.0.0_pre$(subst -,,$(PKG_SOURCE_DATE))
 



From lede-commits at lists.infradead.org  Wed Nov 13 12:27:18 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 13 Nov 2024 15:27:18 -0500
Subject: [openwrt/openwrt]  scripts: download-check-artifact.sh: fix
 shellcheck and improve
In-Reply-To: <173152963773.1302661.17741938898012812304@git-01.infra.openwrt.org>
References: <173152963773.1302661.17741938898012812304@git-01.infra.openwrt.org>
Message-ID: <mailman.159047.1731529667.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/27c2c140b16cb490f20c1c2259b3decf50ae5762

commit 27c2c140b16cb490f20c1c2259b3decf50ae5762
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Wed Nov 6 10:40:37 2024 +0000

    scripts: download-check-artifact.sh: fix shellcheck and improve
    
    Fixes following shellcheck's recommendations:
    
     In scripts/download-check-artifact.sh line 24:
            exit $1
                 ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
    
     In scripts/download-check-artifact.sh line 53:
                    local sum="$(shasum -a 256 "$image_file")";
                          ^-^ SC2155 (warning): Declare and assign separately to avoid masking return values.
    
     In scripts/download-check-artifact.sh line 72:
     cd "/tmp/verify.$$"
     ^-----------------^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
    
     In scripts/download-check-artifact.sh line 114:
                    printf "Keyserver to use? [$keyserver_url] > "
                           ^-- SC2059 (info): Don't use variables in the printf format string. Use printf '..%s..' "$foo".
    
     In scripts/download-check-artifact.sh line 115:
                    read url; case "${url:-$keyserver_url}" in
                    ^--^ SC2162 (info): read without -r will mangle backslashes.
    
    While at it make it clear, that it is possible to download/check any
    build artifacts like even SDK or ImageBuilder.
    
    Link: https://github.com/openwrt/openwrt/pull/16871
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 scripts/download-check-artifact.sh | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/scripts/download-check-artifact.sh b/scripts/download-check-artifact.sh
index 31868da5cd..bc0918b214 100755
--- a/scripts/download-check-artifact.sh
+++ b/scripts/download-check-artifact.sh
@@ -12,6 +12,7 @@
 #  255 - A suitable download or checksum utility is missing
 
 [ -n "$1" ] || {
+	echo "$0 - Download and verify build artifacts"
 	echo "Usage: $0 <url>" >&2
 	exit 1
 }
@@ -21,7 +22,7 @@ finish() {
 		echo "Cleaning up."
 		rm -r "/tmp/verify.$$"
 	}
-	exit $1
+	exit "$1"
 }
 
 trap "finish 254" INT TERM
@@ -50,7 +51,8 @@ if which sha256sum >/dev/null; then
 	checksum() { sha256sum -c --ignore-missing "sha256sums"; }
 elif which shasum >/dev/null; then
 	checksum() {
-		local sum="$(shasum -a 256 "$image_file")";
+		local sum
+		sum="$(shasum -a 256 "$image_file")";
 		grep -xF "${sum%% *} *$image_file" "sha256sums";
 	}
 else
@@ -68,11 +70,14 @@ else
 	}
 fi
 
-mkdir -p "/tmp/verify.$$"
-cd "/tmp/verify.$$"
+tmpdir="$(mktemp -d)"
+cd "$tmpdir" || {
+	echo "Failed to create temporary directory!" >&2
+	finish 255
+}
 
 echo ""
-echo "1) Downloading image file"
+echo "1) Downloading artifact file"
 echo "========================="
 download "$image_file" "$image_url" || {
 	echo "Failed to download image file!" >&2
@@ -111,8 +116,8 @@ if [ -n "$missing_key" ]; then
 	echo ""                                                                  >&2
 
 	while true; do
-		printf "Keyserver to use? [$keyserver_url] > "
-		read url; case "${url:-$keyserver_url}" in
+		printf 'Keyserver to use? [%s] > ' "$keyserver_url"
+		read -r url; case "${url:-$keyserver_url}" in
 			hkp://*)
 				gpg --keyserver "${url:-$keyserver_url}" --recv-keys "$missing_key" || {
 					echo "Failed to download public key." >&2
@@ -148,7 +153,7 @@ cp "$image_file" "$destdir/$image_file" || {
 echo ""
 echo "Verification done!"
 echo "=================="
-echo "Firmware image placed in '$destdir/$image_file'."
+echo "Downloaded artifact placed in '$destdir/$image_file'."
 echo ""
 
 finish 0



From lede-commits at lists.infradead.org  Wed Nov 13 12:27:17 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 13 Nov 2024 15:27:17 -0500
Subject: [openwrt/openwrt]  scripts: add download-check-artifact.sh script
In-Reply-To: <173152963773.1302661.17741938898012812304@git-01.infra.openwrt.org>
References: <173152963773.1302661.17741938898012812304@git-01.infra.openwrt.org>
Message-ID: <mailman.159048.1731529670.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/4c9031fda271ed7d4503642f63ff824faa6cc3a0

commit 4c9031fda271ed7d4503642f63ff824faa6cc3a0
Author: David S. H. Rosenthal <dshr at abitare.org>
AuthorDate: Wed Nov 6 10:19:17 2024 +0000

    scripts: add download-check-artifact.sh script
    
    While checking wiki documentation about GPG signatures checking I found
    this nice script and I've thought, that it would be nice to provide it
    officially instead of some random internet site.
    
    Usage example:
    
      $ ./scripts/download-check-artifact.sh https://downloads.openwrt.org/snapshots/targets/mediatek/filogic/openwrt-mediatek-filogic-openwrt_one-squashfs-sysupgrade.itb
    
      1) Downloading image file
      =========================
      ########################################### 100.0%
    
      2) Downloading checksum file
      ============================
      ########################################### 100.0%
    
      3) Downloading the GPG signature
      ================================
      ########################################### 100.0%
    
      4) Verifying GPG signature
      ==========================
      gpg: Signature made Tue 05 Nov 2024 05:21:50 PM UTC
      gpg:                using EDDSA key 92C561DE55AE6552F3C736B82B0151090606D1D9
      gpg: Good signature from "OpenWrt Build System (Nitrokey3) <contact at openwrt.org>" [ultimate]
      Primary key fingerprint: 8A8B C12F 46B8 36C0 F9CD  B36F 1D53 D187 7742 E911
           Subkey fingerprint: 92C5 61DE 55AE 6552 F3C7  36B8 2B01 5109 0606 D1D9
    
      5) Verifying SHA256 checksum
      ============================
      openwrt-mediatek-filogic-openwrt_one-squashfs-sysupgrade.itb: OK
    
      Verification done!
      ==================
      Downloaded artifact placed in '/var/home/ynezz/dev/openwrt/openwrt.git/openwrt-mediatek-filogic-openwrt_one-squashfs-sysupgrade.itb'
    
      Cleaning up.
    
    Adding file in a state as downloaded from https://www.abitare.org/bin/download.sh
    
    References: https://openwrt.org/docs/guide-quick-start/verify_firmware_checksum?s[]=gpg#linux
    Signed-off-by: David S. H. Rosenthal <dshr at abitare.org>
    Link: https://github.com/openwrt/openwrt/pull/16871
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 scripts/download-check-artifact.sh | 154 +++++++++++++++++++++++++++++++++++++
 1 file changed, 154 insertions(+)

diff --git a/scripts/download-check-artifact.sh b/scripts/download-check-artifact.sh
new file mode 100755
index 0000000000..31868da5cd
--- /dev/null
+++ b/scripts/download-check-artifact.sh
@@ -0,0 +1,154 @@
+#!/usr/bin/env bash
+# Script to perform verified file downloads.
+# Exit codes:
+#  0 - File downloaded successfully and verified
+#  1 - Failed to download requested file
+#  2 - Failed to download sha256sums file
+#  3 - Failed to download sha256sums.gpg file
+#  4 - GnuPG is available but fails to verify the signature (missing pubkey, file integrity error, ...)
+#  5 - The checksums do not match
+#  6 - Unable to copy the requested file to its final destination
+#  254 - The script got interrupted by a signal
+#  255 - A suitable download or checksum utility is missing
+
+[ -n "$1" ] || {
+	echo "Usage: $0 <url>" >&2
+	exit 1
+}
+
+finish() {
+	[ -e "/tmp/verify.$$" ] && {
+		echo "Cleaning up."
+		rm -r "/tmp/verify.$$"
+	}
+	exit $1
+}
+
+trap "finish 254" INT TERM
+
+destdir="$(pwd)"
+image_url="$1"
+image_file="${image_url##*/}"
+sha256_url="${image_url%/*}/sha256sums"
+gpgsig_url="${image_url%/*}/sha256sums.asc"
+keyserver_url="hkp://keyserver.ubuntu.com"
+
+# Find a suitable download utility
+if which curl >/dev/null; then
+	download() { curl --progress-bar -o "$1" "$2"; }
+elif which wget >/dev/null; then
+	download() { wget -O "$1" "$2"; }
+elif which fetch >/dev/null; then
+	download() { fetch -o "$1" "$2"; }
+else
+	echo "No suitable download utility found, cannot download files!" >&2
+	finish 255
+fi
+
+# Find a suitable checksum utility
+if which sha256sum >/dev/null; then
+	checksum() { sha256sum -c --ignore-missing "sha256sums"; }
+elif which shasum >/dev/null; then
+	checksum() {
+		local sum="$(shasum -a 256 "$image_file")";
+		grep -xF "${sum%% *} *$image_file" "sha256sums";
+	}
+else
+	echo "No SHA256 checksum executable installed, cannot verify checksums!" >&2
+	finish 255
+fi
+
+# Check for gpg availability
+if which gpg >/dev/null; then
+	runpgp() { gpg "$@"; }
+else
+	runpgp() {
+		echo "WARNING: No GnuPG installed, cannot verify digital signature!" >&2
+		return 0
+	}
+fi
+
+mkdir -p "/tmp/verify.$$"
+cd "/tmp/verify.$$"
+
+echo ""
+echo "1) Downloading image file"
+echo "========================="
+download "$image_file" "$image_url" || {
+	echo "Failed to download image file!" >&2
+	finish 1
+}
+
+echo ""
+echo "2) Downloading checksum file"
+echo "============================"
+download "sha256sums" "$sha256_url" || {
+	echo "Failed to download checksum file!" >&2
+	finish 2
+}
+
+echo ""
+echo "3) Downloading the GPG signature"
+echo "================================"
+download "sha256sums.gpg" "$gpgsig_url" || {
+	echo "Failed to download GPG signature!" >&2
+	finish 3
+}
+
+echo ""
+echo "4) Verifying GPG signature"
+echo "=========================="
+missing_key=$(runpgp --status-fd 1 --with-fingerprint --verify \
+	"sha256sums.gpg" "sha256sums" 2>/dev/null | sed -ne 's!^.* NO_PUBKEY !!p')
+
+if [ -n "$missing_key" ]; then
+	echo "The signature was signed by a public key with the id $missing_key" >&2
+	echo "which is not present on this system."                              >&2
+	echo ""                                                                  >&2
+
+	echo "Provide a public keyserver url below or press enter to accept the" >&2
+	echo "default suggestion. Hit Ctrl-C to abort the operation."            >&2
+	echo ""                                                                  >&2
+
+	while true; do
+		printf "Keyserver to use? [$keyserver_url] > "
+		read url; case "${url:-$keyserver_url}" in
+			hkp://*)
+				gpg --keyserver "${url:-$keyserver_url}" --recv-keys "$missing_key" || {
+					echo "Failed to download public key." >&2
+					finish 7
+				}
+				break
+			;;
+			*)
+				echo "Expecting a key server url in the form 'hkp://hostname'." >&2
+			;;
+		esac
+	done
+fi
+
+runpgp --with-fingerprint --verify "sha256sums.gpg" "sha256sums" || {
+	echo "Failed to verify checksum file with GPG signature!" >&2
+	finish 4
+}
+
+echo ""
+echo "5) Verifying SHA256 checksum"
+echo "============================"
+checksum || {
+	echo "Checksums do not match!" >&2
+	finish 5
+}
+
+cp "$image_file" "$destdir/$image_file" || {
+	echo "Failed to write '$destdir/$image_file'" >&2
+	finish 6
+}
+
+echo ""
+echo "Verification done!"
+echo "=================="
+echo "Firmware image placed in '$destdir/$image_file'."
+echo ""
+
+finish 0



From lede-commits at lists.infradead.org  Wed Nov 13 20:22:25 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 13 Nov 2024 23:22:25 -0500
Subject: [openwrt/openwrt]  uboot-mediatek: add support for GatoNetworks GDSP
In-Reply-To: <173155814571.1927520.3937372903791744501@git-01.infra.openwrt.org>
References: <173155814571.1927520.3937372903791744501@git-01.infra.openwrt.org>
Message-ID: <mailman.159175.1731558259.1280.lede-commits@lists.infradead.org>

dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/7f2c7b3238ee26180d44528ae98fd2f54e874511

commit 7f2c7b3238ee26180d44528ae98fd2f54e874511
Author: Enrico Mioso <mrkiko.rs at gmail.com>
AuthorDate: Sat Nov 9 22:14:31 2024 +0100

    uboot-mediatek: add support for GatoNetworks GDSP
    
    The GatoNetworks GDSP is a re-branded version of the R5000 5G Industrial
    router from Yinghua Technologies.
    
    Advantages over stock bootloader:
    1. supports serving the external GPIO WDT, allowing for easier work in U-Boot
       shell
    2. supports cool features like netconsole, easy recovery, scripting and so on
    3. allows using FIT image and image integrity validation
    
    and ultimately gives you much more flexibility to implement your tweaks.
    
    Known issues
    ------------
    To make it easier to operate the device, console I/O multiplexing support has
    been enabled in U-Boot configuration. Setting I/O related U-Boot environment
    variables to something like "serial,nc" will have the desired effect. Still,
    setting these variables to such a value in the persistent environment will
    lead to a crash and make it impossible to boot the system or recover it. I
    decided to leave it on anyway since I think it can be very practical in
    development.
    
    Signed-off-by: Enrico Mioso <mrkiko.rs at gmail.com>
---
 package/boot/uboot-mediatek/Makefile               |  14 +
 ...-initialized-the-watchdog-subsystem-later.patch |  54 +++
 .../patches/458-add-GatoNetworks-GDSP.patch        | 406 +++++++++++++++++++++
 3 files changed, 474 insertions(+)

diff --git a/package/boot/uboot-mediatek/Makefile b/package/boot/uboot-mediatek/Makefile
index 3485765368..d2a03277d4 100644
--- a/package/boot/uboot-mediatek/Makefile
+++ b/package/boot/uboot-mediatek/Makefile
@@ -364,6 +364,19 @@ define U-Boot/mt7981_rfb-emmc
   DEPENDS:=+trusted-firmware-a-mt7981-emmc-ddr3
 endef
 
+define U-Boot/mt7981_gatonetworks_gdsp
+  NAME:=GatoNetworks GDSP
+  BUILD_SUBTARGET:=filogic
+  BUILD_DEVICES:=gatonetworks_gdsp
+  UBOOT_CONFIG:=mt7981_gatonetworks_gdsp
+  UBOOT_IMAGE:=u-boot.fip
+  BL2_BOOTDEV:=nor
+  BL2_SOC:=mt7981
+  BL2_DDRTYPE:=ddr3
+  DEPENDS:=+trusted-firmware-a-mt7981-nor-ddr3
+  FIP_COMPRESS:=1
+endef
+
 define U-Boot/mt7981_rfb-nor
   NAME:=MT7981 Reference Board
   BUILD_SUBTARGET:=filogic
@@ -797,6 +810,7 @@ UBOOT_TARGETS := \
 	mt7981_abt_asr3000 \
 	mt7981_cmcc_rax3000m-emmc \
 	mt7981_cmcc_rax3000m-nand \
+	mt7981_gatonetworks_gdsp \
 	mt7981_glinet_gl-x3000 \
 	mt7981_glinet_gl-xe3000 \
 	mt7981_h3c_magic-nx30-pro \
diff --git a/package/boot/uboot-mediatek/patches/457-initialized-the-watchdog-subsystem-later.patch b/package/boot/uboot-mediatek/patches/457-initialized-the-watchdog-subsystem-later.patch
new file mode 100644
index 0000000000..7919b36560
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/457-initialized-the-watchdog-subsystem-later.patch
@@ -0,0 +1,54 @@
+From 9c1ad8a18ac1a20aee7a617964bcae3e90dac700 Mon Sep 17 00:00:00 2001
+From: Enrico Mioso <mrkiko.rs at gmail.com>
+Date: Wed, 23 Oct 2024 17:46:35 +0200
+Subject: [PATCH] uboot-mediatek: initialized the watchdog subsystem later
+
+Initialize the watchdog subsystem later during initialization, to allow for
+the gpio-wdt driver to work.
+
+Signed-off-by: Enrico Mioso <mrkiko.rs at gmail.com>
+---
+ common/board_r.c | 11 ++++-------
+ 1 file changed, 4 insertions(+), 7 deletions(-)
+
+--- a/common/board_r.c
++++ b/common/board_r.c
+@@ -663,19 +663,13 @@ static init_fnc_t init_sequence_r[] = {
+ 	serial_initialize,
+ 	initr_announce,
+ 	dm_announce,
+-#if CONFIG_IS_ENABLED(WDT)
+-	initr_watchdog,
+-#endif
+-	INIT_FUNC_WATCHDOG_RESET
+ 	arch_initr_trap,
+ #if defined(CONFIG_BOARD_EARLY_INIT_R)
+ 	board_early_init_r,
+ #endif
+-	INIT_FUNC_WATCHDOG_RESET
+ #ifdef CONFIG_POST
+ 	post_output_backlog,
+ #endif
+-	INIT_FUNC_WATCHDOG_RESET
+ #if defined(CONFIG_PCI_INIT_R) && defined(CONFIG_SYS_EARLY_PCI_INIT)
+ 	/*
+ 	 * Do early PCI configuration _before_ the flash gets initialised,
+@@ -690,7 +684,6 @@ static init_fnc_t init_sequence_r[] = {
+ #ifdef CONFIG_MTD_NOR_FLASH
+ 	initr_flash,
+ #endif
+-	INIT_FUNC_WATCHDOG_RESET
+ #if defined(CONFIG_PPC) || defined(CONFIG_M68K) || defined(CONFIG_X86)
+ 	/* initialize higher level parts of CPU like time base and timers */
+ 	cpu_init_r,
+@@ -719,6 +712,10 @@ static init_fnc_t init_sequence_r[] = {
+ #ifdef CONFIG_PVBLOCK
+ 	initr_pvblock,
+ #endif
++#if CONFIG_IS_ENABLED(WDT)
++	initr_watchdog,
++#endif
++	INIT_FUNC_WATCHDOG_RESET
+ 	initr_env,
+ #ifdef CONFIG_SYS_MALLOC_BOOTPARAMS
+ 	initr_malloc_bootparams,
diff --git a/package/boot/uboot-mediatek/patches/458-add-GatoNetworks-GDSP.patch b/package/boot/uboot-mediatek/patches/458-add-GatoNetworks-GDSP.patch
new file mode 100644
index 0000000000..28bdd95e15
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/458-add-GatoNetworks-GDSP.patch
@@ -0,0 +1,406 @@
+From 57d0f608d925cb688b5c9b71512fca7d228f07f6 Mon Sep 17 00:00:00 2001
+From: Enrico Mioso <mrkiko.rs at gmail.com>
+Date: Wed, 23 Oct 2024 20:39:28 +0200
+Subject: [PATCH] add GatoNetworks GDSP
+
+Signed-off-by: Enrico Mioso <mrkiko.rs at gmail.com>
+---
+ arch/arm/dts/mt7981-gatonetworks_gdsp.dts  | 200 +++++++++++++++++++++
+ configs/mt7981_gatonetworks_gdsp_defconfig | 144 +++++++++++++++
+ gatonetworks_gdsp_env                      |  38 ++++
+ 3 files changed, 382 insertions(+)
+ create mode 100644 arch/arm/dts/mt7981-gatonetworks_gdsp.dts
+ create mode 100644 configs/mt7981_gatonetworks_gdsp_defconfig
+ create mode 100644 gatonetworks_gdsp_env
+
+--- /dev/null
++++ b/arch/arm/dts/mt7981-gatonetworks_gdsp.dts
+@@ -0,0 +1,200 @@
++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
++
++/dts-v1/;
++#include "mt7981.dtsi"
++#include <dt-bindings/gpio/gpio.h>
++#include <dt-bindings/input/linux-event-codes.h>
++
++/ {
++	#address-cells = <1>;
++	#size-cells = <1>;
++	model = "GatoNetworks GDSP";
++	compatible = "gatonetworks,gdsp", "mediatek,mt7981";
++  chosen {
++		stdout-path = &uart0;
++		tick-timer = &timer0;
++  };
++
++	memory {
++		device_type = "memory";
++		reg = <0x40000000 0x10000000>;
++	};
++
++	keys {
++		compatible = "gpio-keys";
++
++		reset {
++			label = "reset";
++			linux,code = <KEY_RESTART>;
++			gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
++		};
++	};
++
++	leds {
++		compatible = "gpio-leds";
++
++		sim1 {
++			label = "sim1";
++			gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
++		};
++
++		sim2 {
++			label = "sim2";
++			gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
++		};
++
++		sg1 {
++			label = "sg1";
++			gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
++		};
++
++		sg2 {
++			label = "sg2";
++			gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
++		};
++
++		sg3 {
++			label = "sg3";
++			gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
++		};
++
++		sg4 {
++			label = "sg4";
++			gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
++		};
++
++		sg5 {
++			label = "sg5";
++			gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
++		};
++
++		sg6 {
++			label = "sg6";
++			gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
++		};
++	};
++	gpio-watchdog {
++		compatible = "linux,wdt-gpio";
++		gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
++		hw_algo = "toggle";
++		hw_margin_ms = <25000>;
++		always-running;
++		u-boot,autostart;
++	};
++};
++
++&eth {
++	status = "okay";
++	mediatek,gmac-id = <0>;
++	phy-mode = "2500base-x";
++	mediatek,switch = "mt7531";
++	reset-gpios = <&gpio 39 GPIO_ACTIVE_HIGH>;
++
++	fixed-link {
++		speed = <2500>;
++		full-duplex;
++	};
++};
++
++&spi2 {
++	pinctrl-names = "default";
++	pinctrl-0 = <&spi2_flash_pins>;
++	status = "okay";
++	must_tx;
++	enhance_timing;
++	dma_ext;
++	ipm_design;
++	support_quad;
++	tick_dly = <2>;
++	sample_sel = <0>;
++
++	flash at 0 {
++		compatible = "jedec,spi-nor";
++		reg = <0>;
++		spi-max-frequency = <52000000>;
++
++		partitions {
++			compatible = "fixed-partitions";
++			#address-cells = <1>;
++			#size-cells = <1>;
++
++			partition at 00000 {
++				label = "BL2";
++				reg = <0x00000 0x0040000>;
++				read-only;
++			};
++
++			partition at 40000 {
++				label = "u-boot-env";
++				reg = <0x40000 0x0010000>;
++			};
++
++			partition at 50000 {
++				label = "Factory";
++				reg = <0x50000 0x00B0000>;
++				read-only;
++			};
++
++			partition at 100000 {
++				label = "FIP";
++				reg = <0x100000 0x0080000>;
++			};
++
++			partition at 180000 {
++				label = "firmware";
++				reg = <0x180000 0x1E80000>;
++			};
++		};
++	};
++};
++
++&pinctrl {
++	uart1_pins: uart1-pins {
++		mux {
++			function = "uart";
++			groups = "uart1_0";
++		};
++	};
++
++	uart2_pins: uart2-pins {
++		mux {
++			function = "uart";
++			groups = "uart2_0_tx_rx";
++		};
++	};
++
++	spi2_flash_pins: spi2-pins {
++		mux {
++			function = "spi";
++			groups = "spi2", "spi2_wp_hold";
++		};
++
++		conf-pu {
++			pins = "SPI2_CS", "SPI2_HOLD", "SPI2_WP";
++			drive-strength = <MTK_DRIVE_8mA>;
++			bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
++		};
++
++		conf-pd {
++			pins = "SPI2_CLK", "SPI2_MOSI", "SPI2_MISO";
++			drive-strength = <MTK_DRIVE_8mA>;
++			bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
++		};
++	};
++};
++
++&uart0 {
++	status = "okay";
++};
++
++&uart1 {
++	pinctrl-names = "default";
++	pinctrl-0 = <&uart1_pins>;
++	status = "okay";
++};
++
++&uart2 {
++	pinctrl-names = "default";
++	pinctrl-0 = <&uart2_pins>;
++	status = "okay";
++};
+--- /dev/null
++++ b/configs/mt7981_gatonetworks_gdsp_defconfig
+@@ -0,0 +1,144 @@
++CONFIG_ARM=y
++CONFIG_SYS_HAS_NONCACHED_MEMORY=y
++CONFIG_POSITION_INDEPENDENT=y
++CONFIG_ARCH_MEDIATEK=y
++CONFIG_TEXT_BASE=0x41e00000
++CONFIG_SYS_MALLOC_F_LEN=0x4000
++CONFIG_NR_DRAM_BANKS=1
++CONFIG_ENV_SIZE=0x10000
++CONFIG_ENV_OFFSET=0x0
++CONFIG_DEFAULT_DEVICE_TREE="mt7981-gatonetworks_gdsp"
++CONFIG_OF_LIBFDT_OVERLAY=y
++CONFIG_TARGET_MT7981=y
++CONFIG_WATCHDOG_TIMEOUT_MSECS=25000
++CONFIG_DEBUG_UART_BASE=0x11002000
++CONFIG_DEBUG_UART_CLOCK=40000000
++CONFIG_SYS_LOAD_ADDR=0x46000000
++CONFIG_DEBUG_UART=y
++CONFIG_FIT=y
++CONFIG_SPI_BOOT=y
++CONFIG_AUTOBOOT_MENU_SHOW=y
++CONFIG_USE_PREBOOT=y
++CONFIG_DEFAULT_FDT_FILE="mt7981-gatonetworks_gdsp"
++CONFIG_SYS_CBSIZE=512
++CONFIG_SYS_PBSIZE=1049
++CONFIG_LOGLEVEL=7
++CONFIG_CONSOLE_MUX=y
++CONFIG_LOG=y
++CONFIG_BOARD_LATE_INIT=y
++CONFIG_HUSH_PARSER=y
++CONFIG_SYS_PROMPT="GDSP> "
++CONFIG_SYS_MAXARGS=16
++CONFIG_CMD_BDINFO_EXTRA=y
++CONFIG_CMD_CPU=y
++CONFIG_CMD_HISTORY=y
++CONFIG_CMD_LICENSE=y
++# CONFIG_BOOTM_NETBSD is not set
++# CONFIG_BOOTM_PLAN9 is not set
++# CONFIG_BOOTM_RTEMS is not set
++# CONFIG_BOOTM_VXWORKS is not set
++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set
++CONFIG_CMD_BOOTMENU=y
++CONFIG_CMD_ASKENV=y
++CONFIG_CMD_ERASEENV=y
++CONFIG_CMD_ENV_CALLBACK=y
++CONFIG_CMD_ENV_FLAGS=y
++CONFIG_CRC32_VERIFY=y
++CONFIG_LOOPW=y
++CONFIG_CMD_MEMINFO=y
++CONFIG_CMD_MEMTEST=y
++CONFIG_CMD_STRINGS=y
++# CONFIG_CMD_UNLZ4 is not set
++# CONFIG_CMD_UNZIP is not set
++CONFIG_CMD_DM=y
++CONFIG_CMD_GPIO=y
++CONFIG_CMD_GPIO_READ=y
++CONFIG_CMD_PWM=y
++CONFIG_CMD_MTD=y
++# CONFIG_CMD_NAND_EXT is not set
++CONFIG_CMD_SF_TEST=y
++CONFIG_CMD_CAT=y
++CONFIG_CMD_SETEXPR_FMT=y
++CONFIG_CMD_XXD=y
++CONFIG_CMD_DHCP=y
++CONFIG_CMD_TFTPPUT=y
++CONFIG_CMD_TFTPSRV=y
++CONFIG_CMD_RARP=y
++CONFIG_CMD_PING=y
++CONFIG_CMD_CDP=y
++CONFIG_CMD_SNTP=y
++CONFIG_CMD_DNS=y
++CONFIG_CMD_LINK_LOCAL=y
++CONFIG_CMD_PXE=y
++CONFIG_CMD_CACHE=y
++# CONFIG_CMD_EFICONFIG is not set
++CONFIG_CMD_PSTORE=y
++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
++CONFIG_CMD_UUID=y
++CONFIG_CMD_HASH=y
++CONFIG_CMD_SMC=y
++CONFIG_CMD_FAT=y
++CONFIG_CMD_FS_GENERIC=y
++CONFIG_CMD_FS_UUID=y
++CONFIG_ENV_OVERWRITE=y
++CONFIG_ENV_IS_IN_MTD=y
++CONFIG_ENV_MTD_NAME="u-boot-env"
++CONFIG_ENV_SIZE_REDUND=0x0
++CONFIG_SYS_RELOC_GD_ENV_ADDR=y
++CONFIG_USE_DEFAULT_ENV_FILE=y
++CONFIG_DEFAULT_ENV_FILE="gatonetworks_gdsp_env"
++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
++CONFIG_VERSION_VARIABLE=y
++CONFIG_NET_RANDOM_ETHADDR=y
++CONFIG_NETCONSOLE=y
++CONFIG_REGMAP=y
++CONFIG_SYSCON=y
++CONFIG_BUTTON=y
++CONFIG_BUTTON_GPIO=y
++CONFIG_CLK=y
++CONFIG_GPIO_HOG=y
++CONFIG_LED=y
++CONFIG_LED_BLINK=y
++CONFIG_LED_GPIO=y
++# CONFIG_MMC is not set
++CONFIG_MTD=y
++CONFIG_DM_MTD=y
++CONFIG_MTD_SPI_NAND=y
++CONFIG_DM_SPI_FLASH=y
++CONFIG_SPI_FLASH_SFDP_SUPPORT=y
++CONFIG_SPI_FLASH_EON=y
++CONFIG_SPI_FLASH_GIGADEVICE=y
++CONFIG_SPI_FLASH_ISSI=y
++CONFIG_SPI_FLASH_MACRONIX=y
++CONFIG_SPI_FLASH_SPANSION=y
++CONFIG_SPI_FLASH_STMICRO=y
++CONFIG_SPI_FLASH_WINBOND=y
++CONFIG_SPI_FLASH_XMC=y
++CONFIG_SPI_FLASH_XTX=y
++CONFIG_SPI_FLASH_MTD=y
++CONFIG_UBI_SILENCE_MSG=y
++CONFIG_PHY_FIXED=y
++CONFIG_MEDIATEK_ETH=y
++CONFIG_PHY=y
++CONFIG_PHY_MTK_TPHY=y
++CONFIG_PINCTRL=y
++CONFIG_PINCONF=y
++CONFIG_PINCTRL_MT7981=y
++CONFIG_POWER_DOMAIN=y
++CONFIG_MTK_POWER_DOMAIN=y
++CONFIG_DM_PWM=y
++CONFIG_PWM_MTK=y
++CONFIG_DM_SERIAL=y
++CONFIG_MTK_SERIAL=y
++CONFIG_SPI=y
++CONFIG_DM_SPI=y
++CONFIG_MTK_SPIM=y
++CONFIG_USB=y
++CONFIG_USB_XHCI_HCD=y
++CONFIG_USB_XHCI_MTK=y
++CONFIG_USB_STORAGE=y
++CONFIG_WDT=y
++CONFIG_WDT_GPIO=y
++CONFIG_UBIFS_SILENCE_MSG=y
++CONFIG_HEXDUMP=y
++CONFIG_LMB_MAX_REGIONS=64
+--- /dev/null
++++ b/gatonetworks_gdsp_env
+@@ -0,0 +1,38 @@
++load_factory_data=if env exists factory_data_present ; then else mtd read Factory $loadaddr 0x0 0x1000 ; setenv factory_data_present 1 ; fi
++lan_mac_factory=run load_factory_data ; setexpr macoffs $loadaddr + 0x2a ; env readmem -b lan_mac $macoffs 0x6 ; setenv lan_mac_factory ; setenv macoffs
++wan_mac_factory=run load_factory_data ; setexpr macoffs $loadaddr + 0x24 ; env readmem -b wan_mac $macoffs 0x6 ; setenv wan_mac_factory ; setenv macoffs
++label_mac_factory=run load_factory_data ; setexpr macoffs $loadaddr + 0x4 ; env readmem -b label_mac $macoffs 0x6 ; setenv label_mac_factory ; setenv macoffs
++ethaddr_factory=setenv ethaddr $lan_mac ; setenv ethaddr_factory
++wifi_mac_factory=setenv wifi_mac $label_mac ; setenv wifi_mac_factory
++env_cleanup=setenv load_factory_data ; setenv factory_data_present ; setenv env_cleanup
++ipaddr=192.168.1.1
++serverip=192.168.1.10
++loadaddr=0x46000000
++bootcmd=run boot_nor
++bootdelay=0
++bootfile=openwrt-mediatek-filogic-gatonetworks_gdsp-initramfs-kernel.bin
++bootfile_upg=openwrt-mediatek-filogic-gatonetworks_gdsp-squashfs-sysupgrade.bin
++bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
++bootmenu_default=0
++bootmenu_delay=0
++bootmenu_title=      [0;34m( ( ( [1;39mOpenWrt[0;34m ) ) )[0m
++bootmenu_0=Initialize environment.=run _firstboot
++bootmenu_0d=Run default boot command.=run boot_default
++bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return
++bootmenu_2=Boot system from flash.=run boot_nor ; run bootmenu_confirm_return
++bootmenu_3=Load system via TFTP then write to flash.=run boot_tftp_sysupgrade ; run bootmenu_confirm_return
++bootmenu_4=Reset all settings to factory defaults.=run reset_factory ; reset
++bootmenu_5=Reboot.=reset
++boot_first=if button reset ; then run boot_tftp ; setenv flag_recover 1 ; run boot_default ; fi ; bootmenu
++boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_tftp_forever
++boot_nor=mtd read firmware ${loadaddr} ; bootm $loadaddr
++boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr
++boot_tftp_forever=while true ; do run boot_tftp ; sleep 1 ; done
++boot_tftp_sysupgrade=tftpboot $loadaddr $bootfile_upg && iminfo $loadaddr && run nor_write_production
++reset_factory=env default -a && saveenv && reset
++nor_pad_size=setexpr image_eb $filesize / 0x1000 ; setexpr tmp1 image_size % 0x1000 ; test 0x$tmp1 -gt 0 && setexpr image_eb $image_eb + 1 ; setexpr image_eb $image_eb * 0x1000
++nor_write_production=run nor_pad_size ; test 0x$image_eb -le 0x1e80000 && mtd erase firmware 0x0 0x$image_eb && mtd write firmware $loadaddr 0x0 $filesize
++_init_env=setenv _init_env ; saveenv
++_firstboot=setenv _firstboot ; run _switch_to_menu ; run lan_mac_factory ; run wan_mac_factory ; run label_mac_factory ; run env_cleanup ; run ethaddr_factory ; run wifi_mac_factory ; run _init_env ; run boot_first
++_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
++_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title       [33m$ver[0m"



From lede-commits at lists.infradead.org  Wed Nov 13 20:22:27 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 13 Nov 2024 23:22:27 -0500
Subject: [openwrt/openwrt]  mediatek: filogic: add support for GatoNetworks
 GDSP
In-Reply-To: <173155814571.1927520.3937372903791744501@git-01.infra.openwrt.org>
References: <173155814571.1927520.3937372903791744501@git-01.infra.openwrt.org>
Message-ID: <mailman.159178.1731558259.1280.lede-commits@lists.infradead.org>

dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/b43194e041b17fbb574fb3721dafedcc30a20ab5

commit b43194e041b17fbb574fb3721dafedcc30a20ab5
Author: Enrico Mioso <mrkiko.rs at gmail.com>
AuthorDate: Sat Nov 9 22:14:33 2024 +0100

    mediatek: filogic: add support for GatoNetworks GDSP
    
    The GatoNetworks GDSP is a re-branded version of the R5000 5G Industrial
    router from Yinghua Technologies.
    The re-branded device comes with OpenWrt preinstalled, and an OpenWrt-based
    U-Boot bootloader version. While the flash layout has been kept compatible
    with the OpenWrt version found on the stock device (see [5]), the image format
    changed, making a bootloader upgrade necessary.
    
    Specifications:
    SoC: Mediatek MT7981BA
    RAM: 256MB
    Flash: SPI-NOR 32 MiB (Winbond W25Q256)
    WLAN: MT7976CN DBDC AX Wi-Fi
    Switch: MT7531AE (4x LAN Gigabit ports, 1x WAN Gigabit port)
    5G: Quectel RM520N modem
    Watchdog: an external WDT connected to GPIO 6 is present and always running;
              the built-in Mediatek watchdog is also present and effective, but
              not used at the moment.
    
    This porting has been tested only with 1x 5G modems installed (the device
    supports up to two).
    
    Installation:
    Installation is possible via sysupgrade both in the stock device and
    re-branded version. However, in the former case, updating the bootloader is
    required.
    
    OpenWrt-based U-Boot Bootloader installation
    --------------------------------------------
    The firmware flashed in the re-branded device at manifacturing time will
    flash an OpenWrt-based U-Boot bootloader with some extra recovery features
    (see [1]) at first boot.
    To update the bootloader, you need to install the mtd-rw module and
    insmod it:
    
    insmod mtd-rw i_want_a_brick=1
    
    Then update relevant flash partitions:
    
    mtd erase u-boot-env
    mtd erase BL2
    mtd erase FIP
    mtd write openwrt-mediatek-filogic-gatonetworks_gdsp-preloader.bin BL2
    mtd write openwrt-mediatek-filogic-gatonetworks_gdsp-bl31-uboot.fip FIP
    
    And reboot, making sure all previous commands ran succesfully.
    If something goes wrong, you can recover your device via the mtk_uartboot
    tool.
    In my testing, it was possible to start the process even without (un)-plugging
    the device, may be handy for remote recovery.
    
    Installation from stock device and firmware
    -------------------------------------------
    To install vanilla OpenWrt in the stock device (R5000 5G Industrial router
    from Yinghua Technologies) running the stock vendor firmware, you will need
    to update your bootloader as described in previous section. Remember to use
    -F (force upgrade) and -n (not keeping settings).
    
    U-Boot Recovery
    ---------------
    This procedure has been tested only with the OpenWrt-based U-boot bootloader.
    Assign your system static IP address 192.168.1.1 and start a TFTP server. The
    device will look for an initramfs image named
    openwrt-mediatek-filogic-gatonetworks_gdsp-initramfs-kernel.bin
    (so you may use openwrt/bin/targets/mediatek/filogic as root dir for your
    TFTP server).
    Power on the device while keeping the reset button pressed, until you see
    a TFTP request from 192.168.1.10. Your environment will be restored to it's
    default state.
    
    MAC addresses assignment
    ------------------------
    MAC addresses are assigned slightly differently than in stock firmware. In
    particular, the 5 GHz Wi-Fi uses 2.4 GHZ MAC + 1, rather than reusing it with
    LA bit set as done in stock firmware. This MAC address is allocated to the
    device, so it can be used.
    The 2.4 GHz Wi-Fi MAC address is the label MAC. LAN MAC is used to set the
    special U-Boot environment ethaddr variable.
    
    device                                  MAC address             U-Boot env variable             factory partition offset
    2.4 GHz Wi-Fi           :84                                             wifi_mac                                                        0x4
    5.8 GHz Wi-Fi           :85                                             not present                                             not present
    WAN                                                     :86                                             wan_mac                                                         0x24
    LAN                                                     :87                                             lan_mac                                                         0x2A
    
    Notes
    -----
    [1]: the OpenWrt-based U-Boot bootloader you will find installed in the
    re-branded device is configured to request for the initramfs image via
    TFTP for $gdsp_tftp_tries times before trying normal boot from NOR flash.
    Setting this U-Boot environment variable to 0x0 will disable the feature,
    which is not implemented in this patch.
    [2]: the exposed UART port is connected to ttyS1; the ttyS0 console port is
    not exposed.
    [3]: the provided bootloader environment has no provision for operating on
    BL2 and the FIP partitions. This is an intentional choice to make it
    (slightly) more difficult to brick the device.
    [4]: it seems GPIO 6 is used both for the "SYS" LED and external WDT.
    [5] BL2 expects to find FIP payload at a fixed offset, so some constraints
    apply.
    
    Signed-off-by: Enrico Mioso <mrkiko.rs at gmail.com>
---
 .../mediatek/dts/mt7981b-gatonetworks-gdsp.dts     | 389 +++++++++++++++++++++
 .../filogic/base-files/lib/upgrade/platform.sh     |   1 +
 target/linux/mediatek/image/filogic.mk             |  20 ++
 3 files changed, 410 insertions(+)

diff --git a/target/linux/mediatek/dts/mt7981b-gatonetworks-gdsp.dts b/target/linux/mediatek/dts/mt7981b-gatonetworks-gdsp.dts
new file mode 100644
index 0000000000..fd9fdca124
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7981b-gatonetworks-gdsp.dts
@@ -0,0 +1,389 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+/dts-v1/;
+#include "mt7981.dtsi"
+
+/ {
+	model = "GatoNetworks GDSP";
+	compatible = "gatonetworks,gdsp", "mediatek,mt7981";
+
+	aliases {
+		serial0 = &uart0;
+		label-mac-device = &wifi_band_0;
+		led-boot = &sg1;
+		led-failsafe = &sg1;
+		led-running = &sg1;
+		led-upgrade = &sg1;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+		bootargs = "console=ttyS0,115200n1 earlycon=uart8250,mmio32,0x11002000";
+		rootdisk = <&firmware>;
+	};
+
+	memory {
+		reg = <0 0x40000000 0 0x10000000>;
+	};
+
+	reg_3p3v: regulator-3p3v {
+		compatible = "regulator-fixed";
+		regulator-name = "fixed-3.3V";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	reg_5v: regulator-5v {
+		compatible = "regulator-fixed";
+		regulator-name = "fixed-5V";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&pio 1 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	gpio-export {
+		compatible = "gpio-export";
+
+		modem1 {
+			gpio-export,name = "modem1";
+			gpio-export,output = <0>;
+			gpios = <&pio 2 GPIO_ACTIVE_LOW>;
+		};
+
+		modem2 {
+			gpio-export,name = "modem2";
+			gpio-export,output = <0>;
+			gpios = <&pio 14 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		sim1 {
+			label = "green:sim1";
+			gpios = <&pio 13 GPIO_ACTIVE_LOW>;
+		};
+
+		sim2 {
+			label = "green:sim2";
+			gpios = <&pio 0 GPIO_ACTIVE_LOW>;
+		};
+
+		sg1: sg1 {
+			label = "green:sg1";
+			gpios = <&pio 10 GPIO_ACTIVE_LOW>;
+		};
+
+		sg2 {
+			label = "green:sg2";
+			gpios = <&pio 11 GPIO_ACTIVE_LOW>;
+		};
+
+		sg3 {
+			label = "green:sg3";
+			gpios = <&pio 12 GPIO_ACTIVE_LOW>;
+		};
+
+		sg4 {
+			label = "green:sg4";
+			gpios = <&pio 7 GPIO_ACTIVE_LOW>;
+		};
+
+		sg5 {
+			label = "green:sg5";
+			gpios = <&pio 8 GPIO_ACTIVE_LOW>;
+		};
+
+		sg6 {
+			label = "green:sg6";
+			gpios = <&pio 9 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	gpio-watchdog {
+		compatible = "linux,wdt-gpio";
+		gpios = <&pio 6 GPIO_ACTIVE_LOW>;
+		hw_algo = "toggle";
+		hw_margin_ms = <25000>;
+		always-running;
+	};
+};
+
+&watchdog {
+	status = "okay";
+};
+
+&eth {
+	status = "okay";
+
+	gmac0: mac at 0 {
+		compatible = "mediatek,eth-mac";
+		reg = <0>;
+		phy-mode = "2500base-x";
+
+		nvmem-cells = <&macaddr_lan>;
+		nvmem-cell-names = "mac-address";
+
+		fixed-link {
+			speed = <2500>;
+			full-duplex;
+			pause;
+		};
+	};
+
+	mdio: mdio-bus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		switch at 1f {
+			compatible = "mediatek,mt7531";
+			reg = <31>;
+			reset-gpios = <&pio 39 0>;
+			interrupt-controller;
+			#interrupt-cells = <1>;
+			interrupt-parent = <&pio>;
+			interrupts = <38 IRQ_TYPE_LEVEL_HIGH>;
+
+			mdio {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				swphy0: phy at 0 {
+					reg = <0>;
+				};
+
+				swphy1: phy at 1 {
+					reg = <1>;
+				};
+
+				swphy2: phy at 2 {
+					reg = <2>;
+				};
+
+				swphy3: phy at 3 {
+					reg = <3>;
+				};
+
+				swphy4: phy at 4 {
+					reg = <4>;
+				};
+			};
+
+			ports {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				port at 0 {
+					reg = <0>;
+					label = "lan1";
+					phy-handle = <&swphy0>;
+				};
+
+				port at 1 {
+					reg = <1>;
+					label = "lan2";
+					phy-handle = <&swphy1>;
+				};
+
+				port at 2 {
+					reg = <2>;
+					label = "lan3";
+					phy-handle = <&swphy2>;
+				};
+
+				port at 3 {
+					reg = <3>;
+					label = "lan4";
+					phy-handle = <&swphy3>;
+				};
+
+				port at 4 {
+					reg = <4>;
+					label = "wan";
+					nvmem-cells = <&macaddr_wan>;
+					nvmem-cell-names = "mac-address";
+					phy-handle = <&swphy4>;
+				};
+
+				port at 6 {
+					reg = <6>;
+					ethernet = <&gmac0>;
+					phy-mode = "2500base-x";
+
+					fixed-link {
+						speed = <2500>;
+						full-duplex;
+						pause;
+					};
+				};
+			};
+		};
+	};
+};
+
+&crypto {
+	status = "okay";
+};
+
+&wifi {
+	mediatek,mtd-eeprom = <&factory 0x0>;
+	status = "okay";
+
+	wifi_band_0: band at 0 {
+		reg = <0>;
+		nvmem-cells = <&macaddr_wifi 0>;
+		nvmem-cell-names = "mac-address";
+	};
+
+	band at 1 {
+		reg = <1>;
+		nvmem-cells = <&macaddr_wifi 1>;
+		nvmem-cell-names = "mac-address";
+	};
+};
+
+&spi2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&spi2_flash_pins>;
+	status = "okay";
+
+	flash at 0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <52000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 00000 {
+				label = "BL2";
+				reg = <0x00000 0x0040000>;
+				read-only;
+			};
+
+			partition at 40000 {
+				label = "u-boot-env";
+				reg = <0x40000 0x0010000>;
+			};
+
+			factory: partition at 50000 {
+				label = "Factory";
+				reg = <0x50000 0x00B0000>;
+				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_wifi: macaddr at 4 {
+						reg = <0x4 0x6>;
+						compatible = "mac-base";
+						#nvmem-cell-cells = <1>;
+					};
+
+					macaddr_wan: macaddr at 24 {
+						reg = <0x24 0x6>;
+					};
+
+					macaddr_lan: macaddr at 2a {
+						reg = <0x2a 0x6>;
+					};
+				};
+			};
+
+			partition at 100000 {
+				label = "FIP";
+				reg = <0x100000 0x0080000>;
+				read-only;
+			};
+
+			firmware: partition at 180000 {
+				label = "firmware";
+				reg = <0x180000 0x1E80000>;
+			};
+		};
+	};
+};
+
+&pio {
+	uart1_pins: uart1-pins {
+		mux {
+			function = "uart";
+			groups = "uart1_0";
+		};
+	};
+
+	uart2_pins: uart2-pins {
+		mux {
+			function = "uart";
+			groups = "uart2_0_tx_rx";
+		};
+	};
+
+	spi2_flash_pins: spi2-pins {
+		mux {
+			function = "spi";
+			groups = "spi2", "spi2_wp_hold";
+		};
+
+		conf-pu {
+			pins = "SPI2_CS", "SPI2_HOLD", "SPI2_WP";
+			drive-strength = <MTK_DRIVE_8mA>;
+			bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
+		};
+
+		conf-pd {
+			pins = "SPI2_CLK", "SPI2_MOSI", "SPI2_MISO";
+			drive-strength = <MTK_DRIVE_8mA>;
+			bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
+		};
+	};
+};
+
+&uart0 {
+	status = "okay";
+};
+
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart1_pins>;
+	status = "okay";
+};
+
+&uart2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart2_pins>;
+	status = "okay";
+};
+
+&usb_phy {
+	status = "okay";
+};
+
+&xhci {
+	mediatek,u3p-dis-msk = <0x0>;
+	phys = <&u2port0 PHY_TYPE_USB2>,
+	       <&u3port0 PHY_TYPE_USB3>;
+	status = "okay";
+	vusb33-supply = <&reg_3p3v>;
+	vbus-supply = <&reg_5v>;
+};
diff --git a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
index 7fe2d29d31..cfd77b62d7 100755
--- a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
@@ -70,6 +70,7 @@ platform_do_upgrade() {
 	bananapi,bpi-r4|\
 	bananapi,bpi-r4-poe|\
 	cmcc,rax3000m|\
+	gatonetworks,gdsp|\
 	h3c,magic-nx30-pro|\
 	jcg,q30-pro|\
 	jdcloud,re-cp-03|\
diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index 5dfde755a0..739fd54308 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -670,6 +670,26 @@ define Device/edgecore_eap111
 endef
 TARGET_DEVICES += edgecore_eap111
 
+define Device/gatonetworks_gdsp
+  DEVICE_VENDOR := GatoNetworks
+  DEVICE_MODEL := gdsp
+  DEVICE_DTS := mt7981b-gatonetworks-gdsp
+  DEVICE_DTS_DIR := ../dts
+  IMAGES := sysupgrade.itb
+  IMAGE_SIZE := 32768k
+  DEVICE_PACKAGES := fitblk kmod-mt7915e kmod-mt7981-firmware \
+    kmod-usb-net-qmi-wwan kmod-usb-serial-option kmod-usb3 \
+    mt7981-wo-firmware -kmod-phy-aquantia
+  ARTIFACTS := preloader.bin bl31-uboot.fip
+  ARTIFACT/preloader.bin := mt7981-bl2 nor-ddr3
+  ARTIFACT/bl31-uboot.fip := mt7981-bl31-uboot gatonetworks_gdsp
+  KERNEL := kernel-bin | gzip
+  KERNEL_INITRAMFS := kernel-bin | lzma | \
+	fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
+  IMAGE/sysupgrade.itb := append-kernel | fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | pad-rootfs | append-metadata
+endef
+TARGET_DEVICES += gatonetworks_gdsp
+
 define Device/glinet_gl-mt2500
   DEVICE_VENDOR := GL.iNet
   DEVICE_MODEL := GL-MT2500



From lede-commits at lists.infradead.org  Wed Nov 13 20:22:26 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 13 Nov 2024 23:22:26 -0500
Subject: [openwrt/openwrt]  uboot-envtools: add support for GatoNetworks GDSP
In-Reply-To: <173155814571.1927520.3937372903791744501@git-01.infra.openwrt.org>
References: <173155814571.1927520.3937372903791744501@git-01.infra.openwrt.org>
Message-ID: <mailman.159179.1731558259.1280.lede-commits@lists.infradead.org>

dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/785ebf2baff4adadf818d71a99fdb2d2300590ba

commit 785ebf2baff4adadf818d71a99fdb2d2300590ba
Author: Enrico Mioso <mrkiko.rs at gmail.com>
AuthorDate: Sat Nov 9 22:14:32 2024 +0100

    uboot-envtools: add support for GatoNetworks GDSP
    
    This configuration should work with both stock and OpenWrt-based U-Boot.
    
    Signed-off-by: Enrico Mioso <mrkiko.rs at gmail.com>
---
 package/boot/uboot-envtools/files/mediatek_filogic | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/package/boot/uboot-envtools/files/mediatek_filogic b/package/boot/uboot-envtools/files/mediatek_filogic
index a38024de65..9de1a4d75d 100644
--- a/package/boot/uboot-envtools/files/mediatek_filogic
+++ b/package/boot/uboot-envtools/files/mediatek_filogic
@@ -86,6 +86,9 @@ zbtlink,zbt-z8103ax)
 dlink,aquila-pro-ai-m30-a1)
 	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x40000" "0x40000"
 	;;
+gatonetworks,gdsp)
+	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x10000"
+	;;
 glinet,gl-x3000|\
 glinet,gl-xe3000|\
 glinet,gl-mt2500|\



From lede-commits at lists.infradead.org  Thu Nov 14 01:01:34 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 14 Nov 2024 04:01:34 -0500
Subject: [openwrt/openwrt]  ipq806x: tr4400v2: revert nesting of MTD
 partitions that bricks device
In-Reply-To: <173157489486.2222443.4691551710016023525@git-01.infra.openwrt.org>
References: <173157489486.2222443.4691551710016023525@git-01.infra.openwrt.org>
Message-ID: <mailman.159263.1731574902.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/0e59eaa7962fc21635af5c9d2f6552a4accdc7ea

commit 0e59eaa7962fc21635af5c9d2f6552a4accdc7ea
Author: Rodrigo Balerdi <lanchon at gmail.com>
AuthorDate: Wed Nov 13 17:23:52 2024 -0300

    ipq806x: tr4400v2: revert nesting of MTD partitions that bricks device
    
    This reverts commit e1043a746a1030062e73ea027d9a35c58bce6c6a, that
    attempts to nest partitions that overlap but are not nested. This
    causes the 'ubi' partition to be truncated, making rootfs inaccessible
    and bricking the device.
    
    Also, had this commit worked, it would have renumbered MTD partitions
    in a way that would have broken documented scripts for installation and
    update of main and recovery OSes, making backups, return to stock, etc,
    and broken user configurations that put the 'extra' partition to use.
    
    Signed-off-by: Rodrigo Balerdi <lanchon at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16944
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 .../arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts   | 80 ++++++++++------------
 1 file changed, 35 insertions(+), 45 deletions(-)

diff --git a/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts b/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts
index 8818e95e8d..8410721b72 100644
--- a/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts
+++ b/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts
@@ -207,15 +207,6 @@
 			stock_partition at 1340000 {
 				label = "stock_rootfs";
 				reg = <0x1340000 0x4000000>;
-
-				compatible = "fixed-partitions";
-				#address-cells = <1>;
-				#size-cells = <1>;
-
-				partition at 0 {
-					label = "extra";
-					reg = <0x0 0x4000000>;
-				};
 			};
 			partition at 5340000 {
 				label = "0:BOOTCONFIG";
@@ -265,42 +256,6 @@
 			stock_partition at 6400000 {
 				label = "stock_rootfs_1";
 				reg = <0x6400000 0x4000000>;
-
-				compatible = "fixed-partitions";
-				#address-cells = <1>;
-				#size-cells = <1>;
-
-				partition at 0 {
-					label = "fw_env";
-					reg = <0x0 0x100000>;
-
-					nvmem-layout {
-						compatible = "fixed-layout";
-						#address-cells = <1>;
-						#size-cells = <1>;
-
-						macaddr_fw_env_0: macaddr at 0 {
-							reg = <0x00 0x6>;
-						};
-						macaddr_fw_env_6: macaddr at 6 {
-							reg = <0x06 0x6>;
-						};
-						macaddr_fw_env_c: macaddr at c {
-							reg = <0x0c 0x6>;
-						};
-						macaddr_fw_env_12: macaddr at 12 {
-							reg = <0x12 0x6>;
-						};
-						macaddr_fw_env_18: macaddr at 18 {
-							reg = <0x18 0x6>;
-						};
-					};
-				};
-
-				partition at 100000 {
-					label = "ubi";
-					reg = <0x100000 0x9b00000>;
-				};
 			};
 			stock_partition at a400000 {
 				label = "stock_fw_env";
@@ -318,6 +273,41 @@
 				label = "stock_scfgmgr";
 				reg = <0xaf00000 0x0100000>;
 			};
+
+			partition at 6400000 {
+				label = "fw_env";
+				reg = <0x6400000 0x0100000>;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_fw_env_0: macaddr at 0 {
+						reg = <0x00 0x6>;
+					};
+					macaddr_fw_env_6: macaddr at 6 {
+						reg = <0x06 0x6>;
+					};
+					macaddr_fw_env_c: macaddr at c {
+						reg = <0x0c 0x6>;
+					};
+					macaddr_fw_env_12: macaddr at 12 {
+						reg = <0x12 0x6>;
+					};
+					macaddr_fw_env_18: macaddr at 18 {
+						reg = <0x18 0x6>;
+					};
+				};
+			};
+			partition at 6500000 {
+				label = "ubi";
+				reg = <0x6500000 0x9b00000>;
+			};
+			partition at 1340000 {
+				label = "extra";
+				reg = <0x1340000 0x4000000>;
+			};
 		};
 	};
 };



From lede-commits at lists.infradead.org  Thu Nov 14 01:05:19 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 14 Nov 2024 04:05:19 -0500
Subject: [openwrt/openwrt]  ipq806x: tr4400v2: revert nesting of MTD
 partitions that bricks device
In-Reply-To: <173157511930.2228973.7962222524127485911@git-01.infra.openwrt.org>
References: <173157511930.2228973.7962222524127485911@git-01.infra.openwrt.org>
Message-ID: <mailman.159266.1731575124.1280.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/1fdc4b144b095fa881746a74d4a8488b317f199b

commit 1fdc4b144b095fa881746a74d4a8488b317f199b
Author: Rodrigo Balerdi <lanchon at gmail.com>
AuthorDate: Wed Nov 13 17:23:52 2024 -0300

    ipq806x: tr4400v2: revert nesting of MTD partitions that bricks device
    
    This reverts commit e1043a746a1030062e73ea027d9a35c58bce6c6a, that
    attempts to nest partitions that overlap but are not nested. This
    causes the 'ubi' partition to be truncated, making rootfs inaccessible
    and bricking the device.
    
    Also, had this commit worked, it would have renumbered MTD partitions
    in a way that would have broken documented scripts for installation and
    update of main and recovery OSes, making backups, return to stock, etc,
    and broken user configurations that put the 'extra' partition to use.
    
    Signed-off-by: Rodrigo Balerdi <lanchon at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16944
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 0e59eaa7962fc21635af5c9d2f6552a4accdc7ea)
---
 .../arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts   | 80 ++++++++++------------
 1 file changed, 35 insertions(+), 45 deletions(-)

diff --git a/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts b/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts
index 8818e95e8d..8410721b72 100644
--- a/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts
+++ b/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts
@@ -207,15 +207,6 @@
 			stock_partition at 1340000 {
 				label = "stock_rootfs";
 				reg = <0x1340000 0x4000000>;
-
-				compatible = "fixed-partitions";
-				#address-cells = <1>;
-				#size-cells = <1>;
-
-				partition at 0 {
-					label = "extra";
-					reg = <0x0 0x4000000>;
-				};
 			};
 			partition at 5340000 {
 				label = "0:BOOTCONFIG";
@@ -265,42 +256,6 @@
 			stock_partition at 6400000 {
 				label = "stock_rootfs_1";
 				reg = <0x6400000 0x4000000>;
-
-				compatible = "fixed-partitions";
-				#address-cells = <1>;
-				#size-cells = <1>;
-
-				partition at 0 {
-					label = "fw_env";
-					reg = <0x0 0x100000>;
-
-					nvmem-layout {
-						compatible = "fixed-layout";
-						#address-cells = <1>;
-						#size-cells = <1>;
-
-						macaddr_fw_env_0: macaddr at 0 {
-							reg = <0x00 0x6>;
-						};
-						macaddr_fw_env_6: macaddr at 6 {
-							reg = <0x06 0x6>;
-						};
-						macaddr_fw_env_c: macaddr at c {
-							reg = <0x0c 0x6>;
-						};
-						macaddr_fw_env_12: macaddr at 12 {
-							reg = <0x12 0x6>;
-						};
-						macaddr_fw_env_18: macaddr at 18 {
-							reg = <0x18 0x6>;
-						};
-					};
-				};
-
-				partition at 100000 {
-					label = "ubi";
-					reg = <0x100000 0x9b00000>;
-				};
 			};
 			stock_partition at a400000 {
 				label = "stock_fw_env";
@@ -318,6 +273,41 @@
 				label = "stock_scfgmgr";
 				reg = <0xaf00000 0x0100000>;
 			};
+
+			partition at 6400000 {
+				label = "fw_env";
+				reg = <0x6400000 0x0100000>;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_fw_env_0: macaddr at 0 {
+						reg = <0x00 0x6>;
+					};
+					macaddr_fw_env_6: macaddr at 6 {
+						reg = <0x06 0x6>;
+					};
+					macaddr_fw_env_c: macaddr at c {
+						reg = <0x0c 0x6>;
+					};
+					macaddr_fw_env_12: macaddr at 12 {
+						reg = <0x12 0x6>;
+					};
+					macaddr_fw_env_18: macaddr at 18 {
+						reg = <0x18 0x6>;
+					};
+				};
+			};
+			partition at 6500000 {
+				label = "ubi";
+				reg = <0x6500000 0x9b00000>;
+			};
+			partition at 1340000 {
+				label = "extra";
+				reg = <0x1340000 0x4000000>;
+			};
 		};
 	};
 };



From lede-commits at lists.infradead.org  Thu Nov 14 02:56:18 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 14 Nov 2024 05:56:18 -0500
Subject: [openwrt/openwrt]  Revert "apk: update to Git
 417a93ceae540444fdbd3f76d1dadf0e15621fdc (2024-11-13)"
In-Reply-To: <173158177831.2377539.12005383530856225336@git-01.infra.openwrt.org>
References: <173158177831.2377539.12005383530856225336@git-01.infra.openwrt.org>
Message-ID: <mailman.159433.1731584646.1280.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/dab5ca818ef46b32a9c120b5136fd5a1a34a88a5

commit dab5ca818ef46b32a9c120b5136fd5a1a34a88a5
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Thu Nov 14 09:02:13 2024 +0000

    Revert "apk: update to Git 417a93ceae540444fdbd3f76d1dadf0e15621fdc (2024-11-13)"
    
    This reverts commit c6a3a11c07fdd85baf9ae43d718eb7a317995ed8 as it was
    reported, that it causes issues:
    
     ERROR: failed to read repositories: /dev/zero: No buffer space available
     ERROR: unable to select packages:
       ca-bundle-20240203-r1:
         error: uninstallable
         arch: all
         satisfies: world[ca-bundle]
    
    Reported-by: xiao bo <peterwillcn at gmail.com>
    References: https://github.com/openwrt/openwrt/commit/c6a3a11c07fdd85baf9ae43d718eb7a317995ed8#commitcomment-149072959
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/system/apk/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/system/apk/Makefile b/package/system/apk/Makefile
index e911f4ae4b..2d637fa180 100644
--- a/package/system/apk/Makefile
+++ b/package/system/apk/Makefile
@@ -5,9 +5,9 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_URL=https://gitlab.alpinelinux.org/alpine/apk-tools.git
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2024-11-13
-PKG_SOURCE_VERSION:=417a93ceae540444fdbd3f76d1dadf0e15621fdc
-PKG_MIRROR_HASH:=3888aa506f0ce808cbe0287b98abfb7ba92e68b1eb17516fef4b58068bc72131
+PKG_SOURCE_DATE:=2024-11-08
+PKG_SOURCE_VERSION:=d9c24813d983df9524fa7a2b78fc3132c159a20f
+PKG_MIRROR_HASH:=3d1a79c08ef8c8b9404f9287d9acda6468b8b1c2a99dd384287f522ed3b1a047
 
 PKG_VERSION=3.0.0_pre$(subst -,,$(PKG_SOURCE_DATE))
 



From lede-commits at lists.infradead.org  Thu Nov 14 03:39:48 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 14 Nov 2024 06:39:48 -0500
Subject: [openwrt/openwrt]  apk: host: set lua version to 5.1 to fix help
In-Reply-To: <173158438896.2431174.10414849387834531597@git-01.infra.openwrt.org>
References: <173158438896.2431174.10414849387834531597@git-01.infra.openwrt.org>
Message-ID: <mailman.159466.1731585652.1280.lede-commits@lists.infradead.org>

jogo pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/deeb29e6feccf1359d15f708a91bb53bc957bbe0

commit deeb29e6feccf1359d15f708a91bb53bc957bbe0
Author: Jonas Gorski <jonas.gorski at gmail.com>
AuthorDate: Thu Nov 14 11:21:41 2024 +0100

    apk: host: set lua version to 5.1 to fix help
    
    Commit b2a84c86e3 ("apk: host: make the help available") enabled the
    host build for lua (5.1) as a dependency, but apk defaults to lua 5.3.
    This caused it to ignore our lua, and only build the help if the host
    system had lua 5.3 installed.
    
    Fix this by explicitly setting the lua version to ours.
    
    Fixes: b2a84c86e3 ("apk: host: make the help available")
    Signed-off-by: Jonas Gorski <jonas.gorski at gmail.com>
---
 package/system/apk/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/system/apk/Makefile b/package/system/apk/Makefile
index 2d637fa180..fec6d5325c 100644
--- a/package/system/apk/Makefile
+++ b/package/system/apk/Makefile
@@ -53,6 +53,7 @@ MESON_HOST_VARS+=VERSION=$(PKG_VERSION)
 MESON_VARS+=VERSION=$(PKG_VERSION)
 
 MESON_HOST_ARGS += \
+	-Dlua_version=5.1 \
 	-Dcompressed-help=false \
 	-Ddocs=disabled \
 	-Durl_backend=wget \



From lede-commits at lists.infradead.org  Thu Nov 14 03:39:50 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 14 Nov 2024 06:39:50 -0500
Subject: [openwrt/openwrt]  apk: explicitly enable help
In-Reply-To: <173158438896.2431174.10414849387834531597@git-01.infra.openwrt.org>
References: <173158438896.2431174.10414849387834531597@git-01.infra.openwrt.org>
Message-ID: <mailman.159467.1731585652.1280.lede-commits@lists.infradead.org>

jogo pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/b67db1b0fc9528f7bf7b5dc47b276e4ad146ae00

commit b67db1b0fc9528f7bf7b5dc47b276e4ad146ae00
Author: Jonas Gorski <jonas.gorski at gmail.com>
AuthorDate: Thu Nov 14 12:03:44 2024 +0100

    apk: explicitly enable help
    
    Explicitly enable help so that the build will fail when an appropriate
    lua binary isn't found instead of silently disabling the feature.
    
    Signed-off-by: Jonas Gorski <jonas.gorski at gmail.com>
---
 package/system/apk/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/system/apk/Makefile b/package/system/apk/Makefile
index 4ce8f21a48..1ddc9635ad 100644
--- a/package/system/apk/Makefile
+++ b/package/system/apk/Makefile
@@ -55,6 +55,7 @@ MESON_VARS+=VERSION=$(PKG_VERSION)
 MESON_COMMON_ARGS = \
 	-Dcompressed-help=false \
 	-Ddocs=disabled \
+	-Dhelp=enabled \
 	-Dlua_version=5.1 \
 	-Durl_backend=wget \
 	-Dzstd=false



From lede-commits at lists.infradead.org  Thu Nov 14 03:39:49 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 14 Nov 2024 06:39:49 -0500
Subject: [openwrt/openwrt]  apk: move common meson args to its own variable
In-Reply-To: <173158438896.2431174.10414849387834531597@git-01.infra.openwrt.org>
References: <173158438896.2431174.10414849387834531597@git-01.infra.openwrt.org>
Message-ID: <mailman.159468.1731585652.1280.lede-commits@lists.infradead.org>

jogo pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/954d2ad81b86762a7310a550158f0b35a0f81090

commit 954d2ad81b86762a7310a550158f0b35a0f81090
Author: Jonas Gorski <jonas.gorski at gmail.com>
AuthorDate: Thu Nov 14 12:01:40 2024 +0100

    apk: move common meson args to its own variable
    
    Most apk meson args are shared between host and target builds, so lets
    have a common variable for them.
    
    Signed-off-by: Jonas Gorski <jonas.gorski at gmail.com>
---
 package/system/apk/Makefile | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/package/system/apk/Makefile b/package/system/apk/Makefile
index fec6d5325c..4ce8f21a48 100644
--- a/package/system/apk/Makefile
+++ b/package/system/apk/Makefile
@@ -52,21 +52,20 @@ endef
 MESON_HOST_VARS+=VERSION=$(PKG_VERSION)
 MESON_VARS+=VERSION=$(PKG_VERSION)
 
-MESON_HOST_ARGS += \
-	-Dlua_version=5.1 \
+MESON_COMMON_ARGS = \
 	-Dcompressed-help=false \
 	-Ddocs=disabled \
+	-Dlua_version=5.1 \
 	-Durl_backend=wget \
-	-Dcrypto_backend=openssl \
 	-Dzstd=false
 
+MESON_HOST_ARGS += \
+	$(MESON_COMMON_ARGS) \
+	-Dcrypto_backend=openssl
+
 MESON_ARGS += \
-	-Dlua_version=5.1 \
-	-Dcompressed-help=false \
-	-Ddocs=disabled \
-	-Durl_backend=wget \
-	-Dcrypto_backend=$(BUILD_VARIANT) \
-	-Dzstd=false
+	$(MESON_COMMON_ARGS) \
+	-Dcrypto_backend=$(BUILD_VARIANT)
 
 HOST_LDFLAGS += \
 	-Wl,-rpath $(STAGING_DIR_HOST)/lib



From lede-commits at lists.infradead.org  Thu Nov 14 04:03:48 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 14 Nov 2024 07:03:48 -0500
Subject: [openwrt/openwrt]  mt76: update to Git HEAD (2024-10-28)
In-Reply-To: <173158582894.2460408.15246067012624311047@git-01.infra.openwrt.org>
References: <173158582894.2460408.15246067012624311047@git-01.infra.openwrt.org>
Message-ID: <mailman.159471.1731585836.1280.lede-commits@lists.infradead.org>

nbd pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/6720c4ccba256186bf2f1b1edadb851c447e62a5

commit 6720c4ccba256186bf2f1b1edadb851c447e62a5
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Thu Nov 14 13:03:23 2024 +0100

    mt76: update to Git HEAD (2024-10-28)
    
    8dfead68c202 wifi: mt76: mt7915: hold dev->mutex while interacting with the thermal state
    d508a6eb935d wifi: mt76: mt7996: use mac80211 .sta_state op
    57019e663f57 wifi: mt76: add code for emulating hardware scanning
    dc4c2bdf7c56 wifi: mt76: add support for allocating a phy without hw
    8cd0263f92e1 wifi: mt76: rename struct mt76_vif to mt76_vif_link
    99df84d62883 wifi: mt76: add vif link specific data structure
    dcc6f158d759 wifi: mt76: mt7996: split link specific data from struct mt7996_vif
    d388deab9e73 wifi: mt76: initialize more wcid fields mt76_wcid_init
    d026be405c54 wifi: mt76: add chanctx functions for multi-channel phy support
    0b05795ca81c wifi: mt76: remove dev->wcid_phy_mask
    0b526090de95 wifi: mt76: add multi-radio support to a few core hw ops
    aeedee5c0a2c wifi: mt76: add multi-radio support to tx scheduling
    fc0ff17b53ff wifi: mt76: add multi-radio support to scanning code
    f19cbcf83400 wifi: mt76: add multi-radio remain_on_channel functions
    42429ae0eaf6 wifi: mt76: mt7996: use emulated hardware scan support
    f9d593d4a6b4 wifi: mt76: mt7996: pass wcid to mt7996_mcu_sta_hdr_trans_tlv
    807090b28661 wifi: mt76: mt7996: prepare mt7996_mcu_add_dev/bss_info for MLO support
    252baa7bf477 wifi: mt76: mt7996: prepare mt7996_mcu_add_beacon for MLO support
    9ee990050305 wifi: mt76: mt7996: prepare mt7996_mcu_set_tx for MLO support
    bf12cc404334 wifi: mt76: mt7996: prepare mt7996_mcu_set_timing for MLO support
    60bf2bef95dc wifi: mt76: connac: prepare mt76_connac_mcu_sta_basic_tlv for MLO support
    1289737e12a8 wifi: mt76: mt7996: prepare mt7996_mcu_update_bss_color for MLO support
    7c00df0e7e57 wifi: mt76: connac: rework connac helpers
    484e3f289a40 wifi: mt76: mt7996: move all debugfs files to the primary phy
    d258f4e3e1ca wifi: mt76: mt7996: switch to single multi-radio wiphy
    c246fa545119 wifi: mt76: mt7996: fix monitor mode
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
 package/kernel/mt76/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/kernel/mt76/Makefile b/package/kernel/mt76/Makefile
index 73f34d8eda..b5cdc76572 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:=2024-10-11.1
-PKG_SOURCE_VERSION:=ecca0e77b4bce629ec1f79d83bbd14a68f919188
-PKG_MIRROR_HASH:=770823f282c76532567a651bb020208c3ddd5a728c656fcde43129fc95edf538
+PKG_SOURCE_DATE:=2024-10-28
+PKG_SOURCE_VERSION:=c246fa545119abe5097682316700f13c91399042
+PKG_MIRROR_HASH:=ff59d9588e6b114be8fe08013b55da975bc6bb4219b97b6fedb72246e9337c18
 
 PKG_MAINTAINER:=Felix Fietkau <nbd at nbd.name>
 PKG_USE_NINJA:=0



From lede-commits at lists.infradead.org  Thu Nov 14 13:43:40 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 14 Nov 2024 16:43:40 -0500
Subject: [openwrt/openwrt]  netifd: update to Git HEAD (2024-11-08)
In-Reply-To: <173162061917.3333107.2356524065014148801@git-01.infra.openwrt.org>
References: <173162061917.3333107.2356524065014148801@git-01.infra.openwrt.org>
Message-ID: <mailman.180.1731620623.1089.lede-commits@lists.infradead.org>

nbd pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/13f166763f0cdc522e235433c7d15fb386ebc194

commit 13f166763f0cdc522e235433c7d15fb386ebc194
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Fri Nov 8 10:50:39 2024 +0100

    netifd: update to Git HEAD (2024-11-08)
    
    e93f6c3fc729 main: fix format string related warnings for log/debug printf functions
    6ab44a2413f9 fix signed/unsigned comparison warnings
    4fe997b61d7d system-dummy: add system_if_apply_settings_after_up
    992d33cb42a6 ubus: add notifications on wireless device state changes
    34eb11eb6f5c device/interface: add "tags" attribute from config to status dump
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
    (cherry picked from commit 5f68e243338a653f44f079acc001de369aa42efa)
---
 package/network/config/netifd/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile
index 771d7dadaf..a4400c9516 100644
--- a/package/network/config/netifd/Makefile
+++ b/package/network/config/netifd/Makefile
@@ -5,9 +5,9 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
-PKG_SOURCE_DATE:=2024-10-06
-PKG_SOURCE_VERSION:=3c6265fdbd02ebd35fa3e7a58d6dfeed081a09d7
-PKG_MIRROR_HASH:=00b01243b99995dc52a047e5663cf5c7732f8defd6b726f73ac15e142b02b4fa
+PKG_SOURCE_DATE:=2024-11-08
+PKG_SOURCE_VERSION:=34eb11eb6f5c62de480d6192f0ca840093127fee
+PKG_MIRROR_HASH:=c4c2bc626426d2cd73c9ece54b22ada6ed6254afa992f51b8725312aca240cfd
 PKG_MAINTAINER:=Felix Fietkau <nbd at nbd.name>
 
 PKG_LICENSE:=GPL-2.0



From lede-commits at lists.infradead.org  Thu Nov 14 13:43:39 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 14 Nov 2024 16:43:39 -0500
Subject: [openwrt/openwrt]  wifi-scripts: add free-form "tags" array option
 for wifi-iface
In-Reply-To: <173162061917.3333107.2356524065014148801@git-01.infra.openwrt.org>
References: <173162061917.3333107.2356524065014148801@git-01.infra.openwrt.org>
Message-ID: <mailman.181.1731620623.1089.lede-commits@lists.infradead.org>

nbd pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/c02af3fd857e567a1dfae8d029eed461442b0dce

commit c02af3fd857e567a1dfae8d029eed461442b0dce
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Fri Nov 8 09:13:54 2024 +0100

    wifi-scripts: add free-form "tags" array option for wifi-iface
    
    This allows annotating wifi interfaces in the config in a way that can be
    queried through wifi status. One example use case is to mark wifi interfaces
    for use with specific services without having to explicitly reference the
    (often unnamed) sections from elsewhere.
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
    (cherry picked from commit a3ec35cadb77265c0e00c8d3789734586a6f7111)
---
 package/network/config/wifi-scripts/files/lib/netifd/netifd-wireless.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/network/config/wifi-scripts/files/lib/netifd/netifd-wireless.sh b/package/network/config/wifi-scripts/files/lib/netifd/netifd-wireless.sh
index 5b852e0937..c3772bb443 100644
--- a/package/network/config/wifi-scripts/files/lib/netifd/netifd-wireless.sh
+++ b/package/network/config/wifi-scripts/files/lib/netifd/netifd-wireless.sh
@@ -379,6 +379,7 @@ _wdev_common_device_config() {
 _wdev_common_iface_config() {
 	config_add_string mode ssid encryption 'key:wpakey'
 	config_add_boolean bridge_isolate
+	config_add_array tags
 }
 
 _wdev_common_vlan_config() {



From lede-commits at lists.infradead.org  Thu Nov 14 13:43:41 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 14 Nov 2024 16:43:41 -0500
Subject: [openwrt/openwrt]  mt76: update to Git HEAD (2024-10-28)
In-Reply-To: <173162061917.3333107.2356524065014148801@git-01.infra.openwrt.org>
References: <173162061917.3333107.2356524065014148801@git-01.infra.openwrt.org>
Message-ID: <mailman.182.1731620628.1089.lede-commits@lists.infradead.org>

nbd pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/fe048b5e875dd09e54d4b2c43f4e6c98c6d1ffae

commit fe048b5e875dd09e54d4b2c43f4e6c98c6d1ffae
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Thu Nov 14 13:03:23 2024 +0100

    mt76: update to Git HEAD (2024-10-28)
    
    8dfead68c202 wifi: mt76: mt7915: hold dev->mutex while interacting with the thermal state
    d508a6eb935d wifi: mt76: mt7996: use mac80211 .sta_state op
    57019e663f57 wifi: mt76: add code for emulating hardware scanning
    dc4c2bdf7c56 wifi: mt76: add support for allocating a phy without hw
    8cd0263f92e1 wifi: mt76: rename struct mt76_vif to mt76_vif_link
    99df84d62883 wifi: mt76: add vif link specific data structure
    dcc6f158d759 wifi: mt76: mt7996: split link specific data from struct mt7996_vif
    d388deab9e73 wifi: mt76: initialize more wcid fields mt76_wcid_init
    d026be405c54 wifi: mt76: add chanctx functions for multi-channel phy support
    0b05795ca81c wifi: mt76: remove dev->wcid_phy_mask
    0b526090de95 wifi: mt76: add multi-radio support to a few core hw ops
    aeedee5c0a2c wifi: mt76: add multi-radio support to tx scheduling
    fc0ff17b53ff wifi: mt76: add multi-radio support to scanning code
    f19cbcf83400 wifi: mt76: add multi-radio remain_on_channel functions
    42429ae0eaf6 wifi: mt76: mt7996: use emulated hardware scan support
    f9d593d4a6b4 wifi: mt76: mt7996: pass wcid to mt7996_mcu_sta_hdr_trans_tlv
    807090b28661 wifi: mt76: mt7996: prepare mt7996_mcu_add_dev/bss_info for MLO support
    252baa7bf477 wifi: mt76: mt7996: prepare mt7996_mcu_add_beacon for MLO support
    9ee990050305 wifi: mt76: mt7996: prepare mt7996_mcu_set_tx for MLO support
    bf12cc404334 wifi: mt76: mt7996: prepare mt7996_mcu_set_timing for MLO support
    60bf2bef95dc wifi: mt76: connac: prepare mt76_connac_mcu_sta_basic_tlv for MLO support
    1289737e12a8 wifi: mt76: mt7996: prepare mt7996_mcu_update_bss_color for MLO support
    7c00df0e7e57 wifi: mt76: connac: rework connac helpers
    484e3f289a40 wifi: mt76: mt7996: move all debugfs files to the primary phy
    d258f4e3e1ca wifi: mt76: mt7996: switch to single multi-radio wiphy
    c246fa545119 wifi: mt76: mt7996: fix monitor mode
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
    (cherry picked from commit 6720c4ccba256186bf2f1b1edadb851c447e62a5)
---
 package/kernel/mt76/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/kernel/mt76/Makefile b/package/kernel/mt76/Makefile
index 73f34d8eda..b5cdc76572 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:=2024-10-11.1
-PKG_SOURCE_VERSION:=ecca0e77b4bce629ec1f79d83bbd14a68f919188
-PKG_MIRROR_HASH:=770823f282c76532567a651bb020208c3ddd5a728c656fcde43129fc95edf538
+PKG_SOURCE_DATE:=2024-10-28
+PKG_SOURCE_VERSION:=c246fa545119abe5097682316700f13c91399042
+PKG_MIRROR_HASH:=ff59d9588e6b114be8fe08013b55da975bc6bb4219b97b6fedb72246e9337c18
 
 PKG_MAINTAINER:=Felix Fietkau <nbd at nbd.name>
 PKG_USE_NINJA:=0



From lede-commits at lists.infradead.org  Thu Nov 14 18:55:41 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 14 Nov 2024 21:55:41 -0500
Subject: [openwrt/openwrt]  procd: update to git HEAD
In-Reply-To: <173163934142.4065146.15751245788024691971@git-01.infra.openwrt.org>
References: <173163934142.4065146.15751245788024691971@git-01.infra.openwrt.org>
Message-ID: <mailman.257.1731639374.1089.lede-commits@lists.infradead.org>

dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/1e8505ac4e88212106fe78486cfcbe9cae7660f9

commit 1e8505ac4e88212106fe78486cfcbe9cae7660f9
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Wed Nov 13 21:58:38 2024 +0000

    procd: update to git HEAD
    
     7330fa5 initd: mount /sys and /proc with MS_RELATIME
    
    Fixes mounting /proc in unpriviledged user namespace.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 package/system/procd/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/system/procd/Makefile b/package/system/procd/Makefile
index 86de4babfd..81e133f55b 100644
--- a/package/system/procd/Makefile
+++ b/package/system/procd/Makefile
@@ -12,9 +12,9 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git
-PKG_MIRROR_HASH:=0f494faf2811af6cd7332acda8049ad9713dcabc4b2885dc14acbd9f61920be1
-PKG_SOURCE_DATE:=2024-11-06
-PKG_SOURCE_VERSION:=109fa41b2321506280397e03757976c468832668
+PKG_MIRROR_HASH:=56c5f71da3f68036c63ae59d01992785e74027726da5973297895985cd27c215
+PKG_SOURCE_DATE:=2024-11-13
+PKG_SOURCE_VERSION:=7330fa55c5211eb7b3c675d1c7b8281b69b53553
 CMAKE_INSTALL:=1
 
 PKG_LICENSE:=GPL-2.0



From lede-commits at lists.infradead.org  Fri Nov 15 00:53:20 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 15 Nov 2024 03:53:20 -0500
Subject: [openwrt/openwrt]  apk: fix long package description handling
In-Reply-To: <173166080002.1020381.13613659063720594641@git-01.infra.openwrt.org>
References: <173166080002.1020381.13613659063720594641@git-01.infra.openwrt.org>
Message-ID: <mailman.356.1731660845.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/a6c248e8ad75971ccfedebf2a172ef3e2696fa18

commit a6c248e8ad75971ccfedebf2a172ef3e2696fa18
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Thu Nov 14 09:07:20 2024 +0000

    apk: fix long package description handling
    
    Currently its not possible to generate apk package.adb package index if
    the package has longer description field, which leads to following
    failure:
    
     (2352/2353) Installing zoneinfo-all (2024b-r1)
     (2353/2353) Installing zstd (1.5.6-r1)
     ERROR: System state may be inconsistent: failed to write database: No buffer space available
     1 error; 2704 MiB in 2353 packages
    
    The code to read/write installeddb does not really handle long
    description well. Until the database is converted to apkv3 format,
    truncate the apkv3 descriptions to allow existing code to work.
    
    APKv3 index and packages still contain the original long description
    unmodified, so no package rebuild will be needed.
    
    Fixing the issue by backporting the single upstream fix as its not
    possible to to upstep apk to the latest Git HEAD due to some
    regressions, see commit 692052cdc0e7 ("Revert "apk: update to Git
    417a93ceae540444fdbd3f76d1dadf0e15621fdc (2024-11-13)"") for more
    details.
    
    Fixes: #16929
    References: https://gitlab.alpinelinux.org/alpine/apk-tools/-/issues/11038
    Upstream-Status: Backport [https://gitlab.alpinelinux.org/alpine/apk-tools/-/commit/417a93ceae540444fdbd3f76d1dadf0e15621fdc]
    Link: https://github.com/openwrt/openwrt/pull/16951
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/system/apk/Makefile                        |  2 +-
 ...g-truncate-apkv3-description-to-256-bytes.patch | 45 ++++++++++++++++++++++
 2 files changed, 46 insertions(+), 1 deletion(-)

diff --git a/package/system/apk/Makefile b/package/system/apk/Makefile
index 1ddc9635ad..f760ce1ec4 100644
--- a/package/system/apk/Makefile
+++ b/package/system/apk/Makefile
@@ -1,7 +1,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=apk
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_URL=https://gitlab.alpinelinux.org/alpine/apk-tools.git
 PKG_SOURCE_PROTO:=git
diff --git a/package/system/apk/patches/0020-pkg-truncate-apkv3-description-to-256-bytes.patch b/package/system/apk/patches/0020-pkg-truncate-apkv3-description-to-256-bytes.patch
new file mode 100644
index 0000000000..62cdd9d0c9
--- /dev/null
+++ b/package/system/apk/patches/0020-pkg-truncate-apkv3-description-to-256-bytes.patch
@@ -0,0 +1,45 @@
+From 417a93ceae540444fdbd3f76d1dadf0e15621fdc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras at iki.fi>
+Date: Wed, 13 Nov 2024 09:40:21 +0200
+Subject: [PATCH] pkg: truncate apkv3 description to 256 bytes
+
+The code to read/write installeddb does not really handle long
+description well. Until the database is converted to apkv3 format,
+truncate the apkv3 descriptions to allow existing code to work.
+
+APKv3 index and packages still contain the original long description
+unmodified, so no package rebuild will be needed.
+
+fixes #11038
+
+Upstream-Status: Backport [https://gitlab.alpinelinux.org/alpine/apk-tools/-/commit/417a93ceae540444fdbd3f76d1dadf0e15621fdc]
+---
+ src/apk_blob.h | 5 +++++
+ src/package.c  | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+--- a/src/apk_blob.h
++++ b/src/apk_blob.h
+@@ -48,6 +48,11 @@ static inline apk_blob_t apk_blob_trim(a
+ 	return b;
+ }
+ 
++static inline apk_blob_t apk_blob_truncate(apk_blob_t blob, int maxlen)
++{
++	return APK_BLOB_PTR_LEN(blob.ptr, min(blob.len, maxlen));
++}
++
+ char *apk_blob_cstr(apk_blob_t str);
+ apk_blob_t apk_blob_dup(apk_blob_t blob);
+ int apk_blob_split(apk_blob_t blob, apk_blob_t split, apk_blob_t *l, apk_blob_t *r);
+--- a/src/package.c
++++ b/src/package.c
+@@ -577,7 +577,7 @@ void apk_pkgtmpl_from_adb(struct apk_dat
+ 
+ 	pkg->name = apk_db_get_name(db, adb_ro_blob(pkginfo, ADBI_PI_NAME));
+ 	pkg->version = apk_atomize_dup(&db->atoms, adb_ro_blob(pkginfo, ADBI_PI_VERSION));
+-	pkg->description = apk_atomize_dup0(&db->atoms, adb_ro_blob(pkginfo, ADBI_PI_DESCRIPTION));
++	pkg->description = apk_atomize_dup0(&db->atoms, apk_blob_truncate(adb_ro_blob(pkginfo, ADBI_PI_DESCRIPTION), 512));
+ 	pkg->url = apk_atomize_dup(&db->atoms, adb_ro_blob(pkginfo, ADBI_PI_URL));
+ 	pkg->license = apk_atomize_dup(&db->atoms, adb_ro_blob(pkginfo, ADBI_PI_LICENSE));
+ 	pkg->arch = apk_atomize_dup(&db->atoms, adb_ro_blob(pkginfo, ADBI_PI_ARCH));



From lede-commits at lists.infradead.org  Fri Nov 15 03:29:41 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 15 Nov 2024 06:29:41 -0500
Subject: [openwrt/openwrt]  package: use /dev/null for apk --repositories-file
In-Reply-To: <173167018192.1498770.4856239158390214800@git-01.infra.openwrt.org>
References: <173167018192.1498770.4856239158390214800@git-01.infra.openwrt.org>
Message-ID: <mailman.432.1731670191.1089.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/8c018dcb5601150f26a01babd297e6b416895eba

commit 8c018dcb5601150f26a01babd297e6b416895eba
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Fri Nov 15 12:27:44 2024 +0100

    package: use /dev/null for apk --repositories-file
    
    In preparation for APK version bump, use /dev/null instead of /dev/zero
    for --repositories-file to mute an error in recent APK files.
    
    New APK version use modern istream logic that are more sensible to the
    kind of file passed and /dev/null is required to correctly handle an
    empty repository file.
    
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 include/image.mk | 4 ++--
 package/Makefile | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/image.mk b/include/image.mk
index 9a4dff2167..881d420ae1 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -310,7 +310,7 @@ endef
 define Image/Manifest
 	$(if $(CONFIG_USE_APK), \
 		$(call apk,$(TARGET_DIR_ORIG)) list --quiet --manifest --no-network \
-			--repositories-file /dev/zero | sort | sed 's/ / - /'  > \
+			--repositories-file /dev/null | sort | sed 's/ / - /'  > \
 			$(BIN_DIR)/$(IMG_PREFIX)$(if $(PROFILE_SANITIZED),-$(PROFILE_SANITIZED)).manifest, \
 		$(call opkg,$(TARGET_DIR_ORIG)) list-installed > \
 			$(BIN_DIR)/$(IMG_PREFIX)$(if $(PROFILE_SANITIZED),-$(PROFILE_SANITIZED)).manifest \
@@ -365,7 +365,7 @@ opkg_target = \
 
 apk_target = \
 	$(call apk,$(mkfs_cur_target_dir)) --no-scripts \
-		--repositories-file /dev/zero --repository file://$(PACKAGE_DIR_ALL)/packages.adb
+		--repositories-file /dev/null --repository file://$(PACKAGE_DIR_ALL)/packages.adb
 
 
 target-dir-%: FORCE
diff --git a/package/Makefile b/package/Makefile
index 88d312d4ed..2c7cd58879 100644
--- a/package/Makefile
+++ b/package/Makefile
@@ -99,7 +99,7 @@ ifneq ($(CONFIG_USE_APK),)
 	$(file >$(TMP_DIR)/apk_install_list,\
 	    $(foreach pkg,$(shell cat $(PACKAGE_INSTALL_FILES) 2>/dev/null),$(pkg)$(call GetABISuffix,$(pkg))))
 	$(call apk,$(TARGET_DIR)) add --no-cache --initdb --no-scripts --arch $(ARCH_PACKAGES) \
-		--repositories-file /dev/zero --repository file://$(PACKAGE_DIR_ALL)/packages.adb \
+		--repositories-file /dev/null --repository file://$(PACKAGE_DIR_ALL)/packages.adb \
 		$$(cat $(TMP_DIR)/apk_install_list)
 else
 	$(file >$(TMP_DIR)/opkg_install_list,\



From lede-commits at lists.infradead.org  Fri Nov 15 04:01:40 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 15 Nov 2024 07:01:40 -0500
Subject: [openwrt/openwrt]  utils: Add the omnia-eeprom utility
In-Reply-To: <173167210084.1613552.13646513601436383324@git-01.infra.openwrt.org>
References: <173167210084.1613552.13646513601436383324@git-01.infra.openwrt.org>
Message-ID: <mailman.450.1731672105.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/749a43325b98afe4430fa7e2f23ac3ee44791ad6

commit 749a43325b98afe4430fa7e2f23ac3ee44791ad6
Author: Marek Beh?n <kabel at kernel.org>
AuthorDate: Fri Nov 15 10:01:35 2024 +0100

    utils: Add the omnia-eeprom utility
    
    Add a new utility, `omnia-eeprom`, which can be used to print / set
    EEPROM fields on Turris Omnia.
    
    One example when this utility might be useful is if the board
    experiences random crashes due to newer versions of the DDR training
    algorithm in newer U-Boot. The user can change the DDR speed from 1600K
    to 1333H to solve these issues, with
    
      ```
      omnia-eeprom set ddr_speed 1333H
      ```
    
    Signed-off-by: Marek Beh?n <kabel at kernel.org>
    Link: https://github.com/openwrt/openwrt/pull/16264
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/utils/omnia-eeprom/Makefile  | 56 ++++++++++++++++++++++++++++++++++++
 target/linux/mvebu/image/cortexa9.mk |  3 +-
 2 files changed, 58 insertions(+), 1 deletion(-)

diff --git a/package/utils/omnia-eeprom/Makefile b/package/utils/omnia-eeprom/Makefile
new file mode 100644
index 0000000000..03eb13bbc1
--- /dev/null
+++ b/package/utils/omnia-eeprom/Makefile
@@ -0,0 +1,56 @@
+#
+# Copyright (C) 2024 Marek Beh?n <kabel at kernel.org>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=omnia-eeprom
+PKG_VERSION:=0.1
+PKG_RELEASE:=1
+
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-v$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=https://gitlab.nic.cz/turris/omnia-eeprom/-/archive/v$(PKG_VERSION)/
+PKG_HASH:=6f949d0b8080adca8bae088774ce615b563ba6ec2807cce97ee6769b4eee7bbf
+
+PKG_MAINTAINER:=Marek Behun <kabel at kernel.org>
+PKG_LICENSE:=GPL-2.0-or-later
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/omnia-eeprom
+  SECTION:=utils
+  CATEGORY:=Utilities
+  URL:=https://gitlab.nic.cz/turris/omnia-eeprom
+  TITLE:=CZ.NIC Turris Omnia EEPROM accessing utility
+  DEPENDS:=@TARGET_mvebu_cortexa9_DEVICE_cznic_turris-omnia +kmod-eeprom-at24
+endef
+
+define Package/omnia-eeprom/description
+This package contains the omnia-eeprom utility, which allows you to display
+and update EEPROM fields on the Turris Omnia router.
+The EEPROM is normally not meant to be updated by users, but there are some
+exceptions where it might be useful.
+One such example is to change the DDR3 speed from the default 1600K mode to
+1333H mode, in order to solve random crashes that occur on some boards with
+newer versions of the U-Boot bootloader (because of bugs in newer versions of
+the DDR training algorithm).
+endef
+
+MAKE_VARS += OMNIA_EEPROM_VERSION="v$(PKG_VERSION)"
+
+TARGET_CFLAGS += -Wall
+
+Build/Compile = $(Build/Compile/Default)
+
+define Package/omnia-eeprom/install
+	$(INSTALL_DIR) $(1)/usr/bin
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/omnia-eeprom $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,omnia-eeprom))
diff --git a/target/linux/mvebu/image/cortexa9.mk b/target/linux/mvebu/image/cortexa9.mk
index 6e49045f68..4a41f2c102 100644
--- a/target/linux/mvebu/image/cortexa9.mk
+++ b/target/linux/mvebu/image/cortexa9.mk
@@ -107,7 +107,8 @@ define Device/cznic_turris-omnia
     mkf2fs e2fsprogs kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 \
     wpad-basic-mbedtls kmod-ath9k kmod-ath10k-ct ath10k-firmware-qca988x-ct \
     kmod-mt7915-firmware partx-utils kmod-i2c-mux-pca954x kmod-leds-turris-omnia \
-    kmod-turris-omnia-mcu kmod-gpio-button-hotplug omnia-mcu-firmware omnia-mcutool
+    kmod-turris-omnia-mcu kmod-gpio-button-hotplug omnia-eeprom omnia-mcu-firmware \
+    omnia-mcutool
   IMAGES := sysupgrade.img.gz
   IMAGE/sysupgrade.img.gz := boot-scr | boot-img | sdcard-img | gzip | append-metadata
   SUPPORTED_DEVICES += armada-385-turris-omnia



From lede-commits at lists.infradead.org  Fri Nov 15 10:03:26 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 15 Nov 2024 13:03:26 -0500
Subject: [openwrt/openwrt]  x86: make i915 as a kmod with required firmware
In-Reply-To: <173169380534.2580165.6700051301552331853@git-01.infra.openwrt.org>
References: <173169380534.2580165.6700051301552331853@git-01.infra.openwrt.org>
Message-ID: <mailman.625.1731693813.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/77cfe8fd15d3d0f77ee16660d06a174f41b53444

commit 77cfe8fd15d3d0f77ee16660d06a174f41b53444
Author: Joe Zheng <joe.zheng at intel.com>
AuthorDate: Sun Aug 25 00:53:01 2024 +0000

    x86: make i915 as a kmod with required firmware
    
    i915 driver requires to load correct firmware to work on latest x86
    GPU, it is more reasonable to make it as a kernel module, so that
    initramfs is not required, and it can also save some space from the
    kernel image comparing being a built-in driver
    
    Signed-off-by: Joe Zheng <joe.zheng at intel.com>
    Link: https://github.com/openwrt/openwrt/pull/16276
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/kernel/linux/modules/video.mk | 42 +++++++++++++++++++++++++++++++++++
 target/linux/x86/64/config-6.6        | 24 --------------------
 target/linux/x86/generic/config-6.6   | 24 --------------------
 target/linux/x86/legacy/config-6.6    | 24 --------------------
 4 files changed, 42 insertions(+), 72 deletions(-)

diff --git a/package/kernel/linux/modules/video.mk b/package/kernel/linux/modules/video.mk
index 8b4585a624..fc0f038863 100644
--- a/package/kernel/linux/modules/video.mk
+++ b/package/kernel/linux/modules/video.mk
@@ -438,6 +438,48 @@ endef
 
 $(eval $(call KernelPackage,drm-amdgpu))
 
+define KernelPackage/drm-i915
+  SUBMENU:=$(VIDEO_MENU)
+  TITLE:=Intel i915 DRM support
+  DEPENDS:=@TARGET_x86 @DISPLAY_SUPPORT +kmod-backlight +kmod-drm-ttm \
+	+kmod-drm-ttm-helper +kmod-drm-kms-helper +kmod-i2c-algo-bit +i915-firmware-dmc \
+	+kmod-drm-display-helper +kmod-drm-buddy +kmod-acpi-video \
+	+kmod-drm-exec +kmod-drm-suballoc-helper
+  KCONFIG:=CONFIG_DRM_I915 \
+	CONFIG_DRM_I915_CAPTURE_ERROR=y \
+	CONFIG_DRM_I915_COMPRESS_ERROR=y \
+	CONFIG_DRM_I915_DEBUG=n \
+	CONFIG_DRM_I915_DEBUG_GUC=n \
+	CONFIG_DRM_I915_DEBUG_MMIO=n \
+	CONFIG_DRM_I915_DEBUG_RUNTIME_PM=n \
+	CONFIG_DRM_I915_DEBUG_VBLANK_EVADE=n \
+	CONFIG_DRM_I915_FENCE_TIMEOUT=10000 \
+	CONFIG_DRM_I915_FORCE_PROBE="" \
+	CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500 \
+	CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS=n \
+	CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000 \
+	CONFIG_DRM_I915_PREEMPT_TIMEOUT=640 \
+	CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500 \
+	CONFIG_DRM_I915_REQUEST_TIMEOUT=20000 \
+	CONFIG_DRM_I915_SELFTEST=n \
+	CONFIG_DRM_I915_STOP_TIMEOUT=100 \
+	CONFIG_DRM_I915_SW_FENCE_CHECK_DAG=n \
+	CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS=n \
+	CONFIG_DRM_I915_TIMESLICE_DURATION=1 \
+	CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250 \
+	CONFIG_DRM_I915_USERPTR=y \
+	CONFIG_DRM_I915_WERROR=n \
+	CONFIG_FB_INTEL=n
+  FILES:=$(LINUX_DIR)/drivers/gpu/drm/i915/i915.ko
+  AUTOLOAD:=$(call AutoProbe,i915)
+endef
+
+define KernelPackage/drm-i915/description
+  Direct Rendering Manager (DRM) support for Intel GPU
+endef
+
+$(eval $(call KernelPackage,drm-i915))
+
 
 define KernelPackage/drm-imx
   SUBMENU:=$(VIDEO_MENU)
diff --git a/target/linux/x86/64/config-6.6 b/target/linux/x86/64/config-6.6
index def4527f77..3475e65287 100644
--- a/target/linux/x86/64/config-6.6
+++ b/target/linux/x86/64/config-6.6
@@ -151,30 +151,6 @@ CONFIG_DRM_FBDEV_EMULATION=y
 CONFIG_DRM_FBDEV_OVERALLOC=100
 CONFIG_DRM_GEM_SHMEM_HELPER=y
 # CONFIG_DRM_HYPERV is not set
-CONFIG_DRM_I915=y
-CONFIG_DRM_I915_CAPTURE_ERROR=y
-CONFIG_DRM_I915_COMPRESS_ERROR=y
-# CONFIG_DRM_I915_DEBUG is not set
-# CONFIG_DRM_I915_DEBUG_GUC is not set
-# CONFIG_DRM_I915_DEBUG_MMIO is not set
-# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
-# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
-CONFIG_DRM_I915_FENCE_TIMEOUT=10000
-CONFIG_DRM_I915_FORCE_PROBE=""
-CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
-# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
-CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000
-CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
-CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500
-CONFIG_DRM_I915_REQUEST_TIMEOUT=20000
-# CONFIG_DRM_I915_SELFTEST is not set
-CONFIG_DRM_I915_STOP_TIMEOUT=100
-# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
-# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
-CONFIG_DRM_I915_TIMESLICE_DURATION=1
-CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
-CONFIG_DRM_I915_USERPTR=y
-# CONFIG_DRM_I915_WERROR is not set
 CONFIG_DRM_KMS_HELPER=y
 CONFIG_DRM_MIPI_DSI=y
 CONFIG_DRM_PANEL=y
diff --git a/target/linux/x86/generic/config-6.6 b/target/linux/x86/generic/config-6.6
index 091584e077..ecbd0aa93e 100644
--- a/target/linux/x86/generic/config-6.6
+++ b/target/linux/x86/generic/config-6.6
@@ -86,30 +86,6 @@ CONFIG_DRM_FBDEV_EMULATION=y
 CONFIG_DRM_FBDEV_OVERALLOC=100
 CONFIG_DRM_GEM_SHMEM_HELPER=y
 # CONFIG_DRM_HYPERV is not set
-CONFIG_DRM_I915=y
-CONFIG_DRM_I915_CAPTURE_ERROR=y
-CONFIG_DRM_I915_COMPRESS_ERROR=y
-# CONFIG_DRM_I915_DEBUG is not set
-# CONFIG_DRM_I915_DEBUG_GUC is not set
-# CONFIG_DRM_I915_DEBUG_MMIO is not set
-# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
-# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
-CONFIG_DRM_I915_FENCE_TIMEOUT=10000
-CONFIG_DRM_I915_FORCE_PROBE=""
-CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
-# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
-CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000
-CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
-CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500
-CONFIG_DRM_I915_REQUEST_TIMEOUT=20000
-# CONFIG_DRM_I915_SELFTEST is not set
-CONFIG_DRM_I915_STOP_TIMEOUT=100
-# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
-# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
-CONFIG_DRM_I915_TIMESLICE_DURATION=1
-CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
-CONFIG_DRM_I915_USERPTR=y
-# CONFIG_DRM_I915_WERROR is not set
 CONFIG_DRM_KMS_HELPER=y
 CONFIG_DRM_MIPI_DSI=y
 CONFIG_DRM_PANEL=y
diff --git a/target/linux/x86/legacy/config-6.6 b/target/linux/x86/legacy/config-6.6
index 8ce9237a21..10511ff08b 100644
--- a/target/linux/x86/legacy/config-6.6
+++ b/target/linux/x86/legacy/config-6.6
@@ -67,30 +67,6 @@ CONFIG_DRM_DISPLAY_HELPER=y
 CONFIG_DRM_EXEC=y
 CONFIG_DRM_FBDEV_EMULATION=y
 CONFIG_DRM_FBDEV_OVERALLOC=100
-CONFIG_DRM_I915=y
-CONFIG_DRM_I915_CAPTURE_ERROR=y
-CONFIG_DRM_I915_COMPRESS_ERROR=y
-# CONFIG_DRM_I915_DEBUG is not set
-# CONFIG_DRM_I915_DEBUG_GUC is not set
-# CONFIG_DRM_I915_DEBUG_MMIO is not set
-# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
-# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
-CONFIG_DRM_I915_FENCE_TIMEOUT=10000
-CONFIG_DRM_I915_FORCE_PROBE=""
-CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
-# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
-CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000
-CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
-CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500
-CONFIG_DRM_I915_REQUEST_TIMEOUT=20000
-# CONFIG_DRM_I915_SELFTEST is not set
-CONFIG_DRM_I915_STOP_TIMEOUT=100
-# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
-# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
-CONFIG_DRM_I915_TIMESLICE_DURATION=1
-CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
-CONFIG_DRM_I915_USERPTR=y
-# CONFIG_DRM_I915_WERROR is not set
 CONFIG_DRM_KMS_HELPER=y
 CONFIG_DRM_MIPI_DSI=y
 CONFIG_DRM_PANEL=y



From lede-commits at lists.infradead.org  Fri Nov 15 10:03:25 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 15 Nov 2024 13:03:25 -0500
Subject: [openwrt/openwrt]  linux-firmware: rename packages for i915 firmware
In-Reply-To: <173169380534.2580165.6700051301552331853@git-01.infra.openwrt.org>
References: <173169380534.2580165.6700051301552331853@git-01.infra.openwrt.org>
Message-ID: <mailman.626.1731693818.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/ca00bafd7e05b3f77e38acac6add223ce46df585

commit ca00bafd7e05b3f77e38acac6add223ce46df585
Author: Joe Zheng <joe.zheng at intel.com>
AuthorDate: Fri Sep 20 05:57:34 2024 +0000

    linux-firmware: rename packages for i915 firmware
    
    Change the package name from intel-igpu-firmware-* to i915-firmware-*,
    the prefix "intel-igpu" is misleading, i915 firmware is not only for
    iGPU but also for dGPU now.
    
    Remove the redundant "intel" as i915 is already well known.
    
    More accurate file classification to handle following files correctly:
    
      adlp_dmc.bin
      mtl_huc.bin
      mtl_huc_gsc.bin
      mtl_gsc_1.bin
    
    The pattern in regex is "([[:alnum:]]+)_([[:alnum:]]+)(_[\w-.]+)?\.bin",
    where $1 is the platform, $2 is the firmware type (dmc, guc, huc, etc.),
    and the optional $3 which is revision or other suffix.
    
    Glob first to narrow down the target file set, and then split with "_"
    to extract the firmware type (remove the ".bin" in case there is no $3)
    
    Add package "i915-firmware" as a meta package to install all the i915
    firmwares, it is a balance between simplicity and optimization.
    
    * Installing all the available firmwares as a whole, can support all the
      platforms, not only the current one but also the future ones. The
      price to pay is the increased size.
    * If we want to minimize the storage, we can customize to install the
      necessary ones only, even for the target platform only (e.g. ADL) and
      skip the others. The price to pay is the time to tune.
    
    What I am going to do is:
    
    * Let drm-i915 driver depend on i915-firmware-dmc, which is small and
      can cover most of the old platforms
    * Let the user select i915-firmware to install all the i915 firmwares as
      a whole to cover the latest or future platforms
    
    Signed-off-by: Joe Zheng <joe.zheng at intel.com>
    Link: https://github.com/openwrt/openwrt/pull/16276
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/firmware/linux-firmware/intel.mk | 56 ++++++++++++++++++++++----------
 1 file changed, 38 insertions(+), 18 deletions(-)

diff --git a/package/firmware/linux-firmware/intel.mk b/package/firmware/linux-firmware/intel.mk
index 225b2aa862..4c9e04cd3d 100644
--- a/package/firmware/linux-firmware/intel.mk
+++ b/package/firmware/linux-firmware/intel.mk
@@ -216,29 +216,49 @@ define Package/e100-firmware/install
 endef
 $(eval $(call BuildPackage,e100-firmware))
 
-Package/intel-igpu-firmware-dmc = $(call Package/firmware-default,Intel iGPU DMC Display MC firmware)
-define Package/intel-igpu-firmware-dmc/install
+i915_deps:=+i915-firmware-dmc +i915-firmware-guc +i915-firmware-huc +i915-firmware-gsc
+Package/i915-firmware = $(call Package/firmware-default,Intel I915 firmware \(meta package\),$(i915_deps),LICENSE.i915)
+define Package/i915-firmware/install
+	true
+endef
+$(eval $(call BuildPackage,i915-firmware))
+
+Package/i915-firmware-dmc = $(call Package/firmware-default,Intel I915 DMC firmware,,LICENSE.i915)
+define Package/i915-firmware-dmc/install
 	$(INSTALL_DIR) $(1)/lib/firmware/i915
-	$(CP) \
-		$(PKG_BUILD_DIR)/i915/*_dmc_*.bin* \
-		$(1)/lib/firmware/i915/
+	for f in $(PKG_BUILD_DIR)/i915/*_dmc*.bin; do                        \
+	  t=`echo $$$${f##*/} | cut -d_ -f2 | cut -d. -f1`;                  \
+	  if [ "$$$$t" = dmc ]; then $(CP) $$$$f $(1)/lib/firmware/i915/; fi \
+	done
 endef
-$(eval $(call BuildPackage,intel-igpu-firmware-dmc))
+$(eval $(call BuildPackage,i915-firmware-dmc))
 
-Package/intel-igpu-firmware-guc = $(call Package/firmware-default,Intel iGPU GUC Graphics MC firmware)
-define Package/intel-igpu-firmware-guc/install
+Package/i915-firmware-guc = $(call Package/firmware-default,Intel I915 GUC firmware,,LICENSE.i915)
+define Package/i915-firmware-guc/install
 	$(INSTALL_DIR) $(1)/lib/firmware/i915
-	$(CP) \
-		$(PKG_BUILD_DIR)/i915/*_guc_*.bin* \
-		$(1)/lib/firmware/i915/
+	for f in $(PKG_BUILD_DIR)/i915/*_guc*.bin; do                        \
+	  t=`echo $$$${f##*/} | cut -d_ -f2 | cut -d. -f1`;                  \
+	  if [ "$$$$t" = guc ]; then $(CP) $$$$f $(1)/lib/firmware/i915/; fi \
+	done
 endef
-$(eval $(call BuildPackage,intel-igpu-firmware-guc))
+$(eval $(call BuildPackage,i915-firmware-guc))
 
-Package/intel-igpu-firmware-huc = $(call Package/firmware-default,Intel iGPU HUC H.265 MC firmware)
-define Package/intel-igpu-firmware-huc/install
+Package/i915-firmware-huc = $(call Package/firmware-default,Intel I915 HUC firmware,,LICENSE.i915)
+define Package/i915-firmware-huc/install
 	$(INSTALL_DIR) $(1)/lib/firmware/i915
-	$(CP) \
-		$(PKG_BUILD_DIR)/i915/*_huc_*.bin* \
-		$(1)/lib/firmware/i915/
+	for f in $(PKG_BUILD_DIR)/i915/*_huc*.bin; do                        \
+	  t=`echo $$$${f##*/} | cut -d_ -f2 | cut -d. -f1`;                  \
+	  if [ "$$$$t" = huc ]; then $(CP) $$$$f $(1)/lib/firmware/i915/; fi \
+	done
+endef
+$(eval $(call BuildPackage,i915-firmware-huc))
+
+Package/i915-firmware-gsc = $(call Package/firmware-default,Intel I915 GSC firmware,,LICENSE.i915)
+define Package/i915-firmware-gsc/install
+	$(INSTALL_DIR) $(1)/lib/firmware/i915
+	for f in $(PKG_BUILD_DIR)/i915/*_gsc*.bin; do                        \
+	  t=`echo $$$${f##*/} | cut -d_ -f2 | cut -d. -f1`;                  \
+	  if [ "$$$$t" = gsc ]; then $(CP) $$$$f $(1)/lib/firmware/i915/; fi \
+	done
 endef
-$(eval $(call BuildPackage,intel-igpu-firmware-huc))
+$(eval $(call BuildPackage,i915-firmware-gsc))



From lede-commits at lists.infradead.org  Fri Nov 15 15:05:00 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 15 Nov 2024 18:05:00 -0500
Subject: [openwrt/openwrt]  kernel: bump 5.15 to 5.15.169
In-Reply-To: <173171189966.3272985.1759727733460942174@git-01.infra.openwrt.org>
References: <173171189966.3272985.1759727733460942174@git-01.infra.openwrt.org>
Message-ID: <mailman.1014.1731711903.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/e3b120f6826343807eedc39173e5ed1ab2866319

commit e3b120f6826343807eedc39173e5ed1ab2866319
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Mon Nov 4 22:12:03 2024 +0100

    kernel: bump 5.15 to 5.15.169
    
    Added patch:
       generic/backport-5.15/430-v6.3-udf-Allocate-name-buffer-in-directory-iterator-on-he.patch
       This patch fixes the following compile warning:
    ```
      CC [M]  fs/udf/namei.o
    fs/udf/namei.c: In function 'udf_rename':
    fs/udf/namei.c:878:1: error: the frame size of 1144 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
      878 | }
          | ^
    cc1: all warnings being treated as errors
    make[7]: *** [scripts/Makefile.build:289: fs/udf/namei.o] Error 1
    ```
    
    Link: https://github.com/openwrt/openwrt/pull/16882
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 include/kernel-5.15                                |  4 +-
 ...e-name-buffer-in-directory-iterator-on-he.patch | 95 ++++++++++++++++++++++
 ...irectory-type-conversion-failure-due-to-E.patch | 40 +++++++++
 ...tusb-Support-public-address-configuration.patch |  4 +-
 ...tusb-Fix-application-of-sizeof-to-pointer.patch |  2 +-
 .../780-usb-net-MeigLink_modem_support.patch       |  4 +-
 6 files changed, 142 insertions(+), 7 deletions(-)

diff --git a/include/kernel-5.15 b/include/kernel-5.15
index 6844295833..0812481de6 100644
--- a/include/kernel-5.15
+++ b/include/kernel-5.15
@@ -1,2 +1,2 @@
-LINUX_VERSION-5.15 = .168
-LINUX_KERNEL_HASH-5.15.168 = cfbebbd57456827013b97689aa3cad1fbfbe864dd80b0ecf16bb29990b38e17a
+LINUX_VERSION-5.15 = .169
+LINUX_KERNEL_HASH-5.15.169 = e618c6d845fd1bc89477508e8d084bbe791fc88bf7623adee2deb6ecb2275370
diff --git a/target/linux/generic/backport-5.15/430-v6.3-udf-Allocate-name-buffer-in-directory-iterator-on-he.patch b/target/linux/generic/backport-5.15/430-v6.3-udf-Allocate-name-buffer-in-directory-iterator-on-he.patch
new file mode 100644
index 0000000000..53b8d85320
--- /dev/null
+++ b/target/linux/generic/backport-5.15/430-v6.3-udf-Allocate-name-buffer-in-directory-iterator-on-he.patch
@@ -0,0 +1,95 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jan Kara <jack at suse.cz>
+Date: Tue, 20 Dec 2022 12:38:45 +0100
+Subject: udf: Allocate name buffer in directory iterator on heap
+
+commit 0aba4860b0d0216a1a300484ff536171894d49d8 upstream.
+
+Currently we allocate name buffer in directory iterators (struct
+udf_fileident_iter) on stack. These structures are relatively large
+(some 360 bytes on 64-bit architectures). For udf_rename() which needs
+to keep three of these structures in parallel the stack usage becomes
+rather heavy - 1536 bytes in total. Allocate the name buffer in the
+iterator from heap to avoid excessive stack usage.
+
+Link: https://lore.kernel.org/all/202212200558.lK9x1KW0-lkp at intel.com
+Reported-by: kernel test robot <lkp at intel.com>
+Signed-off-by: Jan Kara <jack at suse.cz>
+[Add extra include linux/slab.h]
+Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
+---
+ fs/udf/directory.c | 24 ++++++++++++++++--------
+ fs/udf/udfdecl.h   |  2 +-
+ 2 files changed, 17 insertions(+), 9 deletions(-)
+
+--- a/fs/udf/directory.c
++++ b/fs/udf/directory.c
+@@ -19,6 +19,7 @@
+ #include <linux/bio.h>
+ #include <linux/crc-itu-t.h>
+ #include <linux/iversion.h>
++#include <linux/slab.h>
+ 
+ static int udf_verify_fi(struct udf_fileident_iter *iter)
+ {
+@@ -248,9 +249,14 @@ int udf_fiiter_init(struct udf_fileident
+ 	iter->elen = 0;
+ 	iter->epos.bh = NULL;
+ 	iter->name = NULL;
++	iter->namebuf = kmalloc(UDF_NAME_LEN_CS0, GFP_KERNEL);
++	if (!iter->namebuf)
++		return -ENOMEM;
+ 
+-	if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB)
+-		return udf_copy_fi(iter);
++	if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) {
++		err = udf_copy_fi(iter);
++		goto out;
++	}
+ 
+ 	if (inode_bmap(dir, iter->pos >> dir->i_blkbits, &iter->epos,
+ 		       &iter->eloc, &iter->elen, &iter->loffset) !=
+@@ -260,17 +266,17 @@ int udf_fiiter_init(struct udf_fileident
+ 		udf_err(dir->i_sb,
+ 			"position %llu not allocated in directory (ino %lu)\n",
+ 			(unsigned long long)pos, dir->i_ino);
+-		return -EFSCORRUPTED;
++		err = -EFSCORRUPTED;
++		goto out;
+ 	}
+ 	err = udf_fiiter_load_bhs(iter);
+ 	if (err < 0)
+-		return err;
++		goto out;
+ 	err = udf_copy_fi(iter);
+-	if (err < 0) {
++out:
++	if (err < 0)
+ 		udf_fiiter_release(iter);
+-		return err;
+-	}
+-	return 0;
++	return err;
+ }
+ 
+ int udf_fiiter_advance(struct udf_fileident_iter *iter)
+@@ -307,6 +313,8 @@ void udf_fiiter_release(struct udf_filei
+ 	brelse(iter->bh[0]);
+ 	brelse(iter->bh[1]);
+ 	iter->bh[0] = iter->bh[1] = NULL;
++	kfree(iter->namebuf);
++	iter->namebuf = NULL;
+ }
+ 
+ static void udf_copy_to_bufs(void *buf1, int len1, void *buf2, int len2,
+--- a/fs/udf/udfdecl.h
++++ b/fs/udf/udfdecl.h
+@@ -99,7 +99,7 @@ struct udf_fileident_iter {
+ 	struct extent_position epos;	/* Position after the above extent */
+ 	struct fileIdentDesc fi;	/* Copied directory entry */
+ 	uint8_t *name;			/* Pointer to entry name */
+-	uint8_t namebuf[UDF_NAME_LEN_CS0]; /* Storage for entry name in case
++	uint8_t *namebuf;		/* Storage for entry name in case
+ 					 * the name is split between two blocks
+ 					 */
+ };
diff --git a/target/linux/generic/backport-5.15/431-v6.3-udf-Avoid-directory-type-conversion-failure-due-to-E.patch b/target/linux/generic/backport-5.15/431-v6.3-udf-Avoid-directory-type-conversion-failure-due-to-E.patch
new file mode 100644
index 0000000000..fa360a7ed2
--- /dev/null
+++ b/target/linux/generic/backport-5.15/431-v6.3-udf-Avoid-directory-type-conversion-failure-due-to-E.patch
@@ -0,0 +1,40 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jan Kara <jack at suse.cz>
+Date: Thu, 9 Feb 2023 10:33:09 +0100
+Subject: udf: Avoid directory type conversion failure due to ENOMEM
+
+commit df97f64dfa317a5485daf247b6c043a584ef95f9 upstream.
+
+When converting directory from in-ICB to normal format, the last
+iteration through the directory fixing up directory enteries can fail
+due to ENOMEM. We do not expect this iteration to fail since the
+directory is already verified to be correct and it is difficult to undo
+the conversion at this point. So just use GFP_NOFAIL to make sure the
+small allocation cannot fail.
+
+Reported-by: syzbot+111eaa994ff74f8d440f at syzkaller.appspotmail.com
+Fixes: 0aba4860b0d0 ("udf: Allocate name buffer in directory iterator on heap")
+Signed-off-by: Jan Kara <jack at suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
+---
+ fs/udf/directory.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+--- a/fs/udf/directory.c
++++ b/fs/udf/directory.c
+@@ -249,9 +249,12 @@ int udf_fiiter_init(struct udf_fileident
+ 	iter->elen = 0;
+ 	iter->epos.bh = NULL;
+ 	iter->name = NULL;
+-	iter->namebuf = kmalloc(UDF_NAME_LEN_CS0, GFP_KERNEL);
+-	if (!iter->namebuf)
+-		return -ENOMEM;
++	/*
++	 * When directory is verified, we don't expect directory iteration to
++	 * fail and it can be difficult to undo without corrupting filesystem.
++	 * So just do not allow memory allocation failures here.
++	 */
++	iter->namebuf = kmalloc(UDF_NAME_LEN_CS0, GFP_KERNEL | __GFP_NOFAIL);
+ 
+ 	if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) {
+ 		err = udf_copy_fi(iter);
diff --git a/target/linux/generic/backport-5.15/821-v5.16-Bluetooth-btusb-Support-public-address-configuration.patch b/target/linux/generic/backport-5.15/821-v5.16-Bluetooth-btusb-Support-public-address-configuration.patch
index 7e02c18875..b3574541bf 100644
--- a/target/linux/generic/backport-5.15/821-v5.16-Bluetooth-btusb-Support-public-address-configuration.patch
+++ b/target/linux/generic/backport-5.15/821-v5.16-Bluetooth-btusb-Support-public-address-configuration.patch
@@ -17,7 +17,7 @@ Signed-off-by: Marcel Holtmann <marcel at holtmann.org>
 
 --- a/drivers/bluetooth/btusb.c
 +++ b/drivers/bluetooth/btusb.c
-@@ -2296,6 +2296,23 @@ struct btmtk_section_map {
+@@ -2301,6 +2301,23 @@ struct btmtk_section_map {
  	};
  } __packed;
  
@@ -41,7 +41,7 @@ Signed-off-by: Marcel Holtmann <marcel at holtmann.org>
  static void btusb_mtk_wmt_recv(struct urb *urb)
  {
  	struct hci_dev *hdev = urb->context;
-@@ -3950,6 +3967,7 @@ static int btusb_probe(struct usb_interf
+@@ -3955,6 +3972,7 @@ static int btusb_probe(struct usb_interf
  		hdev->shutdown = btusb_mtk_shutdown;
  		hdev->manufacturer = 70;
  		hdev->cmd_timeout = btusb_mtk_cmd_timeout;
diff --git a/target/linux/generic/backport-5.15/822-v5.17-Bluetooth-btusb-Fix-application-of-sizeof-to-pointer.patch b/target/linux/generic/backport-5.15/822-v5.17-Bluetooth-btusb-Fix-application-of-sizeof-to-pointer.patch
index c043e88535..64d9c030f7 100644
--- a/target/linux/generic/backport-5.15/822-v5.17-Bluetooth-btusb-Fix-application-of-sizeof-to-pointer.patch
+++ b/target/linux/generic/backport-5.15/822-v5.17-Bluetooth-btusb-Fix-application-of-sizeof-to-pointer.patch
@@ -18,7 +18,7 @@ Signed-off-by: Marcel Holtmann <marcel at holtmann.org>
 
 --- a/drivers/bluetooth/btusb.c
 +++ b/drivers/bluetooth/btusb.c
-@@ -2301,7 +2301,7 @@ static int btusb_set_bdaddr_mtk(struct h
+@@ -2306,7 +2306,7 @@ static int btusb_set_bdaddr_mtk(struct h
  	struct sk_buff *skb;
  	long ret;
  
diff --git a/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch b/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch
index e185750911..7a439ce221 100644
--- a/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch
+++ b/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch
@@ -43,7 +43,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
  
  #define QUECTEL_VENDOR_ID			0x2c7c
  /* These Quectel products use Quectel's vendor ID */
-@@ -1158,6 +1163,11 @@ static const struct usb_device_id option
+@@ -1159,6 +1164,11 @@ static const struct usb_device_id option
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
  	  .driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
@@ -55,7 +55,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
  	/* Quectel products using Qualcomm vendor ID */
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
-@@ -1199,6 +1209,11 @@ static const struct usb_device_id option
+@@ -1200,6 +1210,11 @@ static const struct usb_device_id option
  	  .driver_info = ZLP },
  	{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
  	  .driver_info = RSVD(4) },



From lede-commits at lists.infradead.org  Fri Nov 15 15:05:01 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 15 Nov 2024 18:05:01 -0500
Subject: [openwrt/openwrt]  kernel: bump 5.15 to 5.15.170
In-Reply-To: <173171189966.3272985.1759727733460942174@git-01.infra.openwrt.org>
References: <173171189966.3272985.1759727733460942174@git-01.infra.openwrt.org>
Message-ID: <mailman.1015.1731711904.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/25f85d42930a0265c30e42b7168f92f1b41db7bf

commit 25f85d42930a0265c30e42b7168f92f1b41db7bf
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Mon Nov 4 23:45:25 2024 +0100

    kernel: bump 5.15 to 5.15.170
    
    Removed because they are upstream:
       generic/backport-5.15/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch
       https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=90baa455aa7e099152898cfa5eb3928d6152da12
    
    Link: https://github.com/openwrt/openwrt/pull/16882
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 include/kernel-5.15                                |  4 +-
 ...Use-more-event-ring-segment-table-entries.patch |  2 +-
 ...-xhci-quirks-add-link-TRB-quirk-for-VL805.patch |  2 +-
 ...or-out-TRBS_PER_SEGMENT-define-in-runtime.patch |  4 +-
 ...0606-usb-xhci-add-VLI_TRB_CACHE_BUG-quirk.patch |  2 +-
 ...d-a-quirk-for-Superspeed-bulk-OUT-transfe.patch |  2 +-
 ...-add-support-for-performing-fake-doorbell.patch |  2 +-
 ...mm-multi-gen-LRU-support-page-table-walks.patch |  4 +-
 ...n-LRU-move-lru_gen_add_mm-out-of-IRQ-off-.patch |  4 +-
 ...nvert-users-of-bitmap_foo-to-linkmode_foo.patch |  4 +-
 ...-causing-some-targets-to-not-load-on-IPv6.patch | 43 ----------------------
 ...840-serial-add-ugly-custom-baud-rate-hack.patch |  2 +-
 12 files changed, 16 insertions(+), 59 deletions(-)

diff --git a/include/kernel-5.15 b/include/kernel-5.15
index 0812481de6..b6011097a4 100644
--- a/include/kernel-5.15
+++ b/include/kernel-5.15
@@ -1,2 +1,2 @@
-LINUX_VERSION-5.15 = .169
-LINUX_KERNEL_HASH-5.15.169 = e618c6d845fd1bc89477508e8d084bbe791fc88bf7623adee2deb6ecb2275370
+LINUX_VERSION-5.15 = .170
+LINUX_KERNEL_HASH-5.15.170 = fd596545a3d6d93196db3fa29e4926e60900b9c05b3b9ccdee9e35d8e376e7a9
diff --git a/target/linux/bcm27xx/patches-5.15/950-0166-xhci-Use-more-event-ring-segment-table-entries.patch b/target/linux/bcm27xx/patches-5.15/950-0166-xhci-Use-more-event-ring-segment-table-entries.patch
index d9385093e6..f53d8db4f4 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0166-xhci-Use-more-event-ring-segment-table-entries.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0166-xhci-Use-more-event-ring-segment-table-entries.patch
@@ -54,7 +54,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	erst_base = xhci_read_64(xhci, &ir->ir_set->erst_base);
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1679,8 +1679,9 @@ struct urb_priv {
+@@ -1423,8 +1423,9 @@ struct urb_priv {
   * Each segment table entry is 4*32bits long.  1K seems like an ok size:
   * (1K bytes * 8bytes/bit) / (4*32 bits) = 64 segment entries in the table,
   * meaning 64 ring segments.
diff --git a/target/linux/bcm27xx/patches-5.15/950-0600-xhci-quirks-add-link-TRB-quirk-for-VL805.patch b/target/linux/bcm27xx/patches-5.15/950-0600-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
index 82583d59b7..0fdcde9932 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0600-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0600-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
@@ -54,7 +54,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	addr = xhci_trb_virt_to_dma(new_seg, new_deq);
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1920,6 +1920,7 @@ struct xhci_hcd {
+@@ -1664,6 +1664,7 @@ struct xhci_hcd {
  #define XHCI_ZHAOXIN_HOST	BIT_ULL(46)
  #define XHCI_WRITE_64_HI_LO	BIT_ULL(47)
  #define XHCI_CDNS_SCTX_QUIRK	BIT_ULL(48)
diff --git a/target/linux/bcm27xx/patches-5.15/950-0605-xhci-refactor-out-TRBS_PER_SEGMENT-define-in-runtime.patch b/target/linux/bcm27xx/patches-5.15/950-0605-xhci-refactor-out-TRBS_PER_SEGMENT-define-in-runtime.patch
index 87daa04e04..d7be8f356e 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0605-xhci-refactor-out-TRBS_PER_SEGMENT-define-in-runtime.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0605-xhci-refactor-out-TRBS_PER_SEGMENT-define-in-runtime.patch
@@ -210,7 +210,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	 */
  	while (xhci_handle_event(xhci, ir) > 0) {
 -		if (event_loop++ < TRBS_PER_SEGMENT / 2)
-+		if (event_loop++ < xhci->event_ring->trbs_per_seg / 2)
++		if (event_loop++ < ir->event_ring->trbs_per_seg / 2)
  			continue;
  		xhci_update_erst_dequeue(xhci, ir, event_ring_deq);
  		event_ring_deq = ir->event_ring->dequeue;
@@ -248,7 +248,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	 * when the cycle bit is set to 1.
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1641,6 +1641,7 @@ struct xhci_ring {
+@@ -1385,6 +1385,7 @@ struct xhci_ring {
  	unsigned int		num_trbs_free;
  	unsigned int		num_trbs_free_temp;
  	unsigned int		bounce_buf_len;
diff --git a/target/linux/bcm27xx/patches-5.15/950-0606-usb-xhci-add-VLI_TRB_CACHE_BUG-quirk.patch b/target/linux/bcm27xx/patches-5.15/950-0606-usb-xhci-add-VLI_TRB_CACHE_BUG-quirk.patch
index c974725984..aeb3d0f486 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0606-usb-xhci-add-VLI_TRB_CACHE_BUG-quirk.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0606-usb-xhci-add-VLI_TRB_CACHE_BUG-quirk.patch
@@ -63,7 +63,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1922,6 +1922,7 @@ struct xhci_hcd {
+@@ -1666,6 +1666,7 @@ struct xhci_hcd {
  #define XHCI_WRITE_64_HI_LO	BIT_ULL(47)
  #define XHCI_CDNS_SCTX_QUIRK	BIT_ULL(48)
  #define XHCI_AVOID_DQ_ON_LINK	BIT_ULL(49)
diff --git a/target/linux/bcm27xx/patches-5.15/950-0717-usb-xhci-add-a-quirk-for-Superspeed-bulk-OUT-transfe.patch b/target/linux/bcm27xx/patches-5.15/950-0717-usb-xhci-add-a-quirk-for-Superspeed-bulk-OUT-transfe.patch
index 13862b8f6e..e88091a74a 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0717-usb-xhci-add-a-quirk-for-Superspeed-bulk-OUT-transfe.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0717-usb-xhci-add-a-quirk-for-Superspeed-bulk-OUT-transfe.patch
@@ -86,7 +86,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  			first_trb = false;
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1923,6 +1923,7 @@ struct xhci_hcd {
+@@ -1667,6 +1667,7 @@ struct xhci_hcd {
  #define XHCI_CDNS_SCTX_QUIRK	BIT_ULL(48)
  #define XHCI_AVOID_DQ_ON_LINK	BIT_ULL(49)
  #define XHCI_VLI_TRB_CACHE_BUG	BIT_ULL(50)
diff --git a/target/linux/bcm53xx/patches-5.15/180-usb-xhci-add-support-for-performing-fake-doorbell.patch b/target/linux/bcm53xx/patches-5.15/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
index ac1c95e9db..24d9fd9e44 100644
--- a/target/linux/bcm53xx/patches-5.15/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
+++ b/target/linux/bcm53xx/patches-5.15/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
@@ -109,7 +109,7 @@ it on BCM4708 family.
  
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1919,6 +1919,7 @@ struct xhci_hcd {
+@@ -1663,6 +1663,7 @@ struct xhci_hcd {
  #define XHCI_ZHAOXIN_HOST	BIT_ULL(46)
  #define XHCI_WRITE_64_HI_LO	BIT_ULL(47)
  #define XHCI_CDNS_SCTX_QUIRK	BIT_ULL(48)
diff --git a/target/linux/generic/backport-5.15/020-v6.1-08-mm-multi-gen-LRU-support-page-table-walks.patch b/target/linux/generic/backport-5.15/020-v6.1-08-mm-multi-gen-LRU-support-page-table-walks.patch
index 8a96d240bb..31ed45b5ce 100644
--- a/target/linux/generic/backport-5.15/020-v6.1-08-mm-multi-gen-LRU-support-page-table-walks.patch
+++ b/target/linux/generic/backport-5.15/020-v6.1-08-mm-multi-gen-LRU-support-page-table-walks.patch
@@ -149,7 +149,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
 
 --- a/fs/exec.c
 +++ b/fs/exec.c
-@@ -1015,6 +1015,7 @@ static int exec_mmap(struct mm_struct *m
+@@ -1012,6 +1012,7 @@ static int exec_mmap(struct mm_struct *m
  	active_mm = tsk->active_mm;
  	tsk->active_mm = mm;
  	tsk->mm = mm;
@@ -157,7 +157,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
  	/*
  	 * This prevents preemption while active_mm is being loaded and
  	 * it and mm are being updated, which could cause problems for
-@@ -1030,6 +1031,7 @@ static int exec_mmap(struct mm_struct *m
+@@ -1027,6 +1028,7 @@ static int exec_mmap(struct mm_struct *m
  	tsk->mm->vmacache_seqnum = 0;
  	vmacache_flush(tsk);
  	task_unlock(tsk);
diff --git a/target/linux/generic/backport-5.15/020-v6.1-15-mm-multi-gen-LRU-move-lru_gen_add_mm-out-of-IRQ-off-.patch b/target/linux/generic/backport-5.15/020-v6.1-15-mm-multi-gen-LRU-move-lru_gen_add_mm-out-of-IRQ-off-.patch
index 46e6dd0962..e186db0fea 100644
--- a/target/linux/generic/backport-5.15/020-v6.1-15-mm-multi-gen-LRU-move-lru_gen_add_mm-out-of-IRQ-off-.patch
+++ b/target/linux/generic/backport-5.15/020-v6.1-15-mm-multi-gen-LRU-move-lru_gen_add_mm-out-of-IRQ-off-.patch
@@ -31,7 +31,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
 
 --- a/fs/exec.c
 +++ b/fs/exec.c
-@@ -1015,7 +1015,6 @@ static int exec_mmap(struct mm_struct *m
+@@ -1012,7 +1012,6 @@ static int exec_mmap(struct mm_struct *m
  	active_mm = tsk->active_mm;
  	tsk->active_mm = mm;
  	tsk->mm = mm;
@@ -39,7 +39,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
  	/*
  	 * This prevents preemption while active_mm is being loaded and
  	 * it and mm are being updated, which could cause problems for
-@@ -1030,6 +1029,7 @@ static int exec_mmap(struct mm_struct *m
+@@ -1027,6 +1026,7 @@ static int exec_mmap(struct mm_struct *m
  		local_irq_enable();
  	tsk->mm->vmacache_seqnum = 0;
  	vmacache_flush(tsk);
diff --git a/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch b/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch
index 19ce347282..5809231c6f 100644
--- a/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch
+++ b/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch
@@ -877,7 +877,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  	ethtool_link_ksettings_add_link_mode(ks, supported, FEC_RS);
 --- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
 +++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
-@@ -1659,7 +1659,7 @@ static void axienet_validate(struct phyl
+@@ -1661,7 +1661,7 @@ static void axienet_validate(struct phyl
  			netdev_warn(ndev, "Cannot use PHY mode %s, supported: %s\n",
  				    phy_modes(state->interface),
  				    phy_modes(lp->phy_mode));
@@ -886,7 +886,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  			return;
  		}
  	}
-@@ -1692,10 +1692,8 @@ static void axienet_validate(struct phyl
+@@ -1694,10 +1694,8 @@ static void axienet_validate(struct phyl
  		break;
  	}
  
diff --git a/target/linux/generic/backport-5.15/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch b/target/linux/generic/backport-5.15/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch
deleted file mode 100644
index d29c7d463d..0000000000
--- a/target/linux/generic/backport-5.15/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Subject: [PATCH v2] netfilter: xtables: fix typo causing some targets to not load on IPv6
-Date: Sat, 19 Oct 2024 08:05:07 +0300	[thread overview]
-Message-ID: <20241019-xtables-typos-v2-1-6b8b1735dc8e at 0upti.me> (raw)
-
-These were added with the wrong family in 4cdc55e, which seems
-to just have been a typo, but now ip6tables rules with --set-mark
-don't work anymore, which is pretty bad.
-
-Fixes: 0bfcb7b71e73 ("netfilter: xtables: avoid NFPROTO_UNSPEC where needed")
-Reviewed-by: Phil Sutter <phil at nwl.cc>
-Signed-off-by: Ilya Katsnelson <me at 0upti.me>
----
-Changes in v2:
-- Fixed a typo in the commit message (that's karma).
-- Replaced a reference to backport commit.
-- Link to v1: https://lore.kernel.org/r/20241018-xtables-typos-v1-1-02a51789c0ec at 0upti.me
----
- net/netfilter/xt_NFLOG.c | 2 +-
- net/netfilter/xt_mark.c  | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
---- a/net/netfilter/xt_NFLOG.c
-+++ b/net/netfilter/xt_NFLOG.c
-@@ -79,7 +79,7 @@ static struct xt_target nflog_tg_reg[] _
- 	{
- 		.name       = "NFLOG",
- 		.revision   = 0,
--		.family     = NFPROTO_IPV4,
-+		.family     = NFPROTO_IPV6,
- 		.checkentry = nflog_tg_check,
- 		.destroy    = nflog_tg_destroy,
- 		.target     = nflog_tg,
---- a/net/netfilter/xt_mark.c
-+++ b/net/netfilter/xt_mark.c
-@@ -62,7 +62,7 @@ static struct xt_target mark_tg_reg[] __
- 	{
- 		.name           = "MARK",
- 		.revision       = 2,
--		.family         = NFPROTO_IPV4,
-+		.family         = NFPROTO_IPV6,
- 		.target         = mark_tg,
- 		.targetsize     = sizeof(struct xt_mark_tginfo2),
- 		.me             = THIS_MODULE,
diff --git a/target/linux/ramips/patches-5.15/840-serial-add-ugly-custom-baud-rate-hack.patch b/target/linux/ramips/patches-5.15/840-serial-add-ugly-custom-baud-rate-hack.patch
index 7148bb16f3..884f9b4a67 100644
--- a/target/linux/ramips/patches-5.15/840-serial-add-ugly-custom-baud-rate-hack.patch
+++ b/target/linux/ramips/patches-5.15/840-serial-add-ugly-custom-baud-rate-hack.patch
@@ -10,7 +10,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 
 --- a/drivers/tty/serial/serial_core.c
 +++ b/drivers/tty/serial/serial_core.c
-@@ -393,6 +393,9 @@ uart_get_baud_rate(struct uart_port *por
+@@ -395,6 +395,9 @@ uart_get_baud_rate(struct uart_port *por
  		break;
  	}
  



From lede-commits at lists.infradead.org  Fri Nov 15 15:04:59 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 15 Nov 2024 18:04:59 -0500
Subject: [openwrt/openwrt]  kernel: bump 5.15 to 5.15.168
In-Reply-To: <173171189966.3272985.1759727733460942174@git-01.infra.openwrt.org>
References: <173171189966.3272985.1759727733460942174@git-01.infra.openwrt.org>
Message-ID: <mailman.1018.1731711905.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/b389c3d66f0069e469870f5870528c59439f2936

commit b389c3d66f0069e469870f5870528c59439f2936
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Tue Oct 29 21:48:11 2024 +0100

    kernel: bump 5.15 to 5.15.168
    
    Manually adapted:
       bcm27xx/patches-5.15/950-0166-xhci-Use-more-event-ring-segment-table-entries.patch
         I replaced it with the version from main branch which applies more easily
       bcm27xx/patches-5.15/950-0600-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
       bcm27xx/patches-5.15/950-0605-xhci-refactor-out-TRBS_PER_SEGMENT-define-in-runtime.patch
       bcm27xx/patches-5.15/950-0606-usb-xhci-add-VLI_TRB_CACHE_BUG-quirk.patch
       bcm27xx/patches-5.15/950-0717-usb-xhci-add-a-quirk-for-Superspeed-bulk-OUT-transfe.patch
       bcm53xx/patches-5.15/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
       generic/hack-5.15/645-netfilter-connmark-introduce-set-dscpmark.patch
    
    Added patch:
       generic/backport-5.15/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch
          This fixes a bug intoduced in this version.
    
    Adapt kernel configuration for newly added option
    CONFIG_PROC_MEM_ALWAYS_FORCE.
    
    Link: https://github.com/openwrt/openwrt/pull/16882
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 include/kernel-5.15                                |  4 +-
 .../patches-5.15/910-unaligned_access_hacks.patch  |  2 +-
 ...dev-Completely-disable-the-spidev-warning.patch |  2 +-
 ...rng-Avoid-initialising-if-already-enabled.patch |  2 +-
 .../950-0063-Main-bcm2708-bcm2709-linux-port.patch |  6 +-
 ...ent-xhci_fixup_endpoint-for-interval-adju.patch |  4 +-
 ...-device-quirks-for-Freeway-Airmouse-T3-an.patch |  2 +-
 ...Use-more-event-ring-segment-table-entries.patch | 72 ++++++++++++----------
 ...b-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch |  6 +-
 ...all-usb_autopm_get_interface-for-devices-.patch |  2 +-
 ...i-spidev-Restore-loading-from-Device-Tree.patch |  2 +-
 ...-xhci-quirks-add-link-TRB-quirk-for-VL805.patch | 10 +--
 ...or-out-TRBS_PER_SEGMENT-define-in-runtime.patch | 16 ++---
 ...0606-usb-xhci-add-VLI_TRB_CACHE_BUG-quirk.patch | 12 ++--
 ...d-a-quirk-for-Superspeed-bulk-OUT-transfe.patch | 18 +++---
 ...hci-rework-XHCI_VLI_SS_BULK_OUT_BUG-quirk.patch |  6 +-
 ...05-add-support-for-EMC2301-2-3-5-RPM-base.patch |  2 +-
 ...-add-support-for-performing-fake-doorbell.patch | 10 +--
 ...vice-tree-gpio-hogs-on-dual-role-gpio-pin.patch |  4 +-
 ...01-mm-x86-arm64-add-arch_has_hw_pte_young.patch |  2 +-
 .../020-v6.1-05-mm-multi-gen-LRU-groundwork.patch  |  4 +-
 ...mm-multi-gen-LRU-support-page-table-walks.patch |  6 +-
 ...n-LRU-move-lru_gen_add_mm-out-of-IRQ-off-.patch |  4 +-
 .../020-v6.3-19-mm-add-vma_has_recency.patch       |  2 +-
 ...nvert-users-of-bitmap_foo-to-linkmode_foo.patch |  6 +-
 ...sa-b53-Include-all-ports-in-enabled_ports.patch | 24 ++++----
 ...-Drop-BCM5301x-workaround-for-a-wrong-CPU.patch |  2 +-
 ...53-Improve-flow-control-setup-on-BCM5301x.patch |  2 +-
 ...04-net-dsa-b53-Drop-unused-cpu_port-field.patch | 42 ++++++-------
 ...t-stmicro-stmmac-move-queue-reset-to-dedi.patch |  8 +--
 ...t-stmicro-stmmac-move-dma-conf-to-dedicat.patch | 48 +++++++--------
 ...t-stmicro-stmmac-generate-stmmac-dma-conf.patch | 16 ++---
 ...t-stmicro-stmmac-permit-MTU-change-with-i.patch |  4 +-
 ...-causing-some-targets-to-not-load-on-IPv6.patch | 43 +++++++++++++
 ...eth-fix-risk-of-NULL-pointer-deallocation.patch |  2 +-
 ...th-transmit-URBs-without-trailing-padding.patch |  2 +-
 ...v6.5-03-usbnet-ipheth-add-CDC-NCM-support.patch | 10 +--
 ...tusb-Support-public-address-configuration.patch |  4 +-
 ...tusb-Fix-application-of-sizeof-to-pointer.patch |  2 +-
 .../828-v6.4-0003-of-Rename-of_modalias_node.patch |  2 +-
 ...-cdc_ether-export-usbnet_cdc_zte_rx_fixup.patch |  2 +-
 target/linux/generic/config-5.15                   |  3 +
 .../hack-5.15/410-block-fit-partition-parser.patch |  4 +-
 ...netfilter-connmark-introduce-set-dscpmark.patch | 25 ++++++--
 .../hack-5.15/721-net-add-packet-mangeling.patch   |  4 +-
 .../linux/generic/hack-5.15/902-debloat_proc.patch |  4 +-
 ...Add-Silicon-Labs-SI3210-device-compatible.patch |  4 +-
 .../pending-5.15/655-increase_skb_pad.patch        |  2 +-
 ...jecting-with-source-address-failed-policy.patch | 20 +++---
 ...80-NET-skip-GRO-for-foreign-MAC-addresses.patch | 12 ++--
 ...f_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch |  2 +-
 ...ge-add-knob-for-filtering-rx-tx-BPDU-pack.patch |  2 +-
 ...d-optional-threading-for-backlog-processi.patch | 18 +++---
 ...et-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch |  6 +-
 ...-net-dsa-b53-mmap-allow-passing-a-chip-ID.patch |  2 +-
 ...-dsa-b53-add-BCM63268-RGMII-configuration.patch |  2 +-
 ...net-dsa-b53-mdio-add-support-for-BCM53134.patch |  4 +-
 .../840-hwrng-bcm2835-set-quality-to-1000.patch    |  2 +-
 ...-net-stmmac-Use-hrtimer-for-TX-coalescing.patch |  8 +--
 .../0028-NET-lantiq-various-etop-fixes.patch       | 24 ++++----
 ...-lantiq-wifi-and-ethernet-eeprom-handling.patch |  2 +-
 ...configure-the-burst-length-in-ethernet-dr.patch |  4 +-
 ...-i2c-move-drivers-from-strlcpy-to-strscpy.patch |  2 +-
 .../901-arm-add-cmdline-override.patch             |  2 +-
 ...on-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch |  2 +-
 ...rk-for-Gateworks-PLX-PEX860x-switch-with-.patch |  2 +-
 .../850-awake-rt305x-dwc2-controller.patch         |  2 +-
 ...sifive-unleashed-define-opp-table-cpufreq.patch |  2 +-
 68 files changed, 329 insertions(+), 256 deletions(-)

diff --git a/include/kernel-5.15 b/include/kernel-5.15
index e7fa22af6c..6844295833 100644
--- a/include/kernel-5.15
+++ b/include/kernel-5.15
@@ -1,2 +1,2 @@
-LINUX_VERSION-5.15 = .167
-LINUX_KERNEL_HASH-5.15.167 = b1751f18ece3df08d502dd87a9ab1a317dc0f9486355bf8ee62ba6af0b35da30
+LINUX_VERSION-5.15 = .168
+LINUX_KERNEL_HASH-5.15.168 = cfbebbd57456827013b97689aa3cad1fbfbe864dd80b0ecf16bb29990b38e17a
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 49a2009917..cfb22ab562 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
@@ -751,7 +751,7 @@ SVN-Revision: 35130
  EXPORT_SYMBOL(xfrm_parse_spi);
 --- a/net/ipv4/tcp_input.c
 +++ b/net/ipv4/tcp_input.c
-@@ -4201,14 +4201,16 @@ static bool tcp_parse_aligned_timestamp(
+@@ -4228,14 +4228,16 @@ static bool tcp_parse_aligned_timestamp(
  {
  	const __be32 *ptr = (const __be32 *)(th + 1);
  
diff --git a/target/linux/bcm27xx/patches-5.15/950-0040-spi-spidev-Completely-disable-the-spidev-warning.patch b/target/linux/bcm27xx/patches-5.15/950-0040-spi-spidev-Completely-disable-the-spidev-warning.patch
index 575c027c89..25ad03a6d6 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0040-spi-spidev-Completely-disable-the-spidev-warning.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0040-spi-spidev-Completely-disable-the-spidev-warning.patch
@@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
 
 --- a/drivers/spi/spidev.c
 +++ b/drivers/spi/spidev.c
-@@ -698,7 +698,7 @@ MODULE_DEVICE_TABLE(spi, spidev_spi_ids)
+@@ -699,7 +699,7 @@ MODULE_DEVICE_TABLE(spi, spidev_spi_ids)
   */
  static int spidev_of_check(struct device *dev)
  {
diff --git a/target/linux/bcm27xx/patches-5.15/950-0047-bcm2835-rng-Avoid-initialising-if-already-enabled.patch b/target/linux/bcm27xx/patches-5.15/950-0047-bcm2835-rng-Avoid-initialising-if-already-enabled.patch
index 962667eee4..169a1828eb 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0047-bcm2835-rng-Avoid-initialising-if-already-enabled.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0047-bcm2835-rng-Avoid-initialising-if-already-enabled.patch
@@ -10,7 +10,7 @@ Avoids the 0x40000 cycles of warmup again if firmware has already used it
 
 --- a/drivers/char/hw_random/bcm2835-rng.c
 +++ b/drivers/char/hw_random/bcm2835-rng.c
-@@ -106,8 +106,10 @@ static int bcm2835_rng_init(struct hwrng
+@@ -108,8 +108,10 @@ static int bcm2835_rng_init(struct hwrng
  	}
  
  	/* set warm-up count & enable */
diff --git a/target/linux/bcm27xx/patches-5.15/950-0063-Main-bcm2708-bcm2709-linux-port.patch b/target/linux/bcm27xx/patches-5.15/950-0063-Main-bcm2708-bcm2709-linux-port.patch
index e69ecdffb0..a12b97507c 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0063-Main-bcm2708-bcm2709-linux-port.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0063-Main-bcm2708-bcm2709-linux-port.patch
@@ -125,10 +125,10 @@ board_bcm2835: Remove coherent dma pool increase - API has gone
  
 -	ret = devm_request_irq(dev, irq_of_parse_and_map(dev->of_node, 0),
 +	ret = devm_request_irq(dev, platform_get_irq(pdev, 0),
- 			       bcm2835_mbox_irq, 0, dev_name(dev), mbox);
+ 			       bcm2835_mbox_irq, IRQF_NO_SUSPEND, dev_name(dev),
+ 			       mbox);
  	if (ret) {
- 		dev_err(dev, "Failed to register a mailbox IRQ handler: %d\n",
-@@ -194,7 +197,18 @@ static struct platform_driver bcm2835_mb
+@@ -195,7 +198,18 @@ static struct platform_driver bcm2835_mb
  	},
  	.probe		= bcm2835_mbox_probe,
  };
diff --git a/target/linux/bcm27xx/patches-5.15/950-0152-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch b/target/linux/bcm27xx/patches-5.15/950-0152-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch
index 2a58fd59b2..19b5578dd3 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0152-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0152-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch
@@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.org>
 
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -1633,6 +1633,109 @@ command_cleanup:
+@@ -1642,6 +1642,109 @@ command_cleanup:
  }
  
  /*
@@ -125,7 +125,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.org>
   * non-error returns are a promise to giveback() the urb later
   * we drop ownership so next owner (or urb unlink) can get it
   */
-@@ -5474,6 +5577,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5488,6 +5591,7 @@ static const struct hc_driver xhci_hc_dr
  	.endpoint_reset =	xhci_endpoint_reset,
  	.check_bandwidth =	xhci_check_bandwidth,
  	.reset_bandwidth =	xhci_reset_bandwidth,
diff --git a/target/linux/bcm27xx/patches-5.15/950-0163-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/target/linux/bcm27xx/patches-5.15/950-0163-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch
index 580b5064e7..57f0ecfd9e 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0163-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0163-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch
@@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.org>
  #define USB_VENDOR_ID_BELKIN		0x050d
  #define USB_DEVICE_ID_FLIP_KVM		0x3201
  
-@@ -1332,6 +1335,9 @@
+@@ -1337,6 +1340,9 @@
  #define USB_VENDOR_ID_XAT	0x2505
  #define USB_DEVICE_ID_XAT_CSR	0x0220
  
diff --git a/target/linux/bcm27xx/patches-5.15/950-0166-xhci-Use-more-event-ring-segment-table-entries.patch b/target/linux/bcm27xx/patches-5.15/950-0166-xhci-Use-more-event-ring-segment-table-entries.patch
index d7bcce3b1a..d9385093e6 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0166-xhci-Use-more-event-ring-segment-table-entries.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0166-xhci-Use-more-event-ring-segment-table-entries.patch
@@ -1,7 +1,7 @@
-From 271d837c58918de2cac5715798ebf71df43b39f7 Mon Sep 17 00:00:00 2001
-From: Jonathan Bell <jonathan at raspberrypi.org>
-Date: Tue, 13 Aug 2019 15:53:29 +0100
-Subject: [PATCH] xhci: Use more event ring segment table entries
+From d631e7354399aa2fb6079b72f515acd6d080c203 Mon Sep 17 00:00:00 2001
+From: Jonathan Bell <jonathan at raspberrypi.com>
+Date: Thu, 13 Jul 2023 14:43:21 +0100
+Subject: [PATCH 0481/1085] xhci: Use more event ring segment table entries
 
 Users have reported log spam created by "Event Ring Full" xHC event
 TRBs. These are caused by interrupt latency in conjunction with a very
@@ -14,46 +14,54 @@ Controllers have a hardware-defined limit as to the number of ERST
 entries they can process, so make the actual number in use
 min(ERST_MAX_SEGS, hw_max).
 
-Signed-off-by: Jonathan Bell <jonathan at raspberrypi.org>
+Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
 ---
- drivers/usb/host/xhci-mem.c | 8 +++++---
- drivers/usb/host/xhci.h     | 4 ++--
- 2 files changed, 7 insertions(+), 5 deletions(-)
+ drivers/usb/host/xhci-mem.c | 9 +++++++--
+ drivers/usb/host/xhci.h     | 5 +++--
+ 2 files changed, 10 insertions(+), 4 deletions(-)
 
 --- a/drivers/usb/host/xhci-mem.c
 +++ b/drivers/usb/host/xhci-mem.c
-@@ -2544,9 +2544,11 @@ int xhci_mem_init(struct xhci_hcd *xhci,
- 	 * Event ring setup: Allocate a normal ring, but also setup
- 	 * the event ring segment table (ERST).  Section 4.9.3.
- 	 */
-+	val2 = 1 << HCS_ERST_MAX(xhci->hcs_params2);
-+	val2 = min_t(unsigned int, ERST_MAX_SEGS, val2);
- 	xhci_dbg_trace(xhci, trace_xhci_dbg_init, "// Allocating event ring");
--	xhci->event_ring = xhci_ring_alloc(xhci, ERST_NUM_SEGS, 1, TYPE_EVENT,
--					0, flags);
-+	xhci->event_ring = xhci_ring_alloc(xhci, val2, 1, TYPE_EVENT,
-+					   0, flags);
- 	if (!xhci->event_ring)
- 		goto fail;
- 	if (xhci_check_trb_in_td_math(xhci) < 0)
-@@ -2559,7 +2561,7 @@ int xhci_mem_init(struct xhci_hcd *xhci,
+@@ -2276,6 +2276,7 @@ xhci_alloc_interrupter(struct xhci_hcd *
+ {
+ 	struct device *dev = xhci_to_hcd(xhci)->self.sysdev;
+ 	struct xhci_interrupter *ir;
++	unsigned int nr_event_segs;
+ 	u64 erst_base;
+ 	u32 erst_size;
+ 	int ret;
+@@ -2296,7 +2297,11 @@ xhci_alloc_interrupter(struct xhci_hcd *
+ 		return NULL;
+ 
+ 	ir->ir_set = &xhci->run_regs->ir_set[intr_num];
+-	ir->event_ring = xhci_ring_alloc(xhci, ERST_NUM_SEGS, 1, TYPE_EVENT,
++	nr_event_segs = min_t(unsigned int,
++			      1 << HCS_ERST_MAX(xhci->hcs_params2),
++			      ERST_MAX_SEGS);
++
++	ir->event_ring = xhci_ring_alloc(xhci, nr_event_segs, 1, TYPE_EVENT,
+ 					0, flags);
+ 	if (!ir->event_ring) {
+ 		xhci_warn(xhci, "Failed to allocate interrupter %d event ring\n", intr_num);
+@@ -2312,7 +2317,7 @@ xhci_alloc_interrupter(struct xhci_hcd *
  	/* set ERST count with the number of entries in the segment table */
- 	val = readl(&xhci->ir_set->erst_size);
- 	val &= ERST_SIZE_MASK;
--	val |= ERST_NUM_SEGS;
-+	val |= val2;
- 	xhci_dbg_trace(xhci, trace_xhci_dbg_init,
- 			"// Write ERST size = %i to ir_set 0 (some bits preserved)",
- 			val);
+ 	erst_size = readl(&ir->ir_set->erst_size);
+ 	erst_size &= ERST_SIZE_MASK;
+-	erst_size |= ERST_NUM_SEGS;
++	erst_size |= ir->event_ring->num_segs;
+ 	writel(erst_size, &ir->ir_set->erst_size);
+ 
+ 	erst_base = xhci_read_64(xhci, &ir->ir_set->erst_base);
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1675,8 +1675,8 @@ struct urb_priv {
+@@ -1679,8 +1679,9 @@ struct urb_priv {
   * Each segment table entry is 4*32bits long.  1K seems like an ok size:
   * (1K bytes * 8bytes/bit) / (4*32 bits) = 64 segment entries in the table,
   * meaning 64 ring segments.
 - * Initial allocated size of the ERST, in number of entries */
 -#define	ERST_NUM_SEGS	1
-+ * Maximum number of segments in the ERST */
++ */
++/* Maximum number of segments in the ERST */
 +#define	ERST_MAX_SEGS	8
  /* Poll every 60 seconds */
  #define	POLL_TIMEOUT	60
diff --git a/target/linux/bcm27xx/patches-5.15/950-0238-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch b/target/linux/bcm27xx/patches-5.15/950-0238-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch
index 8be256bf1c..9a61e59f33 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0238-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0238-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch
@@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
 
 --- a/drivers/gpio/gpiolib.c
 +++ b/drivers/gpio/gpiolib.c
-@@ -52,6 +52,8 @@
+@@ -53,6 +53,8 @@
  #define	extra_checks	0
  #endif
  
@@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
  /* Device and char device-related information */
  static DEFINE_IDA(gpio_ida);
  static dev_t gpio_devt;
-@@ -2408,8 +2410,8 @@ int gpiod_direction_output(struct gpio_d
+@@ -2409,8 +2411,8 @@ int gpiod_direction_output(struct gpio_d
  		value = !!value;
  
  	/* GPIOs used for enabled IRQs shall not be set as output */
@@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
  		gpiod_err(desc,
  			  "%s: tried to set a GPIO tied to an IRQ as output\n",
  			  __func__);
-@@ -3226,8 +3228,8 @@ int gpiochip_lock_as_irq(struct gpio_chi
+@@ -3227,8 +3229,8 @@ int gpiochip_lock_as_irq(struct gpio_chi
  	}
  
  	/* To be valid for IRQ the line needs to be input or open drain */
diff --git a/target/linux/bcm27xx/patches-5.15/950-0471-sound-usb-call-usb_autopm_get_interface-for-devices-.patch b/target/linux/bcm27xx/patches-5.15/950-0471-sound-usb-call-usb_autopm_get_interface-for-devices-.patch
index 107e686f05..74f419d707 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0471-sound-usb-call-usb_autopm_get_interface-for-devices-.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0471-sound-usb-call-usb_autopm_get_interface-for-devices-.patch
@@ -19,7 +19,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
 
 --- a/sound/usb/card.c
 +++ b/sound/usb/card.c
-@@ -856,8 +856,14 @@ static int usb_audio_probe(struct usb_in
+@@ -862,8 +862,14 @@ static int usb_audio_probe(struct usb_in
  	if (ignore_ctl_error)
  		chip->quirk_flags |= QUIRK_FLAG_IGNORE_CTL_ERROR;
  
diff --git a/target/linux/bcm27xx/patches-5.15/950-0578-spi-spidev-Restore-loading-from-Device-Tree.patch b/target/linux/bcm27xx/patches-5.15/950-0578-spi-spidev-Restore-loading-from-Device-Tree.patch
index 90e37bd0e3..53d7a55c3d 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0578-spi-spidev-Restore-loading-from-Device-Tree.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0578-spi-spidev-Restore-loading-from-Device-Tree.patch
@@ -22,4 +22,4 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 +	{ .name = "spidev" },
  	{ .name = "bh2228fv" },
  	{ .name = "dh2228fv" },
- 	{ .name = "ltc2488" },
+ 	{ .name = "jg10309-01" },
diff --git a/target/linux/bcm27xx/patches-5.15/950-0600-xhci-quirks-add-link-TRB-quirk-for-VL805.patch b/target/linux/bcm27xx/patches-5.15/950-0600-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
index eb44439f5f..82583d59b7 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0600-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0600-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
@@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
 
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -301,8 +301,10 @@ static void xhci_pci_quirks(struct devic
+@@ -305,8 +305,10 @@ static void xhci_pci_quirks(struct devic
  			pdev->device == 0x3432)
  		xhci->quirks |= XHCI_BROKEN_STREAMS;
  
@@ -54,11 +54,11 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	addr = xhci_trb_virt_to_dma(new_seg, new_deq);
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1909,6 +1909,7 @@ struct xhci_hcd {
- #define XHCI_RESET_TO_DEFAULT	BIT_ULL(44)
- #define XHCI_ZHAOXIN_TRB_FETCH	BIT_ULL(45)
+@@ -1920,6 +1920,7 @@ struct xhci_hcd {
  #define XHCI_ZHAOXIN_HOST	BIT_ULL(46)
-+#define XHCI_AVOID_DQ_ON_LINK	BIT_ULL(47)
+ #define XHCI_WRITE_64_HI_LO	BIT_ULL(47)
+ #define XHCI_CDNS_SCTX_QUIRK	BIT_ULL(48)
++#define XHCI_AVOID_DQ_ON_LINK	BIT_ULL(49)
  
  	unsigned int		num_active_eps;
  	unsigned int		limit_active_eps;
diff --git a/target/linux/bcm27xx/patches-5.15/950-0605-xhci-refactor-out-TRBS_PER_SEGMENT-define-in-runtime.patch b/target/linux/bcm27xx/patches-5.15/950-0605-xhci-refactor-out-TRBS_PER_SEGMENT-define-in-runtime.patch
index 285e726c2a..87daa04e04 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0605-xhci-refactor-out-TRBS_PER_SEGMENT-define-in-runtime.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0605-xhci-refactor-out-TRBS_PER_SEGMENT-define-in-runtime.patch
@@ -205,16 +205,16 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  		xhci_err(xhci, "Tried to move enqueue past ring segment\n");
  		return;
  	}
-@@ -3246,7 +3249,7 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd
+@@ -3266,7 +3269,7 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd
  	 * that clears the EHB.
  	 */
- 	while (xhci_handle_event(xhci) > 0) {
+ 	while (xhci_handle_event(xhci, ir) > 0) {
 -		if (event_loop++ < TRBS_PER_SEGMENT / 2)
 +		if (event_loop++ < xhci->event_ring->trbs_per_seg / 2)
  			continue;
- 		xhci_update_erst_dequeue(xhci, event_ring_deq);
- 		event_ring_deq = xhci->event_ring->dequeue;
-@@ -3388,7 +3391,8 @@ static int prepare_ring(struct xhci_hcd
+ 		xhci_update_erst_dequeue(xhci, ir, event_ring_deq);
+ 		event_ring_deq = ir->event_ring->dequeue;
+@@ -3408,7 +3411,8 @@ static int prepare_ring(struct xhci_hcd
  		}
  	}
  
@@ -226,7 +226,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	}
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -889,8 +889,8 @@ static void xhci_clear_command_ring(stru
+@@ -898,8 +898,8 @@ static void xhci_clear_command_ring(stru
  	seg = ring->deq_seg;
  	do {
  		memset(seg->trbs, 0,
@@ -237,7 +237,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  			cpu_to_le32(~TRB_CYCLE);
  		seg = seg->next;
  	} while (seg != ring->deq_seg);
-@@ -901,7 +901,7 @@ static void xhci_clear_command_ring(stru
+@@ -910,7 +910,7 @@ static void xhci_clear_command_ring(stru
  	ring->enq_seg = ring->deq_seg;
  	ring->enqueue = ring->dequeue;
  
@@ -248,7 +248,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	 * when the cycle bit is set to 1.
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1637,6 +1637,7 @@ struct xhci_ring {
+@@ -1641,6 +1641,7 @@ struct xhci_ring {
  	unsigned int		num_trbs_free;
  	unsigned int		num_trbs_free_temp;
  	unsigned int		bounce_buf_len;
diff --git a/target/linux/bcm27xx/patches-5.15/950-0606-usb-xhci-add-VLI_TRB_CACHE_BUG-quirk.patch b/target/linux/bcm27xx/patches-5.15/950-0606-usb-xhci-add-VLI_TRB_CACHE_BUG-quirk.patch
index 514692e849..c974725984 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0606-usb-xhci-add-VLI_TRB_CACHE_BUG-quirk.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0606-usb-xhci-add-VLI_TRB_CACHE_BUG-quirk.patch
@@ -53,7 +53,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  			cycle_state, type, max_packet, flags);
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -304,6 +304,7 @@ static void xhci_pci_quirks(struct devic
+@@ -308,6 +308,7 @@ static void xhci_pci_quirks(struct devic
  	if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) {
  		xhci->quirks |= XHCI_LPM_SUPPORT;
  		xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
@@ -63,11 +63,11 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1911,6 +1911,7 @@ struct xhci_hcd {
- #define XHCI_ZHAOXIN_TRB_FETCH	BIT_ULL(45)
- #define XHCI_ZHAOXIN_HOST	BIT_ULL(46)
- #define XHCI_AVOID_DQ_ON_LINK	BIT_ULL(47)
-+#define XHCI_VLI_TRB_CACHE_BUG	BIT_ULL(48)
+@@ -1922,6 +1922,7 @@ struct xhci_hcd {
+ #define XHCI_WRITE_64_HI_LO	BIT_ULL(47)
+ #define XHCI_CDNS_SCTX_QUIRK	BIT_ULL(48)
+ #define XHCI_AVOID_DQ_ON_LINK	BIT_ULL(49)
++#define XHCI_VLI_TRB_CACHE_BUG	BIT_ULL(50)
  
  	unsigned int		num_active_eps;
  	unsigned int		limit_active_eps;
diff --git a/target/linux/bcm27xx/patches-5.15/950-0717-usb-xhci-add-a-quirk-for-Superspeed-bulk-OUT-transfe.patch b/target/linux/bcm27xx/patches-5.15/950-0717-usb-xhci-add-a-quirk-for-Superspeed-bulk-OUT-transfe.patch
index 9c24005fe8..13862b8f6e 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0717-usb-xhci-add-a-quirk-for-Superspeed-bulk-OUT-transfe.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0717-usb-xhci-add-a-quirk-for-Superspeed-bulk-OUT-transfe.patch
@@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
 
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -305,6 +305,7 @@ static void xhci_pci_quirks(struct devic
+@@ -309,6 +309,7 @@ static void xhci_pci_quirks(struct devic
  		xhci->quirks |= XHCI_LPM_SUPPORT;
  		xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
  		xhci->quirks |= XHCI_VLI_TRB_CACHE_BUG;
@@ -36,7 +36,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
 --- a/drivers/usb/host/xhci-ring.c
 +++ b/drivers/usb/host/xhci-ring.c
-@@ -3701,14 +3701,15 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3721,14 +3721,15 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
  	unsigned int num_trbs;
  	unsigned int start_cycle, num_sgs = 0;
  	unsigned int enqd_len, block_len, trb_buff_len, full_len;
@@ -54,7 +54,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	full_len = urb->transfer_buffer_length;
  	/* If we have scatter/gather list, we use it. */
  	if (urb->num_sgs && !(urb->transfer_flags & URB_DMA_MAP_SINGLE)) {
-@@ -3745,6 +3746,17 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3765,6 +3766,17 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
  	start_cycle = ring->cycle_state;
  	send_addr = addr;
  
@@ -72,7 +72,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	/* Queue the TRBs, even if they are zero-length */
  	for (enqd_len = 0; first_trb || enqd_len < full_len;
  			enqd_len += trb_buff_len) {
-@@ -3757,6 +3769,11 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3777,6 +3789,11 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
  		if (enqd_len + trb_buff_len > full_len)
  			trb_buff_len = full_len - enqd_len;
  
@@ -86,11 +86,11 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  			first_trb = false;
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1912,6 +1912,7 @@ struct xhci_hcd {
- #define XHCI_ZHAOXIN_HOST	BIT_ULL(46)
- #define XHCI_AVOID_DQ_ON_LINK	BIT_ULL(47)
- #define XHCI_VLI_TRB_CACHE_BUG	BIT_ULL(48)
-+#define XHCI_VLI_SS_BULK_OUT_BUG	BIT_ULL(49)
+@@ -1923,6 +1923,7 @@ struct xhci_hcd {
+ #define XHCI_CDNS_SCTX_QUIRK	BIT_ULL(48)
+ #define XHCI_AVOID_DQ_ON_LINK	BIT_ULL(49)
+ #define XHCI_VLI_TRB_CACHE_BUG	BIT_ULL(50)
++#define XHCI_VLI_SS_BULK_OUT_BUG	BIT_ULL(51)
  
  	unsigned int		num_active_eps;
  	unsigned int		limit_active_eps;
diff --git a/target/linux/bcm27xx/patches-5.15/950-0747-usb-xhci-rework-XHCI_VLI_SS_BULK_OUT_BUG-quirk.patch b/target/linux/bcm27xx/patches-5.15/950-0747-usb-xhci-rework-XHCI_VLI_SS_BULK_OUT_BUG-quirk.patch
index c4d9bcfd42..bbae6cb15f 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0747-usb-xhci-rework-XHCI_VLI_SS_BULK_OUT_BUG-quirk.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0747-usb-xhci-rework-XHCI_VLI_SS_BULK_OUT_BUG-quirk.patch
@@ -13,7 +13,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
 
 --- a/drivers/usb/host/xhci-ring.c
 +++ b/drivers/usb/host/xhci-ring.c
-@@ -3701,7 +3701,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3721,7 +3721,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
  	unsigned int num_trbs;
  	unsigned int start_cycle, num_sgs = 0;
  	unsigned int enqd_len, block_len, trb_buff_len, full_len;
@@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	u32 field, length_field, remainder, maxpacket;
  	u64 addr, send_addr;
  
-@@ -3747,14 +3747,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3767,14 +3767,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
  	send_addr = addr;
  
  	if (xhci->quirks & XHCI_VLI_SS_BULK_OUT_BUG &&
@@ -40,7 +40,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	}
  
  	/* Queue the TRBs, even if they are zero-length */
-@@ -3769,7 +3764,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3789,7 +3784,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
  		if (enqd_len + trb_buff_len > full_len)
  			trb_buff_len = full_len - enqd_len;
  
diff --git a/target/linux/bcm27xx/patches-5.15/950-0890-hwmon-emc2305-add-support-for-EMC2301-2-3-5-RPM-base.patch b/target/linux/bcm27xx/patches-5.15/950-0890-hwmon-emc2305-add-support-for-EMC2301-2-3-5-RPM-base.patch
index f25495290d..7ebd525e7e 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0890-hwmon-emc2305-add-support-for-EMC2301-2-3-5-RPM-base.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0890-hwmon-emc2305-add-support-for-EMC2301-2-3-5-RPM-base.patch
@@ -22,7 +22,7 @@ Reviewed-by: Vadim Pasternak <vadimp at nvidia.com>
 
 --- a/drivers/hwmon/Kconfig
 +++ b/drivers/hwmon/Kconfig
-@@ -1685,6 +1685,19 @@ config SENSORS_EMC2103
+@@ -1687,6 +1687,19 @@ config SENSORS_EMC2103
  	  This driver can also be built as a module. If so, the module
  	  will be called emc2103.
  
diff --git a/target/linux/bcm53xx/patches-5.15/180-usb-xhci-add-support-for-performing-fake-doorbell.patch b/target/linux/bcm53xx/patches-5.15/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
index c1578e3b64..ac1c95e9db 100644
--- a/target/linux/bcm53xx/patches-5.15/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
+++ b/target/linux/bcm53xx/patches-5.15/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
@@ -90,7 +90,7 @@ it on BCM4708 family.
  /*
   * Reset a halted HC.
   *
-@@ -634,6 +677,16 @@ static int xhci_run_finished(struct xhci
+@@ -635,6 +678,16 @@ static int xhci_run_finished(struct xhci
  		spin_unlock_irqrestore(&xhci->lock, flags);
  		return -ENODEV;
  	}
@@ -109,11 +109,11 @@ it on BCM4708 family.
  
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1909,6 +1909,7 @@ struct xhci_hcd {
- #define XHCI_RESET_TO_DEFAULT	BIT_ULL(44)
- #define XHCI_ZHAOXIN_TRB_FETCH	BIT_ULL(45)
+@@ -1919,6 +1919,7 @@ struct xhci_hcd {
  #define XHCI_ZHAOXIN_HOST	BIT_ULL(46)
-+#define XHCI_FAKE_DOORBELL     BIT_ULL(47)
+ #define XHCI_WRITE_64_HI_LO	BIT_ULL(47)
+ #define XHCI_CDNS_SCTX_QUIRK	BIT_ULL(48)
++#define XHCI_FAKE_DOORBELL     BIT_ULL(49)
  
  	unsigned int		num_active_eps;
  	unsigned int		limit_active_eps;
diff --git a/target/linux/bcm63xx/patches-5.15/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch b/target/linux/bcm63xx/patches-5.15/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch
index 6665552389..ebe0602090 100644
--- a/target/linux/bcm63xx/patches-5.15/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch
+++ b/target/linux/bcm63xx/patches-5.15/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch
@@ -116,7 +116,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski at gmail.com>
  }
 --- a/drivers/gpio/gpiolib.c
 +++ b/drivers/gpio/gpiolib.c
-@@ -1815,7 +1815,8 @@ int gpiochip_add_pingroup_range(struct g
+@@ -1816,7 +1816,8 @@ int gpiochip_add_pingroup_range(struct g
  
  	list_add_tail(&pin_range->node, &gdev->pin_ranges);
  
@@ -126,7 +126,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski at gmail.com>
  }
  EXPORT_SYMBOL_GPL(gpiochip_add_pingroup_range);
  
-@@ -1872,7 +1873,7 @@ int gpiochip_add_pin_range(struct gpio_c
+@@ -1873,7 +1874,7 @@ int gpiochip_add_pin_range(struct gpio_c
  
  	list_add_tail(&pin_range->node, &gdev->pin_ranges);
  
diff --git a/target/linux/generic/backport-5.15/020-v6.1-01-mm-x86-arm64-add-arch_has_hw_pte_young.patch b/target/linux/generic/backport-5.15/020-v6.1-01-mm-x86-arm64-add-arch_has_hw_pte_young.patch
index 865da6b182..56612012d3 100644
--- a/target/linux/generic/backport-5.15/020-v6.1-01-mm-x86-arm64-add-arch_has_hw_pte_young.patch
+++ b/target/linux/generic/backport-5.15/020-v6.1-01-mm-x86-arm64-add-arch_has_hw_pte_young.patch
@@ -414,7 +414,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
  #ifndef arch_wants_old_prefaulted_pte
  static inline bool arch_wants_old_prefaulted_pte(void)
  {
-@@ -2791,7 +2779,7 @@ static inline int cow_user_page(struct p
+@@ -2808,7 +2796,7 @@ static inline int cow_user_page(struct p
  	 * On architectures with software "accessed" bits, we would
  	 * take a double page fault, so mark it accessed here.
  	 */
diff --git a/target/linux/generic/backport-5.15/020-v6.1-05-mm-multi-gen-LRU-groundwork.patch b/target/linux/generic/backport-5.15/020-v6.1-05-mm-multi-gen-LRU-groundwork.patch
index 76dbfec809..ce7ab38ed9 100644
--- a/target/linux/generic/backport-5.15/020-v6.1-05-mm-multi-gen-LRU-groundwork.patch
+++ b/target/linux/generic/backport-5.15/020-v6.1-05-mm-multi-gen-LRU-groundwork.patch
@@ -612,7 +612,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
  	mem_cgroup_id_remove(memcg);
 --- a/mm/memory.c
 +++ b/mm/memory.c
-@@ -4804,6 +4804,27 @@ static inline void mm_account_fault(stru
+@@ -4821,6 +4821,27 @@ static inline void mm_account_fault(stru
  		perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, 1, regs, address);
  }
  
@@ -640,7 +640,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
  /*
   * By the time we get here, we already hold the mm semaphore
   *
-@@ -4835,11 +4856,15 @@ vm_fault_t handle_mm_fault(struct vm_are
+@@ -4852,11 +4873,15 @@ vm_fault_t handle_mm_fault(struct vm_are
  	if (flags & FAULT_FLAG_USER)
  		mem_cgroup_enter_user_fault();
  
diff --git a/target/linux/generic/backport-5.15/020-v6.1-08-mm-multi-gen-LRU-support-page-table-walks.patch b/target/linux/generic/backport-5.15/020-v6.1-08-mm-multi-gen-LRU-support-page-table-walks.patch
index 2a77ebabf8..8a96d240bb 100644
--- a/target/linux/generic/backport-5.15/020-v6.1-08-mm-multi-gen-LRU-support-page-table-walks.patch
+++ b/target/linux/generic/backport-5.15/020-v6.1-08-mm-multi-gen-LRU-support-page-table-walks.patch
@@ -149,7 +149,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
 
 --- a/fs/exec.c
 +++ b/fs/exec.c
-@@ -1014,6 +1014,7 @@ static int exec_mmap(struct mm_struct *m
+@@ -1015,6 +1015,7 @@ static int exec_mmap(struct mm_struct *m
  	active_mm = tsk->active_mm;
  	tsk->active_mm = mm;
  	tsk->mm = mm;
@@ -157,7 +157,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
  	/*
  	 * This prevents preemption while active_mm is being loaded and
  	 * it and mm are being updated, which could cause problems for
-@@ -1029,6 +1030,7 @@ static int exec_mmap(struct mm_struct *m
+@@ -1030,6 +1031,7 @@ static int exec_mmap(struct mm_struct *m
  	tsk->mm->vmacache_seqnum = 0;
  	vmacache_flush(tsk);
  	task_unlock(tsk);
@@ -398,7 +398,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
  	mmdrop(mm);
  }
  
-@@ -2625,6 +2627,13 @@ pid_t kernel_clone(struct kernel_clone_a
+@@ -2622,6 +2624,13 @@ pid_t kernel_clone(struct kernel_clone_a
  		get_task_struct(p);
  	}
  
diff --git a/target/linux/generic/backport-5.15/020-v6.1-15-mm-multi-gen-LRU-move-lru_gen_add_mm-out-of-IRQ-off-.patch b/target/linux/generic/backport-5.15/020-v6.1-15-mm-multi-gen-LRU-move-lru_gen_add_mm-out-of-IRQ-off-.patch
index b1319d98a3..46e6dd0962 100644
--- a/target/linux/generic/backport-5.15/020-v6.1-15-mm-multi-gen-LRU-move-lru_gen_add_mm-out-of-IRQ-off-.patch
+++ b/target/linux/generic/backport-5.15/020-v6.1-15-mm-multi-gen-LRU-move-lru_gen_add_mm-out-of-IRQ-off-.patch
@@ -31,7 +31,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
 
 --- a/fs/exec.c
 +++ b/fs/exec.c
-@@ -1014,7 +1014,6 @@ static int exec_mmap(struct mm_struct *m
+@@ -1015,7 +1015,6 @@ static int exec_mmap(struct mm_struct *m
  	active_mm = tsk->active_mm;
  	tsk->active_mm = mm;
  	tsk->mm = mm;
@@ -39,7 +39,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
  	/*
  	 * This prevents preemption while active_mm is being loaded and
  	 * it and mm are being updated, which could cause problems for
-@@ -1029,6 +1028,7 @@ static int exec_mmap(struct mm_struct *m
+@@ -1030,6 +1029,7 @@ static int exec_mmap(struct mm_struct *m
  		local_irq_enable();
  	tsk->mm->vmacache_seqnum = 0;
  	vmacache_flush(tsk);
diff --git a/target/linux/generic/backport-5.15/020-v6.3-19-mm-add-vma_has_recency.patch b/target/linux/generic/backport-5.15/020-v6.3-19-mm-add-vma_has_recency.patch
index 34ff1103b8..f0a0eea4b6 100644
--- a/target/linux/generic/backport-5.15/020-v6.3-19-mm-add-vma_has_recency.patch
+++ b/target/linux/generic/backport-5.15/020-v6.3-19-mm-add-vma_has_recency.patch
@@ -92,7 +92,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
  					mark_page_accessed(page);
  			}
  			rss[mm_counter(page)]--;
-@@ -4807,8 +4807,8 @@ static inline void mm_account_fault(stru
+@@ -4824,8 +4824,8 @@ static inline void mm_account_fault(stru
  #ifdef CONFIG_LRU_GEN
  static void lru_gen_enter_fault(struct vm_area_struct *vma)
  {
diff --git a/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch b/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch
index cb7d4254d3..19ce347282 100644
--- a/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch
+++ b/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch
@@ -289,7 +289,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -1349,10 +1349,8 @@ void b53_phylink_validate(struct dsa_swi
+@@ -1353,10 +1353,8 @@ void b53_phylink_validate(struct dsa_swi
  		phylink_set(mask, 100baseT_Full);
  	}
  
@@ -877,7 +877,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  	ethtool_link_ksettings_add_link_mode(ks, supported, FEC_RS);
 --- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
 +++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
-@@ -1566,7 +1566,7 @@ static void axienet_validate(struct phyl
+@@ -1659,7 +1659,7 @@ static void axienet_validate(struct phyl
  			netdev_warn(ndev, "Cannot use PHY mode %s, supported: %s\n",
  				    phy_modes(state->interface),
  				    phy_modes(lp->phy_mode));
@@ -886,7 +886,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  			return;
  		}
  	}
-@@ -1599,10 +1599,8 @@ static void axienet_validate(struct phyl
+@@ -1692,10 +1692,8 @@ static void axienet_validate(struct phyl
  		break;
  	}
  
diff --git a/target/linux/generic/backport-5.15/743-v5.16-0001-net-dsa-b53-Include-all-ports-in-enabled_ports.patch b/target/linux/generic/backport-5.15/743-v5.16-0001-net-dsa-b53-Include-all-ports-in-enabled_ports.patch
index c69c0334c7..66f862ad08 100644
--- a/target/linux/generic/backport-5.15/743-v5.16-0001-net-dsa-b53-Include-all-ports-in-enabled_ports.patch
+++ b/target/linux/generic/backport-5.15/743-v5.16-0001-net-dsa-b53-Include-all-ports-in-enabled_ports.patch
@@ -22,7 +22,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -2303,7 +2303,7 @@ static const struct b53_chip_data b53_sw
+@@ -2312,7 +2312,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM5325_DEVICE_ID,
  		.dev_name = "BCM5325",
  		.vlans = 16,
@@ -31,7 +31,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 2,
  		.arl_buckets = 1024,
  		.imp_port = 5,
-@@ -2314,7 +2314,7 @@ static const struct b53_chip_data b53_sw
+@@ -2323,7 +2323,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM5365_DEVICE_ID,
  		.dev_name = "BCM5365",
  		.vlans = 256,
@@ -40,7 +40,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 2,
  		.arl_buckets = 1024,
  		.imp_port = 5,
-@@ -2325,7 +2325,7 @@ static const struct b53_chip_data b53_sw
+@@ -2334,7 +2334,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM5389_DEVICE_ID,
  		.dev_name = "BCM5389",
  		.vlans = 4096,
@@ -49,7 +49,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
-@@ -2339,7 +2339,7 @@ static const struct b53_chip_data b53_sw
+@@ -2348,7 +2348,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM5395_DEVICE_ID,
  		.dev_name = "BCM5395",
  		.vlans = 4096,
@@ -58,7 +58,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
-@@ -2353,7 +2353,7 @@ static const struct b53_chip_data b53_sw
+@@ -2362,7 +2362,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM5397_DEVICE_ID,
  		.dev_name = "BCM5397",
  		.vlans = 4096,
@@ -67,7 +67,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
-@@ -2367,7 +2367,7 @@ static const struct b53_chip_data b53_sw
+@@ -2376,7 +2376,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM5398_DEVICE_ID,
  		.dev_name = "BCM5398",
  		.vlans = 4096,
@@ -76,7 +76,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
-@@ -2381,7 +2381,7 @@ static const struct b53_chip_data b53_sw
+@@ -2390,7 +2390,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM53115_DEVICE_ID,
  		.dev_name = "BCM53115",
  		.vlans = 4096,
@@ -85,7 +85,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.vta_regs = B53_VTA_REGS,
-@@ -2395,7 +2395,7 @@ static const struct b53_chip_data b53_sw
+@@ -2404,7 +2404,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM53125_DEVICE_ID,
  		.dev_name = "BCM53125",
  		.vlans = 4096,
@@ -94,7 +94,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
-@@ -2437,7 +2437,7 @@ static const struct b53_chip_data b53_sw
+@@ -2446,7 +2446,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM53010_DEVICE_ID,
  		.dev_name = "BCM53010",
  		.vlans = 4096,
@@ -103,7 +103,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
-@@ -2479,7 +2479,7 @@ static const struct b53_chip_data b53_sw
+@@ -2488,7 +2488,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM53018_DEVICE_ID,
  		.dev_name = "BCM53018",
  		.vlans = 4096,
@@ -112,7 +112,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
-@@ -2493,7 +2493,7 @@ static const struct b53_chip_data b53_sw
+@@ -2502,7 +2502,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM53019_DEVICE_ID,
  		.dev_name = "BCM53019",
  		.vlans = 4096,
@@ -121,7 +121,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
-@@ -2635,7 +2635,6 @@ static int b53_switch_init(struct b53_de
+@@ -2644,7 +2644,6 @@ static int b53_switch_init(struct b53_de
  			dev->cpu_port = 5;
  	}
  
diff --git a/target/linux/generic/backport-5.15/743-v5.16-0002-net-dsa-b53-Drop-BCM5301x-workaround-for-a-wrong-CPU.patch b/target/linux/generic/backport-5.15/743-v5.16-0002-net-dsa-b53-Drop-BCM5301x-workaround-for-a-wrong-CPU.patch
index 23805a9027..1e87b939cb 100644
--- a/target/linux/generic/backport-5.15/743-v5.16-0002-net-dsa-b53-Drop-BCM5301x-workaround-for-a-wrong-CPU.patch
+++ b/target/linux/generic/backport-5.15/743-v5.16-0002-net-dsa-b53-Drop-BCM5301x-workaround-for-a-wrong-CPU.patch
@@ -27,7 +27,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -1291,12 +1291,6 @@ static void b53_adjust_link(struct dsa_s
+@@ -1295,12 +1295,6 @@ static void b53_adjust_link(struct dsa_s
  				return;
  			}
  		}
diff --git a/target/linux/generic/backport-5.15/743-v5.16-0003-net-dsa-b53-Improve-flow-control-setup-on-BCM5301x.patch b/target/linux/generic/backport-5.15/743-v5.16-0003-net-dsa-b53-Improve-flow-control-setup-on-BCM5301x.patch
index 941fa23eb4..4b5cf56458 100644
--- a/target/linux/generic/backport-5.15/743-v5.16-0003-net-dsa-b53-Improve-flow-control-setup-on-BCM5301x.patch
+++ b/target/linux/generic/backport-5.15/743-v5.16-0003-net-dsa-b53-Improve-flow-control-setup-on-BCM5301x.patch
@@ -21,7 +21,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -1222,7 +1222,7 @@ static void b53_adjust_link(struct dsa_s
+@@ -1226,7 +1226,7 @@ static void b53_adjust_link(struct dsa_s
  		return;
  
  	/* Enable flow control on BCM5301x's CPU port */
diff --git a/target/linux/generic/backport-5.15/743-v5.16-0004-net-dsa-b53-Drop-unused-cpu_port-field.patch b/target/linux/generic/backport-5.15/743-v5.16-0004-net-dsa-b53-Drop-unused-cpu_port-field.patch
index 1970412f99..f3311ff711 100644
--- a/target/linux/generic/backport-5.15/743-v5.16-0004-net-dsa-b53-Drop-unused-cpu_port-field.patch
+++ b/target/linux/generic/backport-5.15/743-v5.16-0004-net-dsa-b53-Drop-unused-cpu_port-field.patch
@@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -2301,7 +2301,6 @@ static const struct b53_chip_data b53_sw
+@@ -2310,7 +2310,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 2,
  		.arl_buckets = 1024,
  		.imp_port = 5,
@@ -27,7 +27,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.duplex_reg = B53_DUPLEX_STAT_FE,
  	},
  	{
-@@ -2312,7 +2311,6 @@ static const struct b53_chip_data b53_sw
+@@ -2321,7 +2320,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 2,
  		.arl_buckets = 1024,
  		.imp_port = 5,
@@ -35,7 +35,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.duplex_reg = B53_DUPLEX_STAT_FE,
  	},
  	{
-@@ -2323,7 +2321,6 @@ static const struct b53_chip_data b53_sw
+@@ -2332,7 +2330,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -43,7 +43,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2337,7 +2334,6 @@ static const struct b53_chip_data b53_sw
+@@ -2346,7 +2343,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -51,7 +51,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2351,7 +2347,6 @@ static const struct b53_chip_data b53_sw
+@@ -2360,7 +2356,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -59,7 +59,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS_9798,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2365,7 +2360,6 @@ static const struct b53_chip_data b53_sw
+@@ -2374,7 +2369,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -67,7 +67,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS_9798,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2380,7 +2374,6 @@ static const struct b53_chip_data b53_sw
+@@ -2389,7 +2383,6 @@ static const struct b53_chip_data b53_sw
  		.arl_buckets = 1024,
  		.vta_regs = B53_VTA_REGS,
  		.imp_port = 8,
@@ -75,7 +75,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
  		.jumbo_size_reg = B53_JUMBO_MAX_SIZE,
-@@ -2393,7 +2386,6 @@ static const struct b53_chip_data b53_sw
+@@ -2402,7 +2395,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -83,7 +83,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2407,7 +2399,6 @@ static const struct b53_chip_data b53_sw
+@@ -2416,7 +2408,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -91,7 +91,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2421,7 +2412,6 @@ static const struct b53_chip_data b53_sw
+@@ -2430,7 +2421,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -99,7 +99,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS_63XX,
  		.duplex_reg = B53_DUPLEX_STAT_63XX,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK_63XX,
-@@ -2435,7 +2425,6 @@ static const struct b53_chip_data b53_sw
+@@ -2444,7 +2434,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -107,7 +107,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2449,7 +2438,6 @@ static const struct b53_chip_data b53_sw
+@@ -2458,7 +2447,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -115,7 +115,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2463,7 +2451,6 @@ static const struct b53_chip_data b53_sw
+@@ -2472,7 +2460,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -123,7 +123,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2477,7 +2464,6 @@ static const struct b53_chip_data b53_sw
+@@ -2486,7 +2473,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -131,7 +131,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2491,7 +2477,6 @@ static const struct b53_chip_data b53_sw
+@@ -2500,7 +2486,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -139,7 +139,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2505,7 +2490,6 @@ static const struct b53_chip_data b53_sw
+@@ -2514,7 +2499,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -147,7 +147,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2519,7 +2503,6 @@ static const struct b53_chip_data b53_sw
+@@ -2528,7 +2512,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -155,7 +155,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2548,7 +2531,6 @@ static const struct b53_chip_data b53_sw
+@@ -2557,7 +2540,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -163,7 +163,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2562,7 +2544,6 @@ static const struct b53_chip_data b53_sw
+@@ -2571,7 +2553,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 256,
  		.imp_port = 8,
@@ -171,7 +171,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2588,7 +2569,6 @@ static int b53_switch_init(struct b53_de
+@@ -2597,7 +2578,6 @@ static int b53_switch_init(struct b53_de
  			dev->vta_regs[2] = chip->vta_regs[2];
  			dev->jumbo_pm_reg = chip->jumbo_pm_reg;
  			dev->imp_port = chip->imp_port;
@@ -179,7 +179,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  			dev->num_vlans = chip->vlans;
  			dev->num_arl_bins = chip->arl_bins;
  			dev->num_arl_buckets = chip->arl_buckets;
-@@ -2620,13 +2600,6 @@ static int b53_switch_init(struct b53_de
+@@ -2629,13 +2609,6 @@ static int b53_switch_init(struct b53_de
  			break;
  #endif
  		}
diff --git a/target/linux/generic/backport-5.15/775-v6.0-01-net-ethernet-stmicro-stmmac-move-queue-reset-to-dedi.patch b/target/linux/generic/backport-5.15/775-v6.0-01-net-ethernet-stmicro-stmmac-move-queue-reset-to-dedi.patch
index 9e421afed0..b3932c7fb5 100644
--- a/target/linux/generic/backport-5.15/775-v6.0-01-net-ethernet-stmicro-stmmac-move-queue-reset-to-dedi.patch
+++ b/target/linux/generic/backport-5.15/775-v6.0-01-net-ethernet-stmicro-stmmac-move-queue-reset-to-dedi.patch
@@ -71,7 +71,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	ret = stmmac_hw_setup(dev, true);
  	if (ret < 0) {
  		netdev_err(priv->dev, "%s: Hw setup failed\n", __func__);
-@@ -6414,6 +6407,7 @@ void stmmac_enable_rx_queue(struct stmma
+@@ -6399,6 +6392,7 @@ void stmmac_enable_rx_queue(struct stmma
  		return;
  	}
  
@@ -79,7 +79,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	stmmac_clear_rx_descriptors(priv, queue);
  
  	stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
-@@ -6475,6 +6469,7 @@ void stmmac_enable_tx_queue(struct stmma
+@@ -6460,6 +6454,7 @@ void stmmac_enable_tx_queue(struct stmma
  		return;
  	}
  
@@ -87,7 +87,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	stmmac_clear_tx_descriptors(priv, queue);
  
  	stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
-@@ -7402,6 +7397,25 @@ int stmmac_suspend(struct device *dev)
+@@ -7387,6 +7382,25 @@ int stmmac_suspend(struct device *dev)
  }
  EXPORT_SYMBOL_GPL(stmmac_suspend);
  
@@ -113,7 +113,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  /**
   * stmmac_reset_queues_param - reset queue parameters
   * @priv: device pointer
-@@ -7412,22 +7426,11 @@ static void stmmac_reset_queues_param(st
+@@ -7397,22 +7411,11 @@ static void stmmac_reset_queues_param(st
  	u32 tx_cnt = priv->plat->tx_queues_to_use;
  	u32 queue;
  
diff --git a/target/linux/generic/backport-5.15/775-v6.0-03-net-ethernet-stmicro-stmmac-move-dma-conf-to-dedicat.patch b/target/linux/generic/backport-5.15/775-v6.0-03-net-ethernet-stmicro-stmmac-move-dma-conf-to-dedicat.patch
index 977d6c8502..355b168a4a 100644
--- a/target/linux/generic/backport-5.15/775-v6.0-03-net-ethernet-stmicro-stmmac-move-dma-conf-to-dedicat.patch
+++ b/target/linux/generic/backport-5.15/775-v6.0-03-net-ethernet-stmicro-stmmac-move-dma-conf-to-dedicat.patch
@@ -979,7 +979,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		next_entry = rx_q->cur_rx;
  
  		if (priv->extend_desc)
-@@ -5112,7 +5112,7 @@ read_again:
+@@ -5104,7 +5104,7 @@ read_again:
   */
  static int stmmac_rx(struct stmmac_priv *priv, int limit, u32 queue)
  {
@@ -988,7 +988,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	struct stmmac_channel *ch = &priv->channel[queue];
  	unsigned int count = 0, error = 0, len = 0;
  	int status = 0, coe = priv->hw->rx_csum;
-@@ -5125,7 +5125,7 @@ static int stmmac_rx(struct stmmac_priv
+@@ -5117,7 +5117,7 @@ static int stmmac_rx(struct stmmac_priv
  	int buf_sz;
  
  	dma_dir = page_pool_get_dma_dir(rx_q->page_pool);
@@ -997,7 +997,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	if (netif_msg_rx_status(priv)) {
  		void *rx_head;
-@@ -5139,7 +5139,7 @@ static int stmmac_rx(struct stmmac_priv
+@@ -5131,7 +5131,7 @@ static int stmmac_rx(struct stmmac_priv
  			desc_size = sizeof(struct dma_desc);
  		}
  
@@ -1006,7 +1006,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  				    rx_q->dma_rx_phy, desc_size);
  	}
  	while (count < limit) {
-@@ -5183,7 +5183,7 @@ read_again:
+@@ -5175,7 +5175,7 @@ read_again:
  			break;
  
  		rx_q->cur_rx = STMMAC_GET_ENTRY(rx_q->cur_rx,
@@ -1015,7 +1015,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		next_entry = rx_q->cur_rx;
  
  		if (priv->extend_desc)
-@@ -5317,7 +5317,7 @@ read_again:
+@@ -5302,7 +5302,7 @@ read_again:
  						buf1_len, dma_dir);
  			skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags,
  					buf->page, buf->page_offset, buf1_len,
@@ -1024,7 +1024,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  			/* Data payload appended into SKB */
  			page_pool_release_page(rx_q->page_pool, buf->page);
-@@ -5329,7 +5329,7 @@ read_again:
+@@ -5314,7 +5314,7 @@ read_again:
  						buf2_len, dma_dir);
  			skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags,
  					buf->sec_page, 0, buf2_len,
@@ -1033,7 +1033,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  			/* Data payload appended into SKB */
  			page_pool_release_page(rx_q->page_pool, buf->sec_page);
-@@ -5762,11 +5762,13 @@ static irqreturn_t stmmac_safety_interru
+@@ -5747,11 +5747,13 @@ static irqreturn_t stmmac_safety_interru
  static irqreturn_t stmmac_msi_intr_tx(int irq, void *data)
  {
  	struct stmmac_tx_queue *tx_q = (struct stmmac_tx_queue *)data;
@@ -1048,7 +1048,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	/* Check if adapter is up */
  	if (test_bit(STMMAC_DOWN, &priv->state))
-@@ -5801,10 +5803,12 @@ static irqreturn_t stmmac_msi_intr_tx(in
+@@ -5786,10 +5788,12 @@ static irqreturn_t stmmac_msi_intr_tx(in
  static irqreturn_t stmmac_msi_intr_rx(int irq, void *data)
  {
  	struct stmmac_rx_queue *rx_q = (struct stmmac_rx_queue *)data;
@@ -1062,7 +1062,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	/* Check if adapter is up */
  	if (test_bit(STMMAC_DOWN, &priv->state))
-@@ -5830,10 +5834,10 @@ static void stmmac_poll_controller(struc
+@@ -5815,10 +5819,10 @@ static void stmmac_poll_controller(struc
  
  	if (priv->plat->multi_msi_en) {
  		for (i = 0; i < priv->plat->rx_queues_to_use; i++)
@@ -1075,7 +1075,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	} else {
  		disable_irq(dev->irq);
  		stmmac_interrupt(dev->irq, dev);
-@@ -6014,34 +6018,34 @@ static int stmmac_rings_status_show(stru
+@@ -5999,34 +6003,34 @@ static int stmmac_rings_status_show(stru
  		return 0;
  
  	for (queue = 0; queue < rx_count; queue++) {
@@ -1116,7 +1116,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		}
  	}
  
-@@ -6388,7 +6392,7 @@ void stmmac_disable_rx_queue(struct stmm
+@@ -6373,7 +6377,7 @@ void stmmac_disable_rx_queue(struct stmm
  
  void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue)
  {
@@ -1125,7 +1125,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	struct stmmac_channel *ch = &priv->channel[queue];
  	unsigned long flags;
  	u32 buf_size;
-@@ -6425,7 +6429,7 @@ void stmmac_enable_rx_queue(struct stmma
+@@ -6410,7 +6414,7 @@ void stmmac_enable_rx_queue(struct stmma
  				      rx_q->queue_index);
  	} else {
  		stmmac_set_dma_bfsize(priv, priv->ioaddr,
@@ -1134,7 +1134,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  				      rx_q->queue_index);
  	}
  
-@@ -6451,7 +6455,7 @@ void stmmac_disable_tx_queue(struct stmm
+@@ -6436,7 +6440,7 @@ void stmmac_disable_tx_queue(struct stmm
  
  void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue)
  {
@@ -1143,7 +1143,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	struct stmmac_channel *ch = &priv->channel[queue];
  	unsigned long flags;
  	int ret;
-@@ -6501,7 +6505,7 @@ void stmmac_xdp_release(struct net_devic
+@@ -6486,7 +6490,7 @@ void stmmac_xdp_release(struct net_devic
  	stmmac_disable_all_queues(priv);
  
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -1152,7 +1152,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	/* Free the IRQ lines */
  	stmmac_free_irq(dev, REQ_IRQ_ERR_ALL, 0);
-@@ -6560,7 +6564,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6545,7 +6549,7 @@ int stmmac_xdp_open(struct net_device *d
  
  	/* DMA RX Channel Configuration */
  	for (chan = 0; chan < rx_cnt; chan++) {
@@ -1161,7 +1161,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  		stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
  				    rx_q->dma_rx_phy, chan);
-@@ -6578,7 +6582,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6563,7 +6567,7 @@ int stmmac_xdp_open(struct net_device *d
  					      rx_q->queue_index);
  		} else {
  			stmmac_set_dma_bfsize(priv, priv->ioaddr,
@@ -1170,7 +1170,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  					      rx_q->queue_index);
  		}
  
-@@ -6587,7 +6591,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6572,7 +6576,7 @@ int stmmac_xdp_open(struct net_device *d
  
  	/* DMA TX Channel Configuration */
  	for (chan = 0; chan < tx_cnt; chan++) {
@@ -1179,7 +1179,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  		stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
  				    tx_q->dma_tx_phy, chan);
-@@ -6620,7 +6624,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6605,7 +6609,7 @@ int stmmac_xdp_open(struct net_device *d
  
  irq_error:
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -1188,7 +1188,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	stmmac_hw_teardown(dev);
  init_error:
-@@ -6647,8 +6651,8 @@ int stmmac_xsk_wakeup(struct net_device
+@@ -6632,8 +6636,8 @@ int stmmac_xsk_wakeup(struct net_device
  	    queue >= priv->plat->tx_queues_to_use)
  		return -EINVAL;
  
@@ -1199,7 +1199,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	ch = &priv->channel[queue];
  
  	if (!rx_q->xsk_pool && !tx_q->xsk_pool)
-@@ -6908,8 +6912,8 @@ int stmmac_reinit_ringparam(struct net_d
+@@ -6893,8 +6897,8 @@ int stmmac_reinit_ringparam(struct net_d
  	if (netif_running(dev))
  		stmmac_release(dev);
  
@@ -1210,7 +1210,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	if (netif_running(dev))
  		ret = stmmac_open(dev);
-@@ -7347,7 +7351,7 @@ int stmmac_suspend(struct device *dev)
+@@ -7332,7 +7336,7 @@ int stmmac_suspend(struct device *dev)
  	stmmac_disable_all_queues(priv);
  
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -1219,7 +1219,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	if (priv->eee_enabled) {
  		priv->tx_path_in_lpi_mode = false;
-@@ -7399,7 +7403,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend);
+@@ -7384,7 +7388,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend);
  
  static void stmmac_reset_rx_queue(struct stmmac_priv *priv, u32 queue)
  {
@@ -1228,7 +1228,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	rx_q->cur_rx = 0;
  	rx_q->dirty_rx = 0;
-@@ -7407,7 +7411,7 @@ static void stmmac_reset_rx_queue(struct
+@@ -7392,7 +7396,7 @@ static void stmmac_reset_rx_queue(struct
  
  static void stmmac_reset_tx_queue(struct stmmac_priv *priv, u32 queue)
  {
@@ -1270,7 +1270,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	if (i >= priv->plat->tx_queues_to_use)
 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
 +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
-@@ -972,13 +972,13 @@ static int tc_setup_etf(struct stmmac_pr
+@@ -973,13 +973,13 @@ static int tc_setup_etf(struct stmmac_pr
  		return -EOPNOTSUPP;
  	if (qopt->queue >= priv->plat->tx_queues_to_use)
  		return -EINVAL;
diff --git a/target/linux/generic/backport-5.15/775-v6.0-04-net-ethernet-stmicro-stmmac-generate-stmmac-dma-conf.patch b/target/linux/generic/backport-5.15/775-v6.0-04-net-ethernet-stmicro-stmmac-generate-stmmac-dma-conf.patch
index 351b95eab0..15cd5e142b 100644
--- a/target/linux/generic/backport-5.15/775-v6.0-04-net-ethernet-stmicro-stmmac-generate-stmmac-dma-conf.patch
+++ b/target/linux/generic/backport-5.15/775-v6.0-04-net-ethernet-stmicro-stmmac-generate-stmmac-dma-conf.patch
@@ -1045,7 +1045,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	/* Disable the MAC Rx/Tx */
  	stmmac_mac_set(priv, priv->ioaddr, false);
-@@ -6387,7 +6503,7 @@ void stmmac_disable_rx_queue(struct stmm
+@@ -6372,7 +6488,7 @@ void stmmac_disable_rx_queue(struct stmm
  	spin_unlock_irqrestore(&ch->lock, flags);
  
  	stmmac_stop_rx_dma(priv, queue);
@@ -1054,7 +1054,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  }
  
  void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue)
-@@ -6398,21 +6514,21 @@ void stmmac_enable_rx_queue(struct stmma
+@@ -6383,21 +6499,21 @@ void stmmac_enable_rx_queue(struct stmma
  	u32 buf_size;
  	int ret;
  
@@ -1080,7 +1080,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
  			    rx_q->dma_rx_phy, rx_q->queue_index);
-@@ -6450,7 +6566,7 @@ void stmmac_disable_tx_queue(struct stmm
+@@ -6435,7 +6551,7 @@ void stmmac_disable_tx_queue(struct stmm
  	spin_unlock_irqrestore(&ch->lock, flags);
  
  	stmmac_stop_tx_dma(priv, queue);
@@ -1089,7 +1089,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  }
  
  void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue)
-@@ -6460,21 +6576,21 @@ void stmmac_enable_tx_queue(struct stmma
+@@ -6445,21 +6561,21 @@ void stmmac_enable_tx_queue(struct stmma
  	unsigned long flags;
  	int ret;
  
@@ -1115,7 +1115,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
  			    tx_q->dma_tx_phy, tx_q->queue_index);
-@@ -6514,7 +6630,7 @@ void stmmac_xdp_release(struct net_devic
+@@ -6499,7 +6615,7 @@ void stmmac_xdp_release(struct net_devic
  	stmmac_stop_all_dma(priv);
  
  	/* Release and free the Rx/Tx resources */
@@ -1124,7 +1124,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	/* Disable the MAC Rx/Tx */
  	stmmac_mac_set(priv, priv->ioaddr, false);
-@@ -6539,14 +6655,14 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6524,14 +6640,14 @@ int stmmac_xdp_open(struct net_device *d
  	u32 chan;
  	int ret;
  
@@ -1141,7 +1141,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	if (ret < 0) {
  		netdev_err(dev, "%s: DMA descriptors initialization failed\n",
  			   __func__);
-@@ -6628,7 +6744,7 @@ irq_error:
+@@ -6613,7 +6729,7 @@ irq_error:
  
  	stmmac_hw_teardown(dev);
  init_error:
@@ -1150,7 +1150,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  dma_desc_error:
  	return ret;
  }
-@@ -7494,7 +7610,7 @@ int stmmac_resume(struct device *dev)
+@@ -7479,7 +7595,7 @@ int stmmac_resume(struct device *dev)
  	stmmac_reset_queues_param(priv);
  
  	stmmac_free_tx_skbufs(priv);
diff --git a/target/linux/generic/backport-5.15/775-v6.0-05-net-ethernet-stmicro-stmmac-permit-MTU-change-with-i.patch b/target/linux/generic/backport-5.15/775-v6.0-05-net-ethernet-stmicro-stmmac-permit-MTU-change-with-i.patch
index 416c140787..d0578e2b30 100644
--- a/target/linux/generic/backport-5.15/775-v6.0-05-net-ethernet-stmicro-stmmac-permit-MTU-change-with-i.patch
+++ b/target/linux/generic/backport-5.15/775-v6.0-05-net-ethernet-stmicro-stmmac-permit-MTU-change-with-i.patch
@@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
 +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-@@ -5629,18 +5629,15 @@ static int stmmac_change_mtu(struct net_
+@@ -5614,18 +5614,15 @@ static int stmmac_change_mtu(struct net_
  {
  	struct stmmac_priv *priv = netdev_priv(dev);
  	int txfifosz = priv->plat->tx_fifo_size;
@@ -40,7 +40,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	if (stmmac_xdp_is_enabled(priv) && new_mtu > ETH_DATA_LEN) {
  		netdev_dbg(priv->dev, "Jumbo frames not supported for XDP\n");
  		return -EINVAL;
-@@ -5652,8 +5649,29 @@ static int stmmac_change_mtu(struct net_
+@@ -5637,8 +5634,29 @@ static int stmmac_change_mtu(struct net_
  	if ((txfifosz < new_mtu) || (new_mtu > BUF_SIZE_16KiB))
  		return -EINVAL;
  
diff --git a/target/linux/generic/backport-5.15/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch b/target/linux/generic/backport-5.15/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch
new file mode 100644
index 0000000000..d29c7d463d
--- /dev/null
+++ b/target/linux/generic/backport-5.15/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch
@@ -0,0 +1,43 @@
+Subject: [PATCH v2] netfilter: xtables: fix typo causing some targets to not load on IPv6
+Date: Sat, 19 Oct 2024 08:05:07 +0300	[thread overview]
+Message-ID: <20241019-xtables-typos-v2-1-6b8b1735dc8e at 0upti.me> (raw)
+
+These were added with the wrong family in 4cdc55e, which seems
+to just have been a typo, but now ip6tables rules with --set-mark
+don't work anymore, which is pretty bad.
+
+Fixes: 0bfcb7b71e73 ("netfilter: xtables: avoid NFPROTO_UNSPEC where needed")
+Reviewed-by: Phil Sutter <phil at nwl.cc>
+Signed-off-by: Ilya Katsnelson <me at 0upti.me>
+---
+Changes in v2:
+- Fixed a typo in the commit message (that's karma).
+- Replaced a reference to backport commit.
+- Link to v1: https://lore.kernel.org/r/20241018-xtables-typos-v1-1-02a51789c0ec at 0upti.me
+---
+ net/netfilter/xt_NFLOG.c | 2 +-
+ net/netfilter/xt_mark.c  | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+--- a/net/netfilter/xt_NFLOG.c
++++ b/net/netfilter/xt_NFLOG.c
+@@ -79,7 +79,7 @@ static struct xt_target nflog_tg_reg[] _
+ 	{
+ 		.name       = "NFLOG",
+ 		.revision   = 0,
+-		.family     = NFPROTO_IPV4,
++		.family     = NFPROTO_IPV6,
+ 		.checkentry = nflog_tg_check,
+ 		.destroy    = nflog_tg_destroy,
+ 		.target     = nflog_tg,
+--- a/net/netfilter/xt_mark.c
++++ b/net/netfilter/xt_mark.c
+@@ -62,7 +62,7 @@ static struct xt_target mark_tg_reg[] __
+ 	{
+ 		.name           = "MARK",
+ 		.revision       = 2,
+-		.family         = NFPROTO_IPV4,
++		.family         = NFPROTO_IPV6,
+ 		.target         = mark_tg,
+ 		.targetsize     = sizeof(struct xt_mark_tginfo2),
+ 		.me             = THIS_MODULE,
diff --git a/target/linux/generic/backport-5.15/796-v6.5-01-usbnet-ipheth-fix-risk-of-NULL-pointer-deallocation.patch b/target/linux/generic/backport-5.15/796-v6.5-01-usbnet-ipheth-fix-risk-of-NULL-pointer-deallocation.patch
index d9d6f36fce..da97cdad56 100644
--- a/target/linux/generic/backport-5.15/796-v6.5-01-usbnet-ipheth-fix-risk-of-NULL-pointer-deallocation.patch
+++ b/target/linux/generic/backport-5.15/796-v6.5-01-usbnet-ipheth-fix-risk-of-NULL-pointer-deallocation.patch
@@ -18,7 +18,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
 
 --- a/drivers/net/usb/ipheth.c
 +++ b/drivers/net/usb/ipheth.c
-@@ -510,8 +510,8 @@ err_register_netdev:
+@@ -511,8 +511,8 @@ err_register_netdev:
  	ipheth_free_urbs(dev);
  err_alloc_urbs:
  err_get_macaddr:
diff --git a/target/linux/generic/backport-5.15/796-v6.5-02-usbnet-ipheth-transmit-URBs-without-trailing-padding.patch b/target/linux/generic/backport-5.15/796-v6.5-02-usbnet-ipheth-transmit-URBs-without-trailing-padding.patch
index adfec356d9..383fd05666 100644
--- a/target/linux/generic/backport-5.15/796-v6.5-02-usbnet-ipheth-transmit-URBs-without-trailing-padding.patch
+++ b/target/linux/generic/backport-5.15/796-v6.5-02-usbnet-ipheth-transmit-URBs-without-trailing-padding.patch
@@ -19,7 +19,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
 
 --- a/drivers/net/usb/ipheth.c
 +++ b/drivers/net/usb/ipheth.c
-@@ -373,12 +373,10 @@ static netdev_tx_t ipheth_tx(struct sk_b
+@@ -374,12 +374,10 @@ static netdev_tx_t ipheth_tx(struct sk_b
  	}
  
  	memcpy(dev->tx_buf, skb->data, skb->len);
diff --git a/target/linux/generic/backport-5.15/796-v6.5-03-usbnet-ipheth-add-CDC-NCM-support.patch b/target/linux/generic/backport-5.15/796-v6.5-03-usbnet-ipheth-add-CDC-NCM-support.patch
index e3f2b9c331..9fb507ffba 100644
--- a/target/linux/generic/backport-5.15/796-v6.5-03-usbnet-ipheth-add-CDC-NCM-support.patch
+++ b/target/linux/generic/backport-5.15/796-v6.5-03-usbnet-ipheth-add-CDC-NCM-support.patch
@@ -256,7 +256,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  	ipheth_rx_submit(dev, GFP_ATOMIC);
  }
  
-@@ -310,6 +411,27 @@ static int ipheth_get_macaddr(struct iph
+@@ -311,6 +412,27 @@ static int ipheth_get_macaddr(struct iph
  	return retval;
  }
  
@@ -284,7 +284,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  static int ipheth_rx_submit(struct ipheth_device *dev, gfp_t mem_flags)
  {
  	struct usb_device *udev = dev->udev;
-@@ -317,7 +439,7 @@ static int ipheth_rx_submit(struct iphet
+@@ -318,7 +440,7 @@ static int ipheth_rx_submit(struct iphet
  
  	usb_fill_bulk_urb(dev->rx_urb, udev,
  			  usb_rcvbulkpipe(udev, dev->bulk_in),
@@ -293,7 +293,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  			  ipheth_rcvbulk_callback,
  			  dev);
  	dev->rx_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
-@@ -365,7 +487,7 @@ static netdev_tx_t ipheth_tx(struct sk_b
+@@ -366,7 +488,7 @@ static netdev_tx_t ipheth_tx(struct sk_b
  	int retval;
  
  	/* Paranoid */
@@ -302,7 +302,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  		WARN(1, "%s: skb too large: %d bytes\n", __func__, skb->len);
  		dev->net->stats.tx_dropped++;
  		dev_kfree_skb_any(skb);
-@@ -448,6 +570,8 @@ static int ipheth_probe(struct usb_inter
+@@ -449,6 +571,8 @@ static int ipheth_probe(struct usb_inter
  	dev->net = netdev;
  	dev->intf = intf;
  	dev->confirmed_pairing = false;
@@ -311,7 +311,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  	/* Set up endpoints */
  	hintf = usb_altnum_to_altsetting(intf, IPHETH_ALT_INTFNUM);
  	if (hintf == NULL) {
-@@ -479,6 +603,12 @@ static int ipheth_probe(struct usb_inter
+@@ -480,6 +604,12 @@ static int ipheth_probe(struct usb_inter
  	if (retval)
  		goto err_get_macaddr;
  
diff --git a/target/linux/generic/backport-5.15/821-v5.16-Bluetooth-btusb-Support-public-address-configuration.patch b/target/linux/generic/backport-5.15/821-v5.16-Bluetooth-btusb-Support-public-address-configuration.patch
index 6fcc68a612..7e02c18875 100644
--- a/target/linux/generic/backport-5.15/821-v5.16-Bluetooth-btusb-Support-public-address-configuration.patch
+++ b/target/linux/generic/backport-5.15/821-v5.16-Bluetooth-btusb-Support-public-address-configuration.patch
@@ -17,7 +17,7 @@ Signed-off-by: Marcel Holtmann <marcel at holtmann.org>
 
 --- a/drivers/bluetooth/btusb.c
 +++ b/drivers/bluetooth/btusb.c
-@@ -2293,6 +2293,23 @@ struct btmtk_section_map {
+@@ -2296,6 +2296,23 @@ struct btmtk_section_map {
  	};
  } __packed;
  
@@ -41,7 +41,7 @@ Signed-off-by: Marcel Holtmann <marcel at holtmann.org>
  static void btusb_mtk_wmt_recv(struct urb *urb)
  {
  	struct hci_dev *hdev = urb->context;
-@@ -3947,6 +3964,7 @@ static int btusb_probe(struct usb_interf
+@@ -3950,6 +3967,7 @@ static int btusb_probe(struct usb_interf
  		hdev->shutdown = btusb_mtk_shutdown;
  		hdev->manufacturer = 70;
  		hdev->cmd_timeout = btusb_mtk_cmd_timeout;
diff --git a/target/linux/generic/backport-5.15/822-v5.17-Bluetooth-btusb-Fix-application-of-sizeof-to-pointer.patch b/target/linux/generic/backport-5.15/822-v5.17-Bluetooth-btusb-Fix-application-of-sizeof-to-pointer.patch
index 751a55bbe1..c043e88535 100644
--- a/target/linux/generic/backport-5.15/822-v5.17-Bluetooth-btusb-Fix-application-of-sizeof-to-pointer.patch
+++ b/target/linux/generic/backport-5.15/822-v5.17-Bluetooth-btusb-Fix-application-of-sizeof-to-pointer.patch
@@ -18,7 +18,7 @@ Signed-off-by: Marcel Holtmann <marcel at holtmann.org>
 
 --- a/drivers/bluetooth/btusb.c
 +++ b/drivers/bluetooth/btusb.c
-@@ -2298,7 +2298,7 @@ static int btusb_set_bdaddr_mtk(struct h
+@@ -2301,7 +2301,7 @@ static int btusb_set_bdaddr_mtk(struct h
  	struct sk_buff *skb;
  	long ret;
  
diff --git a/target/linux/generic/backport-5.15/828-v6.4-0003-of-Rename-of_modalias_node.patch b/target/linux/generic/backport-5.15/828-v6.4-0003-of-Rename-of_modalias_node.patch
index 7cfdb28c64..af0d24fab1 100644
--- a/target/linux/generic/backport-5.15/828-v6.4-0003-of-Rename-of_modalias_node.patch
+++ b/target/linux/generic/backport-5.15/828-v6.4-0003-of-Rename-of_modalias_node.patch
@@ -44,7 +44,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
 
 --- a/drivers/acpi/bus.c
 +++ b/drivers/acpi/bus.c
-@@ -785,9 +785,10 @@ static bool acpi_of_modalias(struct acpi
+@@ -793,9 +793,10 @@ static bool acpi_of_modalias(struct acpi
   * @modalias:   Pointer to buffer that modalias value will be copied into
   * @len:	Length of modalias buffer
   *
diff --git a/target/linux/generic/backport-5.15/880-v5.19-cdc_ether-export-usbnet_cdc_zte_rx_fixup.patch b/target/linux/generic/backport-5.15/880-v5.19-cdc_ether-export-usbnet_cdc_zte_rx_fixup.patch
index 39fdb32773..56f5ce27e4 100644
--- a/target/linux/generic/backport-5.15/880-v5.19-cdc_ether-export-usbnet_cdc_zte_rx_fixup.patch
+++ b/target/linux/generic/backport-5.15/880-v5.19-cdc_ether-export-usbnet_cdc_zte_rx_fixup.patch
@@ -48,7 +48,7 @@ Signed-off-by: Lech Perczak <lech.perczak at gmail.com>
   *
 --- a/include/linux/usb/usbnet.h
 +++ b/include/linux/usb/usbnet.h
-@@ -214,6 +214,7 @@ extern int usbnet_ether_cdc_bind(struct
+@@ -229,6 +229,7 @@ extern int usbnet_ether_cdc_bind(struct
  extern int usbnet_cdc_bind(struct usbnet *, struct usb_interface *);
  extern void usbnet_cdc_unbind(struct usbnet *, struct usb_interface *);
  extern void usbnet_cdc_status(struct usbnet *, struct urb *);
diff --git a/target/linux/generic/config-5.15 b/target/linux/generic/config-5.15
index 4b059cb53f..fd386467ef 100644
--- a/target/linux/generic/config-5.15
+++ b/target/linux/generic/config-5.15
@@ -4829,6 +4829,9 @@ CONFIG_PRINT_STACK_DEPTH=64
 # CONFIG_PROC_CHILDREN is not set
 CONFIG_PROC_FS=y
 # CONFIG_PROC_KCORE is not set
+CONFIG_PROC_MEM_ALWAYS_FORCE=y
+# CONFIG_PROC_MEM_FORCE_PTRACE is not set
+# CONFIG_PROC_MEM_NO_FORCE is not set
 # CONFIG_PROC_PAGE_MONITOR is not set
 # CONFIG_PROC_STRIPPED is not set
 CONFIG_PROC_SYSCTL=y
diff --git a/target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch b/target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch
index 25935e9d79..549a505214 100644
--- a/target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch
+++ b/target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch
@@ -19,7 +19,7 @@ Subject: [PATCH] kernel: add block fit partition parser
 
 --- a/block/blk.h
 +++ b/block/blk.h
-@@ -354,6 +354,8 @@ void blk_free_ext_minor(unsigned int min
+@@ -346,6 +346,8 @@ void blk_free_ext_minor(unsigned int min
  #define ADDPART_FLAG_NONE	0
  #define ADDPART_FLAG_RAID	1
  #define ADDPART_FLAG_WHOLEDISK	2
@@ -105,7 +105,7 @@ Subject: [PATCH] kernel: add block fit partition parser
  	/* everything is up and running, commence */
  	err = xa_insert(&disk->part_tbl, partno, bdev, GFP_KERNEL);
  	if (err)
-@@ -600,6 +612,11 @@ static bool blk_add_partition(struct gen
+@@ -602,6 +614,11 @@ static bool blk_add_partition(struct gen
  	    (state->parts[p].flags & ADDPART_FLAG_RAID))
  		md_autodetect_dev(part->bd_dev);
  
diff --git a/target/linux/generic/hack-5.15/645-netfilter-connmark-introduce-set-dscpmark.patch b/target/linux/generic/hack-5.15/645-netfilter-connmark-introduce-set-dscpmark.patch
index c368c4ae3b..9ad5a4b6d4 100644
--- a/target/linux/generic/hack-5.15/645-netfilter-connmark-introduce-set-dscpmark.patch
+++ b/target/linux/generic/hack-5.15/645-netfilter-connmark-introduce-set-dscpmark.patch
@@ -195,20 +195,37 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir at darbyshire-bryant.me.uk>
  
  	return connmark_tg_shift(skb, info);
  }
-@@ -167,6 +194,16 @@ static struct xt_target connmark_tg_reg[
- 		.targetsize     = sizeof(struct xt_connmark_tginfo2),
+@@ -168,6 +195,16 @@ static struct xt_target connmark_tg_reg[
  		.destroy        = connmark_tg_destroy,
  		.me             = THIS_MODULE,
+ 	},
++	{
++		.name           = "CONNMARK",
++		.revision       = 3,
++		.family         = NFPROTO_IPV4,
++		.checkentry     = connmark_tg_check,
++		.target         = connmark_tg_v3,
++		.targetsize     = sizeof(struct xt_connmark_tginfo3),
++		.destroy        = connmark_tg_destroy,
++		.me             = THIS_MODULE,
 +	},
+ #if IS_ENABLED(CONFIG_IP6_NF_IPTABLES)
+ 	{
+ 		.name           = "CONNMARK",
+@@ -189,6 +226,16 @@ static struct xt_target connmark_tg_reg[
+ 		.destroy        = connmark_tg_destroy,
+ 		.me             = THIS_MODULE,
+ 	},
 +	{
 +		.name           = "CONNMARK",
 +		.revision       = 3,
-+		.family         = NFPROTO_UNSPEC,
++		.family         = NFPROTO_IPV6,
 +		.checkentry     = connmark_tg_check,
 +		.target         = connmark_tg_v3,
 +		.targetsize     = sizeof(struct xt_connmark_tginfo3),
 +		.destroy        = connmark_tg_destroy,
 +		.me             = THIS_MODULE,
- 	}
++	},
+ #endif
  };
  
diff --git a/target/linux/generic/hack-5.15/721-net-add-packet-mangeling.patch b/target/linux/generic/hack-5.15/721-net-add-packet-mangeling.patch
index 7e966604a6..67586d3bcd 100644
--- a/target/linux/generic/hack-5.15/721-net-add-packet-mangeling.patch
+++ b/target/linux/generic/hack-5.15/721-net-add-packet-mangeling.patch
@@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
   */
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -2872,6 +2872,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -2867,6 +2867,10 @@ static inline int pskb_trim(struct sk_bu
  	return (len < skb->len) ? __pskb_trim(skb, len) : 0;
  }
  
@@ -82,7 +82,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  /**
   *	pskb_trim_unique - remove end from a paged unique (not cloned) buffer
   *	@skb: buffer to alter
-@@ -3022,16 +3026,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -3017,16 +3021,6 @@ static inline struct sk_buff *dev_alloc_
  }
  
  
diff --git a/target/linux/generic/hack-5.15/902-debloat_proc.patch b/target/linux/generic/hack-5.15/902-debloat_proc.patch
index 783bc6b6a4..86fbbb2ec5 100644
--- a/target/linux/generic/hack-5.15/902-debloat_proc.patch
+++ b/target/linux/generic/hack-5.15/902-debloat_proc.patch
@@ -341,7 +341,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -3029,11 +3029,13 @@ static const struct seq_operations fib_r
+@@ -3026,11 +3026,13 @@ static const struct seq_operations fib_r
  
  int __net_init fib_proc_init(struct net *net)
  {
@@ -357,7 +357,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  			fib_triestat_seq_show, NULL))
  		goto out2;
  
-@@ -3044,17 +3046,21 @@ int __net_init fib_proc_init(struct net
+@@ -3041,17 +3043,21 @@ int __net_init fib_proc_init(struct net
  	return 0;
  
  out3:
diff --git a/target/linux/generic/pending-5.15/110-v6.3-0002-spidev-Add-Silicon-Labs-SI3210-device-compatible.patch b/target/linux/generic/pending-5.15/110-v6.3-0002-spidev-Add-Silicon-Labs-SI3210-device-compatible.patch
index 87d994c813..799494e55c 100644
--- a/target/linux/generic/pending-5.15/110-v6.3-0002-spidev-Add-Silicon-Labs-SI3210-device-compatible.patch
+++ b/target/linux/generic/pending-5.15/110-v6.3-0002-spidev-Add-Silicon-Labs-SI3210-device-compatible.patch
@@ -14,7 +14,7 @@ Signed-off-by: Vincent Tremblay <vincent at vtremblay.dev>
 
 --- a/drivers/spi/spidev.c
 +++ b/drivers/spi/spidev.c
-@@ -692,6 +692,7 @@ static const struct spi_device_id spidev
+@@ -693,6 +693,7 @@ static const struct spi_device_id spidev
  	{ .name = "spi-petra" },
  	{ .name = "spi-authenta" },
  	{ .name = "em3581" },
@@ -22,7 +22,7 @@ Signed-off-by: Vincent Tremblay <vincent at vtremblay.dev>
  	{},
  };
  MODULE_DEVICE_TABLE(spi, spidev_spi_ids);
-@@ -720,6 +721,7 @@ static const struct of_device_id spidev_
+@@ -722,6 +723,7 @@ static const struct of_device_id spidev_
  	{ .compatible = "rohm,dh2228fv", .data = &spidev_of_check },
  	{ .compatible = "semtech,sx1301", .data = &spidev_of_check },
  	{ .compatible = "silabs,em3581", .data = &spidev_of_check },
diff --git a/target/linux/generic/pending-5.15/655-increase_skb_pad.patch b/target/linux/generic/pending-5.15/655-increase_skb_pad.patch
index 82b7547a44..c3ef53637b 100644
--- a/target/linux/generic/pending-5.15/655-increase_skb_pad.patch
+++ b/target/linux/generic/pending-5.15/655-increase_skb_pad.patch
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -2838,7 +2838,7 @@ static inline int pskb_network_may_pull(
+@@ -2833,7 +2833,7 @@ static inline int pskb_network_may_pull(
   * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
   */
  #ifndef NET_SKB_PAD
diff --git a/target/linux/generic/pending-5.15/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-5.15/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
index 1f0f68cce6..af3dcb2b2d 100644
--- a/target/linux/generic/pending-5.15/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
+++ b/target/linux/generic/pending-5.15/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
@@ -66,7 +66,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  static void rt_fibinfo_free(struct rtable __rcu **rtp)
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -2777,6 +2777,7 @@ static const char *const rtn_type_names[
+@@ -2774,6 +2774,7 @@ static const char *const rtn_type_names[
  	[RTN_THROW] = "THROW",
  	[RTN_NAT] = "NAT",
  	[RTN_XRESOLVE] = "XRESOLVE",
@@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  	case RTN_THROW:
  	case RTN_UNREACHABLE:
  	default:
-@@ -4564,6 +4583,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -4552,6 +4571,17 @@ static int ip6_pkt_prohibit_out(struct n
  	return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
  }
  
@@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  /*
   *	Allocate a dst for local (unicast / anycast) address.
   */
-@@ -5051,7 +5081,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -5039,7 +5069,8 @@ static int rtm_to_fib6_config(struct sk_
  	if (rtm->rtm_type == RTN_UNREACHABLE ||
  	    rtm->rtm_type == RTN_BLACKHOLE ||
  	    rtm->rtm_type == RTN_PROHIBIT ||
@@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  		cfg->fc_flags |= RTF_REJECT;
  
  	if (rtm->rtm_type == RTN_LOCAL)
-@@ -6298,6 +6329,8 @@ static int ip6_route_dev_notify(struct n
+@@ -6286,6 +6317,8 @@ static int ip6_route_dev_notify(struct n
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  		net->ipv6.ip6_prohibit_entry->dst.dev = dev;
  		net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  		net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
  		net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
  #endif
-@@ -6309,6 +6342,7 @@ static int ip6_route_dev_notify(struct n
+@@ -6297,6 +6330,7 @@ static int ip6_route_dev_notify(struct n
  		in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  		in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
@@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  		in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
  #endif
  	}
-@@ -6500,6 +6534,8 @@ static int __net_init ip6_route_net_init
+@@ -6488,6 +6522,8 @@ static int __net_init ip6_route_net_init
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  	net->ipv6.fib6_has_custom_rules = false;
@@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  	net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
  					       sizeof(*net->ipv6.ip6_prohibit_entry),
  					       GFP_KERNEL);
-@@ -6510,11 +6546,21 @@ static int __net_init ip6_route_net_init
+@@ -6498,11 +6534,21 @@ static int __net_init ip6_route_net_init
  			 ip6_template_metrics, true);
  	INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
  
@@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  	net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
  	dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
  			 ip6_template_metrics, true);
-@@ -6541,6 +6587,8 @@ out:
+@@ -6529,6 +6575,8 @@ out:
  	return ret;
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  out_ip6_prohibit_entry:
  	kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_entry:
-@@ -6560,6 +6608,7 @@ static void __net_exit ip6_route_net_exi
+@@ -6548,6 +6596,7 @@ static void __net_exit ip6_route_net_exi
  	kfree(net->ipv6.ip6_null_entry);
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  	kfree(net->ipv6.ip6_prohibit_entry);
@@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  	kfree(net->ipv6.ip6_blk_hole_entry);
  #endif
  	dst_entries_destroy(&net->ipv6.ip6_dst_ops);
-@@ -6643,6 +6692,9 @@ void __init ip6_route_init_special_entri
+@@ -6631,6 +6680,9 @@ void __init ip6_route_init_special_entri
  	init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
  	init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
  	init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
diff --git a/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
index 6eb72abaa7..a60e0ddddf 100644
--- a/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
+++ b/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
@@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #endif
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -893,6 +893,7 @@ struct sk_buff {
+@@ -888,6 +888,7 @@ struct sk_buff {
  #ifdef CONFIG_IPV6_NDISC_NODETYPE
  	__u8			ndisc_nodetype:2;
  #endif
@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	__u8			inner_protocol_type:1;
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -6077,6 +6077,9 @@ static enum gro_result dev_gro_receive(s
+@@ -6081,6 +6081,9 @@ static enum gro_result dev_gro_receive(s
  	int same_flow;
  	int grow;
  
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	if (netif_elide_gro(skb->dev))
  		goto normal;
  
-@@ -8094,6 +8097,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -8098,6 +8101,48 @@ static void __netdev_adjacent_dev_unlink
  					   &upper_dev->adj_list.lower);
  }
  
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  static int __netdev_upper_dev_link(struct net_device *dev,
  				   struct net_device *upper_dev, bool master,
  				   void *upper_priv, void *upper_info,
-@@ -8145,6 +8190,7 @@ static int __netdev_upper_dev_link(struc
+@@ -8149,6 +8194,7 @@ static int __netdev_upper_dev_link(struc
  	if (ret)
  		return ret;
  
@@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
  					    &changeupper_info.info);
  	ret = notifier_to_errno(ret);
-@@ -8241,6 +8287,7 @@ static void __netdev_upper_dev_unlink(st
+@@ -8245,6 +8291,7 @@ static void __netdev_upper_dev_unlink(st
  
  	__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
  
@@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
  				      &changeupper_info.info);
  
-@@ -9060,6 +9107,7 @@ int dev_set_mac_address(struct net_devic
+@@ -9064,6 +9111,7 @@ int dev_set_mac_address(struct net_devic
  	if (err)
  		return err;
  	dev->addr_assign_type = NET_ADDR_SET;
diff --git a/target/linux/generic/pending-5.15/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch b/target/linux/generic/pending-5.15/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
index c6daa8f05d..c9ceeca433 100644
--- a/target/linux/generic/pending-5.15/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
+++ b/target/linux/generic/pending-5.15/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
@@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/net/netfilter/nf_tables_api.c
 +++ b/net/netfilter/nf_tables_api.c
-@@ -7827,7 +7827,7 @@ static int nft_register_flowtable_net_ho
+@@ -7838,7 +7838,7 @@ static int nft_register_flowtable_net_ho
  		err = flowtable->data.type->setup(&flowtable->data,
  						  hook->ops.dev,
  						  FLOW_BLOCK_BIND);
diff --git a/target/linux/generic/pending-5.15/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch b/target/linux/generic/pending-5.15/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch
index bbee646800..e95f4f35e2 100644
--- a/target/linux/generic/pending-5.15/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch
+++ b/target/linux/generic/pending-5.15/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch
@@ -161,7 +161,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  struct rtnl_link {
  	rtnl_doit_func		doit;
-@@ -4728,7 +4728,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu
+@@ -4757,7 +4757,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu
  	    brport_nla_put_flag(skb, flags, mask,
  				IFLA_BRPORT_MCAST_FLOOD, BR_MCAST_FLOOD) ||
  	    brport_nla_put_flag(skb, flags, mask,
diff --git a/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch b/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch
index 1d1b168e07..08b5fffac2 100644
--- a/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch
+++ b/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #endif
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -4586,7 +4586,7 @@ static int rps_ipi_queued(struct softnet
+@@ -4590,7 +4590,7 @@ static int rps_ipi_queued(struct softnet
  #ifdef CONFIG_RPS
  	struct softnet_data *mysd = this_cpu_ptr(&softnet_data);
  
@@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		sd->rps_ipi_next = mysd->rps_ipi_list;
  		mysd->rps_ipi_list = sd;
  
-@@ -5767,6 +5767,8 @@ static DEFINE_PER_CPU(struct work_struct
+@@ -5771,6 +5771,8 @@ static DEFINE_PER_CPU(struct work_struct
  /* Network device is going away, flush any packets still pending */
  static void flush_backlog(struct work_struct *work)
  {
@@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	struct sk_buff *skb, *tmp;
  	struct softnet_data *sd;
  
-@@ -5782,9 +5784,18 @@ static void flush_backlog(struct work_st
+@@ -5786,9 +5788,18 @@ static void flush_backlog(struct work_st
  			input_queue_head_incr(sd);
  		}
  	}
@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
  		if (skb->dev->reg_state == NETREG_UNREGISTERING) {
  			__skb_unlink(skb, &sd->process_queue);
-@@ -5792,7 +5803,18 @@ static void flush_backlog(struct work_st
+@@ -5796,7 +5807,18 @@ static void flush_backlog(struct work_st
  			input_queue_head_incr(sd);
  		}
  	}
@@ -86,7 +86,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  }
  
  static bool flush_required(int cpu)
-@@ -6475,6 +6497,7 @@ static int process_backlog(struct napi_s
+@@ -6479,6 +6501,7 @@ static int process_backlog(struct napi_s
  
  		local_irq_disable();
  		rps_lock(sd);
@@ -94,7 +94,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		if (skb_queue_empty(&sd->input_pkt_queue)) {
  			/*
  			 * Inline a custom version of __napi_complete().
-@@ -6484,7 +6507,8 @@ static int process_backlog(struct napi_s
+@@ -6488,7 +6511,8 @@ static int process_backlog(struct napi_s
  			 * We can use a plain write instead of clear_bit(),
  			 * and we dont need an smp_mb() memory barrier.
  			 */
@@ -104,7 +104,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  			again = false;
  		} else {
  			skb_queue_splice_tail_init(&sd->input_pkt_queue,
-@@ -6901,6 +6925,57 @@ int dev_set_threaded(struct net_device *
+@@ -6905,6 +6929,57 @@ int dev_set_threaded(struct net_device *
  }
  EXPORT_SYMBOL(dev_set_threaded);
  
@@ -162,7 +162,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  void netif_napi_add(struct net_device *dev, struct napi_struct *napi,
  		    int (*poll)(struct napi_struct *, int), int weight)
  {
-@@ -11385,6 +11460,9 @@ static int dev_cpu_dead(unsigned int old
+@@ -11389,6 +11464,9 @@ static int dev_cpu_dead(unsigned int old
  	raise_softirq_irqoff(NET_TX_SOFTIRQ);
  	local_irq_enable();
  
@@ -172,7 +172,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #ifdef CONFIG_RPS
  	remsd = oldsd->rps_ipi_list;
  	oldsd->rps_ipi_list = NULL;
-@@ -11724,6 +11802,7 @@ static int __init net_dev_init(void)
+@@ -11728,6 +11806,7 @@ static int __init net_dev_init(void)
  		sd->cpu = i;
  #endif
  
diff --git a/target/linux/generic/pending-5.15/772-net-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch b/target/linux/generic/pending-5.15/772-net-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch
index ca963d1260..40c1662601 100644
--- a/target/linux/generic/pending-5.15/772-net-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch
+++ b/target/linux/generic/pending-5.15/772-net-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch
@@ -95,7 +95,7 @@ Reviewed-by: Andrew Lunn <andrew at lunn.ch>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -1209,6 +1209,46 @@ static void b53_force_port_config(struct
+@@ -1213,6 +1213,46 @@ static void b53_force_port_config(struct
  	b53_write8(dev, B53_CTRL_PAGE, off, reg);
  }
  
@@ -142,7 +142,7 @@ Reviewed-by: Andrew Lunn <andrew at lunn.ch>
  static void b53_adjust_link(struct dsa_switch *ds, int port,
  			    struct phy_device *phydev)
  {
-@@ -1235,6 +1275,9 @@ static void b53_adjust_link(struct dsa_s
+@@ -1239,6 +1279,9 @@ static void b53_adjust_link(struct dsa_s
  			      tx_pause, rx_pause);
  	b53_force_link(dev, port, phydev->link);
  
@@ -152,7 +152,7 @@ Reviewed-by: Andrew Lunn <andrew at lunn.ch>
  	if (is531x5(dev) && phy_interface_is_rgmii(phydev)) {
  		if (port == dev->imp_port)
  			off = B53_RGMII_CTRL_IMP;
-@@ -1419,6 +1462,9 @@ void b53_phylink_mac_link_up(struct dsa_
+@@ -1423,6 +1466,9 @@ void b53_phylink_mac_link_up(struct dsa_
  {
  	struct b53_device *dev = ds->priv;
  
diff --git a/target/linux/generic/pending-5.15/774-net-dsa-b53-mmap-allow-passing-a-chip-ID.patch b/target/linux/generic/pending-5.15/774-net-dsa-b53-mmap-allow-passing-a-chip-ID.patch
index 7f163cc7e2..fa95acff2f 100644
--- a/target/linux/generic/pending-5.15/774-net-dsa-b53-mmap-allow-passing-a-chip-ID.patch
+++ b/target/linux/generic/pending-5.15/774-net-dsa-b53-mmap-allow-passing-a-chip-ID.patch
@@ -100,7 +100,7 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -2464,6 +2464,19 @@ static const struct b53_chip_data b53_sw
+@@ -2473,6 +2473,19 @@ static const struct b53_chip_data b53_sw
  		.jumbo_size_reg = B53_JUMBO_MAX_SIZE_63XX,
  	},
  	{
diff --git a/target/linux/generic/pending-5.15/775-net-dsa-b53-add-BCM63268-RGMII-configuration.patch b/target/linux/generic/pending-5.15/775-net-dsa-b53-add-BCM63268-RGMII-configuration.patch
index d90d757fb2..bbace362de 100644
--- a/target/linux/generic/pending-5.15/775-net-dsa-b53-add-BCM63268-RGMII-configuration.patch
+++ b/target/linux/generic/pending-5.15/775-net-dsa-b53-add-BCM63268-RGMII-configuration.patch
@@ -97,7 +97,7 @@ Reviewed-by: Simon Horman <simon.horman at corigine.com>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -1240,8 +1240,12 @@ static void b53_adjust_63xx_rgmii(struct
+@@ -1244,8 +1244,12 @@ static void b53_adjust_63xx_rgmii(struct
  		break;
  	}
  
diff --git a/target/linux/generic/pending-5.15/777-net-dsa-b53-mdio-add-support-for-BCM53134.patch b/target/linux/generic/pending-5.15/777-net-dsa-b53-mdio-add-support-for-BCM53134.patch
index fe01db5a6a..5056072d80 100644
--- a/target/linux/generic/pending-5.15/777-net-dsa-b53-mdio-add-support-for-BCM53134.patch
+++ b/target/linux/generic/pending-5.15/777-net-dsa-b53-mdio-add-support-for-BCM53134.patch
@@ -100,7 +100,7 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -2612,6 +2612,20 @@ static const struct b53_chip_data b53_sw
+@@ -2621,6 +2621,20 @@ static const struct b53_chip_data b53_sw
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
  		.jumbo_size_reg = B53_JUMBO_MAX_SIZE,
  	},
@@ -121,7 +121,7 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
  };
  
  static int b53_switch_init(struct b53_device *dev)
-@@ -2788,6 +2802,7 @@ int b53_switch_detect(struct b53_device
+@@ -2797,6 +2811,7 @@ int b53_switch_detect(struct b53_device
  		case BCM53012_DEVICE_ID:
  		case BCM53018_DEVICE_ID:
  		case BCM53019_DEVICE_ID:
diff --git a/target/linux/generic/pending-5.15/840-hwrng-bcm2835-set-quality-to-1000.patch b/target/linux/generic/pending-5.15/840-hwrng-bcm2835-set-quality-to-1000.patch
index 5ca8933d6f..06a7552ad1 100644
--- a/target/linux/generic/pending-5.15/840-hwrng-bcm2835-set-quality-to-1000.patch
+++ b/target/linux/generic/pending-5.15/840-hwrng-bcm2835-set-quality-to-1000.patch
@@ -16,7 +16,7 @@ Signed-off-by: ?lvaro Fern?ndez Rojas <noltari at gmail.com>
 
 --- a/drivers/char/hw_random/bcm2835-rng.c
 +++ b/drivers/char/hw_random/bcm2835-rng.c
-@@ -170,6 +170,7 @@ static int bcm2835_rng_probe(struct plat
+@@ -172,6 +172,7 @@ static int bcm2835_rng_probe(struct plat
  	priv->rng.init = bcm2835_rng_init;
  	priv->rng.read = bcm2835_rng_read;
  	priv->rng.cleanup = bcm2835_rng_cleanup;
diff --git a/target/linux/ipq806x/patches-5.15/700-Revert-net-stmmac-Use-hrtimer-for-TX-coalescing.patch b/target/linux/ipq806x/patches-5.15/700-Revert-net-stmmac-Use-hrtimer-for-TX-coalescing.patch
index a98076b5ea..bc55e4d0e7 100644
--- a/target/linux/ipq806x/patches-5.15/700-Revert-net-stmmac-Use-hrtimer-for-TX-coalescing.patch
+++ b/target/linux/ipq806x/patches-5.15/700-Revert-net-stmmac-Use-hrtimer-for-TX-coalescing.patch
@@ -116,7 +116,7 @@ Signed-off-by: Oskari Lemmela <oskari at lemmela.net>
  
  	netif_tx_disable(dev);
  
-@@ -6639,7 +6632,7 @@ void stmmac_xdp_release(struct net_devic
+@@ -6624,7 +6617,7 @@ void stmmac_xdp_release(struct net_devic
  	stmmac_disable_all_queues(priv);
  
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -125,7 +125,7 @@ Signed-off-by: Oskari Lemmela <oskari at lemmela.net>
  
  	/* Free the IRQ lines */
  	stmmac_free_irq(dev, REQ_IRQ_ERR_ALL, 0);
-@@ -6734,8 +6727,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6719,8 +6712,7 @@ int stmmac_xdp_open(struct net_device *d
  		stmmac_set_tx_tail_ptr(priv, priv->ioaddr,
  				       tx_q->tx_tail_addr, chan);
  
@@ -135,7 +135,7 @@ Signed-off-by: Oskari Lemmela <oskari at lemmela.net>
  	}
  
  	/* Enable the MAC Rx/Tx */
-@@ -6758,7 +6750,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6743,7 +6735,7 @@ int stmmac_xdp_open(struct net_device *d
  
  irq_error:
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -144,7 +144,7 @@ Signed-off-by: Oskari Lemmela <oskari at lemmela.net>
  
  	stmmac_hw_teardown(dev);
  init_error:
-@@ -7485,7 +7477,7 @@ int stmmac_suspend(struct device *dev)
+@@ -7470,7 +7462,7 @@ int stmmac_suspend(struct device *dev)
  	stmmac_disable_all_queues(priv);
  
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
diff --git a/target/linux/lantiq/patches-5.15/0028-NET-lantiq-various-etop-fixes.patch b/target/linux/lantiq/patches-5.15/0028-NET-lantiq-various-etop-fixes.patch
index 52ff41841f..83f803ccf1 100644
--- a/target/linux/lantiq/patches-5.15/0028-NET-lantiq-various-etop-fixes.patch
+++ b/target/linux/lantiq/patches-5.15/0028-NET-lantiq-various-etop-fixes.patch
@@ -625,7 +625,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  	return 0;
  }
  
-@@ -458,15 +652,16 @@ ltq_etop_tx(struct sk_buff *skb, struct
+@@ -458,17 +652,18 @@ ltq_etop_tx(struct sk_buff *skb, struct
  	int queue = skb_get_queue_mapping(skb);
  	struct netdev_queue *txq = netdev_get_tx_queue(dev, queue);
  	struct ltq_etop_priv *priv = netdev_priv(dev);
@@ -638,7 +638,9 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  	u32 byte_offset;
 +	int len;
  
- 	len = skb->len < ETH_ZLEN ? ETH_ZLEN : skb->len;
+ 	if (skb_put_padto(skb, ETH_ZLEN))
+ 		return NETDEV_TX_OK;
+ 	len = skb->len;
  
 -	if ((desc->ctl & (LTQ_DMA_OWN | LTQ_DMA_C)) || ch->skb[ch->dma.desc]) {
 +	if ((desc->ctl & (LTQ_DMA_OWN | LTQ_DMA_C)) ||
@@ -646,7 +648,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  		netdev_err(dev, "tx ring full\n");
  		netif_tx_stop_queue(txq);
  		return NETDEV_TX_BUSY;
-@@ -474,7 +669,7 @@ ltq_etop_tx(struct sk_buff *skb, struct
+@@ -476,7 +671,7 @@ ltq_etop_tx(struct sk_buff *skb, struct
  
  	/* dma needs to start on a 16 byte aligned address */
  	byte_offset = CPHYSADDR(skb->data) % 16;
@@ -655,7 +657,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  
  	netif_trans_update(dev);
  
-@@ -484,11 +679,11 @@ ltq_etop_tx(struct sk_buff *skb, struct
+@@ -486,11 +681,11 @@ ltq_etop_tx(struct sk_buff *skb, struct
  	wmb();
  	desc->ctl = LTQ_DMA_OWN | LTQ_DMA_SOP | LTQ_DMA_EOP |
  		LTQ_DMA_TX_OFFSET(byte_offset) | (len & LTQ_DMA_SIZE_MASK);
@@ -670,7 +672,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  		netif_tx_stop_queue(txq);
  
  	return NETDEV_TX_OK;
-@@ -499,11 +694,14 @@ ltq_etop_change_mtu(struct net_device *d
+@@ -501,11 +696,14 @@ ltq_etop_change_mtu(struct net_device *d
  {
  	struct ltq_etop_priv *priv = netdev_priv(dev);
  	unsigned long flags;
@@ -686,7 +688,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  	spin_unlock_irqrestore(&priv->lock, flags);
  
  	return 0;
-@@ -556,6 +754,9 @@ ltq_etop_init(struct net_device *dev)
+@@ -558,6 +756,9 @@ ltq_etop_init(struct net_device *dev)
  	if (err)
  		goto err_hw;
  	ltq_etop_change_mtu(dev, 1500);
@@ -696,7 +698,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  
  	memcpy(&mac, &priv->pldata->mac, sizeof(struct sockaddr));
  	if (!is_valid_ether_addr(mac.sa_data)) {
-@@ -573,9 +774,10 @@ ltq_etop_init(struct net_device *dev)
+@@ -575,9 +776,10 @@ ltq_etop_init(struct net_device *dev)
  		dev->addr_assign_type = NET_ADDR_RANDOM;
  
  	ltq_etop_set_multicast_list(dev);
@@ -710,7 +712,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  	return 0;
  
  err_netdev:
-@@ -595,6 +797,9 @@ ltq_etop_tx_timeout(struct net_device *d
+@@ -597,6 +799,9 @@ ltq_etop_tx_timeout(struct net_device *d
  	err = ltq_etop_hw_init(dev);
  	if (err)
  		goto err_hw;
@@ -720,7 +722,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  	netif_trans_update(dev);
  	netif_wake_queue(dev);
  	return;
-@@ -618,14 +823,18 @@ static const struct net_device_ops ltq_e
+@@ -620,14 +825,18 @@ static const struct net_device_ops ltq_e
  	.ndo_tx_timeout = ltq_etop_tx_timeout,
  };
  
@@ -743,7 +745,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  
  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
  	if (!res) {
-@@ -651,31 +860,62 @@ ltq_etop_probe(struct platform_device *p
+@@ -653,31 +862,62 @@ ltq_etop_probe(struct platform_device *p
  		goto err_out;
  	}
  
@@ -821,7 +823,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  
  	err = register_netdev(dev);
  	if (err)
-@@ -704,31 +944,22 @@ ltq_etop_remove(struct platform_device *
+@@ -706,31 +946,22 @@ ltq_etop_remove(struct platform_device *
  	return 0;
  }
  
diff --git a/target/linux/lantiq/patches-5.15/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch b/target/linux/lantiq/patches-5.15/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch
index 477741bae0..322bf7a326 100644
--- a/target/linux/lantiq/patches-5.15/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch
+++ b/target/linux/lantiq/patches-5.15/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch
@@ -203,7 +203,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +early_param("ethaddr", setup_ethaddr);
 --- a/drivers/net/ethernet/lantiq_etop.c
 +++ b/drivers/net/ethernet/lantiq_etop.c
-@@ -758,7 +758,11 @@ ltq_etop_init(struct net_device *dev)
+@@ -760,7 +760,11 @@ ltq_etop_init(struct net_device *dev)
  	if (err)
  		goto err_hw;
  
diff --git a/target/linux/lantiq/patches-5.15/0710-v5.16-net-lantiq-configure-the-burst-length-in-ethernet-dr.patch b/target/linux/lantiq/patches-5.15/0710-v5.16-net-lantiq-configure-the-burst-length-in-ethernet-dr.patch
index 5cb04c8cb8..823b9df911 100644
--- a/target/linux/lantiq/patches-5.15/0710-v5.16-net-lantiq-configure-the-burst-length-in-ethernet-dr.patch
+++ b/target/linux/lantiq/patches-5.15/0710-v5.16-net-lantiq-configure-the-burst-length-in-ethernet-dr.patch
@@ -43,7 +43,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  
  	priv->txch.dma.nr = tx;
  	priv->txch.dma.dev = &priv->pdev->dev;
-@@ -677,8 +680,8 @@ ltq_etop_tx(struct sk_buff *skb, struct
+@@ -679,8 +682,8 @@ ltq_etop_tx(struct sk_buff *skb, struct
  		return NETDEV_TX_BUSY;
  	}
  
@@ -54,7 +54,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  	priv->txch.skb[priv->txch.dma.desc] = skb;
  
  	netif_trans_update(dev);
-@@ -926,6 +929,18 @@ static int ltq_etop_probe(struct platfor
+@@ -928,6 +931,18 @@ static int ltq_etop_probe(struct platfor
  	spin_lock_init(&priv->lock);
  	SET_NETDEV_DEV(dev, &pdev->dev);
  
diff --git a/target/linux/mediatek/patches-5.15/850-v6.0-i2c-move-drivers-from-strlcpy-to-strscpy.patch b/target/linux/mediatek/patches-5.15/850-v6.0-i2c-move-drivers-from-strlcpy-to-strscpy.patch
index c1c1d4b4aa..bd854593ef 100644
--- a/target/linux/mediatek/patches-5.15/850-v6.0-i2c-move-drivers-from-strlcpy-to-strscpy.patch
+++ b/target/linux/mediatek/patches-5.15/850-v6.0-i2c-move-drivers-from-strlcpy-to-strscpy.patch
@@ -414,7 +414,7 @@ Signed-off-by: Wolfram Sang <wsa at kernel.org>
  	if (IS_ERR(i2c->clk)) {
 --- a/drivers/i2c/busses/i2c-qcom-geni.c
 +++ b/drivers/i2c/busses/i2c-qcom-geni.c
-@@ -577,7 +577,7 @@ static int geni_i2c_probe(struct platfor
+@@ -575,7 +575,7 @@ static int geni_i2c_probe(struct platfor
  	i2c_set_adapdata(&gi2c->adap, gi2c);
  	gi2c->adap.dev.parent = dev;
  	gi2c->adap.dev.of_node = dev->of_node;
diff --git a/target/linux/mediatek/patches-5.15/901-arm-add-cmdline-override.patch b/target/linux/mediatek/patches-5.15/901-arm-add-cmdline-override.patch
index b6f46acf60..aa3768f678 100644
--- a/target/linux/mediatek/patches-5.15/901-arm-add-cmdline-override.patch
+++ b/target/linux/mediatek/patches-5.15/901-arm-add-cmdline-override.patch
@@ -37,7 +37,7 @@
  	 * managed to set the command line, unless CONFIG_CMDLINE_FORCE
 --- a/arch/arm64/Kconfig
 +++ b/arch/arm64/Kconfig
-@@ -2097,6 +2097,14 @@ config CMDLINE_FORCE
+@@ -2099,6 +2099,14 @@ config CMDLINE_FORCE
  
  endchoice
  
diff --git a/target/linux/mvebu/patches-5.15/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch b/target/linux/mvebu/patches-5.15/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch
index 023495373b..176889033b 100644
--- a/target/linux/mvebu/patches-5.15/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch
+++ b/target/linux/mvebu/patches-5.15/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch
@@ -26,7 +26,7 @@ Cc: Robert Marko <robert.marko at sartura.hr>
 
 --- a/drivers/hwmon/Kconfig
 +++ b/drivers/hwmon/Kconfig
-@@ -732,6 +732,14 @@ config SENSORS_IBMPOWERNV
+@@ -734,6 +734,14 @@ config SENSORS_IBMPOWERNV
  	  This driver can also be built as a module. If so, the module
  	  will be called ibmpowernv.
  
diff --git a/target/linux/octeontx/patches-5.15/0004-PCI-add-quirk-for-Gateworks-PLX-PEX860x-switch-with-.patch b/target/linux/octeontx/patches-5.15/0004-PCI-add-quirk-for-Gateworks-PLX-PEX860x-switch-with-.patch
index 12910b74e4..291ca4c933 100644
--- a/target/linux/octeontx/patches-5.15/0004-PCI-add-quirk-for-Gateworks-PLX-PEX860x-switch-with-.patch
+++ b/target/linux/octeontx/patches-5.15/0004-PCI-add-quirk-for-Gateworks-PLX-PEX860x-switch-with-.patch
@@ -22,7 +22,7 @@ Signed-off-by: Tim Harvey <tharvey at gateworks.com>
  #include <linux/platform_data/x86/apple.h>
  #include <linux/pm_runtime.h>
  #include <linux/suspend.h>
-@@ -6000,3 +6001,34 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
+@@ -6008,3 +6009,34 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0xa73f, dpc_log_size);
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0xa76e, dpc_log_size);
  #endif
diff --git a/target/linux/ramips/patches-5.15/850-awake-rt305x-dwc2-controller.patch b/target/linux/ramips/patches-5.15/850-awake-rt305x-dwc2-controller.patch
index 5fb3664ae5..84fcf32869 100644
--- a/target/linux/ramips/patches-5.15/850-awake-rt305x-dwc2-controller.patch
+++ b/target/linux/ramips/patches-5.15/850-awake-rt305x-dwc2-controller.patch
@@ -1,6 +1,6 @@
 --- a/drivers/usb/dwc2/platform.c
 +++ b/drivers/usb/dwc2/platform.c
-@@ -508,6 +508,12 @@ static int dwc2_driver_probe(struct plat
+@@ -496,6 +496,12 @@ static int dwc2_driver_probe(struct plat
  	if (retval)
  		return retval;
  
diff --git a/target/linux/sifiveu/patches-5.15/0005-riscv-sifive-unleashed-define-opp-table-cpufreq.patch b/target/linux/sifiveu/patches-5.15/0005-riscv-sifive-unleashed-define-opp-table-cpufreq.patch
index c6b997dbbe..5d8c76f294 100644
--- a/target/linux/sifiveu/patches-5.15/0005-riscv-sifive-unleashed-define-opp-table-cpufreq.patch
+++ b/target/linux/sifiveu/patches-5.15/0005-riscv-sifive-unleashed-define-opp-table-cpufreq.patch
@@ -14,7 +14,7 @@ Signed-off-by: David Abdurachmanov <david.abdurachmanov at sifive.com>
 
 --- a/arch/riscv/Kconfig
 +++ b/arch/riscv/Kconfig
-@@ -566,6 +566,14 @@ config BUILTIN_DTB
+@@ -571,6 +571,14 @@ config BUILTIN_DTB
  	depends on OF
  	default y if XIP_KERNEL
  



From lede-commits at lists.infradead.org  Fri Nov 15 15:05:02 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 15 Nov 2024 18:05:02 -0500
Subject: [openwrt/openwrt]  mac80211: compatibility with kernel 6.6.59
In-Reply-To: <173171189966.3272985.1759727733460942174@git-01.infra.openwrt.org>
References: <173171189966.3272985.1759727733460942174@git-01.infra.openwrt.org>
Message-ID: <mailman.1021.1731711908.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/0edb5d4fc06abf14685d0004aaf4df497c7be36d

commit 0edb5d4fc06abf14685d0004aaf4df497c7be36d
Author: Mieczyslaw Nalewaj <namiltd at yahoo.com>
AuthorDate: Fri Nov 1 21:59:23 2024 +0100

    mac80211: compatibility with kernel 6.6.59
    
    Fix genlmsg_multicast_allns() build error on kernel 6.6.59.
    Based on kernel patch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit?h=v6.6.59&id=e0f83d268974dab0361d11904dfc9acec53f96a6
    
    Signed-off-by: Mieczyslaw Nalewaj <namiltd at yahoo.com>
    Link: https://github.com/openwrt/openwrt/pull/16835
    (cherry picked from commit 31f1dabb4b9727b300ddaa2801903ae4b72e4e1e)
    Link: https://github.com/openwrt/openwrt/pull/16882
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 ...ticast_allns-build-error-on-kernel-6.6.59.patch | 169 +++++++++++++++++++++
 ...date-Transition-Disable-policy-during-por.patch |   4 +-
 ...11-include-puncturing-bitmap-in-channel-s.patch |  12 +-
 3 files changed, 177 insertions(+), 8 deletions(-)

diff --git a/package/kernel/mac80211/patches/build/236-fix-genlmsg_multicast_allns-build-error-on-kernel-6.6.59.patch b/package/kernel/mac80211/patches/build/236-fix-genlmsg_multicast_allns-build-error-on-kernel-6.6.59.patch
new file mode 100644
index 0000000000..406b0a2085
--- /dev/null
+++ b/package/kernel/mac80211/patches/build/236-fix-genlmsg_multicast_allns-build-error-on-kernel-6.6.59.patch
@@ -0,0 +1,169 @@
+From e0f83d268974dab0361d11904dfc9acec53f96a6 Mon Sep 17 00:00:00 2001
+From: Eric Dumazet <edumazet at google.com>
+Date: Fri, 11 Oct 2024 17:12:17 +0000
+Subject: [PATCH] genetlink: hold RCU in genlmsg_mcast()
+
+[ Upstream commit 56440d7ec28d60f8da3bfa09062b3368ff9b16db ]
+
+While running net selftests with CONFIG_PROVE_RCU_LIST=y I saw
+one lockdep splat [1].
+
+genlmsg_mcast() uses for_each_net_rcu(), and must therefore hold RCU.
+
+Instead of letting all callers guard genlmsg_multicast_allns()
+with a rcu_read_lock()/rcu_read_unlock() pair, do it in genlmsg_mcast().
+
+This also means the @flags parameter is useless, we need to always use
+GFP_ATOMIC.
+
+[1]
+[10882.424136] =============================
+[10882.424166] WARNING: suspicious RCU usage
+[10882.424309] 6.12.0-rc2-virtme #1156 Not tainted
+[10882.424400] -----------------------------
+[10882.424423] net/netlink/genetlink.c:1940 RCU-list traversed in non-reader section!!
+[10882.424469]
+other info that might help us debug this:
+
+[10882.424500]
+rcu_scheduler_active = 2, debug_locks = 1
+[10882.424744] 2 locks held by ip/15677:
+[10882.424791] #0: ffffffffb6b491b0 (cb_lock){++++}-{3:3}, at: genl_rcv (net/netlink/genetlink.c:1219)
+[10882.426334] #1: ffffffffb6b49248 (genl_mutex){+.+.}-{3:3}, at: genl_rcv_msg (net/netlink/genetlink.c:61 net/netlink/genetlink.c:57 net/netlink/genetlink.c:1209)
+[10882.426465]
+stack backtrace:
+[10882.426805] CPU: 14 UID: 0 PID: 15677 Comm: ip Not tainted 6.12.0-rc2-virtme #1156
+[10882.426919] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
+[10882.427046] Call Trace:
+[10882.427131]  <TASK>
+[10882.427244] dump_stack_lvl (lib/dump_stack.c:123)
+[10882.427335] lockdep_rcu_suspicious (kernel/locking/lockdep.c:6822)
+[10882.427387] genlmsg_multicast_allns (net/netlink/genetlink.c:1940 (discriminator 7) net/netlink/genetlink.c:1977 (discriminator 7))
+[10882.427436] l2tp_tunnel_notify.constprop.0 (net/l2tp/l2tp_netlink.c:119) l2tp_netlink
+[10882.427683] l2tp_nl_cmd_tunnel_create (net/l2tp/l2tp_netlink.c:253) l2tp_netlink
+[10882.427748] genl_family_rcv_msg_doit (net/netlink/genetlink.c:1115)
+[10882.427834] genl_rcv_msg (net/netlink/genetlink.c:1195 net/netlink/genetlink.c:1210)
+[10882.427877] ? __pfx_l2tp_nl_cmd_tunnel_create (net/l2tp/l2tp_netlink.c:186) l2tp_netlink
+[10882.427927] ? __pfx_genl_rcv_msg (net/netlink/genetlink.c:1201)
+[10882.427959] netlink_rcv_skb (net/netlink/af_netlink.c:2551)
+[10882.428069] genl_rcv (net/netlink/genetlink.c:1220)
+[10882.428095] netlink_unicast (net/netlink/af_netlink.c:1332 net/netlink/af_netlink.c:1357)
+[10882.428140] netlink_sendmsg (net/netlink/af_netlink.c:1901)
+[10882.428210] ____sys_sendmsg (net/socket.c:729 (discriminator 1) net/socket.c:744 (discriminator 1) net/socket.c:2607 (discriminator 1))
+
+Fixes: 33f72e6f0c67 ("l2tp : multicast notification to the registered listeners")
+Signed-off-by: Eric Dumazet <edumazet at google.com>
+Cc: James Chapman <jchapman at katalix.com>
+Cc: Tom Parkin <tparkin at katalix.com>
+Cc: Johannes Berg <johannes.berg at intel.com>
+Link: https://patch.msgid.link/20241011171217.3166614-1-edumazet at google.com
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
+Signed-off-by: Sasha Levin <sashal at kernel.org>
+---
+ drivers/target/target_core_user.c |  2 +-
+ include/net/genetlink.h           |  3 +--
+ net/l2tp/l2tp_netlink.c           |  4 ++--
+ net/netlink/genetlink.c           | 28 ++++++++++++++--------------
+ net/wireless/nl80211.c            |  8 ++------
+ 5 files changed, 20 insertions(+), 25 deletions(-)
+
+--- a/backport-include/net/genetlink.h
++++ b/backport-include/net/genetlink.h
+@@ -150,7 +150,7 @@ int genlmsg_multicast(const struct genl_
+ #define genlmsg_multicast_allns LINUX_BACKPORT(genlmsg_multicast_allns)
+ int backport_genlmsg_multicast_allns(const struct genl_family *family,
+ 				     struct sk_buff *skb, u32 portid,
+-				     unsigned int group, gfp_t flags);
++				     unsigned int group);
+ 
+ #define genl_family_attrbuf LINUX_BACKPORT(genl_family_attrbuf)
+ static inline struct nlattr **genl_family_attrbuf(struct genl_family *family)
+--- a/compat/backport-genetlink.c
++++ b/compat/backport-genetlink.c
+@@ -198,23 +198,23 @@ int genlmsg_multicast(const struct genl_
+ }
+ EXPORT_SYMBOL_GPL(genlmsg_multicast);
+ 
+-static int genlmsg_mcast(struct sk_buff *skb, u32 portid, unsigned long group,
+-			 gfp_t flags)
++static int genlmsg_mcast(struct sk_buff *skb, u32 portid, unsigned long group)
+ {
+ 	struct sk_buff *tmp;
+ 	struct net *net, *prev = NULL;
+ 	bool delivered = false;
+ 	int err;
+ 
++	rcu_read_lock();
+ 	for_each_net_rcu(net) {
+ 		if (prev) {
+-			tmp = skb_clone(skb, flags);
++			tmp = skb_clone(skb, GFP_ATOMIC);
+ 			if (!tmp) {
+ 				err = -ENOMEM;
+ 				goto error;
+ 			}
+ 			err = nlmsg_multicast(prev->genl_sock, tmp,
+-					      portid, group, flags);
++					      portid, group, GFP_ATOMIC);
+ 			if (!err)
+ 				delivered = true;
+ 			else if (err != -ESRCH)
+@@ -223,25 +223,29 @@ static int genlmsg_mcast(struct sk_buff
+ 
+ 		prev = net;
+ 	}
++	err = nlmsg_multicast(prev->genl_sock, skb, portid, group, GFP_ATOMIC);
++
++	rcu_read_unlock();
+ 
+-	err = nlmsg_multicast(prev->genl_sock, skb, portid, group, flags);
+ 	if (!err)
+ 		delivered = true;
+ 	else if (err != -ESRCH)
+ 		return err;
+ 	return delivered ? 0 : -ESRCH;
+  error:
++	rcu_read_unlock();
++
+ 	kfree_skb(skb);
+ 	return err;
+ }
+ 
+ int backport_genlmsg_multicast_allns(const struct genl_family *family,
+ 				     struct sk_buff *skb, u32 portid,
+-				     unsigned int group, gfp_t flags)
++				     unsigned int group)
+ {
+ 	group = __backport_genl_group(family, group);
+ 	if (group == INVALID_GROUP)
+ 		return -EINVAL;
+-	return genlmsg_mcast(skb, portid, group, flags);
++	return genlmsg_mcast(skb, portid, group);
+ }
+ EXPORT_SYMBOL_GPL(backport_genlmsg_multicast_allns);
+--- a/net/wireless/nl80211.c
++++ b/net/wireless/nl80211.c
+@@ -17627,10 +17627,8 @@ void nl80211_common_reg_change_event(enu
+ 
+ 	genlmsg_end(msg, hdr);
+ 
+-	rcu_read_lock();
+ 	genlmsg_multicast_allns(&nl80211_fam, msg, 0,
+-				NL80211_MCGRP_REGULATORY, GFP_ATOMIC);
+-	rcu_read_unlock();
++				NL80211_MCGRP_REGULATORY);
+ 
+ 	return;
+ 
+@@ -18248,10 +18246,8 @@ void nl80211_send_beacon_hint_event(stru
+ 
+ 	genlmsg_end(msg, hdr);
+ 
+-	rcu_read_lock();
+ 	genlmsg_multicast_allns(&nl80211_fam, msg, 0,
+-				NL80211_MCGRP_REGULATORY, GFP_ATOMIC);
+-	rcu_read_unlock();
++				NL80211_MCGRP_REGULATORY);
+ 
+ 	return;
+ 
diff --git a/package/kernel/mac80211/patches/subsys/341-v6.2-cfg80211-Update-Transition-Disable-policy-during-por.patch b/package/kernel/mac80211/patches/subsys/341-v6.2-cfg80211-Update-Transition-Disable-policy-during-por.patch
index 2c8e88d7ed..915bf735bf 100644
--- a/package/kernel/mac80211/patches/subsys/341-v6.2-cfg80211-Update-Transition-Disable-policy-during-por.patch
+++ b/package/kernel/mac80211/patches/subsys/341-v6.2-cfg80211-Update-Transition-Disable-policy-during-por.patch
@@ -97,7 +97,7 @@ Signed-off-by: Johannes Berg <johannes.berg at intel.com>
  void cfg80211_autodisconnect_wk(struct work_struct *work);
 --- a/net/wireless/nl80211.c
 +++ b/net/wireless/nl80211.c
-@@ -18024,7 +18024,8 @@ void nl80211_send_roamed(struct cfg80211
+@@ -18022,7 +18022,8 @@ void nl80211_send_roamed(struct cfg80211
  }
  
  void nl80211_send_port_authorized(struct cfg80211_registered_device *rdev,
@@ -107,7 +107,7 @@ Signed-off-by: Johannes Berg <johannes.berg at intel.com>
  {
  	struct sk_buff *msg;
  	void *hdr;
-@@ -18044,6 +18045,11 @@ void nl80211_send_port_authorized(struct
+@@ -18042,6 +18043,11 @@ void nl80211_send_port_authorized(struct
  	    nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, bssid))
  		goto nla_put_failure;
  
diff --git a/package/kernel/mac80211/patches/subsys/344-v6.3-0003-wifi-cfg80211-include-puncturing-bitmap-in-channel-s.patch b/package/kernel/mac80211/patches/subsys/344-v6.3-0003-wifi-cfg80211-include-puncturing-bitmap-in-channel-s.patch
index 8f5f8ab87e..3ab60745ff 100644
--- a/package/kernel/mac80211/patches/subsys/344-v6.3-0003-wifi-cfg80211-include-puncturing-bitmap-in-channel-s.patch
+++ b/package/kernel/mac80211/patches/subsys/344-v6.3-0003-wifi-cfg80211-include-puncturing-bitmap-in-channel-s.patch
@@ -132,7 +132,7 @@ Signed-off-by: Johannes Berg <johannes.berg at intel.com>
  		/* use driver's channel switch callback */
 --- a/net/wireless/nl80211.c
 +++ b/net/wireless/nl80211.c
-@@ -19085,7 +19085,7 @@ static void nl80211_ch_switch_notify(str
+@@ -19081,7 +19081,7 @@ static void nl80211_ch_switch_notify(str
  				     struct cfg80211_chan_def *chandef,
  				     gfp_t gfp,
  				     enum nl80211_commands notif,
@@ -141,7 +141,7 @@ Signed-off-by: Johannes Berg <johannes.berg at intel.com>
  {
  	struct wireless_dev *wdev = netdev->ieee80211_ptr;
  	struct sk_buff *msg;
-@@ -19119,6 +19119,9 @@ static void nl80211_ch_switch_notify(str
+@@ -19115,6 +19115,9 @@ static void nl80211_ch_switch_notify(str
  			goto nla_put_failure;
  	}
  
@@ -151,7 +151,7 @@ Signed-off-by: Johannes Berg <johannes.berg at intel.com>
  	genlmsg_end(msg, hdr);
  
  	genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0,
-@@ -19131,7 +19134,7 @@ static void nl80211_ch_switch_notify(str
+@@ -19127,7 +19130,7 @@ static void nl80211_ch_switch_notify(str
  
  void cfg80211_ch_switch_notify(struct net_device *dev,
  			       struct cfg80211_chan_def *chandef,
@@ -160,7 +160,7 @@ Signed-off-by: Johannes Berg <johannes.berg at intel.com>
  {
  	struct wireless_dev *wdev = dev->ieee80211_ptr;
  	struct wiphy *wiphy = wdev->wiphy;
-@@ -19140,7 +19143,7 @@ void cfg80211_ch_switch_notify(struct ne
+@@ -19136,7 +19139,7 @@ void cfg80211_ch_switch_notify(struct ne
  	ASSERT_WDEV_LOCK(wdev);
  	WARN_INVALID_LINK_ID(wdev, link_id);
  
@@ -169,7 +169,7 @@ Signed-off-by: Johannes Berg <johannes.berg at intel.com>
  
  	switch (wdev->iftype) {
  	case NL80211_IFTYPE_STATION:
-@@ -19168,14 +19171,15 @@ void cfg80211_ch_switch_notify(struct ne
+@@ -19164,14 +19167,15 @@ void cfg80211_ch_switch_notify(struct ne
  	cfg80211_sched_dfs_chan_update(rdev);
  
  	nl80211_ch_switch_notify(rdev, dev, link_id, chandef, GFP_KERNEL,
@@ -187,7 +187,7 @@ Signed-off-by: Johannes Berg <johannes.berg at intel.com>
  {
  	struct wireless_dev *wdev = dev->ieee80211_ptr;
  	struct wiphy *wiphy = wdev->wiphy;
-@@ -19184,11 +19188,13 @@ void cfg80211_ch_switch_started_notify(s
+@@ -19180,11 +19184,13 @@ void cfg80211_ch_switch_started_notify(s
  	ASSERT_WDEV_LOCK(wdev);
  	WARN_INVALID_LINK_ID(wdev, link_id);
  



From lede-commits at lists.infradead.org  Fri Nov 15 15:05:03 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 15 Nov 2024 18:05:03 -0500
Subject: [openwrt/openwrt]  kernel: bump 5.15 to 5.15.171
In-Reply-To: <173171189966.3272985.1759727733460942174@git-01.infra.openwrt.org>
References: <173171189966.3272985.1759727733460942174@git-01.infra.openwrt.org>
Message-ID: <mailman.1022.1731711910.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/cd9998ef1b7b842bf052fc5e7034f23a22e67bf7

commit cd9998ef1b7b842bf052fc5e7034f23a22e67bf7
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sat Nov 9 13:36:15 2024 +0100

    kernel: bump 5.15 to 5.15.171
    
    No manual changes needed.
    
    Link: https://github.com/openwrt/openwrt/pull/16882
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 include/kernel-5.15                                |  4 +-
 ...oc-cma-introduce-a-customisable-threshold.patch |  4 +-
 ...multi-gen-LRU-per-node-lru_gen_page-lists.patch |  2 +-
 ...t-stmicro-stmmac-move-queue-reset-to-dedi.patch |  8 +--
 ...t-stmicro-stmmac-move-dma-conf-to-dedicat.patch | 76 +++++++++++-----------
 ...t-stmicro-stmmac-generate-stmmac-dma-conf.patch | 16 ++---
 ...t-stmicro-stmmac-permit-MTU-change-with-i.patch |  4 +-
 ...rt-Revert-driver-core-Set-fw_devlink-on-b.patch |  2 +-
 ...c_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch |  2 +-
 ...80-NET-skip-GRO-for-foreign-MAC-addresses.patch | 10 +--
 ...d-optional-threading-for-backlog-processi.patch | 18 ++---
 ...-net-stmmac-Use-hrtimer-for-TX-coalescing.patch |  8 +--
 12 files changed, 77 insertions(+), 77 deletions(-)

diff --git a/include/kernel-5.15 b/include/kernel-5.15
index b6011097a4..c4127a0fed 100644
--- a/include/kernel-5.15
+++ b/include/kernel-5.15
@@ -1,2 +1,2 @@
-LINUX_VERSION-5.15 = .170
-LINUX_KERNEL_HASH-5.15.170 = fd596545a3d6d93196db3fa29e4926e60900b9c05b3b9ccdee9e35d8e376e7a9
+LINUX_VERSION-5.15 = .171
+LINUX_KERNEL_HASH-5.15.171 = 2953e064d8123c4c22c4fd48011378d73c8b99a3bf3d989e33f4f5c8f82f2a3b
diff --git a/target/linux/bcm27xx/patches-5.15/950-0800-mm-page_alloc-cma-introduce-a-customisable-threshold.patch b/target/linux/bcm27xx/patches-5.15/950-0800-mm-page_alloc-cma-introduce-a-customisable-threshold.patch
index 91ec85a0b2..b8597a6067 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0800-mm-page_alloc-cma-introduce-a-customisable-threshold.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0800-mm-page_alloc-cma-introduce-a-customisable-threshold.patch
@@ -48,7 +48,7 @@ Signed-off-by: David Plowman <david.plowman at raspberrypi.com>
  static bool _init_on_alloc_enabled_early __read_mostly
  				= IS_ENABLED(CONFIG_INIT_ON_ALLOC_DEFAULT_ON);
  static int __init early_init_on_alloc(char *buf)
-@@ -2980,12 +3001,13 @@ __rmqueue(struct zone *zone, unsigned in
+@@ -2983,12 +3004,13 @@ __rmqueue(struct zone *zone, unsigned in
  	if (IS_ENABLED(CONFIG_CMA)) {
  		/*
  		 * Balance movable allocations between regular and CMA areas by
@@ -64,4 +64,4 @@ Signed-off-by: David Plowman <david.plowman at raspberrypi.com>
 +		    * _alloc_in_cma_threshold) {
  			page = __rmqueue_cma_fallback(zone, order);
  			if (page)
- 				goto out;
+ 				return page;
diff --git a/target/linux/generic/backport-5.15/020-v6.3-26-mm-multi-gen-LRU-per-node-lru_gen_page-lists.patch b/target/linux/generic/backport-5.15/020-v6.3-26-mm-multi-gen-LRU-per-node-lru_gen_page-lists.patch
index af27cdc751..d0cbfaa449 100644
--- a/target/linux/generic/backport-5.15/020-v6.3-26-mm-multi-gen-LRU-per-node-lru_gen_page-lists.patch
+++ b/target/linux/generic/backport-5.15/020-v6.3-26-mm-multi-gen-LRU-per-node-lru_gen_page-lists.patch
@@ -354,7 +354,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
  static void mem_cgroup_css_free(struct cgroup_subsys_state *css)
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
-@@ -7663,6 +7663,7 @@ static void __init free_area_init_node(i
+@@ -7704,6 +7704,7 @@ static void __init free_area_init_node(i
  	pgdat_set_deferred_range(pgdat);
  
  	free_area_init_core(pgdat);
diff --git a/target/linux/generic/backport-5.15/775-v6.0-01-net-ethernet-stmicro-stmmac-move-queue-reset-to-dedi.patch b/target/linux/generic/backport-5.15/775-v6.0-01-net-ethernet-stmicro-stmmac-move-queue-reset-to-dedi.patch
index b3932c7fb5..25c1382695 100644
--- a/target/linux/generic/backport-5.15/775-v6.0-01-net-ethernet-stmicro-stmmac-move-queue-reset-to-dedi.patch
+++ b/target/linux/generic/backport-5.15/775-v6.0-01-net-ethernet-stmicro-stmmac-move-queue-reset-to-dedi.patch
@@ -71,7 +71,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	ret = stmmac_hw_setup(dev, true);
  	if (ret < 0) {
  		netdev_err(priv->dev, "%s: Hw setup failed\n", __func__);
-@@ -6399,6 +6392,7 @@ void stmmac_enable_rx_queue(struct stmma
+@@ -6411,6 +6404,7 @@ void stmmac_enable_rx_queue(struct stmma
  		return;
  	}
  
@@ -79,7 +79,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	stmmac_clear_rx_descriptors(priv, queue);
  
  	stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
-@@ -6460,6 +6454,7 @@ void stmmac_enable_tx_queue(struct stmma
+@@ -6472,6 +6466,7 @@ void stmmac_enable_tx_queue(struct stmma
  		return;
  	}
  
@@ -87,7 +87,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	stmmac_clear_tx_descriptors(priv, queue);
  
  	stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
-@@ -7387,6 +7382,25 @@ int stmmac_suspend(struct device *dev)
+@@ -7399,6 +7394,25 @@ int stmmac_suspend(struct device *dev)
  }
  EXPORT_SYMBOL_GPL(stmmac_suspend);
  
@@ -113,7 +113,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  /**
   * stmmac_reset_queues_param - reset queue parameters
   * @priv: device pointer
-@@ -7397,22 +7411,11 @@ static void stmmac_reset_queues_param(st
+@@ -7409,22 +7423,11 @@ static void stmmac_reset_queues_param(st
  	u32 tx_cnt = priv->plat->tx_queues_to_use;
  	u32 queue;
  
diff --git a/target/linux/generic/backport-5.15/775-v6.0-03-net-ethernet-stmicro-stmmac-move-dma-conf-to-dedicat.patch b/target/linux/generic/backport-5.15/775-v6.0-03-net-ethernet-stmicro-stmmac-move-dma-conf-to-dedicat.patch
index 355b168a4a..e41d43f1f3 100644
--- a/target/linux/generic/backport-5.15/775-v6.0-03-net-ethernet-stmicro-stmmac-move-dma-conf-to-dedicat.patch
+++ b/target/linux/generic/backport-5.15/775-v6.0-03-net-ethernet-stmicro-stmmac-move-dma-conf-to-dedicat.patch
@@ -838,7 +838,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		WARN_ON(tx_q->tx_skbuff[tx_q->cur_tx]);
  	}
  
-@@ -4183,7 +4183,7 @@ static netdev_tx_t stmmac_tso_xmit(struc
+@@ -4195,7 +4195,7 @@ static netdev_tx_t stmmac_tso_xmit(struc
  	 * ndo_start_xmit will fill this descriptor the next time it's
  	 * called and stmmac_tx_clean may clean up to this descriptor.
  	 */
@@ -847,7 +847,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	if (unlikely(stmmac_tx_avail(priv, queue) <= (MAX_SKB_FRAGS + 1))) {
  		netif_dbg(priv, hw, priv->dev, "%s: stop transmitted packets\n",
-@@ -4271,7 +4271,7 @@ static netdev_tx_t stmmac_xmit(struct sk
+@@ -4283,7 +4283,7 @@ static netdev_tx_t stmmac_xmit(struct sk
  	int entry, first_tx;
  	dma_addr_t des;
  
@@ -856,7 +856,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	first_tx = tx_q->cur_tx;
  
  	if (priv->tx_path_in_lpi_mode && priv->eee_sw_timer_en)
-@@ -4334,7 +4334,7 @@ static netdev_tx_t stmmac_xmit(struct sk
+@@ -4346,7 +4346,7 @@ static netdev_tx_t stmmac_xmit(struct sk
  		int len = skb_frag_size(frag);
  		bool last_segment = (i == (nfrags - 1));
  
@@ -865,7 +865,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		WARN_ON(tx_q->tx_skbuff[entry]);
  
  		if (likely(priv->extend_desc))
-@@ -4405,7 +4405,7 @@ static netdev_tx_t stmmac_xmit(struct sk
+@@ -4417,7 +4417,7 @@ static netdev_tx_t stmmac_xmit(struct sk
  	 * ndo_start_xmit will fill this descriptor the next time it's
  	 * called and stmmac_tx_clean may clean up to this descriptor.
  	 */
@@ -874,7 +874,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	tx_q->cur_tx = entry;
  
  	if (netif_msg_pktdata(priv)) {
-@@ -4517,7 +4517,7 @@ static void stmmac_rx_vlan(struct net_de
+@@ -4529,7 +4529,7 @@ static void stmmac_rx_vlan(struct net_de
   */
  static inline void stmmac_rx_refill(struct stmmac_priv *priv, u32 queue)
  {
@@ -883,7 +883,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	int dirty = stmmac_rx_dirty(priv, queue);
  	unsigned int entry = rx_q->dirty_rx;
  
-@@ -4567,7 +4567,7 @@ static inline void stmmac_rx_refill(stru
+@@ -4579,7 +4579,7 @@ static inline void stmmac_rx_refill(stru
  		dma_wmb();
  		stmmac_set_rx_owner(priv, p, use_rx_wd);
  
@@ -892,7 +892,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	}
  	rx_q->dirty_rx = entry;
  	rx_q->rx_tail_addr = rx_q->dma_rx_phy +
-@@ -4595,12 +4595,12 @@ static unsigned int stmmac_rx_buf1_len(s
+@@ -4607,12 +4607,12 @@ static unsigned int stmmac_rx_buf1_len(s
  
  	/* First descriptor, not last descriptor and not split header */
  	if (status & rx_not_ls)
@@ -907,7 +907,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  }
  
  static unsigned int stmmac_rx_buf2_len(struct stmmac_priv *priv,
-@@ -4616,7 +4616,7 @@ static unsigned int stmmac_rx_buf2_len(s
+@@ -4628,7 +4628,7 @@ static unsigned int stmmac_rx_buf2_len(s
  
  	/* Not last descriptor */
  	if (status & rx_not_ls)
@@ -916,7 +916,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	plen = stmmac_get_rx_frame_len(priv, p, coe);
  
-@@ -4627,7 +4627,7 @@ static unsigned int stmmac_rx_buf2_len(s
+@@ -4639,7 +4639,7 @@ static unsigned int stmmac_rx_buf2_len(s
  static int stmmac_xdp_xmit_xdpf(struct stmmac_priv *priv, int queue,
  				struct xdp_frame *xdpf, bool dma_map)
  {
@@ -925,7 +925,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	unsigned int entry = tx_q->cur_tx;
  	struct dma_desc *tx_desc;
  	dma_addr_t dma_addr;
-@@ -4690,7 +4690,7 @@ static int stmmac_xdp_xmit_xdpf(struct s
+@@ -4702,7 +4702,7 @@ static int stmmac_xdp_xmit_xdpf(struct s
  
  	stmmac_enable_dma_transmission(priv, priv->ioaddr);
  
@@ -934,7 +934,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	tx_q->cur_tx = entry;
  
  	return STMMAC_XDP_TX;
-@@ -4864,7 +4864,7 @@ static void stmmac_dispatch_skb_zc(struc
+@@ -4876,7 +4876,7 @@ static void stmmac_dispatch_skb_zc(struc
  
  static bool stmmac_rx_refill_zc(struct stmmac_priv *priv, u32 queue, u32 budget)
  {
@@ -943,7 +943,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	unsigned int entry = rx_q->dirty_rx;
  	struct dma_desc *rx_desc = NULL;
  	bool ret = true;
-@@ -4907,7 +4907,7 @@ static bool stmmac_rx_refill_zc(struct s
+@@ -4919,7 +4919,7 @@ static bool stmmac_rx_refill_zc(struct s
  		dma_wmb();
  		stmmac_set_rx_owner(priv, rx_desc, use_rx_wd);
  
@@ -952,7 +952,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	}
  
  	if (rx_desc) {
-@@ -4922,7 +4922,7 @@ static bool stmmac_rx_refill_zc(struct s
+@@ -4934,7 +4934,7 @@ static bool stmmac_rx_refill_zc(struct s
  
  static int stmmac_rx_zc(struct stmmac_priv *priv, int limit, u32 queue)
  {
@@ -961,7 +961,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	unsigned int count = 0, error = 0, len = 0;
  	int dirty = stmmac_rx_dirty(priv, queue);
  	unsigned int next_entry = rx_q->cur_rx;
-@@ -4944,7 +4944,7 @@ static int stmmac_rx_zc(struct stmmac_pr
+@@ -4956,7 +4956,7 @@ static int stmmac_rx_zc(struct stmmac_pr
  			desc_size = sizeof(struct dma_desc);
  		}
  
@@ -970,7 +970,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  				    rx_q->dma_rx_phy, desc_size);
  	}
  	while (count < limit) {
-@@ -4991,7 +4991,7 @@ read_again:
+@@ -5003,7 +5003,7 @@ read_again:
  
  		/* Prefetch the next RX descriptor */
  		rx_q->cur_rx = STMMAC_GET_ENTRY(rx_q->cur_rx,
@@ -979,7 +979,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		next_entry = rx_q->cur_rx;
  
  		if (priv->extend_desc)
-@@ -5104,7 +5104,7 @@ read_again:
+@@ -5116,7 +5116,7 @@ read_again:
   */
  static int stmmac_rx(struct stmmac_priv *priv, int limit, u32 queue)
  {
@@ -988,7 +988,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	struct stmmac_channel *ch = &priv->channel[queue];
  	unsigned int count = 0, error = 0, len = 0;
  	int status = 0, coe = priv->hw->rx_csum;
-@@ -5117,7 +5117,7 @@ static int stmmac_rx(struct stmmac_priv
+@@ -5129,7 +5129,7 @@ static int stmmac_rx(struct stmmac_priv
  	int buf_sz;
  
  	dma_dir = page_pool_get_dma_dir(rx_q->page_pool);
@@ -997,7 +997,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	if (netif_msg_rx_status(priv)) {
  		void *rx_head;
-@@ -5131,7 +5131,7 @@ static int stmmac_rx(struct stmmac_priv
+@@ -5143,7 +5143,7 @@ static int stmmac_rx(struct stmmac_priv
  			desc_size = sizeof(struct dma_desc);
  		}
  
@@ -1006,7 +1006,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  				    rx_q->dma_rx_phy, desc_size);
  	}
  	while (count < limit) {
-@@ -5175,7 +5175,7 @@ read_again:
+@@ -5187,7 +5187,7 @@ read_again:
  			break;
  
  		rx_q->cur_rx = STMMAC_GET_ENTRY(rx_q->cur_rx,
@@ -1015,7 +1015,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		next_entry = rx_q->cur_rx;
  
  		if (priv->extend_desc)
-@@ -5302,7 +5302,7 @@ read_again:
+@@ -5314,7 +5314,7 @@ read_again:
  						buf1_len, dma_dir);
  			skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags,
  					buf->page, buf->page_offset, buf1_len,
@@ -1024,7 +1024,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  			/* Data payload appended into SKB */
  			page_pool_release_page(rx_q->page_pool, buf->page);
-@@ -5314,7 +5314,7 @@ read_again:
+@@ -5326,7 +5326,7 @@ read_again:
  						buf2_len, dma_dir);
  			skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags,
  					buf->sec_page, 0, buf2_len,
@@ -1033,7 +1033,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  			/* Data payload appended into SKB */
  			page_pool_release_page(rx_q->page_pool, buf->sec_page);
-@@ -5747,11 +5747,13 @@ static irqreturn_t stmmac_safety_interru
+@@ -5759,11 +5759,13 @@ static irqreturn_t stmmac_safety_interru
  static irqreturn_t stmmac_msi_intr_tx(int irq, void *data)
  {
  	struct stmmac_tx_queue *tx_q = (struct stmmac_tx_queue *)data;
@@ -1048,7 +1048,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	/* Check if adapter is up */
  	if (test_bit(STMMAC_DOWN, &priv->state))
-@@ -5786,10 +5788,12 @@ static irqreturn_t stmmac_msi_intr_tx(in
+@@ -5798,10 +5800,12 @@ static irqreturn_t stmmac_msi_intr_tx(in
  static irqreturn_t stmmac_msi_intr_rx(int irq, void *data)
  {
  	struct stmmac_rx_queue *rx_q = (struct stmmac_rx_queue *)data;
@@ -1062,7 +1062,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	/* Check if adapter is up */
  	if (test_bit(STMMAC_DOWN, &priv->state))
-@@ -5815,10 +5819,10 @@ static void stmmac_poll_controller(struc
+@@ -5827,10 +5831,10 @@ static void stmmac_poll_controller(struc
  
  	if (priv->plat->multi_msi_en) {
  		for (i = 0; i < priv->plat->rx_queues_to_use; i++)
@@ -1075,7 +1075,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	} else {
  		disable_irq(dev->irq);
  		stmmac_interrupt(dev->irq, dev);
-@@ -5999,34 +6003,34 @@ static int stmmac_rings_status_show(stru
+@@ -6011,34 +6015,34 @@ static int stmmac_rings_status_show(stru
  		return 0;
  
  	for (queue = 0; queue < rx_count; queue++) {
@@ -1116,7 +1116,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		}
  	}
  
-@@ -6373,7 +6377,7 @@ void stmmac_disable_rx_queue(struct stmm
+@@ -6385,7 +6389,7 @@ void stmmac_disable_rx_queue(struct stmm
  
  void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue)
  {
@@ -1125,7 +1125,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	struct stmmac_channel *ch = &priv->channel[queue];
  	unsigned long flags;
  	u32 buf_size;
-@@ -6410,7 +6414,7 @@ void stmmac_enable_rx_queue(struct stmma
+@@ -6422,7 +6426,7 @@ void stmmac_enable_rx_queue(struct stmma
  				      rx_q->queue_index);
  	} else {
  		stmmac_set_dma_bfsize(priv, priv->ioaddr,
@@ -1134,7 +1134,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  				      rx_q->queue_index);
  	}
  
-@@ -6436,7 +6440,7 @@ void stmmac_disable_tx_queue(struct stmm
+@@ -6448,7 +6452,7 @@ void stmmac_disable_tx_queue(struct stmm
  
  void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue)
  {
@@ -1143,7 +1143,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	struct stmmac_channel *ch = &priv->channel[queue];
  	unsigned long flags;
  	int ret;
-@@ -6486,7 +6490,7 @@ void stmmac_xdp_release(struct net_devic
+@@ -6498,7 +6502,7 @@ void stmmac_xdp_release(struct net_devic
  	stmmac_disable_all_queues(priv);
  
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -1152,7 +1152,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	/* Free the IRQ lines */
  	stmmac_free_irq(dev, REQ_IRQ_ERR_ALL, 0);
-@@ -6545,7 +6549,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6557,7 +6561,7 @@ int stmmac_xdp_open(struct net_device *d
  
  	/* DMA RX Channel Configuration */
  	for (chan = 0; chan < rx_cnt; chan++) {
@@ -1161,7 +1161,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  		stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
  				    rx_q->dma_rx_phy, chan);
-@@ -6563,7 +6567,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6575,7 +6579,7 @@ int stmmac_xdp_open(struct net_device *d
  					      rx_q->queue_index);
  		} else {
  			stmmac_set_dma_bfsize(priv, priv->ioaddr,
@@ -1170,7 +1170,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  					      rx_q->queue_index);
  		}
  
-@@ -6572,7 +6576,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6584,7 +6588,7 @@ int stmmac_xdp_open(struct net_device *d
  
  	/* DMA TX Channel Configuration */
  	for (chan = 0; chan < tx_cnt; chan++) {
@@ -1179,7 +1179,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  		stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
  				    tx_q->dma_tx_phy, chan);
-@@ -6605,7 +6609,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6617,7 +6621,7 @@ int stmmac_xdp_open(struct net_device *d
  
  irq_error:
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -1188,7 +1188,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	stmmac_hw_teardown(dev);
  init_error:
-@@ -6632,8 +6636,8 @@ int stmmac_xsk_wakeup(struct net_device
+@@ -6644,8 +6648,8 @@ int stmmac_xsk_wakeup(struct net_device
  	    queue >= priv->plat->tx_queues_to_use)
  		return -EINVAL;
  
@@ -1199,7 +1199,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	ch = &priv->channel[queue];
  
  	if (!rx_q->xsk_pool && !tx_q->xsk_pool)
-@@ -6893,8 +6897,8 @@ int stmmac_reinit_ringparam(struct net_d
+@@ -6905,8 +6909,8 @@ int stmmac_reinit_ringparam(struct net_d
  	if (netif_running(dev))
  		stmmac_release(dev);
  
@@ -1210,7 +1210,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	if (netif_running(dev))
  		ret = stmmac_open(dev);
-@@ -7332,7 +7336,7 @@ int stmmac_suspend(struct device *dev)
+@@ -7344,7 +7348,7 @@ int stmmac_suspend(struct device *dev)
  	stmmac_disable_all_queues(priv);
  
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -1219,7 +1219,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	if (priv->eee_enabled) {
  		priv->tx_path_in_lpi_mode = false;
-@@ -7384,7 +7388,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend);
+@@ -7396,7 +7400,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend);
  
  static void stmmac_reset_rx_queue(struct stmmac_priv *priv, u32 queue)
  {
@@ -1228,7 +1228,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	rx_q->cur_rx = 0;
  	rx_q->dirty_rx = 0;
-@@ -7392,7 +7396,7 @@ static void stmmac_reset_rx_queue(struct
+@@ -7404,7 +7408,7 @@ static void stmmac_reset_rx_queue(struct
  
  static void stmmac_reset_tx_queue(struct stmmac_priv *priv, u32 queue)
  {
diff --git a/target/linux/generic/backport-5.15/775-v6.0-04-net-ethernet-stmicro-stmmac-generate-stmmac-dma-conf.patch b/target/linux/generic/backport-5.15/775-v6.0-04-net-ethernet-stmicro-stmmac-generate-stmmac-dma-conf.patch
index 15cd5e142b..986cb5bbe6 100644
--- a/target/linux/generic/backport-5.15/775-v6.0-04-net-ethernet-stmicro-stmmac-generate-stmmac-dma-conf.patch
+++ b/target/linux/generic/backport-5.15/775-v6.0-04-net-ethernet-stmicro-stmmac-generate-stmmac-dma-conf.patch
@@ -1045,7 +1045,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	/* Disable the MAC Rx/Tx */
  	stmmac_mac_set(priv, priv->ioaddr, false);
-@@ -6372,7 +6488,7 @@ void stmmac_disable_rx_queue(struct stmm
+@@ -6384,7 +6500,7 @@ void stmmac_disable_rx_queue(struct stmm
  	spin_unlock_irqrestore(&ch->lock, flags);
  
  	stmmac_stop_rx_dma(priv, queue);
@@ -1054,7 +1054,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  }
  
  void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue)
-@@ -6383,21 +6499,21 @@ void stmmac_enable_rx_queue(struct stmma
+@@ -6395,21 +6511,21 @@ void stmmac_enable_rx_queue(struct stmma
  	u32 buf_size;
  	int ret;
  
@@ -1080,7 +1080,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
  			    rx_q->dma_rx_phy, rx_q->queue_index);
-@@ -6435,7 +6551,7 @@ void stmmac_disable_tx_queue(struct stmm
+@@ -6447,7 +6563,7 @@ void stmmac_disable_tx_queue(struct stmm
  	spin_unlock_irqrestore(&ch->lock, flags);
  
  	stmmac_stop_tx_dma(priv, queue);
@@ -1089,7 +1089,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  }
  
  void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue)
-@@ -6445,21 +6561,21 @@ void stmmac_enable_tx_queue(struct stmma
+@@ -6457,21 +6573,21 @@ void stmmac_enable_tx_queue(struct stmma
  	unsigned long flags;
  	int ret;
  
@@ -1115,7 +1115,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
  			    tx_q->dma_tx_phy, tx_q->queue_index);
-@@ -6499,7 +6615,7 @@ void stmmac_xdp_release(struct net_devic
+@@ -6511,7 +6627,7 @@ void stmmac_xdp_release(struct net_devic
  	stmmac_stop_all_dma(priv);
  
  	/* Release and free the Rx/Tx resources */
@@ -1124,7 +1124,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	/* Disable the MAC Rx/Tx */
  	stmmac_mac_set(priv, priv->ioaddr, false);
-@@ -6524,14 +6640,14 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6536,14 +6652,14 @@ int stmmac_xdp_open(struct net_device *d
  	u32 chan;
  	int ret;
  
@@ -1141,7 +1141,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	if (ret < 0) {
  		netdev_err(dev, "%s: DMA descriptors initialization failed\n",
  			   __func__);
-@@ -6613,7 +6729,7 @@ irq_error:
+@@ -6625,7 +6741,7 @@ irq_error:
  
  	stmmac_hw_teardown(dev);
  init_error:
@@ -1150,7 +1150,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  dma_desc_error:
  	return ret;
  }
-@@ -7479,7 +7595,7 @@ int stmmac_resume(struct device *dev)
+@@ -7491,7 +7607,7 @@ int stmmac_resume(struct device *dev)
  	stmmac_reset_queues_param(priv);
  
  	stmmac_free_tx_skbufs(priv);
diff --git a/target/linux/generic/backport-5.15/775-v6.0-05-net-ethernet-stmicro-stmmac-permit-MTU-change-with-i.patch b/target/linux/generic/backport-5.15/775-v6.0-05-net-ethernet-stmicro-stmmac-permit-MTU-change-with-i.patch
index d0578e2b30..8fccc71659 100644
--- a/target/linux/generic/backport-5.15/775-v6.0-05-net-ethernet-stmicro-stmmac-permit-MTU-change-with-i.patch
+++ b/target/linux/generic/backport-5.15/775-v6.0-05-net-ethernet-stmicro-stmmac-permit-MTU-change-with-i.patch
@@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
 +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-@@ -5614,18 +5614,15 @@ static int stmmac_change_mtu(struct net_
+@@ -5626,18 +5626,15 @@ static int stmmac_change_mtu(struct net_
  {
  	struct stmmac_priv *priv = netdev_priv(dev);
  	int txfifosz = priv->plat->tx_fifo_size;
@@ -40,7 +40,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	if (stmmac_xdp_is_enabled(priv) && new_mtu > ETH_DATA_LEN) {
  		netdev_dbg(priv->dev, "Jumbo frames not supported for XDP\n");
  		return -EINVAL;
-@@ -5637,8 +5634,29 @@ static int stmmac_change_mtu(struct net_
+@@ -5649,8 +5646,29 @@ static int stmmac_change_mtu(struct net_
  	if ((txfifosz < new_mtu) || (new_mtu > BUF_SIZE_16KiB))
  		return -EINVAL;
  
diff --git a/target/linux/generic/hack-5.15/930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch b/target/linux/generic/hack-5.15/930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch
index 9416429e23..b4339e82d7 100644
--- a/target/linux/generic/hack-5.15/930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch
+++ b/target/linux/generic/hack-5.15/930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch
@@ -19,7 +19,7 @@ Signed-off-by: Rafa? Mi?ecki <rafal at milecki.pl>
 
 --- a/drivers/base/core.c
 +++ b/drivers/base/core.c
-@@ -1578,7 +1578,7 @@ static void device_links_purge(struct de
+@@ -1577,7 +1577,7 @@ static void device_links_purge(struct de
  #define FW_DEVLINK_FLAGS_RPM		(FW_DEVLINK_FLAGS_ON | \
  					 DL_FLAG_PM_RUNTIME)
  
diff --git a/target/linux/generic/pending-5.15/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch b/target/linux/generic/pending-5.15/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
index 42f5a8c246..eacd0c166e 100644
--- a/target/linux/generic/pending-5.15/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
+++ b/target/linux/generic/pending-5.15/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
@@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf <dev-NTEO at vplace.de>
 
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
-@@ -7622,7 +7622,7 @@ static void __init alloc_node_mem_map(st
+@@ -7663,7 +7663,7 @@ static void __init alloc_node_mem_map(st
  	if (pgdat == NODE_DATA(0)) {
  		mem_map = NODE_DATA(0)->node_mem_map;
  		if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
diff --git a/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
index a60e0ddddf..d770c1fb6c 100644
--- a/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
+++ b/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	__u8			inner_protocol_type:1;
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -6081,6 +6081,9 @@ static enum gro_result dev_gro_receive(s
+@@ -6085,6 +6085,9 @@ static enum gro_result dev_gro_receive(s
  	int same_flow;
  	int grow;
  
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	if (netif_elide_gro(skb->dev))
  		goto normal;
  
-@@ -8098,6 +8101,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -8102,6 +8105,48 @@ static void __netdev_adjacent_dev_unlink
  					   &upper_dev->adj_list.lower);
  }
  
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  static int __netdev_upper_dev_link(struct net_device *dev,
  				   struct net_device *upper_dev, bool master,
  				   void *upper_priv, void *upper_info,
-@@ -8149,6 +8194,7 @@ static int __netdev_upper_dev_link(struc
+@@ -8153,6 +8198,7 @@ static int __netdev_upper_dev_link(struc
  	if (ret)
  		return ret;
  
@@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
  					    &changeupper_info.info);
  	ret = notifier_to_errno(ret);
-@@ -8245,6 +8291,7 @@ static void __netdev_upper_dev_unlink(st
+@@ -8249,6 +8295,7 @@ static void __netdev_upper_dev_unlink(st
  
  	__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
  
@@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
  				      &changeupper_info.info);
  
-@@ -9064,6 +9111,7 @@ int dev_set_mac_address(struct net_devic
+@@ -9068,6 +9115,7 @@ int dev_set_mac_address(struct net_devic
  	if (err)
  		return err;
  	dev->addr_assign_type = NET_ADDR_SET;
diff --git a/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch b/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch
index 08b5fffac2..dbd04c7fb4 100644
--- a/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch
+++ b/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #endif
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -4590,7 +4590,7 @@ static int rps_ipi_queued(struct softnet
+@@ -4594,7 +4594,7 @@ static int rps_ipi_queued(struct softnet
  #ifdef CONFIG_RPS
  	struct softnet_data *mysd = this_cpu_ptr(&softnet_data);
  
@@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		sd->rps_ipi_next = mysd->rps_ipi_list;
  		mysd->rps_ipi_list = sd;
  
-@@ -5771,6 +5771,8 @@ static DEFINE_PER_CPU(struct work_struct
+@@ -5775,6 +5775,8 @@ static DEFINE_PER_CPU(struct work_struct
  /* Network device is going away, flush any packets still pending */
  static void flush_backlog(struct work_struct *work)
  {
@@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	struct sk_buff *skb, *tmp;
  	struct softnet_data *sd;
  
-@@ -5786,9 +5788,18 @@ static void flush_backlog(struct work_st
+@@ -5790,9 +5792,18 @@ static void flush_backlog(struct work_st
  			input_queue_head_incr(sd);
  		}
  	}
@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
  		if (skb->dev->reg_state == NETREG_UNREGISTERING) {
  			__skb_unlink(skb, &sd->process_queue);
-@@ -5796,7 +5807,18 @@ static void flush_backlog(struct work_st
+@@ -5800,7 +5811,18 @@ static void flush_backlog(struct work_st
  			input_queue_head_incr(sd);
  		}
  	}
@@ -86,7 +86,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  }
  
  static bool flush_required(int cpu)
-@@ -6479,6 +6501,7 @@ static int process_backlog(struct napi_s
+@@ -6483,6 +6505,7 @@ static int process_backlog(struct napi_s
  
  		local_irq_disable();
  		rps_lock(sd);
@@ -94,7 +94,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		if (skb_queue_empty(&sd->input_pkt_queue)) {
  			/*
  			 * Inline a custom version of __napi_complete().
-@@ -6488,7 +6511,8 @@ static int process_backlog(struct napi_s
+@@ -6492,7 +6515,8 @@ static int process_backlog(struct napi_s
  			 * We can use a plain write instead of clear_bit(),
  			 * and we dont need an smp_mb() memory barrier.
  			 */
@@ -104,7 +104,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  			again = false;
  		} else {
  			skb_queue_splice_tail_init(&sd->input_pkt_queue,
-@@ -6905,6 +6929,57 @@ int dev_set_threaded(struct net_device *
+@@ -6909,6 +6933,57 @@ int dev_set_threaded(struct net_device *
  }
  EXPORT_SYMBOL(dev_set_threaded);
  
@@ -162,7 +162,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  void netif_napi_add(struct net_device *dev, struct napi_struct *napi,
  		    int (*poll)(struct napi_struct *, int), int weight)
  {
-@@ -11389,6 +11464,9 @@ static int dev_cpu_dead(unsigned int old
+@@ -11393,6 +11468,9 @@ static int dev_cpu_dead(unsigned int old
  	raise_softirq_irqoff(NET_TX_SOFTIRQ);
  	local_irq_enable();
  
@@ -172,7 +172,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #ifdef CONFIG_RPS
  	remsd = oldsd->rps_ipi_list;
  	oldsd->rps_ipi_list = NULL;
-@@ -11728,6 +11806,7 @@ static int __init net_dev_init(void)
+@@ -11732,6 +11810,7 @@ static int __init net_dev_init(void)
  		sd->cpu = i;
  #endif
  
diff --git a/target/linux/ipq806x/patches-5.15/700-Revert-net-stmmac-Use-hrtimer-for-TX-coalescing.patch b/target/linux/ipq806x/patches-5.15/700-Revert-net-stmmac-Use-hrtimer-for-TX-coalescing.patch
index bc55e4d0e7..ad2bafef80 100644
--- a/target/linux/ipq806x/patches-5.15/700-Revert-net-stmmac-Use-hrtimer-for-TX-coalescing.patch
+++ b/target/linux/ipq806x/patches-5.15/700-Revert-net-stmmac-Use-hrtimer-for-TX-coalescing.patch
@@ -116,7 +116,7 @@ Signed-off-by: Oskari Lemmela <oskari at lemmela.net>
  
  	netif_tx_disable(dev);
  
-@@ -6624,7 +6617,7 @@ void stmmac_xdp_release(struct net_devic
+@@ -6636,7 +6629,7 @@ void stmmac_xdp_release(struct net_devic
  	stmmac_disable_all_queues(priv);
  
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -125,7 +125,7 @@ Signed-off-by: Oskari Lemmela <oskari at lemmela.net>
  
  	/* Free the IRQ lines */
  	stmmac_free_irq(dev, REQ_IRQ_ERR_ALL, 0);
-@@ -6719,8 +6712,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6731,8 +6724,7 @@ int stmmac_xdp_open(struct net_device *d
  		stmmac_set_tx_tail_ptr(priv, priv->ioaddr,
  				       tx_q->tx_tail_addr, chan);
  
@@ -135,7 +135,7 @@ Signed-off-by: Oskari Lemmela <oskari at lemmela.net>
  	}
  
  	/* Enable the MAC Rx/Tx */
-@@ -6743,7 +6735,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6755,7 +6747,7 @@ int stmmac_xdp_open(struct net_device *d
  
  irq_error:
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -144,7 +144,7 @@ Signed-off-by: Oskari Lemmela <oskari at lemmela.net>
  
  	stmmac_hw_teardown(dev);
  init_error:
-@@ -7470,7 +7462,7 @@ int stmmac_suspend(struct device *dev)
+@@ -7482,7 +7474,7 @@ int stmmac_suspend(struct device *dev)
  	stmmac_disable_all_queues(priv);
  
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)



From lede-commits at lists.infradead.org  Fri Nov 15 15:14:25 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 15 Nov 2024 18:14:25 -0500
Subject: [openwrt/openwrt]  libnftnl: update to 1.2.8
In-Reply-To: <173171246448.3283645.6098444691772305747@git-01.infra.openwrt.org>
References: <173171246448.3283645.6098444691772305747@git-01.infra.openwrt.org>
Message-ID: <mailman.1027.1731712473.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/3e094777e7a660840648f68d1d10c532cbe6ab05

commit 3e094777e7a660840648f68d1d10c532cbe6ab05
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Thu Oct 24 00:06:09 2024 +0200

    libnftnl: update to 1.2.8
    
    Release Announcement:
    https://www.spinics.net/lists/netfilter-devel/msg87287.html
    https://www.spinics.net/lists/netfilter-devel/msg88520.html
    
    Link: https://github.com/openwrt/openwrt/pull/16769
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit d9ed0d438b0ec7d813764d629be7a753dc3fbac5)
---
 package/libs/libnftnl/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package/libs/libnftnl/Makefile b/package/libs/libnftnl/Makefile
index b512d4d58f..f06b223993 100644
--- a/package/libs/libnftnl/Makefile
+++ b/package/libs/libnftnl/Makefile
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libnftnl
 PKG_CPE_ID:=cpe:/a:netfilter:libnftnl
-PKG_VERSION:=1.2.6
+PKG_VERSION:=1.2.8
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://netfilter.org/projects/$(PKG_NAME)/files
-PKG_HASH:=ceeaea2cd92147da19f13a35a7f1a4bc2767ff897e838e4b479cf54b59c777f4
+PKG_HASH:=37fea5d6b5c9b08de7920d298de3cdc942e7ae64b1a3e8b880b2d390ae67ad95
 
 PKG_MAINTAINER:=Steven Barth <steven at midlink.org>
 PKG_LICENSE:=GPL-2.0-or-later



From lede-commits at lists.infradead.org  Fri Nov 15 15:14:24 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 15 Nov 2024 18:14:24 -0500
Subject: [openwrt/openwrt]  base-files: Remove pkg_check when using apk
In-Reply-To: <173171246448.3283645.6098444691772305747@git-01.infra.openwrt.org>
References: <173171246448.3283645.6098444691772305747@git-01.infra.openwrt.org>
Message-ID: <mailman.1028.1731712473.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/740052e84e4b669dc750d15e0bc75d67fcfc46df

commit 740052e84e4b669dc750d15e0bc75d67fcfc46df
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Thu Nov 7 22:49:21 2024 +0100

    base-files: Remove pkg_check when using apk
    
    /sbin/pkg_check uses opkg and is not even packaged when using the
    default opkg configuration. remove it when using apk too.
    
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 0ce237a20cc5168c62afcacb3b47d77a952d64c1)
---
 package/base-files/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 4da50a2736..4bcb4882d7 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -251,6 +251,7 @@ ifneq ($(CONFIG_USE_APK),)
 	$(VERSION_SED_SCRIPT) $(1)/etc/apk/repositories
 
 	rm -f $(1)/etc/uci-defaults/13_fix-group-user
+	rm -f $(1)/sbin/pkg_check
 else
 	$(if $(CONFIG_CLEAN_IPKG),, \
 		mkdir -p $(1)/etc/opkg; \



From lede-commits at lists.infradead.org  Fri Nov 15 15:14:26 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 15 Nov 2024 18:14:26 -0500
Subject: [openwrt/openwrt]  nftables: update to 1.1.1
In-Reply-To: <173171246448.3283645.6098444691772305747@git-01.infra.openwrt.org>
References: <173171246448.3283645.6098444691772305747@git-01.infra.openwrt.org>
Message-ID: <mailman.1029.1731712474.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/faebcc61eb331f5898504933a49c18a5de02b8b1

commit faebcc61eb331f5898504933a49c18a5de02b8b1
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Thu Oct 24 00:09:22 2024 +0200

    nftables: update to 1.1.1
    
    Release Announcement:
    https://lwn.net/Articles/982283/
    https://lwn.net/Articles/992760/
    
    Link: https://github.com/openwrt/openwrt/pull/16769
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit c11a18be0dc38c81280baa948500fe1a57de0685)
---
 package/network/utils/nftables/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package/network/utils/nftables/Makefile b/package/network/utils/nftables/Makefile
index 38a8199d11..06b3fcfcda 100644
--- a/package/network/utils/nftables/Makefile
+++ b/package/network/utils/nftables/Makefile
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nftables
-PKG_VERSION:=1.0.9
+PKG_VERSION:=1.1.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://netfilter.org/projects/$(PKG_NAME)/files
-PKG_HASH:=a3c304cd9ba061239ee0474f9afb938a9bb99d89b960246f66f0c3a0a85e14cd
+PKG_HASH:=6358830f3a64f31e39b0ad421d7dadcd240b72343ded48d8ef13b8faf204865a
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=GPL-2.0



From lede-commits at lists.infradead.org  Fri Nov 15 15:26:19 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 15 Nov 2024 18:26:19 -0500
Subject: [openwrt/openwrt]  kernel: bump 6.6 to 6.6.61
In-Reply-To: <173171317937.3303815.16398405692810901872@git-01.infra.openwrt.org>
References: <173171317937.3303815.16398405692810901872@git-01.infra.openwrt.org>
Message-ID: <mailman.1044.1731713183.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/487ca61f917f9308222faf481ad8be4e2cef0c90

commit 487ca61f917f9308222faf481ad8be4e2cef0c90
Author: John Audia <therealgraysky at proton.me>
AuthorDate: Thu Nov 14 15:16:32 2024 -0500

    kernel: bump 6.6 to 6.6.61
    
    Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.61
    
    Manually rebased:
            bcm27xx/patches-6.6/950-0998-i2c-designware-Add-support-for-bus-clear-feature.patch
    
    All other patches automatically rebased.
    
    Build system: x86/64
    Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
    Run-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
    
    Signed-off-by: John Audia <therealgraysky at proton.me>
    Link: https://github.com/openwrt/openwrt/pull/16959
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 include/kernel-6.6                                     |  4 ++--
 ...-of-Add-devm_thermal_of_zone_register_with_pa.patch | 18 +++++++++---------
 ...port-for-all-the-downstream-rpi-sound-card-dr.patch |  2 +-
 ...2c-designware-Add-SMBUS-quick-command-support.patch |  2 +-
 ...2c-designware-Support-non-standard-bus-speeds.patch |  2 +-
 ...-designware-Add-support-for-bus-clear-feature.patch | 13 +++++++------
 ...net-stmmac-move-TX-timer-arm-after-DMA-enable.patch | 12 ++++++------
 .../hack-6.6/780-usb-net-MeigLink_modem_support.patch  |  4 ++--
 ...er-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch |  2 +-
 .../patches-6.6/901-arm-add-cmdline-override.patch     |  2 +-
 ...09-v6.10-arm64-dts-rockchip-Add-Radxa-ROCK-3C.patch |  2 +-
 ...v6.11-arm64-dts-rockchip-Add-Radxa-ZERO-3W-3E.patch |  2 +-
 ...14-v6.11-arm64-dts-rockchip-Add-Radxa-ROCK-3B.patch |  2 +-
 ...arm64-dts-rockchip-Add-support-for-NanoPi-R6S.patch |  2 +-
 ...arm64-dts-rockchip-Add-support-for-NanoPi-R6C.patch |  2 +-
 ....10-arm64-dts-rockchip-Add-ArmSom-Sige7-board.patch |  2 +-
 .../127-arm64-dts-rockchip-rk3566-Add-Nanopi-R3S.patch |  2 +-
 .../patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch    |  2 +-
 ...irmware-smccc-Export-revision-soc_id-function.patch |  2 +-
 19 files changed, 40 insertions(+), 39 deletions(-)

diff --git a/include/kernel-6.6 b/include/kernel-6.6
index 261a77428c..d870747f83 100644
--- a/include/kernel-6.6
+++ b/include/kernel-6.6
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.6 = .60
-LINUX_KERNEL_HASH-6.6.60 = 52f9e32d5082ab94253447fd66670d0c3bb765cfcb99b0bf61d1b8eae25952ef
+LINUX_VERSION-6.6 = .61
+LINUX_KERNEL_HASH-6.6.61 = 418fc24df9190f1c3ed9906dc3b7651c2a2eae5c1cb9ab4a6348e20faf047c0b
diff --git a/target/linux/airoha/patches-6.6/101-01-thermal-of-Add-devm_thermal_of_zone_register_with_pa.patch b/target/linux/airoha/patches-6.6/101-01-thermal-of-Add-devm_thermal_of_zone_register_with_pa.patch
index 889ec1123e..7836aef7dd 100644
--- a/target/linux/airoha/patches-6.6/101-01-thermal-of-Add-devm_thermal_of_zone_register_with_pa.patch
+++ b/target/linux/airoha/patches-6.6/101-01-thermal-of-Add-devm_thermal_of_zone_register_with_pa.patch
@@ -40,7 +40,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
 
 --- a/drivers/thermal/thermal_of.c
 +++ b/drivers/thermal/thermal_of.c
-@@ -249,7 +249,7 @@ static void thermal_of_parameters_init(s
+@@ -245,7 +245,7 @@ static void thermal_of_parameters_init(s
  {
  	int coef[2];
  	int ncoef = ARRAY_SIZE(coef);
@@ -49,7 +49,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  
  	tzp->no_hwmon = true;
  
-@@ -261,14 +261,11 @@ static void thermal_of_parameters_init(s
+@@ -257,14 +257,11 @@ static void thermal_of_parameters_init(s
  	 * thermal zone. Thus, we are considering only the first two
  	 * values as slope and offset.
  	 */
@@ -67,7 +67,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  }
  
  static struct device_node *thermal_of_zone_get_by_name(struct thermal_zone_device *tz)
-@@ -462,10 +459,15 @@ static void thermal_of_zone_unregister(s
+@@ -458,10 +455,15 @@ static void thermal_of_zone_unregister(s
   * zone properties and registers new thermal zone with those
   * properties.
   *
@@ -83,7 +83,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
   *
   * Return: a valid thermal zone structure pointer on success.
   * 	- EINVAL: if the device tree thermal description is malformed
-@@ -473,11 +475,11 @@ static void thermal_of_zone_unregister(s
+@@ -469,11 +471,11 @@ static void thermal_of_zone_unregister(s
   *	- Other negative errors are returned by the underlying called functions
   */
  static struct thermal_zone_device *thermal_of_zone_register(struct device_node *sensor, int id, void *data,
@@ -97,7 +97,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  	struct thermal_zone_device_ops *of_ops;
  	struct device_node *np;
  	int delay, pdelay;
-@@ -509,7 +511,7 @@ static struct thermal_zone_device *therm
+@@ -508,7 +510,7 @@ static struct thermal_zone_device *therm
  		goto out_kfree_trips;
  	}
  
@@ -106,7 +106,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  
  	of_ops->bind = thermal_of_bind;
  	of_ops->unbind = thermal_of_unbind;
-@@ -517,7 +519,7 @@ static struct thermal_zone_device *therm
+@@ -516,7 +518,7 @@ static struct thermal_zone_device *therm
  	mask = GENMASK_ULL((ntrips) - 1, 0);
  
  	tz = thermal_zone_device_register_with_trips(np->name, trips, ntrips,
@@ -115,7 +115,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  						     pdelay, delay);
  	if (IS_ERR(tz)) {
  		ret = PTR_ERR(tz);
-@@ -572,6 +574,7 @@ static int devm_thermal_of_zone_match(st
+@@ -571,6 +573,7 @@ static int devm_thermal_of_zone_match(st
  struct thermal_zone_device *devm_thermal_of_zone_register(struct device *dev, int sensor_id, void *data,
  							  const struct thermal_zone_device_ops *ops)
  {
@@ -123,7 +123,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  	struct thermal_zone_device **ptr, *tzd;
  
  	ptr = devres_alloc(devm_thermal_of_zone_release, sizeof(*ptr),
-@@ -579,7 +582,7 @@ struct thermal_zone_device *devm_thermal
+@@ -578,7 +581,7 @@ struct thermal_zone_device *devm_thermal
  	if (!ptr)
  		return ERR_PTR(-ENOMEM);
  
@@ -132,7 +132,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  	if (IS_ERR(tzd)) {
  		devres_free(ptr);
  		return tzd;
-@@ -593,6 +596,46 @@ struct thermal_zone_device *devm_thermal
+@@ -592,6 +595,46 @@ struct thermal_zone_device *devm_thermal
  EXPORT_SYMBOL_GPL(devm_thermal_of_zone_register);
  
  /**
diff --git a/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch b/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch
index 8685508ddf..395ec0797c 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch
@@ -17583,7 +17583,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	 * For devices with more than one control interface, we assume the
 --- a/sound/usb/quirks.c
 +++ b/sound/usb/quirks.c
-@@ -2195,6 +2195,8 @@ static const struct usb_audio_quirk_flag
+@@ -2197,6 +2197,8 @@ static const struct usb_audio_quirk_flag
  		   QUIRK_FLAG_ALIGN_TRANSFER),
  	DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */
  		   QUIRK_FLAG_ALIGN_TRANSFER),
diff --git a/target/linux/bcm27xx/patches-6.6/950-0535-i2c-designware-Add-SMBUS-quick-command-support.patch b/target/linux/bcm27xx/patches-6.6/950-0535-i2c-designware-Add-SMBUS-quick-command-support.patch
index ed57365598..e588003e6e 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0535-i2c-designware-Add-SMBUS-quick-command-support.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0535-i2c-designware-Add-SMBUS-quick-command-support.patch
@@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 
 --- a/drivers/i2c/busses/i2c-designware-core.h
 +++ b/drivers/i2c/busses/i2c-designware-core.h
-@@ -123,7 +123,9 @@
+@@ -124,7 +124,9 @@
  
  #define DW_IC_ERR_TX_ABRT			0x1
  
diff --git a/target/linux/bcm27xx/patches-6.6/950-0864-i2c-designware-Support-non-standard-bus-speeds.patch b/target/linux/bcm27xx/patches-6.6/950-0864-i2c-designware-Support-non-standard-bus-speeds.patch
index 0e1cd5bf2a..90a64e8f2b 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0864-i2c-designware-Support-non-standard-bus-speeds.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0864-i2c-designware-Support-non-standard-bus-speeds.patch
@@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  
 --- a/drivers/i2c/busses/i2c-designware-core.h
 +++ b/drivers/i2c/busses/i2c-designware-core.h
-@@ -292,6 +292,7 @@ struct dw_i2c_dev {
+@@ -293,6 +293,7 @@ struct dw_i2c_dev {
  	u16			fp_lcnt;
  	u16			hs_hcnt;
  	u16			hs_lcnt;
diff --git a/target/linux/bcm27xx/patches-6.6/950-0998-i2c-designware-Add-support-for-bus-clear-feature.patch b/target/linux/bcm27xx/patches-6.6/950-0998-i2c-designware-Add-support-for-bus-clear-feature.patch
index 5eb4bcc5d2..691484d46e 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0998-i2c-designware-Add-support-for-bus-clear-feature.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0998-i2c-designware-Add-support-for-bus-clear-feature.patch
@@ -33,7 +33,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  };
  
  static int dw_reg_read(void *context, unsigned int reg, unsigned int *val)
-@@ -607,8 +609,16 @@ int i2c_dw_wait_bus_not_busy(struct dw_i
+@@ -609,8 +611,16 @@ int i2c_dw_wait_bus_not_busy(struct dw_i
  int i2c_dw_handle_tx_abort(struct dw_i2c_dev *dev)
  {
  	unsigned long abort_source = dev->abort_source;
@@ -50,7 +50,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	if (abort_source & DW_IC_TX_ABRT_NOACK) {
  		for_each_set_bit(i, &abort_source, ARRAY_SIZE(abort_sources))
  			dev_dbg(dev->dev,
-@@ -623,6 +633,8 @@ int i2c_dw_handle_tx_abort(struct dw_i2c
+@@ -625,6 +635,8 @@ int i2c_dw_handle_tx_abort(struct dw_i2c
  		return -EAGAIN;
  	else if (abort_source & DW_IC_TX_ABRT_GCALL_READ)
  		return -EINVAL; /* wrong msgs[] data */
@@ -74,7 +74,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  #define DW_IC_COMP_TYPE				0xfc
  #define DW_IC_COMP_TYPE_VALUE			0x44570140 /* "DW" + 0x0140 */
  
-@@ -111,12 +114,14 @@
+@@ -111,6 +114,7 @@
  
  #define DW_IC_ENABLE_ENABLE			BIT(0)
  #define DW_IC_ENABLE_ABORT			BIT(1)
@@ -82,14 +82,15 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  
  #define DW_IC_STATUS_ACTIVITY			BIT(0)
  #define DW_IC_STATUS_TFE			BIT(2)
- #define DW_IC_STATUS_RFNE			BIT(3)
+@@ -118,6 +122,7 @@
  #define DW_IC_STATUS_MASTER_ACTIVITY		BIT(5)
  #define DW_IC_STATUS_SLAVE_ACTIVITY		BIT(6)
+ #define DW_IC_STATUS_MASTER_HOLD_TX_FIFO_EMPTY	BIT(7)
 +#define DW_IC_STATUS_SDA_STUCK_NOT_RECOVERED	BIT(11)
  
  #define DW_IC_SDA_HOLD_RX_SHIFT			16
  #define DW_IC_SDA_HOLD_RX_MASK			GENMASK(23, 16)
-@@ -164,6 +169,7 @@
+@@ -165,6 +170,7 @@
  #define ABRT_SLAVE_FLUSH_TXFIFO			13
  #define ABRT_SLAVE_ARBLOST			14
  #define ABRT_SLAVE_RD_INTX			15
@@ -97,7 +98,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  
  #define DW_IC_TX_ABRT_7B_ADDR_NOACK		BIT(ABRT_7B_ADDR_NOACK)
  #define DW_IC_TX_ABRT_10ADDR1_NOACK		BIT(ABRT_10ADDR1_NOACK)
-@@ -179,6 +185,7 @@
+@@ -180,6 +186,7 @@
  #define DW_IC_RX_ABRT_SLAVE_RD_INTX		BIT(ABRT_SLAVE_RD_INTX)
  #define DW_IC_RX_ABRT_SLAVE_ARBLOST		BIT(ABRT_SLAVE_ARBLOST)
  #define DW_IC_RX_ABRT_SLAVE_FLUSH_TXFIFO	BIT(ABRT_SLAVE_FLUSH_TXFIFO)
diff --git a/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch b/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch
index 66a9251438..bd61343e0e 100644
--- a/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch
+++ b/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch
@@ -42,7 +42,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  
  	u64_stats_update_begin(&txq_stats->napi_syncp);
  	u64_stats_add(&txq_stats->napi.tx_packets, tx_packets);
-@@ -5602,6 +5606,7 @@ static int stmmac_napi_poll_tx(struct na
+@@ -5603,6 +5607,7 @@ static int stmmac_napi_poll_tx(struct na
  		container_of(napi, struct stmmac_channel, tx_napi);
  	struct stmmac_priv *priv = ch->priv_data;
  	struct stmmac_txq_stats *txq_stats;
@@ -50,7 +50,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	u32 chan = ch->index;
  	int work_done;
  
-@@ -5610,7 +5615,7 @@ static int stmmac_napi_poll_tx(struct na
+@@ -5611,7 +5616,7 @@ static int stmmac_napi_poll_tx(struct na
  	u64_stats_inc(&txq_stats->napi.poll);
  	u64_stats_update_end(&txq_stats->napi_syncp);
  
@@ -59,7 +59,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	work_done = min(work_done, budget);
  
  	if (work_done < budget && napi_complete_done(napi, work_done)) {
-@@ -5621,6 +5626,10 @@ static int stmmac_napi_poll_tx(struct na
+@@ -5622,6 +5627,10 @@ static int stmmac_napi_poll_tx(struct na
  		spin_unlock_irqrestore(&ch->lock, flags);
  	}
  
@@ -70,7 +70,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	return work_done;
  }
  
-@@ -5629,6 +5638,7 @@ static int stmmac_napi_poll_rxtx(struct
+@@ -5630,6 +5639,7 @@ static int stmmac_napi_poll_rxtx(struct
  	struct stmmac_channel *ch =
  		container_of(napi, struct stmmac_channel, rxtx_napi);
  	struct stmmac_priv *priv = ch->priv_data;
@@ -78,7 +78,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	int rx_done, tx_done, rxtx_done;
  	struct stmmac_rxq_stats *rxq_stats;
  	struct stmmac_txq_stats *txq_stats;
-@@ -5644,7 +5654,7 @@ static int stmmac_napi_poll_rxtx(struct
+@@ -5645,7 +5655,7 @@ static int stmmac_napi_poll_rxtx(struct
  	u64_stats_inc(&txq_stats->napi.poll);
  	u64_stats_update_end(&txq_stats->napi_syncp);
  
@@ -87,7 +87,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	tx_done = min(tx_done, budget);
  
  	rx_done = stmmac_rx_zc(priv, budget, chan);
-@@ -5669,6 +5679,10 @@ static int stmmac_napi_poll_rxtx(struct
+@@ -5670,6 +5680,10 @@ static int stmmac_napi_poll_rxtx(struct
  		spin_unlock_irqrestore(&ch->lock, flags);
  	}
  
diff --git a/target/linux/generic/hack-6.6/780-usb-net-MeigLink_modem_support.patch b/target/linux/generic/hack-6.6/780-usb-net-MeigLink_modem_support.patch
index e80dfbeb0f..66c58dba64 100644
--- a/target/linux/generic/hack-6.6/780-usb-net-MeigLink_modem_support.patch
+++ b/target/linux/generic/hack-6.6/780-usb-net-MeigLink_modem_support.patch
@@ -43,7 +43,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
  
  #define QUECTEL_VENDOR_ID			0x2c7c
  /* These Quectel products use Quectel's vendor ID */
-@@ -1159,6 +1164,11 @@ static const struct usb_device_id option
+@@ -1160,6 +1165,11 @@ static const struct usb_device_id option
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
  	  .driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
@@ -55,7 +55,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
  	/* Quectel products using Qualcomm vendor ID */
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
-@@ -1200,6 +1210,11 @@ static const struct usb_device_id option
+@@ -1201,6 +1211,11 @@ static const struct usb_device_id option
  	  .driver_info = ZLP },
  	{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
  	  .driver_info = RSVD(4) },
diff --git a/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch b/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
index f27581d3e9..cfa3975c38 100644
--- a/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
+++ b/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
@@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/net/netfilter/nf_tables_api.c
 +++ b/net/netfilter/nf_tables_api.c
-@@ -8376,7 +8376,7 @@ static int nft_register_flowtable_net_ho
+@@ -8377,7 +8377,7 @@ static int nft_register_flowtable_net_ho
  		err = flowtable->data.type->setup(&flowtable->data,
  						  hook->ops.dev,
  						  FLOW_BLOCK_BIND);
diff --git a/target/linux/mediatek/patches-6.6/901-arm-add-cmdline-override.patch b/target/linux/mediatek/patches-6.6/901-arm-add-cmdline-override.patch
index 034826253d..4f4fb9f23e 100644
--- a/target/linux/mediatek/patches-6.6/901-arm-add-cmdline-override.patch
+++ b/target/linux/mediatek/patches-6.6/901-arm-add-cmdline-override.patch
@@ -37,7 +37,7 @@
  	 * CONFIG_CMDLINE is meant to be a default in case nothing else
 --- a/arch/arm64/Kconfig
 +++ b/arch/arm64/Kconfig
-@@ -2308,6 +2308,14 @@ config CMDLINE_FORCE
+@@ -2309,6 +2309,14 @@ config CMDLINE_FORCE
  
  endchoice
  
diff --git a/target/linux/rockchip/patches-6.6/009-v6.10-arm64-dts-rockchip-Add-Radxa-ROCK-3C.patch b/target/linux/rockchip/patches-6.6/009-v6.10-arm64-dts-rockchip-Add-Radxa-ROCK-3C.patch
index 9901d9fff0..164b65bdf5 100644
--- a/target/linux/rockchip/patches-6.6/009-v6.10-arm64-dts-rockchip-Add-Radxa-ROCK-3C.patch
+++ b/target/linux/rockchip/patches-6.6/009-v6.10-arm64-dts-rockchip-Add-Radxa-ROCK-3C.patch
@@ -30,7 +30,7 @@ Signed-off-by: Heiko Stuebner <heiko at sntech.de>
 
 --- a/arch/arm64/boot/dts/rockchip/Makefile
 +++ b/arch/arm64/boot/dts/rockchip/Makefile
-@@ -81,6 +81,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-qu
+@@ -82,6 +82,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-qu
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-b.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-radxa-cm3-io.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-roc-pc.dtb
diff --git a/target/linux/rockchip/patches-6.6/011-v6.11-arm64-dts-rockchip-Add-Radxa-ZERO-3W-3E.patch b/target/linux/rockchip/patches-6.6/011-v6.11-arm64-dts-rockchip-Add-Radxa-ZERO-3W-3E.patch
index 746078cf9e..19e6377ad1 100644
--- a/target/linux/rockchip/patches-6.6/011-v6.11-arm64-dts-rockchip-Add-Radxa-ZERO-3W-3E.patch
+++ b/target/linux/rockchip/patches-6.6/011-v6.11-arm64-dts-rockchip-Add-Radxa-ZERO-3W-3E.patch
@@ -32,7 +32,7 @@ Signed-off-by: Heiko Stuebner <heiko at sntech.de>
 
 --- a/arch/arm64/boot/dts/rockchip/Makefile
 +++ b/arch/arm64/boot/dts/rockchip/Makefile
-@@ -80,6 +80,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pi
+@@ -81,6 +81,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pi
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-a.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-b.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-radxa-cm3-io.dtb
diff --git a/target/linux/rockchip/patches-6.6/014-v6.11-arm64-dts-rockchip-Add-Radxa-ROCK-3B.patch b/target/linux/rockchip/patches-6.6/014-v6.11-arm64-dts-rockchip-Add-Radxa-ROCK-3B.patch
index e93a055c3e..4b2897f524 100644
--- a/target/linux/rockchip/patches-6.6/014-v6.11-arm64-dts-rockchip-Add-Radxa-ROCK-3B.patch
+++ b/target/linux/rockchip/patches-6.6/014-v6.11-arm64-dts-rockchip-Add-Radxa-ROCK-3B.patch
@@ -21,7 +21,7 @@ Signed-off-by: Heiko Stuebner <heiko at sntech.de>
 
 --- a/arch/arm64/boot/dts/rockchip/Makefile
 +++ b/arch/arm64/boot/dts/rockchip/Makefile
-@@ -100,6 +100,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-od
+@@ -101,6 +101,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-od
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-radxa-e25.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-roc-pc.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-rock-3a.dtb
diff --git a/target/linux/rockchip/patches-6.6/053-v6.9-arm64-dts-rockchip-Add-support-for-NanoPi-R6S.patch b/target/linux/rockchip/patches-6.6/053-v6.9-arm64-dts-rockchip-Add-support-for-NanoPi-R6S.patch
index d0243023fc..f31f38ac9d 100644
--- a/target/linux/rockchip/patches-6.6/053-v6.9-arm64-dts-rockchip-Add-support-for-NanoPi-R6S.patch
+++ b/target/linux/rockchip/patches-6.6/053-v6.9-arm64-dts-rockchip-Add-support-for-NanoPi-R6S.patch
@@ -17,7 +17,7 @@ Signed-off-by: Heiko Stuebner <heiko at sntech.de>
 
 --- a/arch/arm64/boot/dts/rockchip/Makefile
 +++ b/arch/arm64/boot/dts/rockchip/Makefile
-@@ -108,4 +108,5 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-na
+@@ -109,4 +109,5 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-na
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-indiedroid-nova.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-khadas-edge2.dtb
diff --git a/target/linux/rockchip/patches-6.6/054-v6.9-arm64-dts-rockchip-Add-support-for-NanoPi-R6C.patch b/target/linux/rockchip/patches-6.6/054-v6.9-arm64-dts-rockchip-Add-support-for-NanoPi-R6C.patch
index 7e2b083cf8..b63c01338f 100644
--- a/target/linux/rockchip/patches-6.6/054-v6.9-arm64-dts-rockchip-Add-support-for-NanoPi-R6C.patch
+++ b/target/linux/rockchip/patches-6.6/054-v6.9-arm64-dts-rockchip-Add-support-for-NanoPi-R6C.patch
@@ -17,7 +17,7 @@ Signed-off-by: Heiko Stuebner <heiko at sntech.de>
 
 --- a/arch/arm64/boot/dts/rockchip/Makefile
 +++ b/arch/arm64/boot/dts/rockchip/Makefile
-@@ -109,4 +109,5 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-ro
+@@ -110,4 +110,5 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-ro
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-indiedroid-nova.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-khadas-edge2.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6s.dtb
diff --git a/target/linux/rockchip/patches-6.6/056-01-v6.10-arm64-dts-rockchip-Add-ArmSom-Sige7-board.patch b/target/linux/rockchip/patches-6.6/056-01-v6.10-arm64-dts-rockchip-Add-ArmSom-Sige7-board.patch
index bc1845b0d3..c60b979109 100644
--- a/target/linux/rockchip/patches-6.6/056-01-v6.10-arm64-dts-rockchip-Add-ArmSom-Sige7-board.patch
+++ b/target/linux/rockchip/patches-6.6/056-01-v6.10-arm64-dts-rockchip-Add-ArmSom-Sige7-board.patch
@@ -44,7 +44,7 @@ Signed-off-by: Heiko Stuebner <heiko at sntech.de>
 
 --- a/arch/arm64/boot/dts/rockchip/Makefile
 +++ b/arch/arm64/boot/dts/rockchip/Makefile
-@@ -101,6 +101,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-ra
+@@ -102,6 +102,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-ra
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-roc-pc.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-rock-3a.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-rock-3b.dtb
diff --git a/target/linux/rockchip/patches-6.6/127-arm64-dts-rockchip-rk3566-Add-Nanopi-R3S.patch b/target/linux/rockchip/patches-6.6/127-arm64-dts-rockchip-rk3566-Add-Nanopi-R3S.patch
index ff2ad5bb9a..899c85e0d2 100644
--- a/target/linux/rockchip/patches-6.6/127-arm64-dts-rockchip-rk3566-Add-Nanopi-R3S.patch
+++ b/target/linux/rockchip/patches-6.6/127-arm64-dts-rockchip-rk3566-Add-Nanopi-R3S.patch
@@ -557,7 +557,7 @@
 +};
 --- a/arch/arm64/boot/dts/rockchip/Makefile
 +++ b/arch/arm64/boot/dts/rockchip/Makefile
-@@ -75,6 +75,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-an
+@@ -76,6 +76,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-an
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg353v.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg353vs.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg503.dtb
diff --git a/target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch b/target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch
index 25849e7c26..3191b1d9e3 100644
--- a/target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch
+++ b/target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch
@@ -19,7 +19,7 @@ Signed-off-by: Matteo Croce <mcroce at microsoft.com>
  
  	if (priv->dma_cap.host_dma_width <= 32)
  		gfp |= GFP_DMA32;
-@@ -4685,7 +4685,7 @@ static inline void stmmac_rx_refill(stru
+@@ -4686,7 +4686,7 @@ static inline void stmmac_rx_refill(stru
  	struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue];
  	int dirty = stmmac_rx_dirty(priv, queue);
  	unsigned int entry = rx_q->dirty_rx;
diff --git a/target/linux/sunxi/patches-6.6/017-v6.10-firmware-smccc-Export-revision-soc_id-function.patch b/target/linux/sunxi/patches-6.6/017-v6.10-firmware-smccc-Export-revision-soc_id-function.patch
index 538484dd82..aacd0ba906 100644
--- a/target/linux/sunxi/patches-6.6/017-v6.10-firmware-smccc-Export-revision-soc_id-function.patch
+++ b/target/linux/sunxi/patches-6.6/017-v6.10-firmware-smccc-Export-revision-soc_id-function.patch
@@ -22,7 +22,7 @@ Signed-off-by: Viresh Kumar <viresh.kumar at linaro.org>
 
 --- a/drivers/firmware/smccc/smccc.c
 +++ b/drivers/firmware/smccc/smccc.c
-@@ -69,6 +69,7 @@ s32 arm_smccc_get_soc_id_revision(void)
+@@ -65,6 +65,7 @@ s32 arm_smccc_get_soc_id_revision(void)
  {
  	return smccc_soc_id_revision;
  }



From lede-commits at lists.infradead.org  Sat Nov 16 05:22:42 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 16 Nov 2024 08:22:42 -0500
Subject: [openwrt/openwrt]  build: apk: Remove /run/apk/db.lock
In-Reply-To: <173176336230.927100.13433625411062069003@git-01.infra.openwrt.org>
References: <173176336230.927100.13433625411062069003@git-01.infra.openwrt.org>
Message-ID: <mailman.1246.1731763370.1089.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/71c14cbee5aa5f1924191252c07a69b7e6aabd29

commit 71c14cbee5aa5f1924191252c07a69b7e6aabd29
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Thu Nov 14 22:57:02 2024 +0100

    build: apk: Remove /run/apk/db.lock
    
    Do not add the file /run/apk/db.lock to the root file system. The /run
    folder should be on a tmpfs.
    
    At runtime we should make /run point to a tmpfs. At build time we should
    just remove the folder.
    
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    Link: https://github.com/openwrt/openwrt/pull/16961
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 package/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/Makefile b/package/Makefile
index 2c7cd58879..3c6621b81c 100644
--- a/package/Makefile
+++ b/package/Makefile
@@ -101,6 +101,7 @@ ifneq ($(CONFIG_USE_APK),)
 	$(call apk,$(TARGET_DIR)) add --no-cache --initdb --no-scripts --arch $(ARCH_PACKAGES) \
 		--repositories-file /dev/null --repository file://$(PACKAGE_DIR_ALL)/packages.adb \
 		$$(cat $(TMP_DIR)/apk_install_list)
+	rm -rf $(TARGET_DIR)/run
 else
 	$(file >$(TMP_DIR)/opkg_install_list,\
 	  $(call opkg_package_files,\



From lede-commits at lists.infradead.org  Sat Nov 16 05:22:43 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 16 Nov 2024 08:22:43 -0500
Subject: [openwrt/openwrt]  base-files: Create /run and /run/lock folder
In-Reply-To: <173176336230.927100.13433625411062069003@git-01.infra.openwrt.org>
References: <173176336230.927100.13433625411062069003@git-01.infra.openwrt.org>
Message-ID: <mailman.1247.1731763373.1089.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/3b710375dd97af1e0416904c4174d11c51e3f09c

commit 3b710375dd97af1e0416904c4174d11c51e3f09c
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Thu Nov 14 21:47:47 2024 +0100

    base-files: Create /run and /run/lock folder
    
    Create the folder /run and /run/lock using symlinks. Other Linux
    distributions also have these folders and some applications might already
    depend on them. Just create symlinks pointing to the older folder.
    
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    Link: https://github.com/openwrt/openwrt/pull/16961
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 package/base-files/files/etc/init.d/boot | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/package/base-files/files/etc/init.d/boot b/package/base-files/files/etc/init.d/boot
index c7d1d4af3a..332a5c96f3 100755
--- a/package/base-files/files/etc/init.d/boot
+++ b/package/base-files/files/etc/init.d/boot
@@ -24,6 +24,8 @@ boot() {
 	chmod 1777 /var/lock
 	mkdir -p /var/log
 	mkdir -p /var/run
+	ln -s /var/run /run
+	ln -s /var/lock /run/lock
 	mkdir -p /var/state
 	mkdir -p /var/tmp
 	mkdir -p /tmp/.uci



From lede-commits at lists.infradead.org  Sat Nov 16 05:23:22 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 16 Nov 2024 08:23:22 -0500
Subject: [openwrt/openwrt]  base-files: Mount debugfs and pstore with
 nosuid,nodev,noexec
In-Reply-To: <173176340216.928777.9611147475602628402@git-01.infra.openwrt.org>
References: <173176340216.928777.9611147475602628402@git-01.infra.openwrt.org>
Message-ID: <mailman.1248.1731763408.1089.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/b88d51898d126d2f918cb476d4158e9fcd62492c

commit b88d51898d126d2f918cb476d4158e9fcd62492c
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Thu Nov 14 21:46:36 2024 +0100

    base-files: Mount debugfs and pstore with nosuid,nodev,noexec
    
    These permissions are not needed. Systemd also mounts these file systems
    without these permissions on other Linux distributions.
    
    Dropping these permissions should make the system more secure.
    
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    Link: https://github.com/openwrt/openwrt/pull/16960
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 package/base-files/files/etc/init.d/boot | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package/base-files/files/etc/init.d/boot b/package/base-files/files/etc/init.d/boot
index 332a5c96f3..a26d4886b2 100755
--- a/package/base-files/files/etc/init.d/boot
+++ b/package/base-files/files/etc/init.d/boot
@@ -35,9 +35,9 @@ boot() {
 	mkdir -p /tmp/resolv.conf.d
 	touch /tmp/resolv.conf.d/resolv.conf.auto
 	ln -sf /tmp/resolv.conf.d/resolv.conf.auto /tmp/resolv.conf
-	grep -q debugfs /proc/filesystems && /bin/mount -o noatime -t debugfs debugfs /sys/kernel/debug
+	grep -q debugfs /proc/filesystems && /bin/mount -o nosuid,nodev,noexec,noatime -t debugfs debugfs /sys/kernel/debug
 	grep -q bpf /proc/filesystems && /bin/mount -o nosuid,nodev,noexec,noatime,mode=0700 -t bpf bpffs /sys/fs/bpf
-	grep -q pstore /proc/filesystems && /bin/mount -o noatime -t pstore pstore /sys/fs/pstore
+	grep -q pstore /proc/filesystems && /bin/mount -o nosuid,nodev,noexec,noatime -t pstore pstore /sys/fs/pstore
 	[ "$FAILSAFE" = "true" ] && touch /tmp/.failsafe
 
 	touch /tmp/.config_pending



From lede-commits at lists.infradead.org  Sat Nov 16 05:26:56 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 16 Nov 2024 08:26:56 -0500
Subject: [openwrt/openwrt]  ppp: remove more unnecessary kernel checks
In-Reply-To: <173176361650.931339.17884939504769707766@git-01.infra.openwrt.org>
References: <173176361650.931339.17884939504769707766@git-01.infra.openwrt.org>
Message-ID: <mailman.1249.1731763621.1089.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/3dbe730080e70e96990a5e89cbe2035adcca8d4b

commit 3dbe730080e70e96990a5e89cbe2035adcca8d4b
Author: Shiji Yang <yangshiji66 at qq.com>
AuthorDate: Sun Oct 13 21:15:59 2024 +0800

    ppp: remove more unnecessary kernel checks
    
    The ppp package can support all features since Linux 4.7.0 kernel.
    Therefore, most kernel version checks can pass unconditionally on
    OpenWrt v18.06 and later version. This patch can reduce the size
    of ppp package by approximately 2.5 KB.
    
    Signed-off-by: Shiji Yang <yangshiji66 at qq.com>
    Link: https://github.com/openwrt/openwrt/pull/16695
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 .../ppp/patches/400-simplify_kernel_checks.patch   | 100 +++++++++++----------
 1 file changed, 53 insertions(+), 47 deletions(-)

diff --git a/package/network/services/ppp/patches/400-simplify_kernel_checks.patch b/package/network/services/ppp/patches/400-simplify_kernel_checks.patch
index 137937c244..311bb8752f 100644
--- a/package/network/services/ppp/patches/400-simplify_kernel_checks.patch
+++ b/package/network/services/ppp/patches/400-simplify_kernel_checks.patch
@@ -10,7 +10,14 @@ Signed-off-by: Jo-Philipp Wich <jo at mein.io>
 
 --- a/pppd/sys-linux.c
 +++ b/pppd/sys-linux.c
-@@ -231,7 +231,7 @@ static int driver_is_old       = 0;
+@@ -224,14 +224,10 @@ static fd_set in_fds;		/* set of fds tha
+ static int max_in_fd;		/* highest fd set in in_fds */
+ 
+ static int has_proxy_arp       = 0;
+-static int driver_version      = 0;
+-static int driver_modification = 0;
+-static int driver_patch        = 0;
+-static int driver_is_old       = 0;
  static int restore_term        = 0;	/* 1 => we've munged the terminal */
  static struct termios inittermios;	/* Initial TTY termios */
  
@@ -19,17 +26,18 @@ Signed-off-by: Jo-Philipp Wich <jo at mein.io>
  
  static char loop_name[20];
  static unsigned char inbuf[512]; /* buffer for chars read from loopback */
-@@ -250,8 +250,8 @@ static int	looped;			/* 1 if using loop
+@@ -249,9 +245,8 @@ static int	dynaddr_set;		/* 1 if ip_dyna
+ static int	looped;			/* 1 if using loop */
  static int	link_mtu;		/* mtu for the link (not bundle) */
  
- static struct utsname utsname;	/* for the kernel version */
+-static struct utsname utsname;	/* for the kernel version */
 -static int kernel_version;
  #define KVERSION(j,n,p)	((j)*1000000 + (n)*1000 + (p))
-+static const int kernel_version = KVERSION(2,6,37);
++static const int kernel_version = KVERSION(4,9,0);
  
  #define MAX_IFS		100
  
-@@ -1970,11 +1970,12 @@ int ccp_fatal_error (int unit)
+@@ -1970,11 +1965,12 @@ int ccp_fatal_error (int unit)
   *
   * path_to_procfs - find the path to the proc file system mount point
   */
@@ -44,7 +52,7 @@ Signed-off-by: Jo-Philipp Wich <jo at mein.io>
      struct mntent *mntent;
      FILE *fp;
  
-@@ -1996,6 +1997,7 @@ static char *path_to_procfs(const char *
+@@ -1996,6 +1992,7 @@ static char *path_to_procfs(const char *
  	    fclose (fp);
  	}
      }
@@ -52,35 +60,24 @@ Signed-off-by: Jo-Philipp Wich <jo at mein.io>
  
      strlcpy(proc_path + proc_path_len, tail,
  	    sizeof(proc_path) - proc_path_len);
-@@ -2895,15 +2897,19 @@ int ppp_check_kernel_support(void)
-     int    my_version, my_modification, my_patch;
-     int osmaj, osmin, ospatch;
+@@ -2889,6 +2886,8 @@ ppp_registered(void)
  
+ int ppp_check_kernel_support(void)
+ {
++    return 1; /* OpenWrt support ppp device "/dev/ppp" by default */
 +#if 0
-     /* get the kernel version now, since we are called before sys_init */
-     uname(&utsname);
-     osmaj = osmin = ospatch = 0;
-     sscanf(utsname.release, "%d.%d.%d", &osmaj, &osmin, &ospatch);
-     kernel_version = KVERSION(osmaj, osmin, ospatch);
-+#endif
- 
-     fd = open("/dev/ppp", O_RDWR);
-     if (fd >= 0) {
-+#if 0
- 	new_style_driver = 1;
+     int s, ok, fd;
+     struct ifreq ifr;
+     int    size;
+@@ -3016,6 +3015,7 @@ int ppp_check_kernel_support(void)
+     }
+     close(s);
+     return ok;
 +#endif
+ }
  
- 	/* XXX should get from driver */
- 	driver_version = 2;
-@@ -2963,6 +2969,7 @@ int ppp_check_kernel_support(void)
- 
-     if (ok && ((ifr.ifr_hwaddr.sa_family & ~0xFF) != ARPHRD_PPP))
- 	ok = 0;
-+	return ok;
- 
- /*
-  *  This is the PPP device. Validate the version of the driver at this
-@@ -3577,6 +3584,7 @@ get_pty(int *master_fdp, int *slave_fdp,
+ #ifndef HAVE_LOGWTMP
+@@ -3577,6 +3577,7 @@ get_pty(int *master_fdp, int *slave_fdp,
      }
  #endif /* TIOCGPTN */
  
@@ -88,7 +85,7 @@ Signed-off-by: Jo-Philipp Wich <jo at mein.io>
      if (sfd < 0) {
  	/* the old way - scan through the pty name space */
  	for (i = 0; i < 64; ++i) {
-@@ -3601,6 +3609,7 @@ get_pty(int *master_fdp, int *slave_fdp,
+@@ -3601,6 +3602,7 @@ get_pty(int *master_fdp, int *slave_fdp,
  	    }
  	}
      }
@@ -96,23 +93,35 @@ Signed-off-by: Jo-Philipp Wich <jo at mein.io>
  
      if (sfd < 0)
  	return 0;
+@@ -3716,6 +3718,7 @@ get_host_seed(void)
+ int
+ sys_check_options(void)
+ {
++#if 0
+     if (demand && driver_is_old) {
+ 	ppp_option_error("demand dialling is not supported by kernel driver "
+ 		     "version %d.%d.%d", driver_version, driver_modification,
+@@ -3726,6 +3729,7 @@ sys_check_options(void)
+ 	warn("Warning: multilink is not supported by the kernel driver");
+ 	multilink = 0;
+     }
++#endif
+     return 1;
+ }
+ 
 --- a/pppd/plugins/pppoatm/pppoatm.c
 +++ b/pppd/plugins/pppoatm/pppoatm.c
-@@ -179,14 +179,6 @@ static void disconnect_pppoatm(void)
- 
+@@ -180,10 +180,6 @@ static void disconnect_pppoatm(void)
  void plugin_init(void)
  {
--#ifdef linux
+ #ifdef linux
 -	extern int new_style_driver;	/* From sys-linux.c */
 -	if (!ppp_check_kernel_support() && !new_style_driver)
 -		fatal("Kernel doesn't support ppp_generic - "
 -		    "needed for PPPoATM");
--#else
--	fatal("No PPPoATM support on this OS");
--#endif
- 	ppp_add_options(pppoa_options);
- }
- 
+ #else
+ 	fatal("No PPPoATM support on this OS");
+ #endif
 --- a/pppd/plugins/pppoe/plugin.c
 +++ b/pppd/plugins/pppoe/plugin.c
 @@ -57,9 +57,6 @@ static char const RCSID[] =
@@ -138,17 +147,14 @@ Signed-off-by: Jo-Philipp Wich <jo at mein.io>
      info("PPPoE plugin from pppd %s", PPPD_VERSION);
 --- a/pppd/plugins/pppol2tp/pppol2tp.c
 +++ b/pppd/plugins/pppol2tp/pppol2tp.c
-@@ -500,12 +500,7 @@ static void pppol2tp_cleanup(void)
- 
+@@ -501,10 +501,6 @@ static void pppol2tp_cleanup(void)
  void plugin_init(void)
  {
--#if defined(__linux__)
+ #if defined(__linux__)
 -	extern int new_style_driver;	/* From sys-linux.c */
 -	if (!ppp_check_kernel_support() && !new_style_driver)
 -		fatal("Kernel doesn't support ppp_generic - "
 -		    "needed for PPPoL2TP");
--#else
-+#if !defined(__linux__)
+ #else
  	fatal("No PPPoL2TP support on this OS");
  #endif
- 	ppp_add_options(pppol2tp_options);



From lede-commits at lists.infradead.org  Sat Nov 16 05:34:04 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 16 Nov 2024 08:34:04 -0500
Subject: [openwrt/openwrt]  x86: switch config to a tickless kernel
In-Reply-To: <173176404399.951793.4817529086093301740@git-01.infra.openwrt.org>
References: <173176404399.951793.4817529086093301740@git-01.infra.openwrt.org>
Message-ID: <mailman.1250.1731764047.1089.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/31111680f6fc5f17201b02b8ce656b955be56d7a

commit 31111680f6fc5f17201b02b8ce656b955be56d7a
Author: John Audia <therealgraysky at proton.me>
AuthorDate: Mon Sep 2 19:53:47 2024 -0400

    x86: switch config to a tickless kernel
    
    This commit fixes and closes #16313.
    
    Switch the x86 kernel's timer to tickless operation which is
    more power efficient since it is not woken up by periodic timer
    interrupts when idle.  Also add several other options for CPU
    idle governors particularly the upstream default for tickless
    kernels, CONFIG_CPU_IDLE_GOV_MENU. Without this commit, my AMD
    Ryzen 7 5800U can only achieve a minimum core frequency of 1,384
    MHz which is over 3x higher than the processor's minimum
    frequency of 400 MHz which is accessible with this modification.
    In addition to the lower clock rate, I have seen a concomitant
    reduction in both idle temps and at-the-wall power consumption.
    
    Summary:
    * Idle CPU freqs dropped from 1,384 MHz to 400 Mhz.
    * Idle power consumption dropped from 7 W avg to 5 W.
    * Idle temps have dropped from 50C on avg to 43C.
    
    There are other well known reasons to switch to a tickless
    timer including: reduced interrupt overhead, better use of CPU
    resources, and reduced latency to name a few.
    
    Build system: x86/64
    Build-tested: x86/64/AMD Cezanne
    Run-tested: x86/64/AMD Cezanne
    
    Signed-off-by: John Audia <therealgraysky at proton.me>
    Link: https://github.com/openwrt/openwrt/pull/16317
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 target/linux/x86/config-6.6 | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/target/linux/x86/config-6.6 b/target/linux/x86/config-6.6
index b8d38e60fa..3d1c005138 100644
--- a/target/linux/x86/config-6.6
+++ b/target/linux/x86/config-6.6
@@ -48,6 +48,7 @@ CONFIG_COMPAT_32=y
 CONFIG_COMPAT_32BIT_TIME=y
 # CONFIG_COMPAT_VDSO is not set
 CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_CONTEXT_TRACKING_USER_FORCE=y
 # CONFIG_CPU5_WDT is not set
 CONFIG_CPU_FREQ=y
 CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
@@ -61,7 +62,10 @@ CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
 # CONFIG_CPU_FREQ_GOV_USERSPACE is not set
 CONFIG_CPU_FREQ_STAT=y
 CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_HALTPOLL=y
 CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_CPU_IDLE_GOV_TEO=y
 CONFIG_CPU_MITIGATIONS=y
 CONFIG_CPU_SUP_AMD=y
 CONFIG_CPU_SUP_CENTAUR=y
@@ -180,7 +184,6 @@ CONFIG_HW_RANDOM=y
 CONFIG_HW_RANDOM_GEODE=y
 CONFIG_HW_RANDOM_VIA=y
 # CONFIG_HYPERVISOR_GUEST is not set
-CONFIG_HZ_PERIODIC=y
 CONFIG_I8253_LOCK=y
 CONFIG_IA32_FEAT_CTL=y
 # CONFIG_IB700_WDT is not set
@@ -275,6 +278,9 @@ CONFIG_NET_XGRESS=y
 CONFIG_NLS=y
 # CONFIG_NMI_CHECK_CPU is not set
 # CONFIG_NOHIGHMEM is not set
+CONFIG_NO_HZ=y
+CONFIG_NO_HZ_COMMON=y
+CONFIG_NO_HZ_FULL=y
 CONFIG_NR_CPUS=1
 CONFIG_NR_CPUS_DEFAULT=1
 CONFIG_NR_CPUS_RANGE_BEGIN=1
@@ -330,6 +336,8 @@ CONFIG_PTP_1588_CLOCK_OPTIONAL=y
 # CONFIG_PUNIT_ATOM_DEBUG is not set
 CONFIG_RANDSTRUCT_NONE=y
 CONFIG_RATIONAL=y
+CONFIG_RCU_LAZY=y
+CONFIG_RCU_NOCB_CPU_DEFAULT_ALL=y
 CONFIG_RD_BZIP2=y
 CONFIG_RD_GZIP=y
 CONFIG_RETHUNK=y



From lede-commits at lists.infradead.org  Sat Nov 16 08:20:27 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 16 Nov 2024 11:20:27 -0500
Subject: [openwrt/openwrt]  libreadlne: create symlinks for .so
In-Reply-To: <173177402740.1336849.10944142594418040901@git-01.infra.openwrt.org>
References: <173177402740.1336849.10944142594418040901@git-01.infra.openwrt.org>
Message-ID: <mailman.1265.1731774033.1089.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/0000ba6ab8062f965d8fed240b76d36f9a493b55

commit 0000ba6ab8062f965d8fed240b76d36f9a493b55
Author: Jeronimo Pellegrini <j_p at aleph0.info>
AuthorDate: Sat Sep 21 15:46:36 2024 -0300

    libreadlne: create symlinks for .so
    
    Currently, libreadline only installs
    
    ```
     /usr/lib/libhistory.so.8 -> libhistory.so.8.2
     /usr/lib/libhistory.so.8.2
     /usr/lib/libreadline.so.8 -> libreadline.so.8.2
     /usr/lib/libreadline.so.8.2
    ```
    
    But there is no `libreadline.so` or `libhistory.so` available.
    
    So this happens:
    
    ```
    root at OpenWRT:~# cat a.c
    int main() {
    }
    root at OpenWRT:~# gcc a.c -lreadline
    /usr/bin/ld: cannot find -lreadline: No such file or directory
    collect2: error: ld returned 1 exit status
    ```
    
    Unless, of course, one uses `-l:libreadline.so.8`... But that
    doesn't help with binaries that try to dynamically open
    
    `libreadline.so`. I have one of those here (the STklos Scheme
    compiler -- I didn't make a PR for it because it's far from
    being ready, but one issue is that it does use dlopen to use
    readline...)
    
    With the symlink, it works:
    
    ```
    root at OpenWRT:~# ln -s /usr/lib/libreadline.so.8 /usr/lib/libreadline.so
    root at OpenWRT:~#
    root at OpenWRT:~# gcc a.c -lreadline
    root at OpenWRT:~#
    ```
    
    Another example: when trying to package rlwrap, the build failed
    complaining it could not find readline (using `-lreadline`).
    It would then be necessary to change rlwrap's `configure.ac`
    (and also in all packages that use readline), but it seems
    simpler to add the symlinks...
    
    This PR changes the Makefile so it will include the links.
    
    Signed-off-by: Jeronimo Pellegrini <j_p at aleph0.info>
    Link: https://github.com/openwrt/openwrt/pull/16445
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 package/libs/readline/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/libs/readline/Makefile b/package/libs/readline/Makefile
index 11b9e0172f..03e56f36ed 100644
--- a/package/libs/readline/Makefile
+++ b/package/libs/readline/Makefile
@@ -69,7 +69,7 @@ endef
 
 define Package/libreadline/install
 	$(INSTALL_DIR) $(1)/usr/lib
-	$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{history,readline}.so.* $(1)/usr/lib/
+	$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{history,readline}.so* $(1)/usr/lib/
 endef
 
 $(eval $(call HostBuild))



From lede-commits at lists.infradead.org  Sat Nov 16 08:24:51 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 16 Nov 2024 11:24:51 -0500
Subject: [openwrt/openwrt]  apk: remove HOST_LDFLAGS hack
In-Reply-To: <173177429153.1354124.10568131608826165032@git-01.infra.openwrt.org>
References: <173177429153.1354124.10568131608826165032@git-01.infra.openwrt.org>
Message-ID: <mailman.1266.1731774295.1089.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/8f6972df36a520738083dc48eac69b778fbc814e

commit 8f6972df36a520738083dc48eac69b778fbc814e
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Wed Nov 13 12:33:12 2024 -0800

    apk: remove HOST_LDFLAGS hack
    
    No longer needed as upstream respects -Ddefault_library now.
    
    Refreshed patches.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16945
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 package/system/apk/Makefile                                            | 3 ---
 .../system/apk/patches/0001-openwrt-move-layer-db-to-temp-folder.patch | 2 +-
 2 files changed, 1 insertion(+), 4 deletions(-)

diff --git a/package/system/apk/Makefile b/package/system/apk/Makefile
index f760ce1ec4..4dbd0f854f 100644
--- a/package/system/apk/Makefile
+++ b/package/system/apk/Makefile
@@ -68,9 +68,6 @@ MESON_ARGS += \
 	$(MESON_COMMON_ARGS) \
 	-Dcrypto_backend=$(BUILD_VARIANT)
 
-HOST_LDFLAGS += \
-	-Wl,-rpath $(STAGING_DIR_HOST)/lib
-
 define Package/apk/default/install
 	$(INSTALL_DIR) $(1)/lib/apk/db
 
diff --git a/package/system/apk/patches/0001-openwrt-move-layer-db-to-temp-folder.patch b/package/system/apk/patches/0001-openwrt-move-layer-db-to-temp-folder.patch
index 8500512212..2b54f47ab7 100644
--- a/package/system/apk/patches/0001-openwrt-move-layer-db-to-temp-folder.patch
+++ b/package/system/apk/patches/0001-openwrt-move-layer-db-to-temp-folder.patch
@@ -10,7 +10,7 @@ Signed-off-by: Paul Spooren <mail at aparcar.org>
 
 --- a/src/database.c
 +++ b/src/database.c
-@@ -1627,7 +1627,7 @@ const char *apk_db_layer_name(int layer)
+@@ -1631,7 +1631,7 @@ const char *apk_db_layer_name(int layer)
  {
  	switch (layer) {
  	case APK_DB_LAYER_ROOT: return "lib/apk/db";



From lede-commits at lists.infradead.org  Sat Nov 16 08:26:36 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 16 Nov 2024 11:26:36 -0500
Subject: [openwrt/openwrt]  base-files: move apk distfeeds into directory
In-Reply-To: <173177439634.1360758.12370905402324750144@git-01.infra.openwrt.org>
References: <173177439634.1360758.12370905402324750144@git-01.infra.openwrt.org>
Message-ID: <mailman.1267.1731774400.1089.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/e031dab93ec3a066880ff25e0f42d6bef1e3001a

commit e031dab93ec3a066880ff25e0f42d6bef1e3001a
Author: Jonas Gorski <jonas.gorski at gmail.com>
AuthorDate: Wed Nov 13 14:25:26 2024 +0100

    base-files: move apk distfeeds into directory
    
    Analog to how we handle distfeeds with opkg, have the base feeds defined
    in a file in repositories.d instead of the base /etc/apk/repositories.
    
    Signed-off-by: Jonas Gorski <jonas.gorski at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16940
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 package/base-files/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 7ac4ea557f..2725bcb90b 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -250,9 +250,9 @@ endif
 		rm -f $(1)/etc/banner.failsafe,)
 
 ifneq ($(CONFIG_USE_APK),)
-	mkdir -p $(1)/etc/apk/
-	$(call FeedSourcesAppendAPK,$(1)/etc/apk/repositories)
-	$(VERSION_SED_SCRIPT) $(1)/etc/apk/repositories
+	mkdir -p $(1)/etc/apk/repositories.d
+	$(call FeedSourcesAppendAPK,$(1)/etc/apk/repositories.d/distfeeds.list)
+	$(VERSION_SED_SCRIPT) $(1)/etc/apk/repositories.d/distfeeds.list
 
 	rm -f $(1)/etc/uci-defaults/13_fix-group-user
 	rm -f $(1)/sbin/pkg_check



From lede-commits at lists.infradead.org  Sat Nov 16 08:26:37 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 16 Nov 2024 11:26:37 -0500
Subject: [openwrt/openwrt]  apk: add a customfeeds.list configuration file
In-Reply-To: <173177439634.1360758.12370905402324750144@git-01.infra.openwrt.org>
References: <173177439634.1360758.12370905402324750144@git-01.infra.openwrt.org>
Message-ID: <mailman.1268.1731774400.1089.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/a6e98a810d4d831caf9f18536701c433b9e57fc8

commit a6e98a810d4d831caf9f18536701c433b9e57fc8
Author: Jonas Gorski <jonas.gorski at gmail.com>
AuthorDate: Wed Nov 13 14:27:16 2024 +0100

    apk: add a customfeeds.list configuration file
    
    Analog to how we handle custom feeds in opkg, add a customfeeds.list for
    custom package feeds and mark it as a configuration file.
    
    Signed-off-by: Jonas Gorski <jonas.gorski at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16940
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 package/system/apk/Makefile               | 12 +++++++++++-
 package/system/apk/files/customfeeds.list |  3 +++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/package/system/apk/Makefile b/package/system/apk/Makefile
index 4dbd0f854f..fbb9ef85ee 100644
--- a/package/system/apk/Makefile
+++ b/package/system/apk/Makefile
@@ -14,7 +14,7 @@ PKG_VERSION=3.0.0_pre$(subst -,,$(PKG_SOURCE_DATE))
 PKG_MAINTAINER:=Paul Spooren <mail at aparcar.org>
 PKG_LICENSE:=GPL-2.0-only
 PKG_LICENSE_FILES:=LICENSE
-PKG_INSTALL:=1
+PKG_INSTALL:=2
 
 HOST_BUILD_PREFIX:=$(STAGING_DIR_HOST)
 HOST_BUILD_DEPENDS:=lua/host
@@ -68,6 +68,13 @@ MESON_ARGS += \
 	$(MESON_COMMON_ARGS) \
 	-Dcrypto_backend=$(BUILD_VARIANT)
 
+define Package/apk/conffiles
+/etc/apk/repositories.d/customfeeds.list
+endef
+
+Package/apk-mbedtls/conffiles = $(Package/apk/conffiles)
+Package/apk-openssl/conffiles = $(Package/apk/conffiles)
+
 define Package/apk/default/install
 	$(INSTALL_DIR) $(1)/lib/apk/db
 
@@ -76,6 +83,9 @@ define Package/apk/default/install
 
 	$(INSTALL_DIR) $(1)/usr/lib
 	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libapk.so.* $(1)/usr/lib/
+
+	$(INSTALL_DIR) $(1)/etc/apk/repositories.d
+	$(INSTALL_DATA) ./files/customfeeds.list $(1)/etc/apk/repositories.d/customfeeds.list
 endef
 
 Package/apk-mbedtls/install = $(Package/apk/default/install)
diff --git a/package/system/apk/files/customfeeds.list b/package/system/apk/files/customfeeds.list
new file mode 100644
index 0000000000..c75016bfc8
--- /dev/null
+++ b/package/system/apk/files/customfeeds.list
@@ -0,0 +1,3 @@
+# add your custom package feeds here
+#
+# http://www.example.com/path/to/files/packages.adb



From lede-commits at lists.infradead.org  Sat Nov 16 09:04:17 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 16 Nov 2024 12:04:17 -0500
Subject: [openwrt/openwrt]  realtek: align kernel config with upstream
In-Reply-To: <173177665788.1484955.10194447738181942248@git-01.infra.openwrt.org>
References: <173177665788.1484955.10194447738181942248@git-01.infra.openwrt.org>
Message-ID: <mailman.1271.1731776662.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/65964c42f8744ed8ca09448a155b99e3a99be283

commit 65964c42f8744ed8ca09448a155b99e3a99be283
Author: Markus Stockhausen <markus.stockhausen at gmx.de>
AuthorDate: Fri Nov 15 01:32:47 2024 -0500

    realtek: align kernel config with upstream
    
    Since the start of the Realtek target OpenWrt works with RTL83XX as the
    target architecture. Upstream is using MACH_REALTEK_RTL instead. To
    simplify further development align that.
    
    Signed-off-by: Markus Stockhausen <markus.stockhausen at gmx.de>
    Link: https://github.com/openwrt/openwrt/pull/16963
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 .../realtek/files-6.6/arch/mips/rtl838x/Platform   |  4 +-
 .../realtek/files-6.6/drivers/clk/realtek/Kconfig  |  4 +-
 .../files-6.6/drivers/net/dsa/rtl83xx/Kconfig      |  2 +-
 .../300-mips-add-rtl838x-platform.patch            | 51 ++++++++++++----------
 .../patches-6.6/301-gpio-add-rtl8231-driver.patch  |  2 +-
 ...update-dependencies-for-gpio-realtek-otto.patch | 26 -----------
 ...spi-update-dependency-for-spi-realtek-rtl.patch | 25 -----------
 ...hip-update-dependency-for-irq-realtek-rtl.patch | 25 -----------
 ...dt-update-dependency-for-realtek-otto-wdt.patch | 32 --------------
 ...ethernet-add-support-for-rtl838x-ethernet.patch |  2 +-
 .../realtek/patches-6.6/720-add-rtl-phy.patch      |  2 +-
 target/linux/realtek/rtl838x/config-6.6            |  2 +-
 target/linux/realtek/rtl839x/config-6.6            |  2 +-
 target/linux/realtek/rtl930x/config-6.6            |  2 +-
 target/linux/realtek/rtl931x/config-6.6            |  2 +-
 15 files changed, 39 insertions(+), 144 deletions(-)

diff --git a/target/linux/realtek/files-6.6/arch/mips/rtl838x/Platform b/target/linux/realtek/files-6.6/arch/mips/rtl838x/Platform
index 98f18cac1b..e824dee7b7 100644
--- a/target/linux/realtek/files-6.6/arch/mips/rtl838x/Platform
+++ b/target/linux/realtek/files-6.6/arch/mips/rtl838x/Platform
@@ -1,5 +1,5 @@
 #
 # Realtek RTL838x SoCs
 #
-cflags-$(CONFIG_RTL83XX)   += -I$(srctree)/arch/mips/include/asm/mach-rtl838x/
-load-$(CONFIG_RTL83XX)     += 0xffffffff80100000
+cflags-$(CONFIG_MACH_REALTEK_RTL)   += -I$(srctree)/arch/mips/include/asm/mach-rtl838x/
+load-$(CONFIG_MACH_REALTEK_RTL)     += 0xffffffff80100000
diff --git a/target/linux/realtek/files-6.6/drivers/clk/realtek/Kconfig b/target/linux/realtek/files-6.6/drivers/clk/realtek/Kconfig
index 4cf3cd9633..62b704077a 100644
--- a/target/linux/realtek/files-6.6/drivers/clk/realtek/Kconfig
+++ b/target/linux/realtek/files-6.6/drivers/clk/realtek/Kconfig
@@ -2,13 +2,13 @@
 
 menuconfig COMMON_CLK_REALTEK
 	bool "Support for Realtek's clock controllers"
-	depends on RTL83XX
+	depends on MACH_REALTEK_RTL
 
 if COMMON_CLK_REALTEK
 
 config COMMON_CLK_RTL83XX
 	bool "Clock driver for Realtek RTL83XX"
-	depends on RTL83XX
+	depends on MACH_REALTEK_RTL
 	select SRAM
 	help
 	  This driver adds support for the Realtek RTL83xx series basic clocks.
diff --git a/target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/Kconfig b/target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/Kconfig
index 3124ee8d20..0af4abcfb9 100644
--- a/target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/Kconfig
+++ b/target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/Kconfig
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
 config NET_DSA_RTL83XX
 	tristate "Realtek RTL838x/RTL839x switch support"
-	depends on RTL83XX
+	depends on MACH_REALTEK_RTL
 	select NET_DSA_TAG_TRAILER
 	help
 	  This driver adds support for Realtek RTL83xx series switching.
diff --git a/target/linux/realtek/patches-6.6/300-mips-add-rtl838x-platform.patch b/target/linux/realtek/patches-6.6/300-mips-add-rtl838x-platform.patch
index 7adbbbc517..bb89a7864f 100644
--- a/target/linux/realtek/patches-6.6/300-mips-add-rtl838x-platform.patch
+++ b/target/linux/realtek/patches-6.6/300-mips-add-rtl838x-platform.patch
@@ -9,64 +9,67 @@ configurations for the SoCs, which are introduced in addition.
 
 Submitted-by: Birger Koblitz <git at birger-koblitz.de>
 ---
- arch/mips/Kbuild.platforms                    |  1 +
- arch/mips/Kconfig                             | 57 ++++++++++++++
- 2 files changed, 58 insertions(+)
-
 --- a/arch/mips/Kbuild.platforms
 +++ b/arch/mips/Kbuild.platforms
 @@ -22,6 +22,7 @@ platform-$(CONFIG_MACH_NINTENDO64)	+= n6
  platform-$(CONFIG_PIC32MZDA)		+= pic32/
  platform-$(CONFIG_RALINK)		+= ralink/
  platform-$(CONFIG_MIKROTIK_RB532)	+= rb532/
-+platform-$(CONFIG_RTL83XX)		+= rtl838x/
++platform-$(CONFIG_MACH_REALTEK_RTL)	+= rtl838x/
  platform-$(CONFIG_SGI_IP22)		+= sgi-ip22/
  platform-$(CONFIG_SGI_IP27)		+= sgi-ip27/
  platform-$(CONFIG_SGI_IP28)		+= sgi-ip22/
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -968,8 +968,58 @@ config CAVIUM_OCTEON_SOC
- 		Hikari
- 	  Say Y here for most Octeon reference boards.
+@@ -620,21 +620,23 @@ config RALINK
  
-+config RTL83XX
-+	bool "Realtek based platforms"
-+	select DMA_NONCOHERENT
-+	select IRQ_MIPS_CPU
+ config MACH_REALTEK_RTL
+ 	bool "Realtek RTL838x/RTL839x based machines"
+-	select MIPS_GENERIC
+ 	select DMA_NONCOHERENT
+ 	select IRQ_MIPS_CPU
+-	select CSRC_R4K
+-	select CEVT_R4K
+ 	select SYS_HAS_CPU_MIPS32_R1
+ 	select SYS_HAS_CPU_MIPS32_R2
+ 	select SYS_SUPPORTS_BIG_ENDIAN
+ 	select SYS_SUPPORTS_32BIT_KERNEL
+ 	select SYS_SUPPORTS_MIPS16
+-	select SYS_SUPPORTS_MULTITHREADING
+-	select SYS_SUPPORTS_VPE_LOADER
+ 	select BOOT_RAW
+ 	select PINCTRL
+ 	select USE_OF
 +	select NO_EXCEPT_FILL
-+	select SYS_HAS_CPU_MIPS32_R1
-+	select SYS_HAS_CPU_MIPS32_R2
-+	select SYS_SUPPORTS_BIG_ENDIAN
 +	select SYS_SUPPORTS_HIGHMEM
-+	select SYS_SUPPORTS_32BIT_KERNEL
-+	select SYS_SUPPORTS_MIPS16
 +	select SYS_HAS_EARLY_PRINTK
 +	select SYS_HAS_EARLY_PRINTK_8250
 +	select USE_GENERIC_EARLY_PRINTK_8250
-+	select BOOT_RAW
-+	select PINCTRL
 +	select ARCH_HAS_RESET_CONTROLLER
 +	select RESET_CONTROLLER
-+	select USE_OF
-+
+ 
+ config SGI_IP22
+ 	bool "SGI IP22 (Indy/Indigo2)"
+@@ -970,6 +972,36 @@ config CAVIUM_OCTEON_SOC
+ 
  endchoice
  
 +config RTL838X
 +	bool "Realtek RTL838X based platforms"
-+	depends on RTL83XX
++	depends on MACH_REALTEK_RTL
 +	select CPU_SUPPORTS_CPUFREQ
 +	select MIPS_EXTERNAL_TIMER
 +
 +config RTL839X
 +	bool "Realtek RTL839X based platforms"
-+	depends on RTL83XX
++	depends on MACH_REALTEK_RTL
 +	select CPU_SUPPORTS_CPUFREQ
 +	select MIPS_EXTERNAL_TIMER
 +	select SYS_SUPPORTS_MULTITHREADING
 +
 +config RTL930X
 +	bool "Realtek RTL930X based platforms"
-+	depends on RTL83XX
++	depends on MACH_REALTEK_RTL
 +	select MIPS_CPU_SCACHE
 +	select MIPS_EXTERNAL_TIMER
 +	select SYS_SUPPORTS_MULTITHREADING
diff --git a/target/linux/realtek/patches-6.6/301-gpio-add-rtl8231-driver.patch b/target/linux/realtek/patches-6.6/301-gpio-add-rtl8231-driver.patch
index a177876420..f64e2cf94e 100644
--- a/target/linux/realtek/patches-6.6/301-gpio-add-rtl8231-driver.patch
+++ b/target/linux/realtek/patches-6.6/301-gpio-add-rtl8231-driver.patch
@@ -31,7 +31,7 @@ Submitted-by: John Crispin <john at phrozen.org>
  
 +config GPIO_RTL8231
 +	tristate "RTL8231 GPIO"
-+	depends on RTL83XX
++	depends on MACH_REALTEK_RTL
 +	help
 +	  Say yes here to support Realtek RTL8231 GPIO expansion chips.
 +
diff --git a/target/linux/realtek/patches-6.6/303-gpio-update-dependencies-for-gpio-realtek-otto.patch b/target/linux/realtek/patches-6.6/303-gpio-update-dependencies-for-gpio-realtek-otto.patch
deleted file mode 100644
index 2b466340e6..0000000000
--- a/target/linux/realtek/patches-6.6/303-gpio-update-dependencies-for-gpio-realtek-otto.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 9bac1c20b8f39f2e0e342b087add5093b94feaed Mon Sep 17 00:00:00 2001
-From: INAGAKI Hiroshi <musashino.open at gmail.com>
-Date: Wed, 5 May 2021 22:05:39 +0900
-Subject: realtek: backport gpio-realtek-otto driver from 5.13 to 5.10
-
-This patch backports "gpio-realtek-otto" driver to Kernel 5.10.
-"MACH_REALTEK_RTL" is used as a platform name in upstream, but "RTL838X"
-is used in OpenWrt, so update the dependency by the additional patch.
-
-Submitted-by: INAGAKI Hiroshi <musashino.open at gmail.com>
----
- drivers/gpio/Kconfig                          |   4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
---- a/drivers/gpio/Kconfig
-+++ b/drivers/gpio/Kconfig
-@@ -527,8 +527,8 @@ config GPIO_RDA
- 
- config GPIO_REALTEK_OTTO
- 	tristate "Realtek Otto GPIO support"
--	depends on MACH_REALTEK_RTL
--	default MACH_REALTEK_RTL
-+	depends on RTL83XX
-+	default RTL838X
- 	select GPIO_GENERIC
- 	select GPIOLIB_IRQCHIP
- 	help
diff --git a/target/linux/realtek/patches-6.6/304-spi-update-dependency-for-spi-realtek-rtl.patch b/target/linux/realtek/patches-6.6/304-spi-update-dependency-for-spi-realtek-rtl.patch
deleted file mode 100644
index 01530257b8..0000000000
--- a/target/linux/realtek/patches-6.6/304-spi-update-dependency-for-spi-realtek-rtl.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 0b000cbfe0aa0323bffa855ef8449c0687a4c071 Mon Sep 17 00:00:00 2001
-From: INAGAKI Hiroshi <musashino.open at gmail.com>
-Date: Thu, 6 May 2021 19:30:58 +0900
-Subject: realtek: backport spi-realtek-rtl driver from 5.12 to 5.10
-
-This patch backports "spi-realtek-rtl" driver to Kernel 5.10 from 5.12.
-"MACH_REALTEK_RTL" is used as a platform name in upstream, but "RTL838X"
-is used in OpenWrt, so update the dependency by the additional patch.
-
-Submitted-by: INAGAKI Hiroshi <musashino.open at gmail.com>
----
- drivers/spi/Makefile                          |  2 +-
- 1 files changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/spi/Makefile
-+++ b/drivers/spi/Makefile
-@@ -114,7 +114,7 @@ obj-$(CONFIG_SPI_QUP)			+= spi-qup.o
- obj-$(CONFIG_SPI_ROCKCHIP)		+= spi-rockchip.o
- obj-$(CONFIG_SPI_ROCKCHIP_SFC)		+= spi-rockchip-sfc.o
- obj-$(CONFIG_SPI_RB4XX)			+= spi-rb4xx.o
--obj-$(CONFIG_MACH_REALTEK_RTL)		+= spi-realtek-rtl.o
-+obj-$(CONFIG_RTL83XX)			+= spi-realtek-rtl.o
- obj-$(CONFIG_SPI_RPCIF)			+= spi-rpc-if.o
- obj-$(CONFIG_SPI_RSPI)			+= spi-rspi.o
- obj-$(CONFIG_SPI_RZV2M_CSI)		+= spi-rzv2m-csi.o
diff --git a/target/linux/realtek/patches-6.6/305-irqchip-update-dependency-for-irq-realtek-rtl.patch b/target/linux/realtek/patches-6.6/305-irqchip-update-dependency-for-irq-realtek-rtl.patch
deleted file mode 100644
index 0ecc33376e..0000000000
--- a/target/linux/realtek/patches-6.6/305-irqchip-update-dependency-for-irq-realtek-rtl.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 2cd00b51470a30198b048a5fca48a04db77e29cc Mon Sep 17 00:00:00 2001
-From: INAGAKI Hiroshi <musashino.open at gmail.com>
-Date: Fri, 21 May 2021 23:16:37 +0900
-Subject: [PATCH] realtek: backport irq-realtek-rtl driver from 5.12 to 5.10
-
-This patch backports "irq-realtek-rtl" driver to Kernel 5.10 from 5.12.
-"MACH_REALTEK_RTL" is used as a platform name in upstream, but "RTL838X"
-is used in OpenWrt, so update the dependency by the additional patch.
-
-Submitted-by: INAGAKI Hiroshi <musashino.open at gmail.com>
----
- drivers/irqchip/Makefile                      | 2 +-
- 1 files changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/irqchip/Makefile
-+++ b/drivers/irqchip/Makefile
-@@ -114,7 +114,7 @@ obj-$(CONFIG_LOONGSON_PCH_MSI)		+= irq-l
- obj-$(CONFIG_LOONGSON_PCH_LPC)		+= irq-loongson-pch-lpc.o
- obj-$(CONFIG_MST_IRQ)			+= irq-mst-intc.o
- obj-$(CONFIG_SL28CPLD_INTC)		+= irq-sl28cpld.o
--obj-$(CONFIG_MACH_REALTEK_RTL)		+= irq-realtek-rtl.o
-+obj-$(CONFIG_RTL83XX)			+= irq-realtek-rtl.o
- obj-$(CONFIG_WPCM450_AIC)		+= irq-wpcm450-aic.o
- obj-$(CONFIG_IRQ_IDT3243X)		+= irq-idt3243x.o
- obj-$(CONFIG_APPLE_AIC)			+= irq-apple-aic.o
diff --git a/target/linux/realtek/patches-6.6/307-wdt-update-dependency-for-realtek-otto-wdt.patch b/target/linux/realtek/patches-6.6/307-wdt-update-dependency-for-realtek-otto-wdt.patch
deleted file mode 100644
index c9dab65b72..0000000000
--- a/target/linux/realtek/patches-6.6/307-wdt-update-dependency-for-realtek-otto-wdt.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From b8fc5eecdc5d33cf261986436597b5482ab856da Mon Sep 17 00:00:00 2001
-From: Sander Vanheule <sander at svanheule.net>
-Date: Sun, 14 Nov 2021 19:45:32 +0100
-Subject: [PATCH] realtek: Backport Realtek Otto WDT driver
-
-Add patch submitted upstream to linux-watchdog and replace the MIPS
-architecture symbols. Requires one extra patch for the DIV_ROUND_*
-macros, which have moved to a different header since 5.10.
-
-Submitted-by: Sander Vanheule <sander at svanheule.net>
-Tested-by: Stijn Segers <foss at volatilesystems.org>
-Tested-by: Paul Fertser <fercerpav at gmail.com>
-Tested-by: Stijn Tintel <stijn at linux-ipv6.be>
----
- drivers/watchdog/Kconfig                      | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/drivers/watchdog/Kconfig
-+++ b/drivers/watchdog/Kconfig
-@@ -977,10 +977,10 @@ config RTD119X_WATCHDOG
- 
- config REALTEK_OTTO_WDT
- 	tristate "Realtek Otto MIPS watchdog support"
--	depends on MACH_REALTEK_RTL || COMPILE_TEST
-+	depends on RTL83XX
- 	depends on COMMON_CLK
- 	select WATCHDOG_CORE
--	default MACH_REALTEK_RTL
-+	default RTL83XX
- 	help
- 	  Say Y here to include support for the watchdog timer on Realtek
- 	  RTL838x, RTL839x, RTL930x SoCs. This watchdog has pretimeout
diff --git a/target/linux/realtek/patches-6.6/716-net-ethernet-add-support-for-rtl838x-ethernet.patch b/target/linux/realtek/patches-6.6/716-net-ethernet-add-support-for-rtl838x-ethernet.patch
index 9d79ea565d..e0c10bca63 100644
--- a/target/linux/realtek/patches-6.6/716-net-ethernet-add-support-for-rtl838x-ethernet.patch
+++ b/target/linux/realtek/patches-6.6/716-net-ethernet-add-support-for-rtl838x-ethernet.patch
@@ -29,7 +29,7 @@ Submitted-by: John Crispin <john at phrozen.org>
 +
 +config NET_RTL838X
 +	tristate "Realtek rtl838x Ethernet MAC support"
-+	depends on RTL83XX
++	depends on MACH_REALTEK_RTL
 +	help
 +	  Say Y here if you want to use the Realtek rtl838x Gbps Ethernet MAC.
 +
diff --git a/target/linux/realtek/patches-6.6/720-add-rtl-phy.patch b/target/linux/realtek/patches-6.6/720-add-rtl-phy.patch
index 78a57f0a3e..43d4a7d4fc 100644
--- a/target/linux/realtek/patches-6.6/720-add-rtl-phy.patch
+++ b/target/linux/realtek/patches-6.6/720-add-rtl-phy.patch
@@ -20,7 +20,7 @@ Submitted-by: Birger Koblitz <mail at birger-koblitz.de>
  
 +config REALTEK_SOC_PHY
 +	tristate "Realtek SoC PHYs"
-+	depends on RTL83XX
++	depends on MACH_REALTEK_RTL
 +	help
 +	  Supports the PHYs found in combination with Realtek Switch SoCs
 +
diff --git a/target/linux/realtek/rtl838x/config-6.6 b/target/linux/realtek/rtl838x/config-6.6
index ad2c1b43cc..44c1d7e064 100644
--- a/target/linux/realtek/rtl838x/config-6.6
+++ b/target/linux/realtek/rtl838x/config-6.6
@@ -116,6 +116,7 @@ CONFIG_JFFS2_ZLIB=y
 CONFIG_LEDS_GPIO=y
 CONFIG_LIBFDT=y
 CONFIG_LOCK_DEBUGGING_SUPPORT=y
+CONFIG_MACH_REALTEK_RTL=y
 CONFIG_MARVELL_PHY=y
 CONFIG_MDIO_BUS=y
 CONFIG_MDIO_DEVICE=y
@@ -192,7 +193,6 @@ CONFIG_REGMAP_MMIO=y
 CONFIG_RESET_CONTROLLER=y
 CONFIG_RTL838X=y
 # CONFIG_RTL839X is not set
-CONFIG_RTL83XX=y
 # CONFIG_RTL930X is not set
 CONFIG_SERIAL_MCTRL_GPIO=y
 CONFIG_SERIAL_OF_PLATFORM=y
diff --git a/target/linux/realtek/rtl839x/config-6.6 b/target/linux/realtek/rtl839x/config-6.6
index a357eb3966..630027bf81 100644
--- a/target/linux/realtek/rtl839x/config-6.6
+++ b/target/linux/realtek/rtl839x/config-6.6
@@ -115,6 +115,7 @@ CONFIG_JFFS2_ZLIB=y
 CONFIG_LEDS_GPIO=y
 CONFIG_LIBFDT=y
 CONFIG_LOCK_DEBUGGING_SUPPORT=y
+CONFIG_MACH_REALTEK_RTL=y
 CONFIG_MARVELL_PHY=y
 CONFIG_MDIO_BUS=y
 CONFIG_MDIO_DEVICE=y
@@ -204,7 +205,6 @@ CONFIG_RFS_ACCEL=y
 CONFIG_RPS=y
 # CONFIG_RTL838X is not set
 CONFIG_RTL839X=y
-CONFIG_RTL83XX=y
 # CONFIG_RTL930X is not set
 CONFIG_SERIAL_MCTRL_GPIO=y
 CONFIG_SERIAL_OF_PLATFORM=y
diff --git a/target/linux/realtek/rtl930x/config-6.6 b/target/linux/realtek/rtl930x/config-6.6
index af5f2ca7a3..5a29bdc3c1 100644
--- a/target/linux/realtek/rtl930x/config-6.6
+++ b/target/linux/realtek/rtl930x/config-6.6
@@ -97,6 +97,7 @@ CONFIG_JFFS2_ZLIB=y
 CONFIG_LEDS_GPIO=y
 CONFIG_LIBFDT=y
 CONFIG_LOCK_DEBUGGING_SUPPORT=y
+CONFIG_MACH_REALTEK_RTL=y
 CONFIG_MARVELL_PHY=y
 CONFIG_MDIO_BUS=y
 CONFIG_MDIO_DEVICE=y
@@ -172,7 +173,6 @@ CONFIG_REGMAP_MMIO=y
 CONFIG_RESET_CONTROLLER=y
 # CONFIG_RTL838X is not set
 # CONFIG_RTL839X is not set
-CONFIG_RTL83XX=y
 CONFIG_RTL930X=y
 # CONFIG_RTL931X is not set
 CONFIG_SERIAL_MCTRL_GPIO=y
diff --git a/target/linux/realtek/rtl931x/config-6.6 b/target/linux/realtek/rtl931x/config-6.6
index 736f472029..df235defe8 100644
--- a/target/linux/realtek/rtl931x/config-6.6
+++ b/target/linux/realtek/rtl931x/config-6.6
@@ -106,6 +106,7 @@ CONFIG_KMAP_LOCAL=y
 CONFIG_LEDS_GPIO=y
 CONFIG_LIBFDT=y
 CONFIG_LOCK_DEBUGGING_SUPPORT=y
+CONFIG_MACH_REALTEK_RTL=y
 CONFIG_MARVELL_PHY=y
 CONFIG_MDIO_BUS=y
 CONFIG_MDIO_DEVICE=y
@@ -195,7 +196,6 @@ CONFIG_RFS_ACCEL=y
 CONFIG_RPS=y
 # CONFIG_RTL838X is not set
 # CONFIG_RTL839X is not set
-CONFIG_RTL83XX=y
 CONFIG_RTL930X=y
 CONFIG_RTL931X=y
 CONFIG_SENSORS_GPIO_FAN=y



From lede-commits at lists.infradead.org  Sat Nov 16 10:58:03 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 16 Nov 2024 13:58:03 -0500
Subject: [openwrt/openwrt]  elfutils: Add mirrors.kernel.org as mirrror
In-Reply-To: <173178348256.1756669.4098920181427111464@git-01.infra.openwrt.org>
References: <173178348256.1756669.4098920181427111464@git-01.infra.openwrt.org>
Message-ID: <mailman.1300.1731783486.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/63caa2b1685ef5d2b4259784085f64cb9e5574a8

commit 63caa2b1685ef5d2b4259784085f64cb9e5574a8
Author: Ryan Keane <the.ra2.ifv at gmail.com>
AuthorDate: Wed Nov 13 11:46:38 2024 -0800

    elfutils: Add mirrors.kernel.org as mirrror
    
    Add mirrors.kernel.org as mirror, listed on sourceware mirror sites
    page.
    
    Link: https://sourceware.org/mirrors.html
    Signed-off-by: Ryan Keane <the.ra2.ifv at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16886
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/libs/elfutils/Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/package/libs/elfutils/Makefile b/package/libs/elfutils/Makefile
index b8bb50b564..7b31331e0b 100644
--- a/package/libs/elfutils/Makefile
+++ b/package/libs/elfutils/Makefile
@@ -11,7 +11,8 @@ PKG_VERSION:=0.192
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=https://sourceware.org/$(PKG_NAME)/ftp/$(PKG_VERSION)
+PKG_SOURCE_URL:=https://sourceware.org/$(PKG_NAME)/ftp/$(PKG_VERSION) \
+                https://mirrors.kernel.org/sourceware/$(PKG_NAME)/$(PKG_VERSION)
 PKG_HASH:=616099beae24aba11f9b63d86ca6cc8d566d968b802391334c91df54eab416b4
 
 PKG_MAINTAINER:=Luiz Angelo Daros de Luca <luizluca at gmail.com>



From lede-commits at lists.infradead.org  Sat Nov 16 10:58:02 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 16 Nov 2024 13:58:02 -0500
Subject: [openwrt/openwrt]  elfutils: Update to 0.192
In-Reply-To: <173178348256.1756669.4098920181427111464@git-01.infra.openwrt.org>
References: <173178348256.1756669.4098920181427111464@git-01.infra.openwrt.org>
Message-ID: <mailman.1301.1731783486.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/f5132df69db50a99e556e6fbd165002aac0e3e38

commit f5132df69db50a99e556e6fbd165002aac0e3e38
Author: Ryan Keane <the.ra2.ifv at gmail.com>
AuthorDate: Thu Nov 7 21:50:58 2024 -0800

    elfutils: Update to 0.192
    
    Add a patch still under review to fix some errors.
    
    Refresh patch:
    - 003-libintl-compatibility.patch
    - 005-build_only_libs.patch
    - 006-Fix-build-on-aarch64-musl.patch
    
    Add patch:
    - 102-fix-potential-deref-of-null-error.patch
    
    Release notes are in the link below.
    
    Link: https://inbox.sourceware.org/elfutils-devel/CAJDtP-T3+gXqHWp3T0mejWWbPr0_1tHetEXwfB67-o+zz7ShiA at mail.gmail.com/T/#u
    Signed-off-by: Ryan Keane <the.ra2.ifv at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16886
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/libs/elfutils/Makefile                     |  4 +-
 .../patches/003-libintl-compatibility.patch        |  2 +-
 .../elfutils/patches/005-build_only_libs.patch     |  2 +-
 .../patches/006-Fix-build-on-aarch64-musl.patch    |  4 +-
 .../102-fix-potential-deref-of-null-error.patch    | 55 ++++++++++++++++++++++
 5 files changed, 61 insertions(+), 6 deletions(-)

diff --git a/package/libs/elfutils/Makefile b/package/libs/elfutils/Makefile
index ac5841c604..b8bb50b564 100644
--- a/package/libs/elfutils/Makefile
+++ b/package/libs/elfutils/Makefile
@@ -7,12 +7,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=elfutils
-PKG_VERSION:=0.191
+PKG_VERSION:=0.192
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://sourceware.org/$(PKG_NAME)/ftp/$(PKG_VERSION)
-PKG_HASH:=df76db71366d1d708365fc7a6c60ca48398f14367eb2b8954efc8897147ad871
+PKG_HASH:=616099beae24aba11f9b63d86ca6cc8d566d968b802391334c91df54eab416b4
 
 PKG_MAINTAINER:=Luiz Angelo Daros de Luca <luizluca at gmail.com>
 PKG_LICENSE:=GPL-3.0-or-later
diff --git a/package/libs/elfutils/patches/003-libintl-compatibility.patch b/package/libs/elfutils/patches/003-libintl-compatibility.patch
index 1271796af5..eda9f2204a 100644
--- a/package/libs/elfutils/patches/003-libintl-compatibility.patch
+++ b/package/libs/elfutils/patches/003-libintl-compatibility.patch
@@ -11,7 +11,7 @@
  Requires.private: zlib @LIBZSTD@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -717,6 +717,9 @@ dnl AM_GNU_GETTEXT_REQUIRE_VERSION suppo
+@@ -728,6 +728,9 @@ dnl AM_GNU_GETTEXT_REQUIRE_VERSION suppo
  AM_GNU_GETTEXT_VERSION([0.19.6])
  AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.6])
  
diff --git a/package/libs/elfutils/patches/005-build_only_libs.patch b/package/libs/elfutils/patches/005-build_only_libs.patch
index 598b734874..177ac659e6 100644
--- a/package/libs/elfutils/patches/005-build_only_libs.patch
+++ b/package/libs/elfutils/patches/005-build_only_libs.patch
@@ -8,4 +8,4 @@
 +	  libasm
  
  EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING SECURITY \
- 	     COPYING COPYING-GPLV2 COPYING-LGPLV3
+ 	     COPYING COPYING-GPLV2 COPYING-LGPLV3 CONDUCT
diff --git a/package/libs/elfutils/patches/006-Fix-build-on-aarch64-musl.patch b/package/libs/elfutils/patches/006-Fix-build-on-aarch64-musl.patch
index d8066c5ca7..a7786ed2c0 100644
--- a/package/libs/elfutils/patches/006-Fix-build-on-aarch64-musl.patch
+++ b/package/libs/elfutils/patches/006-Fix-build-on-aarch64-musl.patch
@@ -32,8 +32,8 @@ Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
 +# include <sys/uio.h>
  # include <sys/user.h>
  # include <sys/ptrace.h>
- /* Deal with old glibc defining user_pt_regs instead of user_regs_struct.  */
-@@ -82,7 +82,7 @@ aarch64_set_initial_registers_tid (pid_t
+ # include <asm/ptrace.h>
+@@ -94,7 +94,7 @@ aarch64_set_initial_registers_tid (pid_t
  
    Dwarf_Word dwarf_fregs[32];
    for (int r = 0; r < 32; r++)
diff --git a/package/libs/elfutils/patches/102-fix-potential-deref-of-null-error.patch b/package/libs/elfutils/patches/102-fix-potential-deref-of-null-error.patch
new file mode 100644
index 0000000000..6710e4ef9c
--- /dev/null
+++ b/package/libs/elfutils/patches/102-fix-potential-deref-of-null-error.patch
@@ -0,0 +1,55 @@
+strip.c: Pointer `arhdr` created at strip.c:2741 and then dereferenced without NULL-check.
+The same situation for the `arhdr` pointer at the objdump.c:313 and
+the `h` pointer at the readelf.c:13545.
+
+Triggers found by static analyzer Svace.
+
+Signed-off-by: Maks Mishin <maks.mishinFZ at gmail.com>
+---
+ src/objdump.c | 5 +++++
+ src/readelf.c | 5 +++++
+ src/strip.c   | 5 +++++
+ 3 files changed, 15 insertions(+)
+
+--- a/src/objdump.c
++++ b/src/objdump.c
+@@ -311,6 +311,11 @@ handle_ar (int fd, Elf *elf, const char
+     {
+       /* The the header for this element.  */
+       Elf_Arhdr *arhdr = elf_getarhdr (subelf);
++      if (arhdr == NULL)
++	{
++	  printf ("cannot get arhdr: %s\n", elf_errmsg (-1));
++	  exit (1);
++	}
+ 
+       /* Skip over the index entries.  */
+       if (strcmp (arhdr->ar_name, "/") != 0
+--- a/src/readelf.c
++++ b/src/readelf.c
+@@ -13543,6 +13543,11 @@ dump_archive_index (Elf *elf, const char
+ 			  as_off, fname, elf_errmsg (-1));
+ 
+ 	  const Elf_Arhdr *h = elf_getarhdr (subelf);
++	  if (h == NULL)
++	{
++	  printf ("cannot get arhdr: %s\n", elf_errmsg (-1));
++	  exit (1);
++	}
+ 
+ 	  printf (_("Archive member '%s' contains:\n"), h->ar_name);
+ 
+--- a/src/strip.c
++++ b/src/strip.c
+@@ -2739,6 +2739,11 @@ handle_ar (int fd, Elf *elf, const char
+     {
+       /* The the header for this element.  */
+       Elf_Arhdr *arhdr = elf_getarhdr (subelf);
++	  if (arhdr == NULL)
++	{
++	  printf ("cannot get arhdr: %s\n", elf_errmsg (-1));
++	  exit (1);
++	}
+ 
+       if (elf_kind (subelf) == ELF_K_ELF)
+ 	result |= handle_elf (fd, subelf, new_prefix, arhdr->ar_name, 0, NULL);



From lede-commits at lists.infradead.org  Sat Nov 16 10:58:04 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 16 Nov 2024 13:58:04 -0500
Subject: [openwrt/openwrt]  elfutils: Backport some patches to fix errors
In-Reply-To: <173178348256.1756669.4098920181427111464@git-01.infra.openwrt.org>
References: <173178348256.1756669.4098920181427111464@git-01.infra.openwrt.org>
Message-ID: <mailman.1302.1731783487.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/afffcd09e5f15be53f327a80ee87d391312eb805

commit afffcd09e5f15be53f327a80ee87d391312eb805
Author: Ryan Keane <the.ra2.ifv at gmail.com>
AuthorDate: Thu Nov 7 22:36:23 2024 -0800

    elfutils: Backport some patches to fix errors
    
    On aarch64 musl gcc 14.x compiler, trying compiling elfutils 0.192 with
    lto option enabled will cause null-dereference error.
    Example error message:
    
    ...
    elf_compress.c: In function 'elf_compress':
    elf_compress.c:675:26: error: potential null pointer dereference [-Werror=null-dereference]
      675 |           shdr->sh_flags |= SHF_COMPRESSED;
          |                          ^
    elf_compress_gnu.c: In function 'elf_compress_gnu':
    elf_compress_gnu.c:127:25: error: potential null pointer dereference [-Werror=null-dereference]
      127 |           shdr->sh_size = new_size;
          |                         ^                      ^
    ...
    
    This is a false postive warning but will abort compilation if gcc has
    `-Werror` flag. This commit add a patch for this, see the bugzilla
    report below.
    
    This commit backports a series of patches to fix some errors.
    
    Add patch:
    - 007-add-libeu-symbols-to-libelf.patch
    - 008-fix-autoconf-ENABLE_IMA_VERIFICATION.patch
    - 009-fix-null-dereference-with-lto.patch
    
    Link: https://sourceware.org/bugzilla/show_bug.cgi?id=32311
    Signed-off-by: Ryan Keane <the.ra2.ifv at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16886
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 .../patches/007-add-libeu-symbols-to-libelf.patch  |  31 ++++
 .../008-fix-autoconf-ENABLE_IMA_VERIFICATION.patch |  24 +++
 .../009-fix-null-dereference-with-lto.patch        | 193 +++++++++++++++++++++
 3 files changed, 248 insertions(+)

diff --git a/package/libs/elfutils/patches/007-add-libeu-symbols-to-libelf.patch b/package/libs/elfutils/patches/007-add-libeu-symbols-to-libelf.patch
new file mode 100644
index 0000000000..23489b5625
--- /dev/null
+++ b/package/libs/elfutils/patches/007-add-libeu-symbols-to-libelf.patch
@@ -0,0 +1,31 @@
+From f5d6e088f84dd05278c4698a21cbf1ff4569978d Mon Sep 17 00:00:00 2001
+From: Mark Wielaard <mark at klomp.org>
+Date: Tue, 22 Oct 2024 15:03:42 +0200
+Subject: [PATCH] libelf: Add libeu objects to libelf.a static archive
+
+libelf might use some symbols from libeu.a, specifically the eu-search
+wrappers. But we don't ship libeu.a separately. So include the libeu
+objects in the libelf.a archive to facilitate static linking.
+
+	* libelf/Makefile.am (libeu_objects): New variable.
+	(libelf_a_LIBADD): New, add libeu_objects.
+
+https://sourceware.org/bugzilla/show_bug.cgi?id=32293
+
+Signed-off-by: Mark Wielaard <mark at klomp.org>
+---
+ libelf/Makefile.am | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/libelf/Makefile.am
++++ b/libelf/Makefile.am
+@@ -122,6 +122,9 @@ libelf.so: $(srcdir)/libelf.map $(libelf
+ 	@$(textrel_check)
+ 	$(AM_V_at)ln -fs $@ $@.$(VERSION)
+ 
++libeu_objects = $(shell $(AR) t ../lib/libeu.a)
++libelf_a_LIBADD = $(addprefix ../lib/,$(libeu_objects))
++
+ install: install-am libelf.so
+ 	$(mkinstalldirs) $(DESTDIR)$(libdir)
+ 	$(INSTALL_PROGRAM) libelf.so $(DESTDIR)$(libdir)/libelf-$(PACKAGE_VERSION).so
diff --git a/package/libs/elfutils/patches/008-fix-autoconf-ENABLE_IMA_VERIFICATION.patch b/package/libs/elfutils/patches/008-fix-autoconf-ENABLE_IMA_VERIFICATION.patch
new file mode 100644
index 0000000000..e5732d2b08
--- /dev/null
+++ b/package/libs/elfutils/patches/008-fix-autoconf-ENABLE_IMA_VERIFICATION.patch
@@ -0,0 +1,24 @@
+From f3c664d069d81a4872a1ec8241ee709f37c53e9c Mon Sep 17 00:00:00 2001
+From: Aaron Merey <amerey at redhat.com>
+Date: Tue, 29 Oct 2024 14:16:57 -0400
+Subject: [PATCH] configure.ac: Fix ENABLE_IMA_VERIFICATION conditional
+
+Fix test statement for ENABLE_IMA_VERIFICATION always evalutating to
+false due to a missing 'x'.
+
+Signed-off-by: Aaron Merey <amerey at redhat.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -895,7 +895,7 @@ AS_IF([test "x$enable_debuginfod" != "xn
+ AM_CONDITIONAL([DEBUGINFOD],[test "x$enable_debuginfod" = "xyes"])
+ AS_IF([test "x$enable_debuginfod_ima_verification" = "xyes"],AC_DEFINE([ENABLE_IMA_VERIFICATION],[1],[Build IMA verification]))
+ AS_IF([test "x$have_libarchive" = "xyes"],AC_DEFINE([HAVE_LIBARCHIVE],[1],[Define to 1 if libarchive is available]))
+-AM_CONDITIONAL([ENABLE_IMA_VERIFICATION],[test "$enable_debuginfod_ima_verification" = "xyes"])
++AM_CONDITIONAL([ENABLE_IMA_VERIFICATION],[test "x$enable_debuginfod_ima_verification" = "xyes"])
+ AM_CONDITIONAL([OLD_LIBMICROHTTPD],[test "x$old_libmicrohttpd" = "xyes"])
+ 
+ dnl for /etc/profile.d/elfutils.{csh,sh}
diff --git a/package/libs/elfutils/patches/009-fix-null-dereference-with-lto.patch b/package/libs/elfutils/patches/009-fix-null-dereference-with-lto.patch
new file mode 100644
index 0000000000..1179a1e1a0
--- /dev/null
+++ b/package/libs/elfutils/patches/009-fix-null-dereference-with-lto.patch
@@ -0,0 +1,193 @@
+From 8707194a9f2f0b13e53041b03ebfdbdbd2942e43 Mon Sep 17 00:00:00 2001
+From: Mark Wielaard <mark at klomp.org>
+Date: Tue, 5 Nov 2024 23:31:14 +0100
+Subject: [PATCH 1/1] libelf: Only fetch shdr once in elf_compress[_gnu]
+
+Some compilers assume the second call to elf[32|64]_getshdr can fail
+and produce error: potential null pointer dereference. Just store the
+result of the first call and reuse (when not NULL).
+
+       * libelf/elf_compress.c (elf_compress): Store getshdr result in
+       a shdr union var.
+       * libelf/elf_compress_gnu.c (): Likewise
+
+https://sourceware.org/bugzilla/show_bug.cgi?id=32311
+
+Signed-off-by: Mark Wielaard <mark at klomp.org>
+---
+ libelf/elf_compress.c     | 55 +++++++++++++++++++++------------------
+ libelf/elf_compress_gnu.c | 45 ++++++++++++++------------------
+ 2 files changed, 48 insertions(+), 52 deletions(-)
+
+--- a/libelf/elf_compress.c
++++ b/libelf/elf_compress.c
+@@ -584,25 +584,30 @@ elf_compress (Elf_Scn *scn, int type, un
+   Elf64_Xword sh_flags;
+   Elf64_Word sh_type;
+   Elf64_Xword sh_addralign;
++  union shdr
++  {
++    Elf32_Shdr *s32;
++    Elf64_Shdr *s64;
++  } shdr;
+   if (elfclass == ELFCLASS32)
+     {
+-      Elf32_Shdr *shdr = elf32_getshdr (scn);
+-      if (shdr == NULL)
++      shdr.s32 = elf32_getshdr (scn);
++      if (shdr.s32 == NULL)
+ 	return -1;
+ 
+-      sh_flags = shdr->sh_flags;
+-      sh_type = shdr->sh_type;
+-      sh_addralign = shdr->sh_addralign;
++      sh_flags = shdr.s32->sh_flags;
++      sh_type = shdr.s32->sh_type;
++      sh_addralign = shdr.s32->sh_addralign;
+     }
+   else
+     {
+-      Elf64_Shdr *shdr = elf64_getshdr (scn);
+-      if (shdr == NULL)
++      shdr.s64 = elf64_getshdr (scn);
++      if (shdr.s64 == NULL)
+ 	return -1;
+ 
+-      sh_flags = shdr->sh_flags;
+-      sh_type = shdr->sh_type;
+-      sh_addralign = shdr->sh_addralign;
++      sh_flags = shdr.s64->sh_flags;
++      sh_type = shdr.s64->sh_type;
++      sh_addralign = shdr.s64->sh_addralign;
+     }
+ 
+   if ((sh_flags & SHF_ALLOC) != 0)
+@@ -679,17 +684,17 @@ elf_compress (Elf_Scn *scn, int type, un
+ 	 correctly and ignored when SHF_COMPRESSED is set.  */
+       if (elfclass == ELFCLASS32)
+ 	{
+-	  Elf32_Shdr *shdr = elf32_getshdr (scn);
+-	  shdr->sh_size = new_size;
+-	  shdr->sh_addralign = __libelf_type_align (ELFCLASS32, ELF_T_CHDR);
+-	  shdr->sh_flags |= SHF_COMPRESSED;
++	  shdr.s32->sh_size = new_size;
++	  shdr.s32->sh_addralign = __libelf_type_align (ELFCLASS32,
++							ELF_T_CHDR);
++	  shdr.s32->sh_flags |= SHF_COMPRESSED;
+ 	}
+       else
+ 	{
+-	  Elf64_Shdr *shdr = elf64_getshdr (scn);
+-	  shdr->sh_size = new_size;
+-	  shdr->sh_addralign = __libelf_type_align (ELFCLASS64, ELF_T_CHDR);
+-	  shdr->sh_flags |= SHF_COMPRESSED;
++	  shdr.s64->sh_size = new_size;
++	  shdr.s64->sh_addralign = __libelf_type_align (ELFCLASS64,
++							ELF_T_CHDR);
++	  shdr.s64->sh_flags |= SHF_COMPRESSED;
+ 	}
+ 
+       __libelf_reset_rawdata (scn, out_buf, new_size, 1, ELF_T_CHDR);
+@@ -731,17 +736,15 @@ elf_compress (Elf_Scn *scn, int type, un
+ 	 correctly and ignored when SHF_COMPRESSED is set.  */
+       if (elfclass == ELFCLASS32)
+ 	{
+-	  Elf32_Shdr *shdr = elf32_getshdr (scn);
+-	  shdr->sh_size = scn->zdata_size;
+-	  shdr->sh_addralign = scn->zdata_align;
+-	  shdr->sh_flags &= ~SHF_COMPRESSED;
++	  shdr.s32->sh_size = scn->zdata_size;
++	  shdr.s32->sh_addralign = scn->zdata_align;
++	  shdr.s32->sh_flags &= ~SHF_COMPRESSED;
+ 	}
+       else
+ 	{
+-	  Elf64_Shdr *shdr = elf64_getshdr (scn);
+-	  shdr->sh_size = scn->zdata_size;
+-	  shdr->sh_addralign = scn->zdata_align;
+-	  shdr->sh_flags &= ~SHF_COMPRESSED;
++	  shdr.s64->sh_size = scn->zdata_size;
++	  shdr.s64->sh_addralign = scn->zdata_align;
++	  shdr.s64->sh_flags &= ~SHF_COMPRESSED;
+ 	}
+ 
+       __libelf_reset_rawdata (scn, scn->zdata_base,
+--- a/libelf/elf_compress_gnu.c
++++ b/libelf/elf_compress_gnu.c
+@@ -59,25 +59,30 @@ elf_compress_gnu (Elf_Scn *scn, int infl
+   Elf64_Xword sh_flags;
+   Elf64_Word sh_type;
+   Elf64_Xword sh_addralign;
++  union shdr
++  {
++    Elf32_Shdr *s32;
++    Elf64_Shdr *s64;
++  } shdr;
+   if (elfclass == ELFCLASS32)
+     {
+-      Elf32_Shdr *shdr = elf32_getshdr (scn);
+-      if (shdr == NULL)
++      shdr.s32 = elf32_getshdr (scn);
++      if (shdr.s32 == NULL)
+ 	return -1;
+ 
+-      sh_flags = shdr->sh_flags;
+-      sh_type = shdr->sh_type;
+-      sh_addralign = shdr->sh_addralign;
++      sh_flags = shdr.s32->sh_flags;
++      sh_type = shdr.s32->sh_type;
++      sh_addralign = shdr.s32->sh_addralign;
+     }
+   else
+     {
+-      Elf64_Shdr *shdr = elf64_getshdr (scn);
+-      if (shdr == NULL)
++      shdr.s64 = elf64_getshdr (scn);
++      if (shdr.s64 == NULL)
+ 	return -1;
+ 
+-      sh_flags = shdr->sh_flags;
+-      sh_type = shdr->sh_type;
+-      sh_addralign = shdr->sh_addralign;
++      sh_flags = shdr.s64->sh_flags;
++      sh_type = shdr.s64->sh_type;
++      sh_addralign = shdr.s64->sh_addralign;
+     }
+ 
+   /* Allocated sections, or sections that are already are compressed
+@@ -122,15 +127,9 @@ elf_compress_gnu (Elf_Scn *scn, int infl
+ 	 sh_flags won't have a SHF_COMPRESSED hint in the GNU format.
+ 	 Just adjust the sh_size.  */
+       if (elfclass == ELFCLASS32)
+-	{
+-	  Elf32_Shdr *shdr = elf32_getshdr (scn);
+-	  shdr->sh_size = new_size;
+-	}
++	  shdr.s32->sh_size = new_size;
+       else
+-	{
+-	  Elf64_Shdr *shdr = elf64_getshdr (scn);
+-	  shdr->sh_size = new_size;
+-	}
++	  shdr.s64->sh_size = new_size;
+ 
+       __libelf_reset_rawdata (scn, out_buf, new_size, 1, ELF_T_BYTE);
+ 
+@@ -187,15 +186,9 @@ elf_compress_gnu (Elf_Scn *scn, int infl
+ 	 sh_flags won't have a SHF_COMPRESSED hint in the GNU format.
+ 	 Just adjust the sh_size.  */
+       if (elfclass == ELFCLASS32)
+-	{
+-	  Elf32_Shdr *shdr = elf32_getshdr (scn);
+-	  shdr->sh_size = size;
+-	}
++	shdr.s32->sh_size = size;
+       else
+-	{
+-	  Elf64_Shdr *shdr = elf64_getshdr (scn);
+-	  shdr->sh_size = size;
+-	}
++	shdr.s64->sh_size = size;
+ 
+       __libelf_reset_rawdata (scn, buf_out, size, sh_addralign,
+ 			      __libelf_data_type (&ehdr, sh_type,



From lede-commits at lists.infradead.org  Sat Nov 16 12:04:16 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 16 Nov 2024 15:04:16 -0500
Subject: [openwrt/openwrt]  ath79: Add support for Sophos AP15C
In-Reply-To: <173178745634.1940115.11716200324956685601@git-01.infra.openwrt.org>
References: <173178745634.1940115.11716200324956685601@git-01.infra.openwrt.org>
Message-ID: <mailman.1309.1731787461.1089.lede-commits@lists.infradead.org>

blocktrron pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/2d465fbf570e1f3286210305a26580cd417fec7c

commit 2d465fbf570e1f3286210305a26580cd417fec7c
Author: David Lutz <kpanic at hirnduenger.de>
AuthorDate: Tue Nov 5 10:55:43 2024 +0100

    ath79: Add support for Sophos AP15C
    
    The Sophos AP15C uses the same hardware as the AP15, but has a reset button.
    
    Based on:
    commit 6f1efb289837 ("ath79: add support for Sophos AP100/AP55 family")
    author    Andrew Powers-Holmes <andrew at omnom.net>
              Fri, 3 Sep 2021 15:53:57 +0200 (23:53 +1000)
    committer Hauke Mehrtens <hauke at hauke-m.de>
              Sat, 16 Apr 2022 16:59:29 +0200 (16:59 +0200)
    
    Unique to AP15C:
     - Reset button
     - External RJ45 serial console port
    
    Flashing instructions:
    
    This firmware can be flashed either via a compatible Sophos SG or XG
    firewall appliance, which does not require disassembling the device, or via
    the U-Boot console available on the internal UART header.
    
    To flash via XG appliance:
     - Register on Sophos' website for a no-cost Home Use XG firewall license
     - Download and install the XG software on a compatible PC or virtual
       machine, complete initial appliance setup, and enable SSH console access
     - Connect the target AP device to the XG appliance's LAN interface
     - Approve the AP from the XG Web UI and wait until it shows as Active
       (this can take 3-5 minutes)
     - Connect to the XG appliance over SSH and access the Advanced Console
       (Menu option 5, then menu option 3)
     - Run `sudo awetool` and select the menu option to connect to an AP via
       SSH. When prompted to enable SSH on the target AP, select Yes.
     - Wait 2-3 minutes, then select the AP from the awetool menu again. This
       will connect you to a root shell on the target AP.
     - Copy the firmware to /tmp/openwrt.bin on the target AP via SCP/TFTP/etc
     - Run `mtd -r write /tmp/openwrt.bin astaro_image`
     - When complete, the access point will reboot to OpenWRT.
    
    To flash via U-Boot serial console:
     - Configure a TFTP server on your PC, and set IP address 192.168.99.8 with
       netmask 255.255.255.0
     - Copy the firmware .bin to the TFTP server and rename to 'uImage_AP15C'
     - Open the target AP's enclosure and locate the 4-pin 3.3V UART header [4]
     - Connect the AP ethernet to your PC's ethernet port
     - Connect a terminal to the UART at 115200 8/N/1 as usual
     - Power on the AP and press a key to cancel autoboot when prompted
     - Run the following commands at the U-Boot console:
        - `tftpboot`
        - `cp.b $fileaddr 0x9f070000 $filesize`
        - `boot`
     - The access point will boot to OpenWRT.
    
    Signed-off-by: David Lutz <kpanic at hirnduenger.de>
    (cherry picked from commit a7abc7ec3b61be553f33c49e5acc90a4d539d992)
---
 package/boot/uboot-envtools/files/ath79            |   1 +
 target/linux/ath79/dts/qca9557_sophos_ap15c.dts    | 159 +++++++++++++++++++++
 .../generic/base-files/etc/board.d/02_network      |   1 +
 target/linux/ath79/image/generic.mk                |   8 ++
 4 files changed, 169 insertions(+)

diff --git a/package/boot/uboot-envtools/files/ath79 b/package/boot/uboot-envtools/files/ath79
index 1d9d3bcfaa..c6d23ce73d 100644
--- a/package/boot/uboot-envtools/files/ath79
+++ b/package/boot/uboot-envtools/files/ath79
@@ -163,6 +163,7 @@ ruckus,zf7372)
 	ubootenv_add_uci_config "/dev/mtd2" "0x0" "0x40000" "0x10000"
 	;;
 sophos,ap15|\
+sophos,ap15c|\
 sophos,ap55|\
 sophos,ap55c|\
 sophos,ap100|\
diff --git a/target/linux/ath79/dts/qca9557_sophos_ap15c.dts b/target/linux/ath79/dts/qca9557_sophos_ap15c.dts
new file mode 100644
index 0000000000..68d02e97a5
--- /dev/null
+++ b/target/linux/ath79/dts/qca9557_sophos_ap15c.dts
@@ -0,0 +1,159 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qca955x.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+	compatible = "sophos,ap15c", "qca,qca9557";
+	model = "Sophos AP15C";
+
+	aliases {
+		led-boot = &led_status_green;
+		led-failsafe = &led_status_yellow;
+		led-running = &led_status_green;
+		led-upgrade = &led_status_yellow;
+		label-mac-device = &eth0;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+			debounce-interval = <60>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led_status_green: status_green {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_GREEN>;
+			gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+			default-state = "on";
+		};
+
+		led_status_yellow: status_yellow {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_YELLOW>;
+			gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
+
+&spi {
+	status = "okay";
+
+	flash at 0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <25000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "u-boot";
+				reg = <0x000000 0x040000>;
+				read-only;
+			};
+
+			partition at 40000 {
+				label = "u-boot-env";
+				reg = <0x040000 0x010000>;
+			};
+
+			partition at 50000 {
+				label = "art";
+				reg = <0x050000 0x010000>;
+				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					cal_art_1000: calibration at 1000 {
+						reg = <0x1000 0x440>;
+					};
+				};
+			};
+
+			partition at 60000 {
+				label = "config";
+				reg = <0x060000 0x010000>;
+				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_config_201a: macaddr at 201a {
+						reg = <0x201a 0x6>;
+					};
+				};
+			};
+
+			partition at 70000 {
+				compatible = "denx,uimage";
+				label = "firmware";
+				reg = <0x070000 0xf90000>;
+			};
+		};
+	};
+};
+
+&mdio0 {
+	status = "okay";
+
+	phy-mask = <0x10>;
+
+	phy4: ethernet-phy at 4 {
+		reg = <4>;
+		eee-broken-100tx;
+		eee-broken-1000t;
+	};
+};
+
+&eth0 {
+	status = "okay";
+
+	pll-data = <0xa6000000 0xa0000101 0xa0001313>;
+
+	nvmem-cells = <&macaddr_config_201a>;
+	nvmem-cell-names = "mac-address";
+
+	phy-mode = "rgmii-id";
+	phy-handle = <&phy4>;
+
+	gmac_config: gmac-config {
+		device = <&gmac>;
+
+		rgmii-enabled = <1>;
+
+		rxdv-delay = <3>;
+		rxd-delay = <3>;
+		txen-delay = <3>;
+		txd-delay = <3>;
+	};
+};
+
+&wmac {
+	status = "okay";
+
+	nvmem-cells = <&cal_art_1000>;
+	nvmem-cell-names = "calibration";
+};
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network
index 8474c1c4c2..8f79a3fad8 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
@@ -76,6 +76,7 @@ ath79_setup_interfaces()
 	ruckus,zf7351|\
 	siemens,ws-ap3610|\
 	sophos,ap15|\
+	sophos,ap15c|\
 	sophos,ap55|\
 	sophos,ap55c|\
 	sophos,ap100|\
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index c075f050db..0173f5cb16 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -2972,6 +2972,14 @@ define Device/sophos_ap15
 endef
 TARGET_DEVICES += sophos_ap15
 
+define Device/sophos_ap15c
+  SOC := qca9557
+  DEVICE_VENDOR := Sophos
+  DEVICE_MODEL := AP15C
+  IMAGE_SIZE := 15936k
+endef
+TARGET_DEVICES += sophos_ap15c
+
 define Device/sophos_ap55
   SOC := qca9558
   DEVICE_VENDOR := Sophos



From lede-commits at lists.infradead.org  Sun Nov 17 03:03:23 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 17 Nov 2024 06:03:23 -0500
Subject: [openwrt/openwrt]  image: apk: remove explicit distfeeds handling
In-Reply-To: <173184140311.584604.8863053623708167704@git-01.infra.openwrt.org>
References: <173184140311.584604.8863053623708167704@git-01.infra.openwrt.org>
Message-ID: <mailman.1394.1731841412.1089.lede-commits@lists.infradead.org>

jogo pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/bdfae5a16679b41746b836a8f5dee66d1c778e41

commit bdfae5a16679b41746b836a8f5dee66d1c778e41
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Sun Nov 17 06:50:05 2024 +0000

    image: apk: remove explicit distfeeds handling
    
    Currently the build fails due to the following:
    
     mv: cannot stat 'linux-mediatek_filogic/target-dir-7872e783/etc/apk/repositories': No such file or directory
    
    as the changes done in the commit e031dab93ec3 ("base-files: move apk
    distfeeds into directory") forget to adapt image generation part.
    
    While looking into this, I've realized, that we don't need this explicit
    handling in the image generating code since the feeds are solely
    configured by `base-files` and `apk` packages, so those should always
    provide the correct feeds content, so lets simply drop this unnecessary
    code.
    
    Moving away /etc/opkg is done to prevent opkg from picking up the remote
    feeds defined from base-files and only use the local feeds, but for apk
    we explicitly pass --repositories-file which disables parsing of
    /etc/apk/repositories and /etc/apk/repositories.d, so we do not need to
    backup anything.
    
    Fixes: #16981
    Fixes: e031dab93ec3 ("base-files: move apk distfeeds into directory")
    Reported-by: Chen Minqiang <ptpt52 at gmail.com>
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
    [jonas.gorski: add an explicit explanation where the original mv comes
    from and why we don't need it for apk].
    Signed-off-by: Jonas Gorski <jonas.gorski at gmail.com>
---
 include/image.mk | 2 --
 1 file changed, 2 deletions(-)

diff --git a/include/image.mk b/include/image.mk
index 881d420ae1..70dc8e069b 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -372,12 +372,10 @@ target-dir-%: FORCE
 ifneq ($(CONFIG_USE_APK),)
 	rm -rf $(mkfs_cur_target_dir)
 	$(CP) $(TARGET_DIR_ORIG) $(mkfs_cur_target_dir)
-	mv $(mkfs_cur_target_dir)/etc/apk/repositories $(mkfs_cur_target_dir).repositories
 	$(if $(mkfs_packages_remove), \
 		$(apk_target) del $(mkfs_packages_remove))
 	$(if $(mkfs_packages_add), \
 		$(apk_target) add $(mkfs_packages_add))
-	mv $(mkfs_cur_target_dir).repositories $(mkfs_cur_target_dir)/etc/apk/repositories
 else
 	rm -rf $(mkfs_cur_target_dir) $(mkfs_cur_target_dir).opkg
 	$(CP) $(TARGET_DIR_ORIG) $(mkfs_cur_target_dir)



From lede-commits at lists.infradead.org  Sun Nov 17 03:24:47 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 17 Nov 2024 06:24:47 -0500
Subject: [openwrt/openwrt]  ipq807x: nbg7815: use the standard eMMC sysupgrade
 code
In-Reply-To: <173184268768.631580.17928829098880871082@git-01.infra.openwrt.org>
References: <173184268768.631580.17928829098880871082@git-01.infra.openwrt.org>
Message-ID: <mailman.1403.1731842691.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/5583d2318966d5d5dcdbdec2e34b8815d3f6419a

commit 5583d2318966d5d5dcdbdec2e34b8815d3f6419a
Author: Rodrigo Balerdi <lanchon at gmail.com>
AuthorDate: Tue Sep 24 17:43:49 2024 -0300

    ipq807x: nbg7815: use the standard eMMC sysupgrade code
    
    Note that the old ad-hoc method did not explicitly align backup data
    to 64 KiB boundaries.
    
    Signed-off-by: Rodrigo Balerdi <lanchon at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16505
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/qualcommax/image/ipq807x.mk                   |  2 +-
 .../qualcommax/ipq807x/base-files/lib/upgrade/platform.sh  | 14 +++++++-------
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/target/linux/qualcommax/image/ipq807x.mk b/target/linux/qualcommax/image/ipq807x.mk
index faefb479c2..401f455585 100644
--- a/target/linux/qualcommax/image/ipq807x.mk
+++ b/target/linux/qualcommax/image/ipq807x.mk
@@ -446,7 +446,7 @@ define Device/zyxel_nbg7815
 	DEVICE_MODEL := NBG7815
 	DEVICE_DTS_CONFIG := config at nbg7815
 	SOC := ipq8074
-	DEVICE_PACKAGES := ipq-wifi-zyxel_nbg7815 kmod-ath11k-pci \
+	DEVICE_PACKAGES := kmod-fs-f2fs f2fs-tools ipq-wifi-zyxel_nbg7815 kmod-ath11k-pci \
 		kmod-bluetooth kmod-hwmon-tmp103
 endef
 TARGET_DEVICES += zyxel_nbg7815
diff --git a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh b/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
index 808acac684..f822f6291d 100644
--- a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
+++ b/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
@@ -251,14 +251,13 @@ platform_do_upgrade() {
 		[ -z "$config_mtdnum" ] && reboot
 		part_num="$(hexdump -e '1/1 "%01x|"' -n 1 -s 168 -C /dev/mtd$config_mtdnum | cut -f 1 -d "|" | head -n1)"
 		if [ "$part_num" -eq "0" ]; then
-			kernelname="0:HLOS"
-			rootfsname="rootfs"
-			mmc_do_upgrade "$1"
+			CI_KERNPART="0:HLOS"
+			CI_ROOTPART="rootfs"
 		else
-			kernelname="0:HLOS_1"
-			rootfsname="rootfs_1"
-			mmc_do_upgrade "$1"
+			CI_KERNPART="0:HLOS_1"
+			CI_ROOTPART="rootfs_1"
 		fi
+		emmc_do_upgrade "$1"
 		;;
 	*)
 		default_do_upgrade "$1"
@@ -268,7 +267,8 @@ platform_do_upgrade() {
 
 platform_copy_config() {
 	case "$(board_name)" in
-	spectrum,sax1v1k)
+	spectrum,sax1v1k|\
+	zyxel,nbg7815)
 		emmc_copy_config
 		;;
 	esac



From lede-commits at lists.infradead.org  Sun Nov 17 03:24:48 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 17 Nov 2024 06:24:48 -0500
Subject: [openwrt/openwrt]  ipq807x: prpl haze & qnap 301w: use the standard
 eMMC sysupgrade code
In-Reply-To: <173184268768.631580.17928829098880871082@git-01.infra.openwrt.org>
References: <173184268768.631580.17928829098880871082@git-01.infra.openwrt.org>
Message-ID: <mailman.1404.1731842694.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/fe481c9c47d97ebde1bc3c959924f4f9227c6c16

commit fe481c9c47d97ebde1bc3c959924f4f9227c6c16
Author: Rodrigo Balerdi <lanchon at gmail.com>
AuthorDate: Fri Nov 8 17:40:03 2024 -0300

    ipq807x: prpl haze & qnap 301w: use the standard eMMC sysupgrade code
    
    Note that the old ad-hoc method did not explicitly align backup data
    to 64 KiB boundaries.
    
    Also note that the qnap 301w has a 'rootfs_data' partition in the eMMC
    that is being ignored by fstools during boot, presumably due to a bug.
    This is why the partition is also ignored in the sysupgrade code and
    there is no definition of CI_DATAPART="rootfs_data".
    
    Signed-off-by: Rodrigo Balerdi <lanchon at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16505
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/qualcommax/image/ipq807x.mk                          | 4 ++--
 .../linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh   | 8 +++++---
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/target/linux/qualcommax/image/ipq807x.mk b/target/linux/qualcommax/image/ipq807x.mk
index 401f455585..60af865459 100644
--- a/target/linux/qualcommax/image/ipq807x.mk
+++ b/target/linux/qualcommax/image/ipq807x.mk
@@ -308,7 +308,7 @@ define Device/prpl_haze
 	DEVICE_DTS_CONFIG := config at hk09
 	SOC := ipq8072
 	DEVICE_PACKAGES := ath11k-firmware-qcn9074 ipq-wifi-prpl_haze kmod-ath11k-pci \
-		mkf2fs f2fsck kmod-fs-f2fs kmod-leds-lp5562
+		kmod-fs-f2fs f2fs-tools kmod-leds-lp5562
 endef
 TARGET_DEVICES += prpl_haze
 
@@ -320,7 +320,7 @@ define Device/qnap_301w
 	DEVICE_DTS_CONFIG := config at hk01
 	KERNEL_SIZE := 16384k
 	SOC := ipq8072
-	DEVICE_PACKAGES := ipq-wifi-qnap_301w
+	DEVICE_PACKAGES := kmod-fs-f2fs f2fs-tools ipq-wifi-qnap_301w
 endef
 TARGET_DEVICES += qnap_301w
 
diff --git a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh b/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
index f822f6291d..00289dcfe6 100644
--- a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
+++ b/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
@@ -185,9 +185,9 @@ platform_do_upgrade() {
 		;;
 	prpl,haze|\
 	qnap,301w)
-		kernelname="0:HLOS"
-		rootfsname="rootfs"
-		mmc_do_upgrade "$1"
+		CI_KERNPART="0:HLOS"
+		CI_ROOTPART="rootfs"
+		emmc_do_upgrade "$1"
 		;;
 	tplink,eap660hd-v1)
 		tplink_do_upgrade "$1"
@@ -267,6 +267,8 @@ platform_do_upgrade() {
 
 platform_copy_config() {
 	case "$(board_name)" in
+	prpl,haze|\
+	qnap,301w|\
 	spectrum,sax1v1k|\
 	zyxel,nbg7815)
 		emmc_copy_config



From lede-commits at lists.infradead.org  Sun Nov 17 03:24:49 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 17 Nov 2024 06:24:49 -0500
Subject: [openwrt/openwrt]  ipq807x: order devices alphabetically
In-Reply-To: <173184268768.631580.17928829098880871082@git-01.infra.openwrt.org>
References: <173184268768.631580.17928829098880871082@git-01.infra.openwrt.org>
Message-ID: <mailman.1405.1731842696.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/17f84bba44dbee248b3a79935657a74b21caa280

commit 17f84bba44dbee248b3a79935657a74b21caa280
Author: Rodrigo Balerdi <lanchon at gmail.com>
AuthorDate: Fri Nov 8 17:45:12 2024 -0300

    ipq807x: order devices alphabetically
    
    Alphabetically sort devices in platform.sh
    
    Signed-off-by: Rodrigo Balerdi <lanchon at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16505
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh b/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
index 00289dcfe6..70657629fc 100644
--- a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
+++ b/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
@@ -189,9 +189,6 @@ platform_do_upgrade() {
 		CI_ROOTPART="rootfs"
 		emmc_do_upgrade "$1"
 		;;
-	tplink,eap660hd-v1)
-		tplink_do_upgrade "$1"
-		;;
 	redmi,ax6|\
 	xiaomi,ax3600|\
 	xiaomi,ax9000)
@@ -217,6 +214,9 @@ platform_do_upgrade() {
 		CI_DATAPART="rootfs_data"
 		emmc_do_upgrade "$1"
 		;;
+	tplink,eap660hd-v1)
+		tplink_do_upgrade "$1"
+		;;
 	yuncore,ax880)
 		active="$(fw_printenv -n active)"
 		if [ "$active" -eq "1" ]; then



From lede-commits at lists.infradead.org  Sun Nov 17 03:24:50 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 17 Nov 2024 06:24:50 -0500
Subject: [openwrt/openwrt]  ipq807x: delete unused legacy eMMC sysupgrade code
In-Reply-To: <173184268768.631580.17928829098880871082@git-01.infra.openwrt.org>
References: <173184268768.631580.17928829098880871082@git-01.infra.openwrt.org>
Message-ID: <mailman.1408.1731842696.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/491121288eaa9d20f3db8215a4790e8f0ee1f8ca

commit 491121288eaa9d20f3db8215a4790e8f0ee1f8ca
Author: Rodrigo Balerdi <lanchon at gmail.com>
AuthorDate: Fri Nov 8 17:40:29 2024 -0300

    ipq807x: delete unused legacy eMMC sysupgrade code
    
    All ipq807x devices that were using the legacy 'mmc_do_upgrade' eMMC
    sysupgrade code were ported to the replacement 'emmc_do_upgrade' code.
    
    Signed-off-by: Rodrigo Balerdi <lanchon at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16505
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 .../ipq807x/base-files/lib/upgrade/mmc.sh          | 83 ----------------------
 1 file changed, 83 deletions(-)

diff --git a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/mmc.sh b/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/mmc.sh
deleted file mode 100644
index 21cd7928e3..0000000000
--- a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/mmc.sh
+++ /dev/null
@@ -1,83 +0,0 @@
-#
-# Copyright (C) 2016 lede-project.org
-#
-
-# this can be used as a generic mmc upgrade script
-# just add a device entry in platform.sh, 
-# define "kernelname" and "rootfsname" and call mmc_do_upgrade
-# after the kernel and rootfs flash a loopdev (as overlay) is 
-# setup on top of the rootfs partition
-# for the proper function a padded rootfs image is needed, basically 
-# append "pad-to 64k" to the image definition
-# this is based on the ipq806x zyxel.sh mmc upgrade
-
-. /lib/functions.sh
-
-mmc_do_upgrade() {
-	local tar_file="$1"
-	local rootfs=
-	local kernel=
-
-	[ -z "$kernel" ] && kernel=$(find_mmc_part ${kernelname})
-	[ -z "$rootfs" ] && rootfs=$(find_mmc_part ${rootfsname})
-
-	[ -z "$kernel" ] && echo "Upgrade failed: kernel partition not found! Rebooting..." && reboot -f
-	[ -z "$rootfs" ] && echo "Upgrade failed: rootfs partition not found! Rebooting..." && reboot -f
-
-	mmc_do_flash $tar_file $kernel $rootfs
-
-	return 0
-}
-
-mmc_do_flash() {
-	local tar_file=$1
-	local kernel=$2
-	local rootfs=$3
-	
-	# keep sure its unbound
-	losetup --detach-all || {
-		echo Failed to detach all loop devices. Skip this try.
-		reboot -f
-	}
-
-	# use the first found directory in the tar archive
-	local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$')
-	board_dir=${board_dir%/}
-
-	echo "flashing kernel to $kernel"
-	tar xf $tar_file ${board_dir}/kernel -O >$kernel
-
-	echo "flashing rootfs to ${rootfs}"
-	tar xf $tar_file ${board_dir}/root -O >"${rootfs}"
-
-	# a padded rootfs is needed for overlay fs creation
-	local offset=$(tar xf $tar_file ${board_dir}/root -O | wc -c)
-	[ $offset -lt 65536 ] && {
-		echo Wrong size for rootfs: $offset
-		sleep 10
-		reboot -f
-	}
-
-	# Mount loop for rootfs_data
-	local loopdev="$(losetup -f)"
-	losetup -o $offset $loopdev $rootfs || {
-		echo "Failed to mount looped rootfs_data."
-		sleep 10
-		reboot -f
-	}
-
-	echo "Format new rootfs_data at position ${offset}."
-	mkfs.ext4 -F -L rootfs_data $loopdev
-	mkdir /tmp/new_root
-	mount -t ext4 $loopdev /tmp/new_root && {
-		echo "Saving config to rootfs_data at position ${offset}."
-		cp -v "$UPGRADE_BACKUP" "/tmp/new_root/$BACKUP_FILE"
-		umount /tmp/new_root
-	}
-
-	# Cleanup
-	losetup -d $loopdev >/dev/null 2>&1
-	sync
-	umount -a
-	reboot -f
-}



From lede-commits at lists.infradead.org  Sun Nov 17 03:29:01 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 17 Nov 2024 06:29:01 -0500
Subject: [openwrt/openwrt]  kernel: disable drm-i915 module for x86/geode
In-Reply-To: <173184294195.646661.4651238369549070541@git-01.infra.openwrt.org>
References: <173184294195.646661.4651238369549070541@git-01.infra.openwrt.org>
Message-ID: <mailman.1409.1731842950.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/226f74badd61fb1586dd3531835aeaa3bf6fe467

commit 226f74badd61fb1586dd3531835aeaa3bf6fe467
Author: Mieczyslaw Nalewaj <namiltd at yahoo.com>
AuthorDate: Sun Nov 17 08:40:44 2024 +0100

    kernel: disable drm-i915 module for x86/geode
    
    Disable drm-i915 module for target x86/geode.
    
    Fixes: 77cfe8f ("x86: make i915 as a kmod with required firmware")
    Signed-off-by: Mieczyslaw Nalewaj <namiltd at yahoo.com>
    Link: https://github.com/openwrt/openwrt/pull/16977
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/kernel/linux/modules/video.mk | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/package/kernel/linux/modules/video.mk b/package/kernel/linux/modules/video.mk
index fc0f038863..f2fa82fd03 100644
--- a/package/kernel/linux/modules/video.mk
+++ b/package/kernel/linux/modules/video.mk
@@ -441,7 +441,8 @@ $(eval $(call KernelPackage,drm-amdgpu))
 define KernelPackage/drm-i915
   SUBMENU:=$(VIDEO_MENU)
   TITLE:=Intel i915 DRM support
-  DEPENDS:=@TARGET_x86 @DISPLAY_SUPPORT +kmod-backlight +kmod-drm-ttm \
+  DEPENDS:=@(TARGET_x86_64||TARGET_x86_generic||TARGET_x86_legacy) \
+	@DISPLAY_SUPPORT +kmod-backlight +kmod-drm-ttm \
 	+kmod-drm-ttm-helper +kmod-drm-kms-helper +kmod-i2c-algo-bit +i915-firmware-dmc \
 	+kmod-drm-display-helper +kmod-drm-buddy +kmod-acpi-video \
 	+kmod-drm-exec +kmod-drm-suballoc-helper



From lede-commits at lists.infradead.org  Sun Nov 17 03:30:48 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 17 Nov 2024 06:30:48 -0500
Subject: [openwrt/openwrt]  debugcc: Mark it nonshared
In-Reply-To: <173184304864.654669.9156197118491760648@git-01.infra.openwrt.org>
References: <173184304864.654669.9156197118491760648@git-01.infra.openwrt.org>
Message-ID: <mailman.1410.1731843052.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/febe1db43d1a01f83e474bcb143dcb3997bd35a3

commit febe1db43d1a01f83e474bcb143dcb3997bd35a3
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sat Nov 16 18:36:45 2024 +0100

    debugcc: Mark it nonshared
    
    This tool was build in the phase 2 build, there the TARGET dependencies
    are probably not meat. Mark it as non shared to build it together with
    the targets where this option is set.
    
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    Link: https://github.com/openwrt/openwrt/pull/16975
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/utils/debugcc/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/utils/debugcc/Makefile b/package/utils/debugcc/Makefile
index 3e26cea7e5..c3821cd8c6 100644
--- a/package/utils/debugcc/Makefile
+++ b/package/utils/debugcc/Makefile
@@ -11,6 +11,7 @@ PKG_MIRROR_HASH:=4cd7a770a05db28f496a60eb9fe015a4af677bba05053b4d4be21adcf95e52e
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
+PKG_FLAGS:=nonshared
 
 PKG_MAINTAINER:=Christian Marangi <ansuelsmth at gmail.com>
 



From lede-commits at lists.infradead.org  Sun Nov 17 03:30:49 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 17 Nov 2024 06:30:49 -0500
Subject: [openwrt/openwrt]  omnia-eeprom: Mark it nonshared
In-Reply-To: <173184304864.654669.9156197118491760648@git-01.infra.openwrt.org>
References: <173184304864.654669.9156197118491760648@git-01.infra.openwrt.org>
Message-ID: <mailman.1411.1731843052.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/371e7bef4046fb3992ecfb92b5b741c22fa3ade6

commit 371e7bef4046fb3992ecfb92b5b741c22fa3ade6
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sat Nov 16 18:38:42 2024 +0100

    omnia-eeprom: Mark it nonshared
    
    This tool was build in the phase 2 build, there the
    TARGET_mvebu_cortexa9_DEVICE_cznic_turris-omnia dependecy was probably
    not meat. Mark it as non shared to build it together with the target
    where this option is set.
    
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    Link: https://github.com/openwrt/openwrt/pull/16975
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/utils/omnia-eeprom/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/utils/omnia-eeprom/Makefile b/package/utils/omnia-eeprom/Makefile
index 03eb13bbc1..f9e48b28b9 100644
--- a/package/utils/omnia-eeprom/Makefile
+++ b/package/utils/omnia-eeprom/Makefile
@@ -15,6 +15,7 @@ PKG_SOURCE_SUBDIR:=$(PKG_NAME)-v$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://gitlab.nic.cz/turris/omnia-eeprom/-/archive/v$(PKG_VERSION)/
 PKG_HASH:=6f949d0b8080adca8bae088774ce615b563ba6ec2807cce97ee6769b4eee7bbf
+PKG_FLAGS:=nonshared
 
 PKG_MAINTAINER:=Marek Behun <kabel at kernel.org>
 PKG_LICENSE:=GPL-2.0-or-later



From lede-commits at lists.infradead.org  Sun Nov 17 03:41:54 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 17 Nov 2024 06:41:54 -0500
Subject: [openwrt/openwrt]  kernel: move CONFIG_INTEL_MEI settings to target
 generic
In-Reply-To: <173184371473.699048.17813537188103034103@git-01.infra.openwrt.org>
References: <173184371473.699048.17813537188103034103@git-01.infra.openwrt.org>
Message-ID: <mailman.1412.1731843718.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/84665993d6beed8ac2b557f8d3e005a29e3fd09c

commit 84665993d6beed8ac2b557f8d3e005a29e3fd09c
Author: Mieczyslaw Nalewaj <namiltd at yahoo.com>
AuthorDate: Sat Nov 16 17:26:52 2024 +0100

    kernel: move CONFIG_INTEL_MEI settings to target generic
    
    Move settings CONFIG_INTEL_MEI_GSC_PROXY, CONFIG_INTEL_MEI_HDCP
    and CONFIG_INTEL_MEI_PXP to target generic.
    
    Signed-off-by: Mieczyslaw Nalewaj <namiltd at yahoo.com>
    Link: https://github.com/openwrt/openwrt/pull/16971
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/generic/config-6.6     | 3 +++
 target/linux/x86/64/config-6.6      | 3 ---
 target/linux/x86/generic/config-6.6 | 3 ---
 target/linux/x86/legacy/config-6.6  | 3 ---
 4 files changed, 3 insertions(+), 9 deletions(-)

diff --git a/target/linux/generic/config-6.6 b/target/linux/generic/config-6.6
index 8b22cc4035..d887381414 100644
--- a/target/linux/generic/config-6.6
+++ b/target/linux/generic/config-6.6
@@ -2715,7 +2715,10 @@ CONFIG_INPUT_MISC=y
 # CONFIG_INTEL_IOATDMA is not set
 # CONFIG_INTEL_ISH_HID is not set
 # CONFIG_INTEL_MEI is not set
+# CONFIG_INTEL_MEI_GSC_PROXY is not set
+# CONFIG_INTEL_MEI_HDCP is not set
 # CONFIG_INTEL_MEI_ME is not set
+# CONFIG_INTEL_MEI_PXP is not set
 # CONFIG_INTEL_MEI_TXE is not set
 # CONFIG_INTEL_OAKTRAIL is not set
 # CONFIG_INTEL_PMC_CORE is not set
diff --git a/target/linux/x86/64/config-6.6 b/target/linux/x86/64/config-6.6
index 3475e65287..1d08d31daa 100644
--- a/target/linux/x86/64/config-6.6
+++ b/target/linux/x86/64/config-6.6
@@ -292,9 +292,6 @@ CONFIG_INTEL_IOMMU_PERF_EVENTS=y
 # CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
 # CONFIG_INTEL_IOMMU_SVM is not set
 # CONFIG_INTEL_IPS is not set
-# CONFIG_INTEL_MEI_GSC_PROXY is not set
-# CONFIG_INTEL_MEI_HDCP is not set
-# CONFIG_INTEL_MEI_PXP is not set
 CONFIG_INTEL_PCH_THERMAL=y
 # CONFIG_INTEL_SAR_INT1092 is not set
 # CONFIG_INTEL_SCU_PLATFORM is not set
diff --git a/target/linux/x86/generic/config-6.6 b/target/linux/x86/generic/config-6.6
index ecbd0aa93e..404e3ac330 100644
--- a/target/linux/x86/generic/config-6.6
+++ b/target/linux/x86/generic/config-6.6
@@ -211,9 +211,6 @@ CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
 CONFIG_INTEL_GTT=y
 CONFIG_INTEL_IDLE=y
 # CONFIG_INTEL_IPS is not set
-# CONFIG_INTEL_MEI_GSC_PROXY is not set
-# CONFIG_INTEL_MEI_HDCP is not set
-# CONFIG_INTEL_MEI_PXP is not set
 CONFIG_INTEL_PCH_THERMAL=y
 # CONFIG_INTEL_SAR_INT1092 is not set
 # CONFIG_INTEL_SCU_PLATFORM is not set
diff --git a/target/linux/x86/legacy/config-6.6 b/target/linux/x86/legacy/config-6.6
index 10511ff08b..bc7e74ac3f 100644
--- a/target/linux/x86/legacy/config-6.6
+++ b/target/linux/x86/legacy/config-6.6
@@ -129,9 +129,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
 CONFIG_INTEL_GTT=y
 CONFIG_INTEL_IDLE=y
 # CONFIG_INTEL_IPS is not set
-# CONFIG_INTEL_MEI_GSC_PROXY is not set
-# CONFIG_INTEL_MEI_HDCP is not set
-# CONFIG_INTEL_MEI_PXP is not set
 # CONFIG_INTEL_SAR_INT1092 is not set
 # CONFIG_INTEL_SCU_PLATFORM is not set
 # CONFIG_INTEL_SOC_DTS_THERMAL is not set



From lede-commits at lists.infradead.org  Sun Nov 17 05:57:20 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 17 Nov 2024 08:57:20 -0500
Subject: [openwrt/openwrt]  kernel: remove GCC11_NO_ARRAY_BOUNDS
In-Reply-To: <173185184013.1074103.11394145105266636471@git-01.infra.openwrt.org>
References: <173185184013.1074103.11394145105266636471@git-01.infra.openwrt.org>
Message-ID: <mailman.1435.1731851845.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/da8abd4a1e86a37ddcd4fa0e6acc5bf8b1b4c70e

commit da8abd4a1e86a37ddcd4fa0e6acc5bf8b1b4c70e
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Sat Nov 16 11:01:15 2024 -0800

    kernel: remove GCC11_NO_ARRAY_BOUNDS
    
    This symbol is no longer present.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16770
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/bcm47xx/config-6.6          | 1 -
 target/linux/bcm4908/config-6.6          | 1 -
 target/linux/bcm53xx/config-6.6          | 1 -
 target/linux/imx/config-6.6              | 1 -
 target/linux/ipq40xx/config-6.6          | 1 -
 target/linux/ipq806x/config-6.6          | 1 -
 target/linux/kirkwood/config-6.6         | 1 -
 target/linux/layerscape/armv7/config-6.6 | 1 -
 target/linux/loongarch64/config-6.6      | 1 -
 target/linux/malta/config-6.6            | 1 -
 target/linux/mediatek/filogic/config-6.6 | 1 -
 target/linux/mediatek/mt7622/config-6.6  | 1 -
 target/linux/mediatek/mt7623/config-6.6  | 1 -
 target/linux/mediatek/mt7629/config-6.6  | 1 -
 target/linux/mpc85xx/config-6.6          | 1 -
 target/linux/mvebu/config-6.6            | 1 -
 target/linux/mxs/config-6.6              | 1 -
 target/linux/qualcommax/config-6.6       | 1 -
 target/linux/sifiveu/config-6.6          | 1 -
 target/linux/starfive/config-6.6         | 1 -
 target/linux/x86/config-6.6              | 1 -
 21 files changed, 21 deletions(-)

diff --git a/target/linux/bcm47xx/config-6.6 b/target/linux/bcm47xx/config-6.6
index 3b795941f3..dcf98603d7 100644
--- a/target/linux/bcm47xx/config-6.6
+++ b/target/linux/bcm47xx/config-6.6
@@ -66,7 +66,6 @@ CONFIG_FS_IOMAP=y
 CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/bcm4908/config-6.6 b/target/linux/bcm4908/config-6.6
index 0c604a1860..10e89cea81 100644
--- a/target/linux/bcm4908/config-6.6
+++ b/target/linux/bcm4908/config-6.6
@@ -94,7 +94,6 @@ CONFIG_FUNCTION_ALIGNMENT_4B=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
diff --git a/target/linux/bcm53xx/config-6.6 b/target/linux/bcm53xx/config-6.6
index 34dcf86e7b..cd62b0df58 100644
--- a/target/linux/bcm53xx/config-6.6
+++ b/target/linux/bcm53xx/config-6.6
@@ -140,7 +140,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
 # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
diff --git a/target/linux/imx/config-6.6 b/target/linux/imx/config-6.6
index f70e7e1501..75ad42c6df 100644
--- a/target/linux/imx/config-6.6
+++ b/target/linux/imx/config-6.6
@@ -194,7 +194,6 @@ CONFIG_FS_MBCACHE=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/ipq40xx/config-6.6 b/target/linux/ipq40xx/config-6.6
index 0ee2f433b1..69c2752894 100644
--- a/target/linux/ipq40xx/config-6.6
+++ b/target/linux/ipq40xx/config-6.6
@@ -165,7 +165,6 @@ CONFIG_FIX_EARLYCON_MEM=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/ipq806x/config-6.6 b/target/linux/ipq806x/config-6.6
index 88ec58e2c9..af5ccb11ac 100644
--- a/target/linux/ipq806x/config-6.6
+++ b/target/linux/ipq806x/config-6.6
@@ -155,7 +155,6 @@ CONFIG_FIX_EARLYCON_MEM=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/kirkwood/config-6.6 b/target/linux/kirkwood/config-6.6
index b3320dac1f..c5cfecd4e3 100644
--- a/target/linux/kirkwood/config-6.6
+++ b/target/linux/kirkwood/config-6.6
@@ -103,7 +103,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
diff --git a/target/linux/layerscape/armv7/config-6.6 b/target/linux/layerscape/armv7/config-6.6
index ee397fc7c6..0a244a85cd 100644
--- a/target/linux/layerscape/armv7/config-6.6
+++ b/target/linux/layerscape/armv7/config-6.6
@@ -232,7 +232,6 @@ CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
 # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
diff --git a/target/linux/loongarch64/config-6.6 b/target/linux/loongarch64/config-6.6
index 46a90c1284..5cbf1177cd 100644
--- a/target/linux/loongarch64/config-6.6
+++ b/target/linux/loongarch64/config-6.6
@@ -285,7 +285,6 @@ CONFIG_FW_CACHE=y
 # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
diff --git a/target/linux/malta/config-6.6 b/target/linux/malta/config-6.6
index 73db6cea21..f6d9049f4d 100644
--- a/target/linux/malta/config-6.6
+++ b/target/linux/malta/config-6.6
@@ -84,7 +84,6 @@ CONFIG_FS_MBCACHE=y
 CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/mediatek/filogic/config-6.6 b/target/linux/mediatek/filogic/config-6.6
index ba472b6ced..936f1009d9 100644
--- a/target/linux/mediatek/filogic/config-6.6
+++ b/target/linux/mediatek/filogic/config-6.6
@@ -168,7 +168,6 @@ CONFIG_FUNCTION_ALIGNMENT_4B=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
diff --git a/target/linux/mediatek/mt7622/config-6.6 b/target/linux/mediatek/mt7622/config-6.6
index e4a9e4b9cb..9440a7bb28 100644
--- a/target/linux/mediatek/mt7622/config-6.6
+++ b/target/linux/mediatek/mt7622/config-6.6
@@ -174,7 +174,6 @@ CONFIG_FUNCTION_ALIGNMENT_4B=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
diff --git a/target/linux/mediatek/mt7623/config-6.6 b/target/linux/mediatek/mt7623/config-6.6
index d04188f20c..dc31c230a2 100644
--- a/target/linux/mediatek/mt7623/config-6.6
+++ b/target/linux/mediatek/mt7623/config-6.6
@@ -240,7 +240,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/mediatek/mt7629/config-6.6 b/target/linux/mediatek/mt7629/config-6.6
index 384311dc71..d74e143c10 100644
--- a/target/linux/mediatek/mt7629/config-6.6
+++ b/target/linux/mediatek/mt7629/config-6.6
@@ -113,7 +113,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
diff --git a/target/linux/mpc85xx/config-6.6 b/target/linux/mpc85xx/config-6.6
index 14d5650fb5..c5563958a8 100644
--- a/target/linux/mpc85xx/config-6.6
+++ b/target/linux/mpc85xx/config-6.6
@@ -86,7 +86,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
diff --git a/target/linux/mvebu/config-6.6 b/target/linux/mvebu/config-6.6
index a4572d8a89..f132884d49 100644
--- a/target/linux/mvebu/config-6.6
+++ b/target/linux/mvebu/config-6.6
@@ -161,7 +161,6 @@ CONFIG_FS_MBCACHE=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/mxs/config-6.6 b/target/linux/mxs/config-6.6
index 76aecd17ff..b4bc5b3051 100644
--- a/target/linux/mxs/config-6.6
+++ b/target/linux/mxs/config-6.6
@@ -92,7 +92,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/qualcommax/config-6.6 b/target/linux/qualcommax/config-6.6
index 1d05868caf..ac2494d749 100644
--- a/target/linux/qualcommax/config-6.6
+++ b/target/linux/qualcommax/config-6.6
@@ -151,7 +151,6 @@ CONFIG_FUNCTION_ALIGNMENT_4B=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
diff --git a/target/linux/sifiveu/config-6.6 b/target/linux/sifiveu/config-6.6
index 2e5474ce2f..8ed8f766c8 100644
--- a/target/linux/sifiveu/config-6.6
+++ b/target/linux/sifiveu/config-6.6
@@ -118,7 +118,6 @@ CONFIG_FS_MBCACHE=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/starfive/config-6.6 b/target/linux/starfive/config-6.6
index 8ebced1165..ef71001663 100644
--- a/target/linux/starfive/config-6.6
+++ b/target/linux/starfive/config-6.6
@@ -190,7 +190,6 @@ CONFIG_FS_MBCACHE=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/x86/config-6.6 b/target/linux/x86/config-6.6
index 3d1c005138..1a68c589a5 100644
--- a/target/linux/x86/config-6.6
+++ b/target/linux/x86/config-6.6
@@ -137,7 +137,6 @@ CONFIG_FUSION_MAX_SGE=128
 CONFIG_FUSION_SPI=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 # CONFIG_GDS_FORCE_MITIGATION is not set
 CONFIG_GENERIC_ALLOCATOR=y



From lede-commits at lists.infradead.org  Sun Nov 17 05:57:21 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 17 Nov 2024 08:57:21 -0500
Subject: [openwrt/openwrt]  kernel: filter out compiler opts from config
In-Reply-To: <173185184013.1074103.11394145105266636471@git-01.infra.openwrt.org>
References: <173185184013.1074103.11394145105266636471@git-01.infra.openwrt.org>
Message-ID: <mailman.1438.1731851849.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/cd92cbddf8c473507a9af290c99f2aef8c368784

commit cd92cbddf8c473507a9af290c99f2aef8c368784
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Wed Oct 2 15:25:35 2024 -0700

    kernel: filter out compiler opts from config
    
    These get dynamically set based on compiler version. Not relevant for
    targets.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16770
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/airoha/an7581/config-6.6        | 3 ---
 target/linux/airoha/en7523/config-6.6        | 3 ---
 target/linux/apm821xx/config-6.6             | 3 ---
 target/linux/archs38/config-6.6              | 3 ---
 target/linux/at91/sam9x/config-6.6           | 3 ---
 target/linux/at91/sama5/config-6.6           | 3 ---
 target/linux/at91/sama7/config-6.6           | 3 ---
 target/linux/ath79/config-6.6                | 3 ---
 target/linux/bcm27xx/bcm2708/config-6.6      | 3 ---
 target/linux/bcm27xx/bcm2709/config-6.6      | 3 ---
 target/linux/bcm27xx/bcm2710/config-6.6      | 3 ---
 target/linux/bcm27xx/bcm2711/config-6.6      | 3 ---
 target/linux/bcm27xx/bcm2712/config-6.6      | 3 ---
 target/linux/bcm47xx/config-6.6              | 2 --
 target/linux/bcm4908/config-6.6              | 2 --
 target/linux/bcm53xx/config-6.6              | 2 --
 target/linux/bmips/bcm6318/config-6.6        | 3 ---
 target/linux/bmips/bcm63268/config-6.6       | 3 ---
 target/linux/bmips/bcm6328/config-6.6        | 3 ---
 target/linux/bmips/bcm6358/config-6.6        | 3 ---
 target/linux/bmips/bcm6362/config-6.6        | 3 ---
 target/linux/bmips/bcm6368/config-6.6        | 3 ---
 target/linux/d1/config-6.6                   | 2 --
 target/linux/gemini/config-6.6               | 3 ---
 target/linux/generic/config-filter           | 3 +++
 target/linux/imx/config-6.6                  | 2 --
 target/linux/ipq40xx/config-6.6              | 2 --
 target/linux/ipq806x/config-6.6              | 2 --
 target/linux/ixp4xx/config-6.6               | 3 ---
 target/linux/kirkwood/config-6.6             | 2 --
 target/linux/lantiq/config-6.6               | 3 ---
 target/linux/layerscape/armv7/config-6.6     | 2 --
 target/linux/layerscape/armv8_64b/config-6.6 | 3 ---
 target/linux/loongarch64/config-6.6          | 2 --
 target/linux/malta/config-6.6                | 2 --
 target/linux/mediatek/filogic/config-6.6     | 2 --
 target/linux/mediatek/mt7622/config-6.6      | 2 --
 target/linux/mediatek/mt7623/config-6.6      | 2 --
 target/linux/mediatek/mt7629/config-6.6      | 2 --
 target/linux/mpc85xx/config-6.6              | 2 --
 target/linux/mvebu/config-6.6                | 2 --
 target/linux/mxs/config-6.6                  | 2 --
 target/linux/octeon/config-6.6               | 3 ---
 target/linux/omap/config-6.6                 | 3 ---
 target/linux/pistachio/config-6.6            | 3 ---
 target/linux/qoriq/config-6.6                | 3 ---
 target/linux/qualcommax/config-6.6           | 2 --
 target/linux/ramips/mt7620/config-6.6        | 3 ---
 target/linux/ramips/mt7621/config-6.6        | 3 ---
 target/linux/ramips/mt76x8/config-6.6        | 3 ---
 target/linux/ramips/rt288x/config-6.6        | 3 ---
 target/linux/ramips/rt305x/config-6.6        | 3 ---
 target/linux/ramips/rt3883/config-6.6        | 3 ---
 target/linux/rockchip/armv8/config-6.6       | 3 ---
 target/linux/sifiveu/config-6.6              | 2 --
 target/linux/siflower/sf19a2890/config-6.6   | 3 ---
 target/linux/starfive/config-6.6             | 2 --
 target/linux/tegra/config-6.6                | 3 ---
 target/linux/x86/config-6.6                  | 2 --
 target/linux/zynq/config-6.6                 | 3 ---
 60 files changed, 3 insertions(+), 155 deletions(-)

diff --git a/target/linux/airoha/an7581/config-6.6 b/target/linux/airoha/an7581/config-6.6
index 5001de9b19..b26cbeeb33 100644
--- a/target/linux/airoha/an7581/config-6.6
+++ b/target/linux/airoha/an7581/config-6.6
@@ -111,8 +111,6 @@ CONFIG_CAVIUM_ERRATUM_30115=y
 CONFIG_CAVIUM_TX2_ERRATUM_219=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 # CONFIG_CFS_BANDWIDTH is not set
 CONFIG_CGROUPS=y
 CONFIG_CGROUP_CPUACCT=y
@@ -232,7 +230,6 @@ CONFIG_FUNCTION_ALIGNMENT_4B=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 # CONFIG_FW_LOADER_USER_HELPER is not set
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
diff --git a/target/linux/airoha/en7523/config-6.6 b/target/linux/airoha/en7523/config-6.6
index ce93f7d9ff..a40b61696a 100644
--- a/target/linux/airoha/en7523/config-6.6
+++ b/target/linux/airoha/en7523/config-6.6
@@ -45,8 +45,6 @@ CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
 CONFIG_CACHE_L2X0=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE="rootfstype=squashfs,jffs2"
 CONFIG_CMDLINE_FROM_BOOTLOADER=y
@@ -102,7 +100,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
diff --git a/target/linux/apm821xx/config-6.6 b/target/linux/apm821xx/config-6.6
index 33e586632c..a9c9a952c8 100644
--- a/target/linux/apm821xx/config-6.6
+++ b/target/linux/apm821xx/config-6.6
@@ -34,8 +34,6 @@ CONFIG_BOOKE=y
 CONFIG_BOOKE_OR_40x=y
 CONFIG_BOOKE_WDT=y
 # CONFIG_CANYONLANDS is not set
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE="rootfstype=squashfs noinitrd"
 CONFIG_CMDLINE_FROM_BOOTLOADER=y
@@ -83,7 +81,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/archs38/config-6.6 b/target/linux/archs38/config-6.6
index 6298ce9e46..dab1b855b9 100644
--- a/target/linux/archs38/config-6.6
+++ b/target/linux/archs38/config-6.6
@@ -47,8 +47,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16
 CONFIG_BLK_DEV_RAM_SIZE=4096
 CONFIG_BLK_DEV_SD=y
 CONFIG_BUFFER_HEAD=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLK_HSDK=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_COMMON_CLK=y
@@ -103,7 +101,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CSUM=y
diff --git a/target/linux/at91/sam9x/config-6.6 b/target/linux/at91/sam9x/config-6.6
index d5cfa5f753..2631f0feea 100644
--- a/target/linux/at91/sam9x/config-6.6
+++ b/target/linux/at91/sam9x/config-6.6
@@ -44,8 +44,6 @@ CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y
 CONFIG_BLK_PM=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_COMMON_CLK=y
 CONFIG_COMMON_CLK_AT91=y
@@ -109,7 +107,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/at91/sama5/config-6.6 b/target/linux/at91/sama5/config-6.6
index 04eee7a210..d04e10f9e1 100644
--- a/target/linux/at91/sama5/config-6.6
+++ b/target/linux/at91/sama5/config-6.6
@@ -54,8 +54,6 @@ CONFIG_BLK_PM=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_CACHE_L2X0=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMA=y
 CONFIG_CMA_ALIGNMENT=8
@@ -181,7 +179,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/at91/sama7/config-6.6 b/target/linux/at91/sama7/config-6.6
index e3455c5e37..c69cbdf767 100644
--- a/target/linux/at91/sama7/config-6.6
+++ b/target/linux/at91/sama7/config-6.6
@@ -45,8 +45,6 @@ CONFIG_BUFFER_HEAD=y
 # CONFIG_CACHE_L2X0 is not set
 CONFIG_CAN=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMA=y
 CONFIG_CMA_ALIGNMENT=9
@@ -162,7 +160,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/ath79/config-6.6 b/target/linux/ath79/config-6.6
index 92057c343c..c43dbfd719 100644
--- a/target/linux/ath79/config-6.6
+++ b/target/linux/ath79/config-6.6
@@ -14,8 +14,6 @@ CONFIG_AT803X_PHY=y
 CONFIG_ATH79=y
 CONFIG_ATH79_WDT=y
 CONFIG_BLK_MQ_PCI=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE="rootfstype=squashfs,jffs2"
@@ -58,7 +56,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/bcm27xx/bcm2708/config-6.6 b/target/linux/bcm27xx/bcm2708/config-6.6
index 4872e44642..b587b5d719 100644
--- a/target/linux/bcm27xx/bcm2708/config-6.6
+++ b/target/linux/bcm27xx/bcm2708/config-6.6
@@ -55,8 +55,6 @@ CONFIG_BRCM_CHAR_DRIVERS=y
 CONFIG_BUFFER_HEAD=y
 # CONFIG_CACHE_L2X0 is not set
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLK_BCM2711_DVP=y
 CONFIG_CLK_BCM2835=y
@@ -172,7 +170,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/bcm27xx/bcm2709/config-6.6 b/target/linux/bcm27xx/bcm2709/config-6.6
index 23e93241df..4a295d52c8 100644
--- a/target/linux/bcm27xx/bcm2709/config-6.6
+++ b/target/linux/bcm27xx/bcm2709/config-6.6
@@ -69,8 +69,6 @@ CONFIG_BROADCOM_PHY=y
 CONFIG_BUFFER_HEAD=y
 # CONFIG_CACHE_L2X0 is not set
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLK_BCM2711_DVP=y
 CONFIG_CLK_BCM2835=y
@@ -211,7 +209,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/bcm27xx/bcm2710/config-6.6 b/target/linux/bcm27xx/bcm2710/config-6.6
index 5b7d6ae4f1..97f2f110b0 100644
--- a/target/linux/bcm27xx/bcm2710/config-6.6
+++ b/target/linux/bcm27xx/bcm2710/config-6.6
@@ -85,8 +85,6 @@ CONFIG_CAVIUM_ERRATUM_23154=y
 CONFIG_CAVIUM_ERRATUM_27456=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLK_BCM2711_DVP=y
 CONFIG_CLK_BCM2835=y
@@ -218,7 +216,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
diff --git a/target/linux/bcm27xx/bcm2711/config-6.6 b/target/linux/bcm27xx/bcm2711/config-6.6
index 270763549a..f9b7469607 100644
--- a/target/linux/bcm27xx/bcm2711/config-6.6
+++ b/target/linux/bcm27xx/bcm2711/config-6.6
@@ -84,8 +84,6 @@ CONFIG_CAVIUM_ERRATUM_23154=y
 CONFIG_CAVIUM_ERRATUM_27456=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLK_BCM2711_DVP=y
 CONFIG_CLK_BCM2835=y
@@ -219,7 +217,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_NUMA=y
diff --git a/target/linux/bcm27xx/bcm2712/config-6.6 b/target/linux/bcm27xx/bcm2712/config-6.6
index a5eb6c4d0e..5abc41ff68 100644
--- a/target/linux/bcm27xx/bcm2712/config-6.6
+++ b/target/linux/bcm27xx/bcm2712/config-6.6
@@ -110,8 +110,6 @@ CONFIG_BUFFER_HEAD=y
 CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLK_BCM2711_DVP=y
 CONFIG_CLK_BCM2835=y
@@ -262,7 +260,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_NUMA=y
diff --git a/target/linux/bcm47xx/config-6.6 b/target/linux/bcm47xx/config-6.6
index dcf98603d7..ec549f6e33 100644
--- a/target/linux/bcm47xx/config-6.6
+++ b/target/linux/bcm47xx/config-6.6
@@ -27,8 +27,6 @@ CONFIG_BCMA_PFLASH=y
 CONFIG_BCMA_SFLASH=y
 # CONFIG_BGMAC_BCMA is not set
 CONFIG_BLK_MQ_PCI=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE="noinitrd console=ttyS0,115200"
diff --git a/target/linux/bcm4908/config-6.6 b/target/linux/bcm4908/config-6.6
index 10e89cea81..02eb2f2ce6 100644
--- a/target/linux/bcm4908/config-6.6
+++ b/target/linux/bcm4908/config-6.6
@@ -49,8 +49,6 @@ CONFIG_BLK_PM=y
 CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLK_BCM_63XX=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE="earlycon=bcm63xx_uart,0xff800640 console=ttyS0,115200"
diff --git a/target/linux/bcm53xx/config-6.6 b/target/linux/bcm53xx/config-6.6
index cd62b0df58..9e3211801c 100644
--- a/target/linux/bcm53xx/config-6.6
+++ b/target/linux/bcm53xx/config-6.6
@@ -73,8 +73,6 @@ CONFIG_BOUNCE=y
 CONFIG_BROADCOM_PHY=y
 CONFIG_CACHE_L2X0=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y
 CONFIG_CLKSRC_MMIO=y
 # CONFIG_CLK_BCM_NS2 is not set
diff --git a/target/linux/bmips/bcm6318/config-6.6 b/target/linux/bmips/bcm6318/config-6.6
index 665e7f2847..ae4516cdcc 100644
--- a/target/linux/bmips/bcm6318/config-6.6
+++ b/target/linux/bmips/bcm6318/config-6.6
@@ -17,8 +17,6 @@ CONFIG_BCM7038_WDT=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_BLK_PM=y
 CONFIG_BMIPS_GENERIC=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 # CONFIG_CLK_BCM63268_TIMER is not set
 CONFIG_CLK_BCM_63XX_GATE=y
@@ -86,7 +84,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CFE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/bmips/bcm63268/config-6.6 b/target/linux/bmips/bcm63268/config-6.6
index 8e060fd77c..e71c70dce9 100644
--- a/target/linux/bmips/bcm63268/config-6.6
+++ b/target/linux/bmips/bcm63268/config-6.6
@@ -17,8 +17,6 @@ CONFIG_BCM7038_WDT=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_BLK_PM=y
 CONFIG_BMIPS_GENERIC=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLK_BCM63268_TIMER=y
 CONFIG_CLK_BCM_63XX_GATE=y
@@ -87,7 +85,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CFE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/bmips/bcm6328/config-6.6 b/target/linux/bmips/bcm6328/config-6.6
index 95d0ce6c9e..c069c11d9b 100644
--- a/target/linux/bmips/bcm6328/config-6.6
+++ b/target/linux/bmips/bcm6328/config-6.6
@@ -17,8 +17,6 @@ CONFIG_BCM7038_WDT=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_BLK_PM=y
 CONFIG_BMIPS_GENERIC=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 # CONFIG_CLK_BCM63268_TIMER is not set
 CONFIG_CLK_BCM_63XX_GATE=y
@@ -87,7 +85,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CFE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/bmips/bcm6358/config-6.6 b/target/linux/bmips/bcm6358/config-6.6
index 8247e65e34..0b3c0dd701 100644
--- a/target/linux/bmips/bcm6358/config-6.6
+++ b/target/linux/bmips/bcm6358/config-6.6
@@ -15,8 +15,6 @@ CONFIG_BCM7038_WDT=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_BLK_PM=y
 CONFIG_BMIPS_GENERIC=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 # CONFIG_CLK_BCM63268_TIMER is not set
 CONFIG_CLK_BCM_63XX_GATE=y
@@ -84,7 +82,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CFE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/bmips/bcm6362/config-6.6 b/target/linux/bmips/bcm6362/config-6.6
index c47f72c1b6..5e6a936ab1 100644
--- a/target/linux/bmips/bcm6362/config-6.6
+++ b/target/linux/bmips/bcm6362/config-6.6
@@ -17,8 +17,6 @@ CONFIG_BCM7038_WDT=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_BLK_PM=y
 CONFIG_BMIPS_GENERIC=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 # CONFIG_CLK_BCM63268_TIMER is not set
 CONFIG_CLK_BCM_63XX_GATE=y
@@ -87,7 +85,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CFE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/bmips/bcm6368/config-6.6 b/target/linux/bmips/bcm6368/config-6.6
index 204b1628a4..e214d9a0f1 100644
--- a/target/linux/bmips/bcm6368/config-6.6
+++ b/target/linux/bmips/bcm6368/config-6.6
@@ -16,8 +16,6 @@ CONFIG_BCM7038_WDT=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_BLK_PM=y
 CONFIG_BMIPS_GENERIC=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 # CONFIG_CLK_BCM63268_TIMER is not set
 CONFIG_CLK_BCM_63XX_GATE=y
@@ -86,7 +84,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CFE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/d1/config-6.6 b/target/linux/d1/config-6.6
index 5a5b4c3d36..7330cc0e24 100644
--- a/target/linux/d1/config-6.6
+++ b/target/linux/d1/config-6.6
@@ -22,8 +22,6 @@ CONFIG_ASSOCIATIVE_ARRAY=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CLZ_TAB=y
diff --git a/target/linux/gemini/config-6.6 b/target/linux/gemini/config-6.6
index a93297a423..2e590540af 100644
--- a/target/linux/gemini/config-6.6
+++ b/target/linux/gemini/config-6.6
@@ -35,8 +35,6 @@ CONFIG_BOUNCE=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_CACHESTAT_SYSCALL=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMA=y
@@ -187,7 +185,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
 # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GEMINI_ETHERNET=y
 CONFIG_GENERIC_ALLOCATOR=y
diff --git a/target/linux/generic/config-filter b/target/linux/generic/config-filter
index e72c334ee7..274c31ecb0 100644
--- a/target/linux/generic/config-filter
+++ b/target/linux/generic/config-filter
@@ -3,8 +3,11 @@
 # CONFIG_ARM64_CONT_.*_SHIFT is not set
 # CONFIG_AS_.* is not set
 # CONFIG_CC_(CAN|HAS|IS|VERSION)_.* is not set
+# CONFIG_CC_IMPLICIT_FALLTHROUGH is not set
+# CONFIG_CC_NO_ARRAY_BOUNDS is not set
 CONFIG_CLANG_VERSION=.*
 CONFIG_FRAME_WARN=.*
+# CONFIG_GCC10_NO_ARRAY_BOUNDS is not set
 # CONFIG_GCC_VERSION is not set
 # CONFIG_HAVE_(?!(ARCH_TIMER|TCM|SMP)).* is not set
 # CONFIG_INLINE_.* is not set
diff --git a/target/linux/imx/config-6.6 b/target/linux/imx/config-6.6
index 75ad42c6df..fb841686ff 100644
--- a/target/linux/imx/config-6.6
+++ b/target/linux/imx/config-6.6
@@ -44,8 +44,6 @@ CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_PM=y
 CONFIG_CACHE_L2X0=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_IMX_GPT=y
 CONFIG_CLKSRC_MMIO=y
 # CONFIG_CLK_IMX8MM is not set
diff --git a/target/linux/ipq40xx/config-6.6 b/target/linux/ipq40xx/config-6.6
index 69c2752894..d1c181cd0d 100644
--- a/target/linux/ipq40xx/config-6.6
+++ b/target/linux/ipq40xx/config-6.6
@@ -52,8 +52,6 @@ CONFIG_BLK_MQ_PCI=y
 CONFIG_BOUNCE=y
 # CONFIG_CACHE_L2X0 is not set
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_QCOM=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE_PARTITION=y
diff --git a/target/linux/ipq806x/config-6.6 b/target/linux/ipq806x/config-6.6
index af5ccb11ac..bc3761b2e5 100644
--- a/target/linux/ipq806x/config-6.6
+++ b/target/linux/ipq806x/config-6.6
@@ -57,8 +57,6 @@ CONFIG_BLK_MQ_PCI=y
 CONFIG_BOUNCE=y
 # CONFIG_CACHE_L2X0 is not set
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_QCOM=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE_OVERRIDE=y
diff --git a/target/linux/ixp4xx/config-6.6 b/target/linux/ixp4xx/config-6.6
index 960012ada4..84a72c8d5c 100644
--- a/target/linux/ixp4xx/config-6.6
+++ b/target/linux/ixp4xx/config-6.6
@@ -32,8 +32,6 @@ CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_COMMON_CLK=y
@@ -88,7 +86,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
diff --git a/target/linux/kirkwood/config-6.6 b/target/linux/kirkwood/config-6.6
index c5cfecd4e3..751d3e6a1b 100644
--- a/target/linux/kirkwood/config-6.6
+++ b/target/linux/kirkwood/config-6.6
@@ -38,8 +38,6 @@ CONFIG_BLK_MQ_PCI=y
 CONFIG_CACHE_FEROCEON_L2=y
 # CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_COMMON_CLK=y
diff --git a/target/linux/lantiq/config-6.6 b/target/linux/lantiq/config-6.6
index 1890d82ff8..2bc5b92ce8 100644
--- a/target/linux/lantiq/config-6.6
+++ b/target/linux/lantiq/config-6.6
@@ -4,8 +4,6 @@ CONFIG_ARCH_KEEP_MEMBLOCK=y
 CONFIG_ARCH_MMAP_RND_BITS_MAX=15
 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
@@ -44,7 +42,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/layerscape/armv7/config-6.6 b/target/linux/layerscape/armv7/config-6.6
index 0a244a85cd..be8eca1bf7 100644
--- a/target/linux/layerscape/armv7/config-6.6
+++ b/target/linux/layerscape/armv7/config-6.6
@@ -77,8 +77,6 @@ CONFIG_BROADCOM_PHY=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_CACHE_L2X0=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CDROM=y
 CONFIG_CHECKPOINT_RESTORE=y
 CONFIG_CHR_DEV_SG=y
diff --git a/target/linux/layerscape/armv8_64b/config-6.6 b/target/linux/layerscape/armv8_64b/config-6.6
index 3c052edb7d..55b9d9b934 100644
--- a/target/linux/layerscape/armv8_64b/config-6.6
+++ b/target/linux/layerscape/armv8_64b/config-6.6
@@ -110,8 +110,6 @@ CONFIG_CAVIUM_ERRATUM_23154=y
 CONFIG_CAVIUM_ERRATUM_27456=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CHECKPOINT_RESTORE=y
 CONFIG_CHROME_PLATFORMS=y
 CONFIG_CLK_LS1028A_PLLDIG=y
@@ -330,7 +328,6 @@ CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
 # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
 CONFIG_GARP=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
diff --git a/target/linux/loongarch64/config-6.6 b/target/linux/loongarch64/config-6.6
index 5cbf1177cd..57bc7d5691 100644
--- a/target/linux/loongarch64/config-6.6
+++ b/target/linux/loongarch64/config-6.6
@@ -93,8 +93,6 @@ CONFIG_BSD_PROCESS_ACCT_V3=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_BUG_ON_DATA_CORRUPTION=y
 CONFIG_CACHESTAT_SYSCALL=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CDROM=y
 CONFIG_CFS_BANDWIDTH=y
 CONFIG_CGROUPS=y
diff --git a/target/linux/malta/config-6.6 b/target/linux/malta/config-6.6
index f6d9049f4d..a635e2c39e 100644
--- a/target/linux/malta/config-6.6
+++ b/target/linux/malta/config-6.6
@@ -21,8 +21,6 @@ CONFIG_BOARD_SCACHE=y
 CONFIG_BOOT_ELF32=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_BUILTIN_DTB=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLKBLD_I8253=y
 CONFIG_CLKEVT_I8253=y
diff --git a/target/linux/mediatek/filogic/config-6.6 b/target/linux/mediatek/filogic/config-6.6
index 936f1009d9..408ac5483e 100644
--- a/target/linux/mediatek/filogic/config-6.6
+++ b/target/linux/mediatek/filogic/config-6.6
@@ -56,8 +56,6 @@ CONFIG_BUFFER_HEAD=y
 CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE_OVERRIDE=y
diff --git a/target/linux/mediatek/mt7622/config-6.6 b/target/linux/mediatek/mt7622/config-6.6
index 9440a7bb28..ec3be8df9a 100644
--- a/target/linux/mediatek/mt7622/config-6.6
+++ b/target/linux/mediatek/mt7622/config-6.6
@@ -56,8 +56,6 @@ CONFIG_BUFFER_HEAD=y
 CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
 # CONFIG_CMDLINE_OVERRIDE is not set
diff --git a/target/linux/mediatek/mt7623/config-6.6 b/target/linux/mediatek/mt7623/config-6.6
index dc31c230a2..6bc92a09dc 100644
--- a/target/linux/mediatek/mt7623/config-6.6
+++ b/target/linux/mediatek/mt7623/config-6.6
@@ -52,8 +52,6 @@ CONFIG_BOUNCE=y
 CONFIG_BUFFER_HEAD=y
 # CONFIG_CACHE_L2X0 is not set
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE="earlyprintk console=ttyS0,115200 rootfstype=squashfs,jffs2"
diff --git a/target/linux/mediatek/mt7629/config-6.6 b/target/linux/mediatek/mt7629/config-6.6
index d74e143c10..9f57bda3e9 100644
--- a/target/linux/mediatek/mt7629/config-6.6
+++ b/target/linux/mediatek/mt7629/config-6.6
@@ -37,8 +37,6 @@ CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
 CONFIG_CACHE_L2X0=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 # CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set
 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 CONFIG_CHR_DEV_SCH=y
diff --git a/target/linux/mpc85xx/config-6.6 b/target/linux/mpc85xx/config-6.6
index c5563958a8..132917bf2b 100644
--- a/target/linux/mpc85xx/config-6.6
+++ b/target/linux/mpc85xx/config-6.6
@@ -29,8 +29,6 @@ CONFIG_BOOKE_WDT=y
 # CONFIG_BSC9131_RDB is not set
 # CONFIG_BSC9132_QDS is not set
 # CONFIG_C293_PCIE is not set
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CLZ_TAB=y
 CONFIG_CMDLINE="console=ttyS0,115200"
diff --git a/target/linux/mvebu/config-6.6 b/target/linux/mvebu/config-6.6
index f132884d49..bb29d80c5c 100644
--- a/target/linux/mvebu/config-6.6
+++ b/target/linux/mvebu/config-6.6
@@ -57,8 +57,6 @@ CONFIG_BOUNCE=y
 # CONFIG_CACHE_FEROCEON_L2 is not set
 CONFIG_CACHE_L2X0=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
diff --git a/target/linux/mxs/config-6.6 b/target/linux/mxs/config-6.6
index b4bc5b3051..b954ea2548 100644
--- a/target/linux/mxs/config-6.6
+++ b/target/linux/mxs/config-6.6
@@ -32,8 +32,6 @@ CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y
 CONFIG_BLK_PM=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE="console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootwait"
diff --git a/target/linux/octeon/config-6.6 b/target/linux/octeon/config-6.6
index 724361d5ea..cc2dadbe9c 100644
--- a/target/linux/octeon/config-6.6
+++ b/target/linux/octeon/config-6.6
@@ -25,8 +25,6 @@ CONFIG_CAVIUM_OCTEON_LOCK_L2_MEMCPY=y
 CONFIG_CAVIUM_OCTEON_LOCK_L2_TLB=y
 CONFIG_CAVIUM_OCTEON_SOC=y
 CONFIG_CAVIUM_RESERVE32=0
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLONE_BACKWARDS=y
 # CONFIG_COMMON_CLK is not set
@@ -90,7 +88,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/omap/config-6.6 b/target/linux/omap/config-6.6
index f85a68f0aa..5f19df0d8b 100644
--- a/target/linux/omap/config-6.6
+++ b/target/linux/omap/config-6.6
@@ -66,8 +66,6 @@ CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_CACHE_L2X0=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEC_CORE=y
 # CONFIG_CHARGER_TPS65217 is not set
 CONFIG_CLKSRC_MMIO=y
@@ -244,7 +242,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/pistachio/config-6.6 b/target/linux/pistachio/config-6.6
index 80ff36ebbb..69c566a1e8 100644
--- a/target/linux/pistachio/config-6.6
+++ b/target/linux/pistachio/config-6.6
@@ -10,8 +10,6 @@ CONFIG_BLK_DEV_SD=y
 CONFIG_BOARD_SCACHE=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_BUILTIN_DTB=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLKSRC_MIPS_GIC=y
 CONFIG_CLKSRC_PISTACHIO=y
@@ -102,7 +100,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/qoriq/config-6.6 b/target/linux/qoriq/config-6.6
index 750e6c6551..28ece0679f 100644
--- a/target/linux/qoriq/config-6.6
+++ b/target/linux/qoriq/config-6.6
@@ -29,8 +29,6 @@ CONFIG_BOOKE=y
 CONFIG_BOOKE_OR_40x=y
 CONFIG_BOOKE_WDT=y
 CONFIG_BUFFER_HEAD=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLK_QORIQ=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CLZ_TAB=y
@@ -148,7 +146,6 @@ CONFIG_FUNCTION_ERROR_INJECTION=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
diff --git a/target/linux/qualcommax/config-6.6 b/target/linux/qualcommax/config-6.6
index ac2494d749..ac5059682a 100644
--- a/target/linux/qualcommax/config-6.6
+++ b/target/linux/qualcommax/config-6.6
@@ -65,8 +65,6 @@ CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
 CONFIG_CAVIUM_TX2_ERRATUM_219=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_COMMON_CLK=y
 CONFIG_COMMON_CLK_QCOM=y
diff --git a/target/linux/ramips/mt7620/config-6.6 b/target/linux/ramips/mt7620/config-6.6
index 2c95b9c960..edd64a642c 100644
--- a/target/linux/ramips/mt7620/config-6.6
+++ b/target/linux/ramips/mt7620/config-6.6
@@ -6,8 +6,6 @@ CONFIG_ARCH_MMAP_RND_BITS_MAX=15
 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_BLK_MQ_PCI=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CEVT_SYSTICK_QUIRK=y
 CONFIG_CLKEVT_RT3352=y
@@ -60,7 +58,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/ramips/mt7621/config-6.6 b/target/linux/ramips/mt7621/config-6.6
index d1ca85aebd..7a3e68ef45 100644
--- a/target/linux/ramips/mt7621/config-6.6
+++ b/target/linux/ramips/mt7621/config-6.6
@@ -7,8 +7,6 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_AT803X_PHY=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_BOARD_SCACHE=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLKSRC_MIPS_GIC=y
 CONFIG_CLK_MT7621=y
@@ -65,7 +63,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/ramips/mt76x8/config-6.6 b/target/linux/ramips/mt76x8/config-6.6
index bf57a7a330..31dc4a980f 100644
--- a/target/linux/ramips/mt76x8/config-6.6
+++ b/target/linux/ramips/mt76x8/config-6.6
@@ -5,8 +5,6 @@ CONFIG_ARCH_MMAP_RND_BITS_MAX=15
 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_BLK_MQ_PCI=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CEVT_SYSTICK_QUIRK=y
 CONFIG_CLKEVT_RT3352=y
@@ -58,7 +56,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/ramips/rt288x/config-6.6 b/target/linux/ramips/rt288x/config-6.6
index 986bd1ef3e..0c9798b9f3 100644
--- a/target/linux/ramips/rt288x/config-6.6
+++ b/target/linux/ramips/rt288x/config-6.6
@@ -5,8 +5,6 @@ CONFIG_ARCH_MMAP_RND_BITS_MAX=15
 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_BLK_MQ_PCI=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLK_MTMIPS=y
 CONFIG_CLONE_BACKWARDS=y
@@ -51,7 +49,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/ramips/rt305x/config-6.6 b/target/linux/ramips/rt305x/config-6.6
index 9b34b94cff..6f7b7ea2a1 100644
--- a/target/linux/ramips/rt305x/config-6.6
+++ b/target/linux/ramips/rt305x/config-6.6
@@ -4,8 +4,6 @@ CONFIG_ARCH_KEEP_MEMBLOCK=y
 CONFIG_ARCH_MMAP_RND_BITS_MAX=15
 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CEVT_SYSTICK_QUIRK=y
 CONFIG_CLKEVT_RT3352=y
@@ -54,7 +52,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/ramips/rt3883/config-6.6 b/target/linux/ramips/rt3883/config-6.6
index 7b3f6916ac..4b768bfb77 100644
--- a/target/linux/ramips/rt3883/config-6.6
+++ b/target/linux/ramips/rt3883/config-6.6
@@ -6,8 +6,6 @@ CONFIG_ARCH_MMAP_RND_BITS_MAX=15
 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_BLK_MQ_PCI=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLK_MTMIPS=y
 CONFIG_CLONE_BACKWARDS=y
@@ -54,7 +52,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/rockchip/armv8/config-6.6 b/target/linux/rockchip/armv8/config-6.6
index fddc85f9d7..56fb2f96a1 100644
--- a/target/linux/rockchip/armv8/config-6.6
+++ b/target/linux/rockchip/armv8/config-6.6
@@ -118,8 +118,6 @@ CONFIG_BUFFER_HEAD=y
 CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CHARGER_GPIO=y
 # CONFIG_CHARGER_RK817 is not set
 CONFIG_CLKSRC_MMIO=y
@@ -259,7 +257,6 @@ CONFIG_FUNCTION_ALIGNMENT_4B=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
diff --git a/target/linux/sifiveu/config-6.6 b/target/linux/sifiveu/config-6.6
index 8ed8f766c8..595090be19 100644
--- a/target/linux/sifiveu/config-6.6
+++ b/target/linux/sifiveu/config-6.6
@@ -23,8 +23,6 @@ CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_CAVIUM_PTP=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLK_ANALOGBITS_WRPLL_CLN28HPC=y
 CONFIG_CLK_SIFIVE=y
 CONFIG_CLK_SIFIVE_PRCI=y
diff --git a/target/linux/siflower/sf19a2890/config-6.6 b/target/linux/siflower/sf19a2890/config-6.6
index bec75436e0..2e15ca67d4 100644
--- a/target/linux/siflower/sf19a2890/config-6.6
+++ b/target/linux/siflower/sf19a2890/config-6.6
@@ -7,8 +7,6 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_ARM_AMBA=y
 CONFIG_BLK_DEV_LOOP=y
 CONFIG_BOARD_SCACHE=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLKSRC_MIPS_GIC=y
 CONFIG_CLK_SF19A2890=y
@@ -69,7 +67,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/starfive/config-6.6 b/target/linux/starfive/config-6.6
index ef71001663..457fa86b9a 100644
--- a/target/linux/starfive/config-6.6
+++ b/target/linux/starfive/config-6.6
@@ -27,8 +27,6 @@ CONFIG_AUXILIARY_BUS=y
 # CONFIG_AX45MP_L2_CACHE is not set
 # CONFIG_BT_AICUSB is not set
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CHECKPOINT_RESTORE=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLK_ANALOGBITS_WRPLL_CLN28HPC=y
diff --git a/target/linux/tegra/config-6.6 b/target/linux/tegra/config-6.6
index 9cecf9f693..a98d81c92d 100644
--- a/target/linux/tegra/config-6.6
+++ b/target/linux/tegra/config-6.6
@@ -56,8 +56,6 @@ CONFIG_BOUNCE=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_CACHE_L2X0=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CLZ_TAB=y
@@ -210,7 +208,6 @@ CONFIG_FS_MBCACHE=y
 CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
diff --git a/target/linux/x86/config-6.6 b/target/linux/x86/config-6.6
index 1a68c589a5..b3d15bc104 100644
--- a/target/linux/x86/config-6.6
+++ b/target/linux/x86/config-6.6
@@ -33,8 +33,6 @@ CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_BOUNCE=y
 CONFIG_BUFFER_HEAD=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKBLD_I8253=y
 CONFIG_CLKEVT_I8253=y
 CONFIG_CLKSRC_I8253=y
diff --git a/target/linux/zynq/config-6.6 b/target/linux/zynq/config-6.6
index 15716a12cd..69a31d254b 100644
--- a/target/linux/zynq/config-6.6
+++ b/target/linux/zynq/config-6.6
@@ -59,8 +59,6 @@ CONFIG_CACHE_L2X0=y
 CONFIG_CADENCE_TTC_TIMER=y
 CONFIG_CADENCE_WATCHDOG=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLKSRC_VERSATILE=y
@@ -191,7 +189,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
 CONFIG_GENERIC_BUG=y



From lede-commits at lists.infradead.org  Sun Nov 17 07:27:07 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 17 Nov 2024 10:27:07 -0500
Subject: [openwrt/openwrt]  ath79: lzma-loader: fix syntax error
In-Reply-To: <173185722723.1270293.2458476227982139149@git-01.infra.openwrt.org>
References: <173185722723.1270293.2458476227982139149@git-01.infra.openwrt.org>
Message-ID: <mailman.1441.1731857231.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/98f26346cbbb45e5c0417f57846ce1783e884ea2

commit 98f26346cbbb45e5c0417f57846ce1783e884ea2
Author: Shiji Yang <yangshiji66 at qq.com>
AuthorDate: Sun Nov 17 19:30:35 2024 +0800

    ath79: lzma-loader: fix syntax error
    
    C compiler can't parse '#else if'.
    
    Fixes: f84a9f7dc095 ("ath79: add support for Huawei AP6010DN")
    Signed-off-by: Shiji Yang <yangshiji66 at qq.com>
    Link: https://github.com/openwrt/openwrt/pull/16989
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/ath79/image/lzma-loader/src/board.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/linux/ath79/image/lzma-loader/src/board.c b/target/linux/ath79/image/lzma-loader/src/board.c
index 1445108508..294ca307d5 100644
--- a/target/linux/ath79/image/lzma-loader/src/board.c
+++ b/target/linux/ath79/image/lzma-loader/src/board.c
@@ -209,7 +209,7 @@ static inline void huawei_ap_init(void)
 #if defined(CONFIG_BOARD_HUAWEI_AP5030DN)
 	WRITEREG(gpiobase + AR934X_GPIO_REG_OUT_FUNC3,
 			reg | (QCA955X_GPIO_OUTSEL_CLK_OBS5 << 24));
-#else if defined(CONFIG_BOARD_HUAWEI_AP6010DN)
+#elif defined(CONFIG_BOARD_HUAWEI_AP6010DN)
 	WRITEREG(gpiobase + AR934X_GPIO_REG_OUT_FUNC3,
 			reg | (AR934X_GPIO_OUTSEL_CLK_OBS4 << 24));
 #endif



From lede-commits at lists.infradead.org  Sun Nov 17 07:43:00 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 17 Nov 2024 10:43:00 -0500
Subject: [openwrt/openwrt]  dropbear: use config_get_bool enable
In-Reply-To: <173185818074.1324572.9122129431658968885@git-01.infra.openwrt.org>
References: <173185818074.1324572.9122129431658968885@git-01.infra.openwrt.org>
Message-ID: <mailman.1444.1731858184.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/4511fa4b30f73185597990ce563bbf3f96385292

commit 4511fa4b30f73185597990ce563bbf3f96385292
Author: Sergey Ponomarev <stokito at gmail.com>
AuthorDate: Tue May 28 02:50:09 2024 +0300

    dropbear: use config_get_bool enable
    
    The config_get_bool also works with on/off, yes/no, true/false.
    Add 'main' section name. This will make it easier to change settings from uci.
    Add a link to documentation.
    
    Signed-off-by: Sergey Ponomarev <stokito at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/15579
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/network/services/dropbear/Makefile              | 2 +-
 package/network/services/dropbear/files/dropbear.config | 4 +++-
 package/network/services/dropbear/files/dropbear.init   | 2 +-
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/package/network/services/dropbear/Makefile b/package/network/services/dropbear/Makefile
index e9f3bd693c..1918e7dec6 100644
--- a/package/network/services/dropbear/Makefile
+++ b/package/network/services/dropbear/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dropbear
 PKG_VERSION:=2024.85
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:= \
diff --git a/package/network/services/dropbear/files/dropbear.config b/package/network/services/dropbear/files/dropbear.config
index 2139ba0bbe..7eb5975449 100644
--- a/package/network/services/dropbear/files/dropbear.config
+++ b/package/network/services/dropbear/files/dropbear.config
@@ -1,4 +1,6 @@
-config dropbear
+# See https://openwrt.org/docs/guide-user/base-system/dropbear
+config dropbear main
+	option enable '1'
 	option PasswordAuth 'on'
 	option RootPasswordAuth 'on'
 	option Port         '22'
diff --git a/package/network/services/dropbear/files/dropbear.init b/package/network/services/dropbear/files/dropbear.init
index 708fabd326..395237f9bc 100755
--- a/package/network/services/dropbear/files/dropbear.init
+++ b/package/network/services/dropbear/files/dropbear.init
@@ -361,7 +361,7 @@ dropbear_instance()
 load_interfaces()
 {
 	local enable
-	config_get enable "$1" enable 1
+	config_get_bool enable "$1" enable 1
 	[ "${enable}" = "1" ] || return 0
 
 	local direct_iface iface



From lede-commits at lists.infradead.org  Sun Nov 17 10:11:32 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 17 Nov 2024 13:11:32 -0500
Subject: [openwrt/openwrt]  include/package-pack: escape package description
 for APK mkpkg
In-Reply-To: <173186709236.1707824.6662267314234118917@git-01.infra.openwrt.org>
References: <173186709236.1707824.6662267314234118917@git-01.infra.openwrt.org>
Message-ID: <mailman.1467.1731867096.1089.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/43455f1075855d9ed2760f70b2d8acbe8e8bb16c

commit 43455f1075855d9ed2760f70b2d8acbe8e8bb16c
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Sun Nov 17 19:09:31 2024 +0100

    include/package-pack: escape package description for APK mkpkg
    
    Escape special char for package description for APK mkpkg as the
    description is passed as an args to mkpkg with --info option and can
    easily escape from the "".
    
    Currently escaped char `, $, ", \.
    
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 include/package-pack.mk | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/include/package-pack.mk b/include/package-pack.mk
index 9d06c8b647..830b39f8d7 100644
--- a/include/package-pack.mk
+++ b/include/package-pack.mk
@@ -8,6 +8,10 @@ endif
 
 IPKG_STATE_DIR:=$(TARGET_DIR)/usr/lib/opkg
 
+define description_escape
+$(subst `,\`,$(subst $$,\$$,$(subst ",\",$(subst \,\\,$(1)))))
+endef
+
 # Generates a make statement to return a wildcard for candidate ipkg files
 # 1: package name
 define gen_package_wildcard
@@ -339,7 +343,7 @@ else
 	$(FAKEROOT) $(STAGING_DIR_HOST)/bin/apk mkpkg \
 	  --info "name:$(1)$$(ABIV_$(1))" \
 	  --info "version:$(VERSION)" \
-	  --info "description:$$(strip $$(Package/$(1)/description))" \
+	  --info "description:$$(call description_escape,$$(strip $$(Package/$(1)/description)))" \
 	  --info "arch:$(PKGARCH)" \
 	  --info "license:$(LICENSE)" \
 	  --info "origin:$(SOURCE)" \



From lede-commits at lists.infradead.org  Sun Nov 17 10:23:33 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 17 Nov 2024 13:23:33 -0500
Subject: [openwrt/openwrt]  generic: add CONFIG_FB_INTEL
In-Reply-To: <173186781318.1729341.14387580640577059421@git-01.infra.openwrt.org>
References: <173186781318.1729341.14387580640577059421@git-01.infra.openwrt.org>
Message-ID: <mailman.1468.1731867817.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/57daea682e1c6e6da91f92efed717159f9ffffb0

commit 57daea682e1c6e6da91f92efed717159f9ffffb0
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Sun Nov 17 19:22:25 2024 +0100

    generic: add CONFIG_FB_INTEL
    
    CONFIG_FB_INTEL is now visible on x86 since i915 driver is packaged as kmod
    now and it stops compilation, so add it to the generic config.
    
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/generic/config-6.6 | 1 +
 1 file changed, 1 insertion(+)

diff --git a/target/linux/generic/config-6.6 b/target/linux/generic/config-6.6
index d887381414..9eec780b53 100644
--- a/target/linux/generic/config-6.6
+++ b/target/linux/generic/config-6.6
@@ -1927,6 +1927,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
 # CONFIG_FB_IBM_GXT4500 is not set
 # CONFIG_FB_IMSTT is not set
 # CONFIG_FB_IMX is not set
+# CONFIG_FB_INTEL is not set
 # CONFIG_FB_KYRO is not set
 # CONFIG_FB_LE80578 is not set
 # CONFIG_FB_LITTLE_ENDIAN is not set



From lede-commits at lists.infradead.org  Sun Nov 17 10:29:11 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 17 Nov 2024 13:29:11 -0500
Subject: [openwrt/openwrt]  imagebuilder: move handling of DEFAULT_PACKAGES
 into shareable place
In-Reply-To: <173186815055.1746814.14690398955731346091@git-01.infra.openwrt.org>
References: <173186815055.1746814.14690398955731346091@git-01.infra.openwrt.org>
Message-ID: <mailman.1469.1731868154.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/40be892a020e37869cdc188cd9a09bb7dc0a6872

commit 40be892a020e37869cdc188cd9a09bb7dc0a6872
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Sun Nov 17 05:13:27 2024 +0000

    imagebuilder: move handling of DEFAULT_PACKAGES into shareable place
    
    It seems, that handling of DEFAULT_PACKAGES is needed in more places, so
    lets move it into dedicated include file so it can be easily shared.
    
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
    Link: https://github.com/openwrt/openwrt/pull/16986
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 include/default-packages.mk        | 5 +++++
 target/imagebuilder/files/Makefile | 1 +
 2 files changed, 6 insertions(+)

diff --git a/include/default-packages.mk b/include/default-packages.mk
new file mode 100644
index 0000000000..c964e92a03
--- /dev/null
+++ b/include/default-packages.mk
@@ -0,0 +1,5 @@
+ifneq ($(CONFIG_USE_APK),)
+  DEFAULT_PACKAGES += apk-mbedtls
+else
+  DEFAULT_PACKAGES += opkg
+endif
diff --git a/target/imagebuilder/files/Makefile b/target/imagebuilder/files/Makefile
index 56f761e966..c4e2c390fe 100644
--- a/target/imagebuilder/files/Makefile
+++ b/target/imagebuilder/files/Makefile
@@ -26,6 +26,7 @@ include $(INCLUDE_DIR)/debug.mk
 include $(INCLUDE_DIR)/depends.mk
 include $(INCLUDE_DIR)/rootfs.mk
 
+include $(INCLUDE_DIR)/default-packages.mk
 include $(INCLUDE_DIR)/version.mk
 export REVISION
 export SOURCE_DATE_EPOCH



From lede-commits at lists.infradead.org  Sun Nov 17 10:29:12 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 17 Nov 2024 13:29:12 -0500
Subject: [openwrt/openwrt]  linux: fix missing default packages in
 profiles.json
In-Reply-To: <173186815055.1746814.14690398955731346091@git-01.infra.openwrt.org>
References: <173186815055.1746814.14690398955731346091@git-01.infra.openwrt.org>
Message-ID: <mailman.1470.1731868159.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/90f0be8521a8608b0932c1ccb747c0ef1a085910

commit 90f0be8521a8608b0932c1ccb747c0ef1a085910
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Sun Nov 17 05:15:13 2024 +0000

    linux: fix missing default packages in profiles.json
    
    Robert reported, that in firmware images generated by ASU, there is
    `apk` package manager missing after the commit 44598c233dd9 ("build:
    remove broken dependency of metadata on toplevel .config variables").
    
    That is happening, because apk got removed from `default_packages` list in
    `profiles.json`, which is being generated by `json_overview_image_info` Make
    target, which uses `scripts/json_overview_image_info.py` helper script,
    which gets the information from `DEFAULT_PACKAGES` Make variable.
    
    So lets fix it by providing `DEFAULT_PACKAGES` variable when its needed.
    
    The reason why we didn't added those packages as a dependency to
    base-files like any other packages, was to allow disabling them (in
    order to save space).
    
    Fixes: #16969
    Fixes: openwrt/asu/issues/1084
    Fixes: 44598c233dd9 ("build: remove broken dependency of metadata on toplevel .config variables")
    Reported-by: Robert Marko <robimarko at gmail.com>
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
    Link: https://github.com/openwrt/openwrt/pull/16986
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/target/linux/Makefile b/target/linux/Makefile
index eaf3198222..f1e20abf04 100644
--- a/target/linux/Makefile
+++ b/target/linux/Makefile
@@ -4,6 +4,7 @@
 
 include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/target.mk
+include $(INCLUDE_DIR)/default-packages.mk
 
 export TARGET_BUILD=1
 



From lede-commits at lists.infradead.org  Sun Nov 17 10:29:10 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 17 Nov 2024 13:29:10 -0500
Subject: [openwrt/openwrt]  target,base-files: unify handling of procd-ujail
In-Reply-To: <173186815055.1746814.14690398955731346091@git-01.infra.openwrt.org>
References: <173186815055.1746814.14690398955731346091@git-01.infra.openwrt.org>
Message-ID: <mailman.1473.1731868159.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/ac640718aa0ceae55969bb9e7e45d00bb7bc228a

commit ac640718aa0ceae55969bb9e7e45d00bb7bc228a
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Sun Nov 17 04:12:23 2024 +0000

    target,base-files: unify handling of procd-ujail
    
    Remove the remaining special handling of procd-ujail in a same way as
    the rest of the packages was handled in the commit 4c65359af49b ("build:
    fix including busybox, procd and apk/opkg in imagebuilder").
    
    Fixes: 44598c233dd9 ("build: remove broken dependency of metadata on toplevel .config variables")
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
    Link: https://github.com/openwrt/openwrt/pull/16986
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 include/target.mk           | 5 -----
 package/base-files/Makefile | 2 +-
 2 files changed, 1 insertion(+), 6 deletions(-)

diff --git a/include/target.mk b/include/target.mk
index 02ea68b15c..1b32bf905d 100644
--- a/include/target.mk
+++ b/include/target.mk
@@ -90,11 +90,6 @@ else
   endif
 endif
 
-# include ujail on systems with enough storage
-ifeq ($(filter small_flash,$(FEATURES)),)
-  DEFAULT_PACKAGES+=procd-ujail
-endif
-
 # Add device specific packages (here below to allow device type set from subtarget)
 DEFAULT_PACKAGES += $(DEFAULT_PACKAGES.$(DEVICE_TYPE))
 
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 2725bcb90b..a2ea3c5d00 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -43,7 +43,7 @@ define Package/base-files
 	+netifd +libc +jsonfilter +SIGNED_PACKAGES:usign +SIGNED_PACKAGES:openwrt-keyring \
 	+NAND_SUPPORT:ubi-utils +fstools +fwtool \
 	+SELINUX:procd-selinux +!SELINUX:procd +SECCOMP:procd-seccomp \
-	+SELINUX:busybox-selinux +!SELINUX:busybox
+	+SELINUX:busybox-selinux +!SELINUX:busybox +!SMALL_FLASH:procd-ujail
   TITLE:=Base filesystem for OpenWrt
   URL:=http://openwrt.org/
   VERSION:=$(PKG_RELEASE)~$(lastword $(subst -, ,$(REVISION)))



From lede-commits at lists.infradead.org  Sun Nov 17 12:02:53 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 17 Nov 2024 15:02:53 -0500
Subject: [openwrt/openwrt]  imagebuilder: fix DEFAULT_PACKAGES handling
In-Reply-To: <173187377323.2005792.7043018596219396504@git-01.infra.openwrt.org>
References: <173187377323.2005792.7043018596219396504@git-01.infra.openwrt.org>
Message-ID: <mailman.1478.1731873781.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/efc0c4666b5aa0cf0067d794964f12d9a45190c6

commit efc0c4666b5aa0cf0067d794964f12d9a45190c6
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Sun Nov 17 19:19:36 2024 +0000

    imagebuilder: fix DEFAULT_PACKAGES handling
    
    DEFAULT_PACKAGES handling was moved in commit 40be892a020e
    ("imagebuilder: move handling of DEFAULT_PACKAGES into shareable place")
    to `include/default-packages.mk`, but they weren't removed from
    ImageBuilder's Makefile, so lets remove it now.
    
    Once removed, I've noticed, that it stopped working as there is
    target.mk included later in that file, overriding the DEFAULT_PACKAGES
    again, so moved it after this target.mk include.
    
    Fixes: 40be892a020e ("imagebuilder: move handling of DEFAULT_PACKAGES into shareable place")
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/imagebuilder/files/Makefile | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/target/imagebuilder/files/Makefile b/target/imagebuilder/files/Makefile
index c4e2c390fe..d1502d40c1 100644
--- a/target/imagebuilder/files/Makefile
+++ b/target/imagebuilder/files/Makefile
@@ -26,7 +26,6 @@ include $(INCLUDE_DIR)/debug.mk
 include $(INCLUDE_DIR)/depends.mk
 include $(INCLUDE_DIR)/rootfs.mk
 
-include $(INCLUDE_DIR)/default-packages.mk
 include $(INCLUDE_DIR)/version.mk
 export REVISION
 export SOURCE_DATE_EPOCH
@@ -105,6 +104,7 @@ APK:=$(call apk,$(TARGET_DIR)) \
 
 
 include $(INCLUDE_DIR)/target.mk
+include $(INCLUDE_DIR)/default-packages.mk
 -include .profiles.mk
 
 USER_PROFILE ?= $(firstword $(PROFILE_NAMES))
@@ -139,11 +139,6 @@ _call_info: FORCE
 	echo 'Available Profiles:'
 	echo; $(PROFILE_LIST)
 
-ifneq ($(CONFIG_USE_APK),)
-  DEFAULT_PACKAGES += apk-mbedtls
-else
-  DEFAULT_PACKAGES += opkg
-endif
 BUILD_PACKAGES:=$(sort $(DEFAULT_PACKAGES) $($(USER_PROFILE)_PACKAGES) kernel)
 # "-pkgname" in the package list means remove "pkgname" from the package list
 BUILD_PACKAGES:=$(filter-out $(filter -%,$(BUILD_PACKAGES)) $(patsubst -%,%,$(filter -%,$(BUILD_PACKAGES))),$(BUILD_PACKAGES))



From lede-commits at lists.infradead.org  Mon Nov 18 00:09:44 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 18 Nov 2024 03:09:44 -0500
Subject: [buildbot]  pahse1: merge sha256sums with remote kmods entry if
 present
In-Reply-To: <173191738201.3919385.18257795017510348950@git-01.infra.openwrt.org>
References: <173191738201.3919385.18257795017510348950@git-01.infra.openwrt.org>
Message-ID: <mailman.1700.1731917521.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to buildbot.git, branch main:
https://git.openwrt.org/9f22657ef41bb599558aaeffda451353eaf35199

commit 9f22657ef41bb599558aaeffda451353eaf35199
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Fri Nov 15 15:30:09 2024 +0100

    pahse1: merge sha256sums with remote kmods entry if present
    
    Add additional logic to merge the sha256sums with the remote kmods entry
    (in remote sha256sums) already present.
    
    This is to produce a more consistent sha256sums that actually reflect
    what is present in the remote server by including also the sha of the
    kmods for each kernel version supported.
    
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 phase1/master.cfg | 107 ++++++++++++++++++++++++++++++++++++++----------------
 1 file changed, 76 insertions(+), 31 deletions(-)

diff --git a/phase1/master.cfg b/phase1/master.cfg
index 380338b..765852b 100644
--- a/phase1/master.cfg
+++ b/phase1/master.cfg
@@ -588,6 +588,10 @@ def IsKmodArchiveAndRsyncEnabled(step):
     return bool(IsKmodArchiveEnabled(step) and branches[branch].get("bin_url"))
 
 
+def IsRemoteShaSumsAvailable(step):
+    return step.getProperty("have_remote_shasums")
+
+
 def GetBaseVersion(branch):
     if re.match(r"^[^-]+-[0-9]+\.[0-9]+$", branch):
         return branch.split("-")[1]
@@ -1383,6 +1387,78 @@ def prepareFactory(target):
         )
     )
 
+    # download remote sha256sums to 'target-sha256sums'
+    factory.addStep(
+        ShellCommandAndSetProperty(
+            name="target-sha256sums",
+            description="Fetching remote sha256sums for target",
+            descriptionDone="Remote sha256sums for target fetched",
+            command=["rsync", Interpolate("-z%(prop:rsync_ipv4:+4)s")]
+            + rsync_defopts
+            + [
+                Interpolate(
+                    "%(kw:url)s/%(kw:prefix)stargets/%(kw:target)s/%(kw:subtarget)s/sha256sums",
+                    url=GetRsyncParams.withArgs("bin", "url"),
+                    target=target,
+                    subtarget=subtarget,
+                    prefix=GetVersionPrefix,
+                ),
+                "target-sha256sums",
+            ],
+            env={
+                "RSYNC_PASSWORD": Interpolate(
+                    "%(kw:key)s", key=GetRsyncParams.withArgs("bin", "key")
+                )
+            },
+            property="have_remote_shasums",
+            logEnviron=False,
+            haltOnFailure=False,
+            flunkOnFailure=False,
+            warnOnFailure=False,
+            doStepIf=util.Transform(bool, GetRsyncParams.withArgs("bin", "url")),
+        )
+    )
+
+    factory.addStep(
+        ShellCommand(
+            name="target-sha256sums_kmodsparse",
+            description="Extract kmods from remote sha256sums",
+            descriptionDone="Kmods extracted",
+            command="sed \"/ \\*kmods\\//! d\" target-sha256sums | tee target-sha256sums-kmods",
+            haltOnFailure=False,
+            doStepIf=IsRemoteShaSumsAvailable,
+        )
+    )
+
+    factory.addStep(
+        ShellCommand(
+            name="mergesha256sum",
+            description="Merge sha256sums kmods with sha256sums",
+            descriptionDone="Sha256sums merged",
+            command=[
+                "sort",
+                "-t", " ",
+                "-k", 2,
+                "-u",
+                Interpolate(
+                    "bin/targets/%(kw:target)s/%(kw:subtarget)s%(prop:libc)s/sha256sums",
+                    target=target,
+                    subtarget=subtarget,
+                ),
+                "target-sha256sums-kmods",
+                "-o",
+                Interpolate(
+                    "bin/targets/%(kw:target)s/%(kw:subtarget)s%(prop:libc)s/sha256sums",
+                    target=target,
+                    subtarget=subtarget,
+                ),
+            ],
+            env={"LC_ALL": "C"},
+            haltOnFailure=False,
+            doStepIf=IsRemoteShaSumsAvailable,
+        )
+    )
+
     # sign
     factory.addStep(
         MasterShellCommand(
@@ -1541,37 +1617,6 @@ def prepareFactory(target):
         )
     )
 
-    # download remote sha256sums to 'target-sha256sums'
-    factory.addStep(
-        ShellCommand(
-            name="target-sha256sums",
-            description="Fetching remote sha256sums for target",
-            descriptionDone="Remote sha256sums for target fetched",
-            command=["rsync", Interpolate("-z%(prop:rsync_ipv4:+4)s")]
-            + rsync_defopts
-            + [
-                Interpolate(
-                    "%(kw:url)s/%(kw:prefix)stargets/%(kw:target)s/%(kw:subtarget)s/sha256sums",
-                    url=GetRsyncParams.withArgs("bin", "url"),
-                    target=target,
-                    subtarget=subtarget,
-                    prefix=GetVersionPrefix,
-                ),
-                "target-sha256sums",
-            ],
-            env={
-                "RSYNC_PASSWORD": Interpolate(
-                    "%(kw:key)s", key=GetRsyncParams.withArgs("bin", "key")
-                )
-            },
-            logEnviron=False,
-            haltOnFailure=False,
-            flunkOnFailure=False,
-            warnOnFailure=False,
-            doStepIf=util.Transform(bool, GetRsyncParams.withArgs("bin", "url")),
-        )
-    )
-
     # build list of files to upload
     factory.addStep(
         FileDownload(



From lede-commits at lists.infradead.org  Mon Nov 18 00:09:45 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 18 Nov 2024 03:09:45 -0500
Subject: [buildbot]  phase1: correctly exclude kmods files from rsync target
 upload and prune
In-Reply-To: <173191738201.3919385.18257795017510348950@git-01.infra.openwrt.org>
References: <173191738201.3919385.18257795017510348950@git-01.infra.openwrt.org>
Message-ID: <mailman.1701.1731917521.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to buildbot.git, branch main:
https://git.openwrt.org/a75ce026ca9bd5df828e9e51db08f209a716fe82

commit a75ce026ca9bd5df828e9e51db08f209a716fe82
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Fri Nov 15 16:41:52 2024 +0100

    phase1: correctly exclude kmods files from rsync target upload and prune
    
    There is currently a BUG in the --exclude pattern for the targetupload step.
    The /kmods/ directory is actually never excluded. This was never notice
    as the rsynclist never actually had kmods entry as make checksum step
    was done before moving the kmods to the dedicated directory.
    
    This is caused by the fact that with --files-from, not only the /kmods/
    directory needs to be excluded but also every content in it, hence the
    additional --exclude "/kmods/**" is required to correcly skip the entry
    present in rsynclist.
    
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 phase1/master.cfg | 1 +
 1 file changed, 1 insertion(+)

diff --git a/phase1/master.cfg b/phase1/master.cfg
index 765852b..e3dee37 100644
--- a/phase1/master.cfg
+++ b/phase1/master.cfg
@@ -1664,6 +1664,7 @@ def prepareFactory(target):
             command=[
                 "../rsync.sh",
                 "--exclude=/kmods/",
+                "--exclude=/kmods/**",
                 "--files-from=rsynclist",
                 "--delay-updates",
                 "--partial-dir=.~tmp~%s~%s" % (target, subtarget),



From lede-commits at lists.infradead.org  Mon Nov 18 00:09:43 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 18 Nov 2024 03:09:43 -0500
Subject: [buildbot]  phase1: remove kmods in target packages if archive is
 enabled
In-Reply-To: <173191738201.3919385.18257795017510348950@git-01.infra.openwrt.org>
References: <173191738201.3919385.18257795017510348950@git-01.infra.openwrt.org>
Message-ID: <mailman.1702.1731917521.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to buildbot.git, branch main:
https://git.openwrt.org/ec2bd8a07e88f4e251fccb99142bd46c816d62ec

commit ec2bd8a07e88f4e251fccb99142bd46c816d62ec
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Fri Nov 15 15:27:55 2024 +0100

    phase1: remove kmods in target packages if archive is enabled
    
    OPKG gets confused if kmod packages are present in both, target packages
    as well as kernel version specific folder.
    Remove them from target packages to make opkg pick the kmods from kmod
    archive folder only.
    
    This also affects APK that picks packages from the first entry in the
    repository file and doesn't support checking the same package from
    multiple entry.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
    [ add --remove-source-files and improve implementation ]
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 phase1/master.cfg | 57 ++++++++++++++++++++++++++++---------------------------
 1 file changed, 29 insertions(+), 28 deletions(-)

diff --git a/phase1/master.cfg b/phase1/master.cfg
index 82ebc90..380338b 100644
--- a/phase1/master.cfg
+++ b/phase1/master.cfg
@@ -1250,23 +1250,6 @@ def prepareFactory(target):
         )
     )
 
-    factory.addStep(
-        ShellCommand(
-            name="pkgindex",
-            description="Indexing packages",
-            descriptionDone="Packages indexed",
-            command=[
-                "make",
-                Interpolate("-j%(prop:nproc:-1)s"),
-                "package/index",
-                "V=s",
-                "CONFIG_SIGNED_PACKAGES=",
-            ],
-            env=MakeEnv(),
-            haltOnFailure=True,
-        )
-    )
-
     factory.addStep(
         ShellCommand(
             name="images",
@@ -1303,17 +1286,6 @@ def prepareFactory(target):
         )
     )
 
-    factory.addStep(
-        ShellCommand(
-            name="checksums",
-            description="Calculating checksums",
-            descriptionDone="Checksums calculated",
-            command=["make", "-j1", "checksum", "V=s"],
-            env=MakeEnv(),
-            haltOnFailure=True,
-        )
-    )
-
     factory.addStep(
         ShellCommand(
             name="kmoddir",
@@ -1339,6 +1311,7 @@ def prepareFactory(target):
             descriptionDone="Kmod archive prepared",
             command=[
                 "rsync",
+                "--remove-source-files",
                 "--include=/kmod-*.ipk",
                 "--include=/kmod-*.apk",
                 "--exclude=*",
@@ -1359,6 +1332,23 @@ def prepareFactory(target):
         )
     )
 
+    factory.addStep(
+        ShellCommand(
+            name="pkgindex",
+            description="Indexing packages",
+            descriptionDone="Packages indexed",
+            command=[
+                "make",
+                Interpolate("-j%(prop:nproc:-1)s"),
+                "package/index",
+                "V=s",
+                "CONFIG_SIGNED_PACKAGES=",
+            ],
+            env=MakeEnv(),
+            haltOnFailure=True,
+        )
+    )
+
     factory.addStep(
         ShellCommand(
             name="kmodindex",
@@ -1382,6 +1372,17 @@ def prepareFactory(target):
         )
     )
 
+    factory.addStep(
+        ShellCommand(
+            name="checksums",
+            description="Calculating checksums",
+            descriptionDone="Checksums calculated",
+            command=["make", "-j1", "checksum", "V=s"],
+            env=MakeEnv(),
+            haltOnFailure=True,
+        )
+    )
+
     # sign
     factory.addStep(
         MasterShellCommand(



From lede-commits at lists.infradead.org  Mon Nov 18 00:09:46 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 18 Nov 2024 03:09:46 -0500
Subject: [buildbot]  scripts: signall: skip updating hash of previous kmods/
In-Reply-To: <173191738201.3919385.18257795017510348950@git-01.infra.openwrt.org>
References: <173191738201.3919385.18257795017510348950@git-01.infra.openwrt.org>
Message-ID: <mailman.1703.1731917521.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to buildbot.git, branch main:
https://git.openwrt.org/31eb26b97e7cf8f202c8bd2c65d550edd6e28374

commit 31eb26b97e7cf8f202c8bd2c65d550edd6e28374
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Sun Nov 17 16:13:02 2024 +0100

    scripts: signall: skip updating hash of previous kmods/
    
    Handle case where a sha256sums might contain previous kmods/. In such
    case packages.adb for previous kmods/ needs to be skipped as not
    included in the sign tar and already signed by previous runs.
    
    Skip is limited to kmods/ entry as those are the only entry expected to
    be present in the sha256sums but not included in sign tar.
    
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 scripts/signall.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/scripts/signall.sh b/scripts/signall.sh
index 6be0ef1..3bea7be 100755
--- a/scripts/signall.sh
+++ b/scripts/signall.sh
@@ -90,6 +90,8 @@ if [ -n "$APKSIGNKEY" ]; then
 
 		grep 'packages\.adb' sha256sums | while IFS= read -r line; do
 			filename="${line#*' *'}"
+			# Skip updating hash of previous kmods/ if not found in sign tar (already signed)
+			[ ! -f "$filename" ] && [[ "$filename" == kmods/* ]] && continue
 			escaped_filename="${filename//\//\\\/}"
 			escaped_filename="${escaped_filename//&/\\&}"
 			checksum_output=$(sha256sum --binary -- "$filename")



From lede-commits at lists.infradead.org  Mon Nov 18 00:09:42 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 18 Nov 2024 03:09:42 -0500
Subject: [buildbot]  phase1: Implement custom step ShellCommandAndSetProperty
In-Reply-To: <173191738201.3919385.18257795017510348950@git-01.infra.openwrt.org>
References: <173191738201.3919385.18257795017510348950@git-01.infra.openwrt.org>
Message-ID: <mailman.1706.1731917521.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to buildbot.git, branch main:
https://git.openwrt.org/b54911df58076545e2be1960dea8f8cb9c03636e

commit b54911df58076545e2be1960dea8f8cb9c03636e
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Wed Nov 13 14:30:13 2024 +0100

    phase1: Implement custom step ShellCommandAndSetProperty
    
    Implement custom step ShellCommandAndSetProperty, as an extension of
    ShellCommand with the addition of setting a bool property that is set
    True or False if the shell command succeeded or not.
    
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 phase1/master.cfg | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/phase1/master.cfg b/phase1/master.cfg
index f869dfc..82ebc90 100644
--- a/phase1/master.cfg
+++ b/phase1/master.cfg
@@ -17,6 +17,7 @@ from buildbot import locks
 from buildbot.data import resultspec
 from buildbot.changes.gitpoller import GitPoller
 from buildbot.config import BuilderConfig
+from buildbot.process import buildstep
 from buildbot.plugins import reporters
 from buildbot.plugins import schedulers
 from buildbot.plugins import steps
@@ -758,6 +759,37 @@ c["builders"].append(
 )
 
 
+# CUSTOM CLASS
+
+# Extension of ShellCommand and sets in property:
+# - True: the command succeded
+# - False: the command failed
+class ShellCommandAndSetProperty(buildstep.ShellMixin, buildstep.BuildStep):
+    name = "shellandsetproperty"
+    renderables = ['property']
+
+    def __init__(
+        self,
+        property=None,
+        **kwargs,
+    ):
+        kwargs = self.setupShellMixin(kwargs)
+
+        self.property = property
+
+        super().__init__(**kwargs)
+
+    @defer.inlineCallbacks
+    def run(self):
+        cmd = yield self.makeRemoteShellCommand()
+
+        yield self.runCommand(cmd)
+
+        self.setProperty(self.property, not cmd.didFail(), "ShellCommandAndSetProperty Step")
+
+        return cmd.results()
+
+
 # NB the phase1 build factory assumes workers are single-build only
 def prepareFactory(target):
     (target, subtarget) = target.split("/")



From lede-commits at lists.infradead.org  Mon Nov 18 02:44:59 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 18 Nov 2024 05:44:59 -0500
Subject: [openwrt/openwrt]  mac80211: backport some upstream fixes
In-Reply-To: <173192669989.136393.15475534175592019471@git-01.infra.openwrt.org>
References: <173192669989.136393.15475534175592019471@git-01.infra.openwrt.org>
Message-ID: <mailman.1824.1731926707.1089.lede-commits@lists.infradead.org>

nbd pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/53eab6198bf87d12055409bc4a38d58b68291b2f

commit 53eab6198bf87d12055409bc4a38d58b68291b2f
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Mon Nov 18 11:21:02 2024 +0100

    mac80211: backport some upstream fixes
    
    Fix various issues, including potential crashes
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
 ...11-fix-vif-addr-when-switching-from-monit.patch |  63 +++++++++
 ...11-fix-incorrect-timing-to-initialize-sta.patch |  32 +++++
 ...11-ieee80211_i-Fix-memory-corruption-bug-.patch |  53 ++++++++
 ...211-fix-user-power-when-emulating-chanctx.patch |  24 ++++
 ...i-cfg80211-Add-wiphy_delayed_work_pending.patch |  83 ++++++++++++
 ...11-Convert-color-collision-detection-to-w.patch | 148 +++++++++++++++++++++
 6 files changed, 403 insertions(+)

diff --git a/package/kernel/mac80211/patches/subsys/361-wifi-mac80211-fix-vif-addr-when-switching-from-monit.patch b/package/kernel/mac80211/patches/subsys/361-wifi-mac80211-fix-vif-addr-when-switching-from-monit.patch
new file mode 100644
index 0000000000..f4cfc95aa3
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/361-wifi-mac80211-fix-vif-addr-when-switching-from-monit.patch
@@ -0,0 +1,63 @@
+From: Felix Fietkau <nbd at nbd.name>
+Date: Fri, 15 Nov 2024 12:28:43 +0100
+Subject: [PATCH] wifi: mac80211: fix vif addr when switching from monitor
+ to station
+
+Since adding support for opting out of virtual monitor support, a zero vif
+addr was used to indicate passive vs active monitor to the driver.
+This would break the vif->addr when changing the netdev mac address before
+switching the interface from monitor to sta mode.
+Fix the regression by adding a separate flag to indicate whether vif->addr
+is valid.
+
+Reported-by: syzbot+9ea265d998de25ac6a46 at syzkaller.appspotmail.com
+Fixes: 9d40f7e32774 ("wifi: mac80211: add flag to opt out of virtual monitor support")
+Signed-off-by: Felix Fietkau <nbd at nbd.name>
+---
+
+--- a/include/net/mac80211.h
++++ b/include/net/mac80211.h
+@@ -1972,6 +1972,8 @@ enum ieee80211_neg_ttlm_res {
+  * @neg_ttlm: negotiated TID to link mapping info.
+  *	see &struct ieee80211_neg_ttlm.
+  * @addr: address of this interface
++ * @addr_valid: indicates if the address is actively used. Set to false for
++ *	passive monitor interfaces, true in all other cases.
+  * @p2p: indicates whether this AP or STA interface is a p2p
+  *	interface, i.e. a GO or p2p-sta respectively
+  * @netdev_features: tx netdev features supported by the hardware for this
+@@ -2011,6 +2013,7 @@ struct ieee80211_vif {
+ 	u16 valid_links, active_links, dormant_links, suspended_links;
+ 	struct ieee80211_neg_ttlm neg_ttlm;
+ 	u8 addr[ETH_ALEN] __aligned(2);
++	bool addr_valid;
+ 	bool p2p;
+ 
+ 	u8 cab_queue;
+--- a/net/mac80211/iface.c
++++ b/net/mac80211/iface.c
+@@ -279,13 +279,8 @@ static int _ieee80211_change_mac(struct
+ 	ret = eth_mac_addr(sdata->dev, sa);
+ 
+ 	if (ret == 0) {
+-		if (check_dup) {
+-			memcpy(sdata->vif.addr, sa->sa_data, ETH_ALEN);
+-			ether_addr_copy(sdata->vif.bss_conf.addr, sdata->vif.addr);
+-		} else {
+-			memset(sdata->vif.addr, 0, ETH_ALEN);
+-			memset(sdata->vif.bss_conf.addr, 0, ETH_ALEN);
+-		}
++		memcpy(sdata->vif.addr, sa->sa_data, ETH_ALEN);
++		ether_addr_copy(sdata->vif.bss_conf.addr, sdata->vif.addr);
+ 	}
+ 
+ 	/* Regardless of eth_mac_addr() return we still want to add the
+@@ -1324,6 +1319,8 @@ int ieee80211_do_open(struct wireless_de
+ 		}
+ 	}
+ 
++	sdata->vif.addr_valid = sdata->vif.type != NL80211_IFTYPE_MONITOR ||
++				(sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE);
+ 	switch (sdata->vif.type) {
+ 	case NL80211_IFTYPE_AP_VLAN:
+ 		/* no need to tell driver, but set carrier and chanctx */
diff --git a/package/kernel/mac80211/patches/subsys/362-wifi-mac80211-fix-incorrect-timing-to-initialize-sta.patch b/package/kernel/mac80211/patches/subsys/362-wifi-mac80211-fix-incorrect-timing-to-initialize-sta.patch
new file mode 100644
index 0000000000..94e51afd85
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/362-wifi-mac80211-fix-incorrect-timing-to-initialize-sta.patch
@@ -0,0 +1,32 @@
+From: Benjamin Lin <benjamin-jw.lin at mediatek.com>
+Date: Mon, 18 Nov 2024 16:07:22 +0800
+Subject: [PATCH] wifi: mac80211: fix incorrect timing to initialize
+ station NSS capability
+
+Station's spatial streaming capability should be initialized before
+handling VHT OMN, because the handling requires the capability information.
+
+Fixes: a8bca3e9371d ("wifi: mac80211: track capability/opmode NSS separately")
+Signed-off-by: Benjamin Lin <benjamin-jw.lin at mediatek.com>
+---
+
+--- a/net/mac80211/cfg.c
++++ b/net/mac80211/cfg.c
+@@ -1914,6 +1914,8 @@ static int sta_link_apply_parameters(str
+ 						    params->eht_capa_len,
+ 						    link_sta);
+ 
++	ieee80211_sta_init_nss(link_sta);
++
+ 	if (params->opmode_notif_used) {
+ 		/* returned value is only needed for rc update, but the
+ 		 * rc isn't initialized here yet, so ignore it
+@@ -1923,8 +1925,6 @@ static int sta_link_apply_parameters(str
+ 					      sband->band);
+ 	}
+ 
+-	ieee80211_sta_init_nss(link_sta);
+-
+ 	return 0;
+ }
+ 
diff --git a/package/kernel/mac80211/patches/subsys/363-wifi-mac80211-ieee80211_i-Fix-memory-corruption-bug-.patch b/package/kernel/mac80211/patches/subsys/363-wifi-mac80211-ieee80211_i-Fix-memory-corruption-bug-.patch
new file mode 100644
index 0000000000..dcdb89cd4a
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/363-wifi-mac80211-ieee80211_i-Fix-memory-corruption-bug-.patch
@@ -0,0 +1,53 @@
+From: "Gustavo A. R. Silva" <gustavoars at kernel.org>
+Date: Fri, 25 Oct 2024 16:05:50 -0600
+Subject: [PATCH] wifi: mac80211: ieee80211_i: Fix memory corruption bug in
+ struct ieee80211_chanctx
+
+Move the `struct ieee80211_chanctx_conf conf` to the end of
+`struct ieee80211_chanctx` and fix a memory corruption bug
+triggered e.g. in `hwsim_set_chanctx_magic()`: `radar_detected`
+is being overwritten when `cp->magic = HWSIM_CHANCTX_MAGIC;`
+See the function call sequence below:
+
+drv_add_chanctx(... struct ieee80211_chanctx *ctx) ->
+    local->ops->add_chanctx(&local->hw, &ctx->conf) ->
+	mac80211_hwsim_add_chanctx(... struct ieee80211_chanctx_conf *ctx) ->
+	    hwsim_set_chanctx_magic(ctx)
+
+This also happens in a number of other drivers.
+
+Also, add a code comment to try to prevent people from introducing
+new members after `struct ieee80211_chanctx_conf conf`. Notice that
+`struct ieee80211_chanctx_conf` is a flexible structure --a structure
+that contains a flexible-array member, so it should always be at
+the end of any other containing structures.
+
+This change also fixes 50 of the following warnings:
+
+net/mac80211/ieee80211_i.h:895:39: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]
+
+-Wflex-array-member-not-at-end was introduced in GCC-14, and we are
+getting ready to enable it, globally.
+
+Fixes: bca8bc0399ac ("wifi: mac80211: handle ieee80211_radar_detected() for MLO")
+Signed-off-by: Gustavo A. R. Silva <gustavoars at kernel.org>
+Link: https://patch.msgid.link/ZxwWPrncTeSi1UTq at kspp
+[also refer to other drivers in commit message]
+Signed-off-by: Johannes Berg <johannes.berg at intel.com>
+---
+
+--- a/net/mac80211/ieee80211_i.h
++++ b/net/mac80211/ieee80211_i.h
+@@ -894,9 +894,10 @@ struct ieee80211_chanctx {
+ 	/* temporary data for search algorithm etc. */
+ 	struct ieee80211_chan_req req;
+ 
+-	struct ieee80211_chanctx_conf conf;
+-
+ 	bool radar_detected;
++
++	/* MUST be last - ends in a flexible-array member. */
++	struct ieee80211_chanctx_conf conf;
+ };
+ 
+ struct mac80211_qos_map {
diff --git a/package/kernel/mac80211/patches/subsys/364-mac80211-fix-user-power-when-emulating-chanctx.patch b/package/kernel/mac80211/patches/subsys/364-mac80211-fix-user-power-when-emulating-chanctx.patch
new file mode 100644
index 0000000000..15db2c54e4
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/364-mac80211-fix-user-power-when-emulating-chanctx.patch
@@ -0,0 +1,24 @@
+From: Ben Greear <greearb at candelatech.com>
+Date: Thu, 10 Oct 2024 13:39:54 -0700
+Subject: [PATCH] mac80211: fix user-power when emulating chanctx
+
+ieee80211_calc_hw_conf_chan was ignoring the configured
+user_txpower.  If it is set, use it to potentially decrease
+txpower as requested.
+
+Signed-off-by: Ben Greear <greearb at candelatech.com>
+Link: https://patch.msgid.link/20241010203954.1219686-1-greearb at candelatech.com
+Signed-off-by: Johannes Berg <johannes.berg at intel.com>
+---
+
+--- a/net/mac80211/main.c
++++ b/net/mac80211/main.c
+@@ -167,6 +167,8 @@ static u32 ieee80211_calc_hw_conf_chan(s
+ 	}
+ 
+ 	power = ieee80211_chandef_max_power(&chandef);
++	if (local->user_power_level != IEEE80211_UNSET_POWER_LEVEL)
++		power = min(local->user_power_level, power);
+ 
+ 	rcu_read_lock();
+ 	list_for_each_entry_rcu(sdata, &local->interfaces, list) {
diff --git a/package/kernel/mac80211/patches/subsys/365-wifi-cfg80211-Add-wiphy_delayed_work_pending.patch b/package/kernel/mac80211/patches/subsys/365-wifi-cfg80211-Add-wiphy_delayed_work_pending.patch
new file mode 100644
index 0000000000..981cc2433b
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/365-wifi-cfg80211-Add-wiphy_delayed_work_pending.patch
@@ -0,0 +1,83 @@
+From: Remi Pommarel <repk at triplefau.lt>
+Date: Tue, 24 Sep 2024 21:28:04 +0200
+Subject: [PATCH] wifi: cfg80211: Add wiphy_delayed_work_pending()
+
+Add wiphy_delayed_work_pending() to check if any delayed work timer is
+pending, that can be used to be sure that wiphy_delayed_work_queue()
+won't postpone an already pending delayed work.
+
+Signed-off-by: Remi Pommarel <repk at triplefau.lt>
+Link: https://patch.msgid.link/20240924192805.13859-2-repk at triplefau.lt
+[fix return value kernel-doc]
+Signed-off-by: Johannes Berg <johannes.berg at intel.com>
+---
+
+--- a/include/net/cfg80211.h
++++ b/include/net/cfg80211.h
+@@ -6141,6 +6141,50 @@ void wiphy_delayed_work_flush(struct wip
+ 			      struct wiphy_delayed_work *dwork);
+ 
+ /**
++ * wiphy_delayed_work_pending - Find out whether a wiphy delayable
++ * work item is currently pending.
++ *
++ * @wiphy: the wiphy, for debug purposes
++ * @dwork: the delayed work in question
++ *
++ * Return: true if timer is pending, false otherwise
++ *
++ * How wiphy_delayed_work_queue() works is by setting a timer which
++ * when it expires calls wiphy_work_queue() to queue the wiphy work.
++ * Because wiphy_delayed_work_queue() uses mod_timer(), if it is
++ * called twice and the second call happens before the first call
++ * deadline, the work will rescheduled for the second deadline and
++ * won't run before that.
++ *
++ * wiphy_delayed_work_pending() can be used to detect if calling
++ * wiphy_work_delayed_work_queue() would start a new work schedule
++ * or delayed a previous one. As seen below it cannot be used to
++ * detect precisely if the work has finished to execute nor if it
++ * is currently executing.
++ *
++ *      CPU0                                CPU1
++ * wiphy_delayed_work_queue(wk)
++ *  mod_timer(wk->timer)
++ *                                     wiphy_delayed_work_pending(wk) -> true
++ *
++ * [...]
++ * expire_timers(wk->timer)
++ *  detach_timer(wk->timer)
++ *                                     wiphy_delayed_work_pending(wk) -> false
++ *  wk->timer->function()                          |
++ *   wiphy_work_queue(wk)                          | delayed work pending
++ *    list_add_tail()                              | returns false but
++ *    queue_work(cfg80211_wiphy_work)              | wk->func() has not
++ *                                                 | been run yet
++ * [...]                                           |
++ *  cfg80211_wiphy_work()                          |
++ *   wk->func()                                    V
++ *
++ */
++bool wiphy_delayed_work_pending(struct wiphy *wiphy,
++				struct wiphy_delayed_work *dwork);
++
++/**
+  * enum ieee80211_ap_reg_power - regulatory power for an Access Point
+  *
+  * @IEEE80211_REG_UNSET_AP: Access Point has no regulatory power mode
+--- a/net/wireless/core.c
++++ b/net/wireless/core.c
+@@ -1735,6 +1735,13 @@ void wiphy_delayed_work_flush(struct wip
+ }
+ EXPORT_SYMBOL_GPL(wiphy_delayed_work_flush);
+ 
++bool wiphy_delayed_work_pending(struct wiphy *wiphy,
++				struct wiphy_delayed_work *dwork)
++{
++	return timer_pending(&dwork->timer);
++}
++EXPORT_SYMBOL_GPL(wiphy_delayed_work_pending);
++
+ static int __init cfg80211_init(void)
+ {
+ 	int err;
diff --git a/package/kernel/mac80211/patches/subsys/366-wifi-mac80211-Convert-color-collision-detection-to-w.patch b/package/kernel/mac80211/patches/subsys/366-wifi-mac80211-Convert-color-collision-detection-to-w.patch
new file mode 100644
index 0000000000..ae72441c46
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/366-wifi-mac80211-Convert-color-collision-detection-to-w.patch
@@ -0,0 +1,148 @@
+From: Remi Pommarel <repk at triplefau.lt>
+Date: Tue, 24 Sep 2024 21:28:05 +0200
+Subject: [PATCH] wifi: mac80211: Convert color collision detection to wiphy
+ work
+
+Call to ieee80211_color_collision_detection_work() needs wiphy lock to
+be held (see lockdep assert in cfg80211_bss_color_notify()). Not locking
+wiphy causes the following lockdep error:
+
+  WARNING: CPU: 2 PID: 42 at net/wireless/nl80211.c:19505 cfg80211_bss_color_notify+0x1a4/0x25c
+  Modules linked in:
+  CPU: 2 PID: 42 Comm: kworker/u8:3 Tainted: G        W          6.4.0-02327-g36c6cb260481 #1048
+  Hardware name:
+  Workqueue: phy1 ieee80211_color_collision_detection_work
+  pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
+  pc : cfg80211_bss_color_notify+0x1a4/0x25c
+  lr : cfg80211_bss_color_notify+0x1a0/0x25c
+  sp : ffff000002947d00
+  x29: ffff000002947d00 x28: ffff800008e1a000 x27: ffff000002bd4705
+  x26: ffff00000d034000 x25: ffff80000903cf40 x24: 0000000000000000
+  x23: ffff00000cb70720 x22: 0000000000800000 x21: ffff800008dfb008
+  x20: 000000000000008d x19: ffff00000d035fa8 x18: 0000000000000010
+  x17: 0000000000000001 x16: 000003564b1ce96a x15: 000d69696d057970
+  x14: 000000000000003b x13: 0000000000000001 x12: 0000000000040000
+  x11: 0000000000000001 x10: ffff80000978f9c0 x9 : ffff0000028d3174
+  x8 : ffff800008e30000 x7 : 0000000000000000 x6 : 0000000000000028
+  x5 : 000000000002f498 x4 : ffff00000d034a80 x3 : 0000000000800000
+  x2 : ffff800016143000 x1 : 0000000000000000 x0 : 0000000000000000
+  Call trace:
+   cfg80211_bss_color_notify+0x1a4/0x25c
+   ieee80211_color_collision_detection_work+0x20/0x118
+   process_one_work+0x294/0x554
+   worker_thread+0x70/0x440
+   kthread+0xf4/0xf8
+   ret_from_fork+0x10/0x20
+  irq event stamp: 77372
+  hardirqs last  enabled at (77371): [<ffff800008a346fc>] _raw_spin_unlock_irq+0x2c/0x4c
+  hardirqs last disabled at (77372): [<ffff800008a28754>] el1_dbg+0x20/0x48
+  softirqs last  enabled at (77350): [<ffff8000089e120c>] batadv_send_outstanding_bcast_packet+0xb8/0x120
+  softirqs last disabled at (77348): [<ffff8000089e11d4>] batadv_send_outstanding_bcast_packet+0x80/0x120
+
+The wiphy lock cannot be taken directly from color collision detection
+delayed work (ieee80211_color_collision_detection_work()) because this
+work is cancel_delayed_work_sync() under this wiphy lock causing a
+potential deadlock( see [0] for details).
+
+To fix that ieee80211_color_collision_detection_work() could be
+converted to a wiphy work and cancel_delayed_work_sync() can be simply
+replaced by wiphy_delayed_work_cancel() serving the same purpose under
+wiphy lock.
+
+This could potentially fix [1].
+
+[0]: https://lore.kernel.org/linux-wireless/D4A40Q44OAY2.W3SIF6UEPBUN at freebox.fr/
+[1]: https://lore.kernel.org/lkml/000000000000612f290618eee3e5 at google.com/
+
+Reported-by: Nicolas Escande <nescande at freebox.fr>
+Signed-off-by: Remi Pommarel <repk at triplefau.lt>
+Link: https://patch.msgid.link/20240924192805.13859-3-repk at triplefau.lt
+Signed-off-by: Johannes Berg <johannes.berg at intel.com>
+---
+
+--- a/net/mac80211/cfg.c
++++ b/net/mac80211/cfg.c
+@@ -4836,12 +4836,12 @@ void ieee80211_color_change_finalize_wor
+ 	ieee80211_color_change_finalize(link);
+ }
+ 
+-void ieee80211_color_collision_detection_work(struct work_struct *work)
++void ieee80211_color_collision_detection_work(struct wiphy *wiphy,
++					      struct wiphy_work *work)
+ {
+-	struct delayed_work *delayed_work = to_delayed_work(work);
+ 	struct ieee80211_link_data *link =
+-		container_of(delayed_work, struct ieee80211_link_data,
+-			     color_collision_detect_work);
++		container_of(work, struct ieee80211_link_data,
++			     color_collision_detect_work.work);
+ 	struct ieee80211_sub_if_data *sdata = link->sdata;
+ 
+ 	cfg80211_obss_color_collision_notify(sdata->dev, link->color_bitmap,
+@@ -4894,7 +4894,8 @@ ieee80211_obss_color_collision_notify(st
+ 		return;
+ 	}
+ 
+-	if (delayed_work_pending(&link->color_collision_detect_work)) {
++	if (wiphy_delayed_work_pending(sdata->local->hw.wiphy,
++				       &link->color_collision_detect_work)) {
+ 		rcu_read_unlock();
+ 		return;
+ 	}
+@@ -4903,9 +4904,9 @@ ieee80211_obss_color_collision_notify(st
+ 	/* queue the color collision detection event every 500 ms in order to
+ 	 * avoid sending too much netlink messages to userspace.
+ 	 */
+-	ieee80211_queue_delayed_work(&sdata->local->hw,
+-				     &link->color_collision_detect_work,
+-				     msecs_to_jiffies(500));
++	wiphy_delayed_work_queue(sdata->local->hw.wiphy,
++				 &link->color_collision_detect_work,
++				 msecs_to_jiffies(500));
+ 
+ 	rcu_read_unlock();
+ }
+--- a/net/mac80211/ieee80211_i.h
++++ b/net/mac80211/ieee80211_i.h
+@@ -1056,7 +1056,7 @@ struct ieee80211_link_data {
+ 	} csa;
+ 
+ 	struct wiphy_work color_change_finalize_work;
+-	struct delayed_work color_collision_detect_work;
++	struct wiphy_delayed_work color_collision_detect_work;
+ 	u64 color_bitmap;
+ 
+ 	/* context reservation -- protected with wiphy mutex */
+@@ -2010,7 +2010,8 @@ int ieee80211_channel_switch(struct wiph
+ /* color change handling */
+ void ieee80211_color_change_finalize_work(struct wiphy *wiphy,
+ 					  struct wiphy_work *work);
+-void ieee80211_color_collision_detection_work(struct work_struct *work);
++void ieee80211_color_collision_detection_work(struct wiphy *wiphy,
++					      struct wiphy_work *work);
+ 
+ /* interface handling */
+ #define MAC80211_SUPPORTED_FEATURES_TX	(NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | \
+--- a/net/mac80211/link.c
++++ b/net/mac80211/link.c
+@@ -41,8 +41,8 @@ void ieee80211_link_init(struct ieee8021
+ 			ieee80211_csa_finalize_work);
+ 	wiphy_work_init(&link->color_change_finalize_work,
+ 			ieee80211_color_change_finalize_work);
+-	INIT_DELAYED_WORK(&link->color_collision_detect_work,
+-			  ieee80211_color_collision_detection_work);
++	wiphy_delayed_work_init(&link->color_collision_detect_work,
++				ieee80211_color_collision_detection_work);
+ 	INIT_LIST_HEAD(&link->assigned_chanctx_list);
+ 	INIT_LIST_HEAD(&link->reserved_chanctx_list);
+ 	wiphy_delayed_work_init(&link->dfs_cac_timer_work,
+@@ -72,7 +72,8 @@ void ieee80211_link_stop(struct ieee8021
+ 	if (link->sdata->vif.type == NL80211_IFTYPE_STATION)
+ 		ieee80211_mgd_stop_link(link);
+ 
+-	cancel_delayed_work_sync(&link->color_collision_detect_work);
++	wiphy_delayed_work_cancel(link->sdata->local->hw.wiphy,
++				  &link->color_collision_detect_work);
+ 	wiphy_work_cancel(link->sdata->local->hw.wiphy,
+ 			  &link->color_change_finalize_work);
+ 	wiphy_work_cancel(link->sdata->local->hw.wiphy,



From lede-commits at lists.infradead.org  Mon Nov 18 02:51:40 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 18 Nov 2024 05:51:40 -0500
Subject: [openwrt/openwrt]  mac80211: backport some upstream fixes
In-Reply-To: <173192710048.142142.8819709029382502854@git-01.infra.openwrt.org>
References: <173192710048.142142.8819709029382502854@git-01.infra.openwrt.org>
Message-ID: <mailman.1837.1731927220.1089.lede-commits@lists.infradead.org>

nbd pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/585eb0d6c8bf5ec2016f245c6f5c5b60a14ec074

commit 585eb0d6c8bf5ec2016f245c6f5c5b60a14ec074
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Mon Nov 18 11:21:02 2024 +0100

    mac80211: backport some upstream fixes
    
    Fix various issues, including potential crashes
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
    (cherry picked from commit 53eab6198bf87d12055409bc4a38d58b68291b2f)
---
 ...11-fix-vif-addr-when-switching-from-monit.patch |  63 +++++++++
 ...11-fix-incorrect-timing-to-initialize-sta.patch |  32 +++++
 ...11-ieee80211_i-Fix-memory-corruption-bug-.patch |  53 ++++++++
 ...211-fix-user-power-when-emulating-chanctx.patch |  24 ++++
 ...i-cfg80211-Add-wiphy_delayed_work_pending.patch |  83 ++++++++++++
 ...11-Convert-color-collision-detection-to-w.patch | 148 +++++++++++++++++++++
 6 files changed, 403 insertions(+)

diff --git a/package/kernel/mac80211/patches/subsys/361-wifi-mac80211-fix-vif-addr-when-switching-from-monit.patch b/package/kernel/mac80211/patches/subsys/361-wifi-mac80211-fix-vif-addr-when-switching-from-monit.patch
new file mode 100644
index 0000000000..f4cfc95aa3
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/361-wifi-mac80211-fix-vif-addr-when-switching-from-monit.patch
@@ -0,0 +1,63 @@
+From: Felix Fietkau <nbd at nbd.name>
+Date: Fri, 15 Nov 2024 12:28:43 +0100
+Subject: [PATCH] wifi: mac80211: fix vif addr when switching from monitor
+ to station
+
+Since adding support for opting out of virtual monitor support, a zero vif
+addr was used to indicate passive vs active monitor to the driver.
+This would break the vif->addr when changing the netdev mac address before
+switching the interface from monitor to sta mode.
+Fix the regression by adding a separate flag to indicate whether vif->addr
+is valid.
+
+Reported-by: syzbot+9ea265d998de25ac6a46 at syzkaller.appspotmail.com
+Fixes: 9d40f7e32774 ("wifi: mac80211: add flag to opt out of virtual monitor support")
+Signed-off-by: Felix Fietkau <nbd at nbd.name>
+---
+
+--- a/include/net/mac80211.h
++++ b/include/net/mac80211.h
+@@ -1972,6 +1972,8 @@ enum ieee80211_neg_ttlm_res {
+  * @neg_ttlm: negotiated TID to link mapping info.
+  *	see &struct ieee80211_neg_ttlm.
+  * @addr: address of this interface
++ * @addr_valid: indicates if the address is actively used. Set to false for
++ *	passive monitor interfaces, true in all other cases.
+  * @p2p: indicates whether this AP or STA interface is a p2p
+  *	interface, i.e. a GO or p2p-sta respectively
+  * @netdev_features: tx netdev features supported by the hardware for this
+@@ -2011,6 +2013,7 @@ struct ieee80211_vif {
+ 	u16 valid_links, active_links, dormant_links, suspended_links;
+ 	struct ieee80211_neg_ttlm neg_ttlm;
+ 	u8 addr[ETH_ALEN] __aligned(2);
++	bool addr_valid;
+ 	bool p2p;
+ 
+ 	u8 cab_queue;
+--- a/net/mac80211/iface.c
++++ b/net/mac80211/iface.c
+@@ -279,13 +279,8 @@ static int _ieee80211_change_mac(struct
+ 	ret = eth_mac_addr(sdata->dev, sa);
+ 
+ 	if (ret == 0) {
+-		if (check_dup) {
+-			memcpy(sdata->vif.addr, sa->sa_data, ETH_ALEN);
+-			ether_addr_copy(sdata->vif.bss_conf.addr, sdata->vif.addr);
+-		} else {
+-			memset(sdata->vif.addr, 0, ETH_ALEN);
+-			memset(sdata->vif.bss_conf.addr, 0, ETH_ALEN);
+-		}
++		memcpy(sdata->vif.addr, sa->sa_data, ETH_ALEN);
++		ether_addr_copy(sdata->vif.bss_conf.addr, sdata->vif.addr);
+ 	}
+ 
+ 	/* Regardless of eth_mac_addr() return we still want to add the
+@@ -1324,6 +1319,8 @@ int ieee80211_do_open(struct wireless_de
+ 		}
+ 	}
+ 
++	sdata->vif.addr_valid = sdata->vif.type != NL80211_IFTYPE_MONITOR ||
++				(sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE);
+ 	switch (sdata->vif.type) {
+ 	case NL80211_IFTYPE_AP_VLAN:
+ 		/* no need to tell driver, but set carrier and chanctx */
diff --git a/package/kernel/mac80211/patches/subsys/362-wifi-mac80211-fix-incorrect-timing-to-initialize-sta.patch b/package/kernel/mac80211/patches/subsys/362-wifi-mac80211-fix-incorrect-timing-to-initialize-sta.patch
new file mode 100644
index 0000000000..94e51afd85
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/362-wifi-mac80211-fix-incorrect-timing-to-initialize-sta.patch
@@ -0,0 +1,32 @@
+From: Benjamin Lin <benjamin-jw.lin at mediatek.com>
+Date: Mon, 18 Nov 2024 16:07:22 +0800
+Subject: [PATCH] wifi: mac80211: fix incorrect timing to initialize
+ station NSS capability
+
+Station's spatial streaming capability should be initialized before
+handling VHT OMN, because the handling requires the capability information.
+
+Fixes: a8bca3e9371d ("wifi: mac80211: track capability/opmode NSS separately")
+Signed-off-by: Benjamin Lin <benjamin-jw.lin at mediatek.com>
+---
+
+--- a/net/mac80211/cfg.c
++++ b/net/mac80211/cfg.c
+@@ -1914,6 +1914,8 @@ static int sta_link_apply_parameters(str
+ 						    params->eht_capa_len,
+ 						    link_sta);
+ 
++	ieee80211_sta_init_nss(link_sta);
++
+ 	if (params->opmode_notif_used) {
+ 		/* returned value is only needed for rc update, but the
+ 		 * rc isn't initialized here yet, so ignore it
+@@ -1923,8 +1925,6 @@ static int sta_link_apply_parameters(str
+ 					      sband->band);
+ 	}
+ 
+-	ieee80211_sta_init_nss(link_sta);
+-
+ 	return 0;
+ }
+ 
diff --git a/package/kernel/mac80211/patches/subsys/363-wifi-mac80211-ieee80211_i-Fix-memory-corruption-bug-.patch b/package/kernel/mac80211/patches/subsys/363-wifi-mac80211-ieee80211_i-Fix-memory-corruption-bug-.patch
new file mode 100644
index 0000000000..dcdb89cd4a
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/363-wifi-mac80211-ieee80211_i-Fix-memory-corruption-bug-.patch
@@ -0,0 +1,53 @@
+From: "Gustavo A. R. Silva" <gustavoars at kernel.org>
+Date: Fri, 25 Oct 2024 16:05:50 -0600
+Subject: [PATCH] wifi: mac80211: ieee80211_i: Fix memory corruption bug in
+ struct ieee80211_chanctx
+
+Move the `struct ieee80211_chanctx_conf conf` to the end of
+`struct ieee80211_chanctx` and fix a memory corruption bug
+triggered e.g. in `hwsim_set_chanctx_magic()`: `radar_detected`
+is being overwritten when `cp->magic = HWSIM_CHANCTX_MAGIC;`
+See the function call sequence below:
+
+drv_add_chanctx(... struct ieee80211_chanctx *ctx) ->
+    local->ops->add_chanctx(&local->hw, &ctx->conf) ->
+	mac80211_hwsim_add_chanctx(... struct ieee80211_chanctx_conf *ctx) ->
+	    hwsim_set_chanctx_magic(ctx)
+
+This also happens in a number of other drivers.
+
+Also, add a code comment to try to prevent people from introducing
+new members after `struct ieee80211_chanctx_conf conf`. Notice that
+`struct ieee80211_chanctx_conf` is a flexible structure --a structure
+that contains a flexible-array member, so it should always be at
+the end of any other containing structures.
+
+This change also fixes 50 of the following warnings:
+
+net/mac80211/ieee80211_i.h:895:39: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]
+
+-Wflex-array-member-not-at-end was introduced in GCC-14, and we are
+getting ready to enable it, globally.
+
+Fixes: bca8bc0399ac ("wifi: mac80211: handle ieee80211_radar_detected() for MLO")
+Signed-off-by: Gustavo A. R. Silva <gustavoars at kernel.org>
+Link: https://patch.msgid.link/ZxwWPrncTeSi1UTq at kspp
+[also refer to other drivers in commit message]
+Signed-off-by: Johannes Berg <johannes.berg at intel.com>
+---
+
+--- a/net/mac80211/ieee80211_i.h
++++ b/net/mac80211/ieee80211_i.h
+@@ -894,9 +894,10 @@ struct ieee80211_chanctx {
+ 	/* temporary data for search algorithm etc. */
+ 	struct ieee80211_chan_req req;
+ 
+-	struct ieee80211_chanctx_conf conf;
+-
+ 	bool radar_detected;
++
++	/* MUST be last - ends in a flexible-array member. */
++	struct ieee80211_chanctx_conf conf;
+ };
+ 
+ struct mac80211_qos_map {
diff --git a/package/kernel/mac80211/patches/subsys/364-mac80211-fix-user-power-when-emulating-chanctx.patch b/package/kernel/mac80211/patches/subsys/364-mac80211-fix-user-power-when-emulating-chanctx.patch
new file mode 100644
index 0000000000..15db2c54e4
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/364-mac80211-fix-user-power-when-emulating-chanctx.patch
@@ -0,0 +1,24 @@
+From: Ben Greear <greearb at candelatech.com>
+Date: Thu, 10 Oct 2024 13:39:54 -0700
+Subject: [PATCH] mac80211: fix user-power when emulating chanctx
+
+ieee80211_calc_hw_conf_chan was ignoring the configured
+user_txpower.  If it is set, use it to potentially decrease
+txpower as requested.
+
+Signed-off-by: Ben Greear <greearb at candelatech.com>
+Link: https://patch.msgid.link/20241010203954.1219686-1-greearb at candelatech.com
+Signed-off-by: Johannes Berg <johannes.berg at intel.com>
+---
+
+--- a/net/mac80211/main.c
++++ b/net/mac80211/main.c
+@@ -167,6 +167,8 @@ static u32 ieee80211_calc_hw_conf_chan(s
+ 	}
+ 
+ 	power = ieee80211_chandef_max_power(&chandef);
++	if (local->user_power_level != IEEE80211_UNSET_POWER_LEVEL)
++		power = min(local->user_power_level, power);
+ 
+ 	rcu_read_lock();
+ 	list_for_each_entry_rcu(sdata, &local->interfaces, list) {
diff --git a/package/kernel/mac80211/patches/subsys/365-wifi-cfg80211-Add-wiphy_delayed_work_pending.patch b/package/kernel/mac80211/patches/subsys/365-wifi-cfg80211-Add-wiphy_delayed_work_pending.patch
new file mode 100644
index 0000000000..981cc2433b
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/365-wifi-cfg80211-Add-wiphy_delayed_work_pending.patch
@@ -0,0 +1,83 @@
+From: Remi Pommarel <repk at triplefau.lt>
+Date: Tue, 24 Sep 2024 21:28:04 +0200
+Subject: [PATCH] wifi: cfg80211: Add wiphy_delayed_work_pending()
+
+Add wiphy_delayed_work_pending() to check if any delayed work timer is
+pending, that can be used to be sure that wiphy_delayed_work_queue()
+won't postpone an already pending delayed work.
+
+Signed-off-by: Remi Pommarel <repk at triplefau.lt>
+Link: https://patch.msgid.link/20240924192805.13859-2-repk at triplefau.lt
+[fix return value kernel-doc]
+Signed-off-by: Johannes Berg <johannes.berg at intel.com>
+---
+
+--- a/include/net/cfg80211.h
++++ b/include/net/cfg80211.h
+@@ -6141,6 +6141,50 @@ void wiphy_delayed_work_flush(struct wip
+ 			      struct wiphy_delayed_work *dwork);
+ 
+ /**
++ * wiphy_delayed_work_pending - Find out whether a wiphy delayable
++ * work item is currently pending.
++ *
++ * @wiphy: the wiphy, for debug purposes
++ * @dwork: the delayed work in question
++ *
++ * Return: true if timer is pending, false otherwise
++ *
++ * How wiphy_delayed_work_queue() works is by setting a timer which
++ * when it expires calls wiphy_work_queue() to queue the wiphy work.
++ * Because wiphy_delayed_work_queue() uses mod_timer(), if it is
++ * called twice and the second call happens before the first call
++ * deadline, the work will rescheduled for the second deadline and
++ * won't run before that.
++ *
++ * wiphy_delayed_work_pending() can be used to detect if calling
++ * wiphy_work_delayed_work_queue() would start a new work schedule
++ * or delayed a previous one. As seen below it cannot be used to
++ * detect precisely if the work has finished to execute nor if it
++ * is currently executing.
++ *
++ *      CPU0                                CPU1
++ * wiphy_delayed_work_queue(wk)
++ *  mod_timer(wk->timer)
++ *                                     wiphy_delayed_work_pending(wk) -> true
++ *
++ * [...]
++ * expire_timers(wk->timer)
++ *  detach_timer(wk->timer)
++ *                                     wiphy_delayed_work_pending(wk) -> false
++ *  wk->timer->function()                          |
++ *   wiphy_work_queue(wk)                          | delayed work pending
++ *    list_add_tail()                              | returns false but
++ *    queue_work(cfg80211_wiphy_work)              | wk->func() has not
++ *                                                 | been run yet
++ * [...]                                           |
++ *  cfg80211_wiphy_work()                          |
++ *   wk->func()                                    V
++ *
++ */
++bool wiphy_delayed_work_pending(struct wiphy *wiphy,
++				struct wiphy_delayed_work *dwork);
++
++/**
+  * enum ieee80211_ap_reg_power - regulatory power for an Access Point
+  *
+  * @IEEE80211_REG_UNSET_AP: Access Point has no regulatory power mode
+--- a/net/wireless/core.c
++++ b/net/wireless/core.c
+@@ -1735,6 +1735,13 @@ void wiphy_delayed_work_flush(struct wip
+ }
+ EXPORT_SYMBOL_GPL(wiphy_delayed_work_flush);
+ 
++bool wiphy_delayed_work_pending(struct wiphy *wiphy,
++				struct wiphy_delayed_work *dwork)
++{
++	return timer_pending(&dwork->timer);
++}
++EXPORT_SYMBOL_GPL(wiphy_delayed_work_pending);
++
+ static int __init cfg80211_init(void)
+ {
+ 	int err;
diff --git a/package/kernel/mac80211/patches/subsys/366-wifi-mac80211-Convert-color-collision-detection-to-w.patch b/package/kernel/mac80211/patches/subsys/366-wifi-mac80211-Convert-color-collision-detection-to-w.patch
new file mode 100644
index 0000000000..ae72441c46
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/366-wifi-mac80211-Convert-color-collision-detection-to-w.patch
@@ -0,0 +1,148 @@
+From: Remi Pommarel <repk at triplefau.lt>
+Date: Tue, 24 Sep 2024 21:28:05 +0200
+Subject: [PATCH] wifi: mac80211: Convert color collision detection to wiphy
+ work
+
+Call to ieee80211_color_collision_detection_work() needs wiphy lock to
+be held (see lockdep assert in cfg80211_bss_color_notify()). Not locking
+wiphy causes the following lockdep error:
+
+  WARNING: CPU: 2 PID: 42 at net/wireless/nl80211.c:19505 cfg80211_bss_color_notify+0x1a4/0x25c
+  Modules linked in:
+  CPU: 2 PID: 42 Comm: kworker/u8:3 Tainted: G        W          6.4.0-02327-g36c6cb260481 #1048
+  Hardware name:
+  Workqueue: phy1 ieee80211_color_collision_detection_work
+  pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
+  pc : cfg80211_bss_color_notify+0x1a4/0x25c
+  lr : cfg80211_bss_color_notify+0x1a0/0x25c
+  sp : ffff000002947d00
+  x29: ffff000002947d00 x28: ffff800008e1a000 x27: ffff000002bd4705
+  x26: ffff00000d034000 x25: ffff80000903cf40 x24: 0000000000000000
+  x23: ffff00000cb70720 x22: 0000000000800000 x21: ffff800008dfb008
+  x20: 000000000000008d x19: ffff00000d035fa8 x18: 0000000000000010
+  x17: 0000000000000001 x16: 000003564b1ce96a x15: 000d69696d057970
+  x14: 000000000000003b x13: 0000000000000001 x12: 0000000000040000
+  x11: 0000000000000001 x10: ffff80000978f9c0 x9 : ffff0000028d3174
+  x8 : ffff800008e30000 x7 : 0000000000000000 x6 : 0000000000000028
+  x5 : 000000000002f498 x4 : ffff00000d034a80 x3 : 0000000000800000
+  x2 : ffff800016143000 x1 : 0000000000000000 x0 : 0000000000000000
+  Call trace:
+   cfg80211_bss_color_notify+0x1a4/0x25c
+   ieee80211_color_collision_detection_work+0x20/0x118
+   process_one_work+0x294/0x554
+   worker_thread+0x70/0x440
+   kthread+0xf4/0xf8
+   ret_from_fork+0x10/0x20
+  irq event stamp: 77372
+  hardirqs last  enabled at (77371): [<ffff800008a346fc>] _raw_spin_unlock_irq+0x2c/0x4c
+  hardirqs last disabled at (77372): [<ffff800008a28754>] el1_dbg+0x20/0x48
+  softirqs last  enabled at (77350): [<ffff8000089e120c>] batadv_send_outstanding_bcast_packet+0xb8/0x120
+  softirqs last disabled at (77348): [<ffff8000089e11d4>] batadv_send_outstanding_bcast_packet+0x80/0x120
+
+The wiphy lock cannot be taken directly from color collision detection
+delayed work (ieee80211_color_collision_detection_work()) because this
+work is cancel_delayed_work_sync() under this wiphy lock causing a
+potential deadlock( see [0] for details).
+
+To fix that ieee80211_color_collision_detection_work() could be
+converted to a wiphy work and cancel_delayed_work_sync() can be simply
+replaced by wiphy_delayed_work_cancel() serving the same purpose under
+wiphy lock.
+
+This could potentially fix [1].
+
+[0]: https://lore.kernel.org/linux-wireless/D4A40Q44OAY2.W3SIF6UEPBUN at freebox.fr/
+[1]: https://lore.kernel.org/lkml/000000000000612f290618eee3e5 at google.com/
+
+Reported-by: Nicolas Escande <nescande at freebox.fr>
+Signed-off-by: Remi Pommarel <repk at triplefau.lt>
+Link: https://patch.msgid.link/20240924192805.13859-3-repk at triplefau.lt
+Signed-off-by: Johannes Berg <johannes.berg at intel.com>
+---
+
+--- a/net/mac80211/cfg.c
++++ b/net/mac80211/cfg.c
+@@ -4836,12 +4836,12 @@ void ieee80211_color_change_finalize_wor
+ 	ieee80211_color_change_finalize(link);
+ }
+ 
+-void ieee80211_color_collision_detection_work(struct work_struct *work)
++void ieee80211_color_collision_detection_work(struct wiphy *wiphy,
++					      struct wiphy_work *work)
+ {
+-	struct delayed_work *delayed_work = to_delayed_work(work);
+ 	struct ieee80211_link_data *link =
+-		container_of(delayed_work, struct ieee80211_link_data,
+-			     color_collision_detect_work);
++		container_of(work, struct ieee80211_link_data,
++			     color_collision_detect_work.work);
+ 	struct ieee80211_sub_if_data *sdata = link->sdata;
+ 
+ 	cfg80211_obss_color_collision_notify(sdata->dev, link->color_bitmap,
+@@ -4894,7 +4894,8 @@ ieee80211_obss_color_collision_notify(st
+ 		return;
+ 	}
+ 
+-	if (delayed_work_pending(&link->color_collision_detect_work)) {
++	if (wiphy_delayed_work_pending(sdata->local->hw.wiphy,
++				       &link->color_collision_detect_work)) {
+ 		rcu_read_unlock();
+ 		return;
+ 	}
+@@ -4903,9 +4904,9 @@ ieee80211_obss_color_collision_notify(st
+ 	/* queue the color collision detection event every 500 ms in order to
+ 	 * avoid sending too much netlink messages to userspace.
+ 	 */
+-	ieee80211_queue_delayed_work(&sdata->local->hw,
+-				     &link->color_collision_detect_work,
+-				     msecs_to_jiffies(500));
++	wiphy_delayed_work_queue(sdata->local->hw.wiphy,
++				 &link->color_collision_detect_work,
++				 msecs_to_jiffies(500));
+ 
+ 	rcu_read_unlock();
+ }
+--- a/net/mac80211/ieee80211_i.h
++++ b/net/mac80211/ieee80211_i.h
+@@ -1056,7 +1056,7 @@ struct ieee80211_link_data {
+ 	} csa;
+ 
+ 	struct wiphy_work color_change_finalize_work;
+-	struct delayed_work color_collision_detect_work;
++	struct wiphy_delayed_work color_collision_detect_work;
+ 	u64 color_bitmap;
+ 
+ 	/* context reservation -- protected with wiphy mutex */
+@@ -2010,7 +2010,8 @@ int ieee80211_channel_switch(struct wiph
+ /* color change handling */
+ void ieee80211_color_change_finalize_work(struct wiphy *wiphy,
+ 					  struct wiphy_work *work);
+-void ieee80211_color_collision_detection_work(struct work_struct *work);
++void ieee80211_color_collision_detection_work(struct wiphy *wiphy,
++					      struct wiphy_work *work);
+ 
+ /* interface handling */
+ #define MAC80211_SUPPORTED_FEATURES_TX	(NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | \
+--- a/net/mac80211/link.c
++++ b/net/mac80211/link.c
+@@ -41,8 +41,8 @@ void ieee80211_link_init(struct ieee8021
+ 			ieee80211_csa_finalize_work);
+ 	wiphy_work_init(&link->color_change_finalize_work,
+ 			ieee80211_color_change_finalize_work);
+-	INIT_DELAYED_WORK(&link->color_collision_detect_work,
+-			  ieee80211_color_collision_detection_work);
++	wiphy_delayed_work_init(&link->color_collision_detect_work,
++				ieee80211_color_collision_detection_work);
+ 	INIT_LIST_HEAD(&link->assigned_chanctx_list);
+ 	INIT_LIST_HEAD(&link->reserved_chanctx_list);
+ 	wiphy_delayed_work_init(&link->dfs_cac_timer_work,
+@@ -72,7 +72,8 @@ void ieee80211_link_stop(struct ieee8021
+ 	if (link->sdata->vif.type == NL80211_IFTYPE_STATION)
+ 		ieee80211_mgd_stop_link(link);
+ 
+-	cancel_delayed_work_sync(&link->color_collision_detect_work);
++	wiphy_delayed_work_cancel(link->sdata->local->hw.wiphy,
++				  &link->color_collision_detect_work);
+ 	wiphy_work_cancel(link->sdata->local->hw.wiphy,
+ 			  &link->color_change_finalize_work);
+ 	wiphy_work_cancel(link->sdata->local->hw.wiphy,



From lede-commits at lists.infradead.org  Mon Nov 18 06:05:43 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 18 Nov 2024 09:05:43 -0500
Subject: [openwrt/openwrt]  airoha: an7581: sync patch with upstream version
 and tag them
In-Reply-To: <173193874379.624655.4736730860035182160@git-01.infra.openwrt.org>
References: <173193874379.624655.4736730860035182160@git-01.infra.openwrt.org>
Message-ID: <mailman.2036.1731938750.1089.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/a5d23e3aee9bd616044c3eadfe2dbcad5d18b163

commit a5d23e3aee9bd616044c3eadfe2dbcad5d18b163
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Mon Nov 18 15:01:07 2024 +0100

    airoha: an7581: sync patch with upstream version and tag them
    
    Sync patch with upstream version and tag them.
    Minor changes done to Pinctrl patch to support older kernel.
    
    Patch automatically refreshed with make target/linux/refresh.
    
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 ...g-Add-support-for-Airoha-EN7851-watchdog.patch} | 15 ++++----
 ...emove-REG_PCIE-_-MEM-MEM_MASK-configurat.patch} |  6 ++--
 ...-move-clock_register-in-hw_init-callback.patch} |  6 ++--
 ....13-clk-en7523-introduce-chip_scu-regmap.patch} |  6 ++--
 ...-fix-estimation-of-fixed-rate-for-EN7581.patch} |  6 ++--
 ...ove-en7581_reset_register-in-en7581_clk_.patch} |  6 ++--
 ...k-en7523-map-io-region-in-a-single-block.patch} |  6 ++--
 ...inctrl-airoha-Add-support-for-EN7581-SoC.patch} | 42 +++++++++++-----------
 8 files changed, 52 insertions(+), 41 deletions(-)

diff --git a/target/linux/airoha/patches-6.6/103-watchdog-Add-support-for-Airoha-EN7851-watchdog.patch b/target/linux/airoha/patches-6.6/032-v6.13-watchdog-Add-support-for-Airoha-EN7851-watchdog.patch
similarity index 94%
rename from target/linux/airoha/patches-6.6/103-watchdog-Add-support-for-Airoha-EN7851-watchdog.patch
rename to target/linux/airoha/patches-6.6/032-v6.13-watchdog-Add-support-for-Airoha-EN7851-watchdog.patch
index e58ee54609..02dbadff4e 100644
--- a/target/linux/airoha/patches-6.6/103-watchdog-Add-support-for-Airoha-EN7851-watchdog.patch
+++ b/target/linux/airoha/patches-6.6/032-v6.13-watchdog-Add-support-for-Airoha-EN7851-watchdog.patch
@@ -1,19 +1,18 @@
-From 4019d58ca5b249e4cf79169cc0c6a4ff5275c155 Mon Sep 17 00:00:00 2001
+From 3cf67f3769b8227ca75ca7102180a2e270ee01aa Mon Sep 17 00:00:00 2001
 From: Christian Marangi <ansuelsmth at gmail.com>
-Date: Fri, 5 Jul 2024 19:12:12 +0200
-Subject: [PATCH v2 2/2] watchdog: Add support for Airoha EN7851 watchdog
+Date: Fri, 11 Oct 2024 12:43:53 +0200
+Subject: [PATCH] watchdog: Add support for Airoha EN7851 watchdog
 
 Add support for Airoha EN7851 watchdog. This is a very basic watchdog
 with no pretimeout support, max timeout is 28 seconds and it ticks based
 on half the SoC BUS clock.
 
 Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
+Reviewed-by: Guenter Roeck <linux at roeck-us.net>
+Link: https://lore.kernel.org/r/20241011104411.28659-2-ansuelsmth at gmail.com
+Signed-off-by: Guenter Roeck <linux at roeck-us.net>
+Signed-off-by: Wim Van Sebroeck <wim at linux-watchdog.org>
 ---
-Changes v2:
-- Drop clock-frequency implementation
-- Add missing bitfield.h header
-- Attach BUS clock
-
  drivers/watchdog/Kconfig      |   8 ++
  drivers/watchdog/Makefile     |   1 +
  drivers/watchdog/airoha_wdt.c | 216 ++++++++++++++++++++++++++++++++++
diff --git a/target/linux/airoha/patches-6.6/106-01-clk-en7523-remove-REG_PCIE-_-MEM-MEM_MASK-configurat.patch b/target/linux/airoha/patches-6.6/033-01-v6.13-clk-en7523-remove-REG_PCIE-_-MEM-MEM_MASK-configurat.patch
similarity index 89%
rename from target/linux/airoha/patches-6.6/106-01-clk-en7523-remove-REG_PCIE-_-MEM-MEM_MASK-configurat.patch
rename to target/linux/airoha/patches-6.6/033-01-v6.13-clk-en7523-remove-REG_PCIE-_-MEM-MEM_MASK-configurat.patch
index d2e0c6d541..59aefbb66e 100644
--- a/target/linux/airoha/patches-6.6/106-01-clk-en7523-remove-REG_PCIE-_-MEM-MEM_MASK-configurat.patch
+++ b/target/linux/airoha/patches-6.6/033-01-v6.13-clk-en7523-remove-REG_PCIE-_-MEM-MEM_MASK-configurat.patch
@@ -1,6 +1,6 @@
-From 64e497f372dfca3e6be9fe05a0f9b874ea8604d2 Mon Sep 17 00:00:00 2001
+From c31d1cdd7bff1d2c13d435bb9d0c76bfaa332097 Mon Sep 17 00:00:00 2001
 From: Lorenzo Bianconi <lorenzo at kernel.org>
-Date: Tue, 3 Sep 2024 23:39:46 +0200
+Date: Tue, 12 Nov 2024 01:08:49 +0100
 Subject: [PATCH 1/6] clk: en7523: remove REG_PCIE*_{MEM,MEM_MASK}
  configuration
 
@@ -12,6 +12,8 @@ This patch does not introduce any backward incompatibility since the dts
 for EN7581 SoC is not upstream yet.
 
 Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
+Link: https://lore.kernel.org/r/20241112-clk-en7581-syscon-v2-2-8ada5e394ae4 at kernel.org
+Signed-off-by: Stephen Boyd <sboyd at kernel.org>
 ---
  drivers/clk/clk-en7523.c | 18 ------------------
  1 file changed, 18 deletions(-)
diff --git a/target/linux/airoha/patches-6.6/106-02-clk-en7523-move-clock_register-in-hw_init-callback.patch b/target/linux/airoha/patches-6.6/033-02-v6.13-clk-en7523-move-clock_register-in-hw_init-callback.patch
similarity index 94%
rename from target/linux/airoha/patches-6.6/106-02-clk-en7523-move-clock_register-in-hw_init-callback.patch
rename to target/linux/airoha/patches-6.6/033-02-v6.13-clk-en7523-move-clock_register-in-hw_init-callback.patch
index 44bfc4404b..f4cfaa2bf9 100644
--- a/target/linux/airoha/patches-6.6/106-02-clk-en7523-move-clock_register-in-hw_init-callback.patch
+++ b/target/linux/airoha/patches-6.6/033-02-v6.13-clk-en7523-move-clock_register-in-hw_init-callback.patch
@@ -1,6 +1,6 @@
-From 0dd8a6df58a4a8cf1f341249e7358b3bb51f52ad Mon Sep 17 00:00:00 2001
+From b8bdfc666bc5f58caf46e67b615132fccbaca3d4 Mon Sep 17 00:00:00 2001
 From: Lorenzo Bianconi <lorenzo at kernel.org>
-Date: Tue, 3 Sep 2024 23:39:47 +0200
+Date: Tue, 12 Nov 2024 01:08:50 +0100
 Subject: [PATCH 2/6] clk: en7523: move clock_register in hw_init callback
 
 Move en7523_register_clocks routine in hw_init callback.
@@ -11,6 +11,8 @@ EN7523 and EN7581 SoCs in order to access chip-scu IO region
 miscellaneous registers needed by multiple devices (clock, pinctrl ..).
 
 Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
+Link: https://lore.kernel.org/r/20241112-clk-en7581-syscon-v2-3-8ada5e394ae4 at kernel.org
+Signed-off-by: Stephen Boyd <sboyd at kernel.org>
 ---
  drivers/clk/clk-en7523.c | 82 ++++++++++++++++++++++++----------------
  1 file changed, 50 insertions(+), 32 deletions(-)
diff --git a/target/linux/airoha/patches-6.6/106-03-clk-en7523-introduce-chip_scu-regmap.patch b/target/linux/airoha/patches-6.6/033-03-v6.13-clk-en7523-introduce-chip_scu-regmap.patch
similarity index 95%
rename from target/linux/airoha/patches-6.6/106-03-clk-en7523-introduce-chip_scu-regmap.patch
rename to target/linux/airoha/patches-6.6/033-03-v6.13-clk-en7523-introduce-chip_scu-regmap.patch
index 4f8211c564..6c34ca2fa5 100644
--- a/target/linux/airoha/patches-6.6/106-03-clk-en7523-introduce-chip_scu-regmap.patch
+++ b/target/linux/airoha/patches-6.6/033-03-v6.13-clk-en7523-introduce-chip_scu-regmap.patch
@@ -1,6 +1,6 @@
-From f849bcb746abeaafa63b4f02f1d8bb22703fc645 Mon Sep 17 00:00:00 2001
+From f72fc22038dd544fa4d39c06e8c81c09c0041ed4 Mon Sep 17 00:00:00 2001
 From: Lorenzo Bianconi <lorenzo at kernel.org>
-Date: Tue, 3 Sep 2024 23:39:48 +0200
+Date: Tue, 12 Nov 2024 01:08:51 +0100
 Subject: [PATCH 3/6] clk: en7523: introduce chip_scu regmap
 
 Introduce chip_scu regmap pointer since EN7581 SoC will access chip-scu
@@ -9,6 +9,8 @@ for EN7581 SoC. This patch does not introduce any backward incompatibility
 since the dts for EN7581 SoC is not upstream yet.
 
 Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
+Link: https://lore.kernel.org/r/20241112-clk-en7581-syscon-v2-4-8ada5e394ae4 at kernel.org
+Signed-off-by: Stephen Boyd <sboyd at kernel.org>
 ---
  drivers/clk/clk-en7523.c | 81 ++++++++++++++++++++++++++++++----------
  1 file changed, 61 insertions(+), 20 deletions(-)
diff --git a/target/linux/airoha/patches-6.6/106-04-clk-en7523-fix-estimation-of-fixed-rate-for-EN7581.patch b/target/linux/airoha/patches-6.6/033-04-v6.13-clk-en7523-fix-estimation-of-fixed-rate-for-EN7581.patch
similarity index 94%
rename from target/linux/airoha/patches-6.6/106-04-clk-en7523-fix-estimation-of-fixed-rate-for-EN7581.patch
rename to target/linux/airoha/patches-6.6/033-04-v6.13-clk-en7523-fix-estimation-of-fixed-rate-for-EN7581.patch
index c311375a8b..79c9ab2ee1 100644
--- a/target/linux/airoha/patches-6.6/106-04-clk-en7523-fix-estimation-of-fixed-rate-for-EN7581.patch
+++ b/target/linux/airoha/patches-6.6/033-04-v6.13-clk-en7523-fix-estimation-of-fixed-rate-for-EN7581.patch
@@ -1,6 +1,6 @@
-From b9ea4918216ca0c2511446c531d3f8163ac1466d Mon Sep 17 00:00:00 2001
+From f98eded9e9ab048c88ff59c5523e703a6ced5523 Mon Sep 17 00:00:00 2001
 From: Lorenzo Bianconi <lorenzo at kernel.org>
-Date: Tue, 3 Sep 2024 23:39:49 +0200
+Date: Tue, 12 Nov 2024 01:08:52 +0100
 Subject: [PATCH 4/6] clk: en7523: fix estimation of fixed rate for EN7581
 
 Introduce en7581_base_clks array in order to define per-SoC fixed-rate
@@ -9,6 +9,8 @@ clocks
 
 Fixes: 66bc47326ce2 ("clk: en7523: Add EN7581 support")
 Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
+Link: https://lore.kernel.org/r/20241112-clk-en7581-syscon-v2-5-8ada5e394ae4 at kernel.org
+Signed-off-by: Stephen Boyd <sboyd at kernel.org>
 ---
  drivers/clk/clk-en7523.c | 105 ++++++++++++++++++++++++++++++++++++++-
  1 file changed, 103 insertions(+), 2 deletions(-)
diff --git a/target/linux/airoha/patches-6.6/106-05-clk-en7523-move-en7581_reset_register-in-en7581_clk_.patch b/target/linux/airoha/patches-6.6/033-05-v6.13-clk-en7523-move-en7581_reset_register-in-en7581_clk_.patch
similarity index 95%
rename from target/linux/airoha/patches-6.6/106-05-clk-en7523-move-en7581_reset_register-in-en7581_clk_.patch
rename to target/linux/airoha/patches-6.6/033-05-v6.13-clk-en7523-move-en7581_reset_register-in-en7581_clk_.patch
index 3869a58a83..36b9d9f3dc 100644
--- a/target/linux/airoha/patches-6.6/106-05-clk-en7523-move-en7581_reset_register-in-en7581_clk_.patch
+++ b/target/linux/airoha/patches-6.6/033-05-v6.13-clk-en7523-move-en7581_reset_register-in-en7581_clk_.patch
@@ -1,6 +1,6 @@
-From 2c5b1a5b68973947a6919d9c951f9b3e0d84f347 Mon Sep 17 00:00:00 2001
+From 82e6bf912d5846646892becea659b39d178d79e3 Mon Sep 17 00:00:00 2001
 From: Lorenzo Bianconi <lorenzo at kernel.org>
-Date: Tue, 3 Sep 2024 23:39:50 +0200
+Date: Tue, 12 Nov 2024 01:08:53 +0100
 Subject: [PATCH 5/6] clk: en7523: move en7581_reset_register() in
  en7581_clk_hw_init()
 
@@ -9,6 +9,8 @@ feature is supported just by EN7581 SoC.
 Get rid of reset struct in en_clk_soc_data data struct.
 
 Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
+Link: https://lore.kernel.org/r/20241112-clk-en7581-syscon-v2-6-8ada5e394ae4 at kernel.org
+Signed-off-by: Stephen Boyd <sboyd at kernel.org>
 ---
  drivers/clk/clk-en7523.c | 93 ++++++++++++++--------------------------
  1 file changed, 33 insertions(+), 60 deletions(-)
diff --git a/target/linux/airoha/patches-6.6/106-06-clk-en7523-map-io-region-in-a-single-block.patch b/target/linux/airoha/patches-6.6/033-06-v6.13-clk-en7523-map-io-region-in-a-single-block.patch
similarity index 91%
rename from target/linux/airoha/patches-6.6/106-06-clk-en7523-map-io-region-in-a-single-block.patch
rename to target/linux/airoha/patches-6.6/033-06-v6.13-clk-en7523-map-io-region-in-a-single-block.patch
index db04d602f3..dec7b81e5b 100644
--- a/target/linux/airoha/patches-6.6/106-06-clk-en7523-map-io-region-in-a-single-block.patch
+++ b/target/linux/airoha/patches-6.6/033-06-v6.13-clk-en7523-map-io-region-in-a-single-block.patch
@@ -1,6 +1,6 @@
-From 665a59f4836c3d7813a9d8bfb9680d93adb4626e Mon Sep 17 00:00:00 2001
+From a9eaf305017a5ebe73ab34e85bd5414055a88f29 Mon Sep 17 00:00:00 2001
 From: Lorenzo Bianconi <lorenzo at kernel.org>
-Date: Tue, 3 Sep 2024 23:39:51 +0200
+Date: Tue, 12 Nov 2024 01:08:54 +0100
 Subject: [PATCH 6/6] clk: en7523: map io region in a single block
 
 Map all clock-controller memory region in a single block.
@@ -8,6 +8,8 @@ This patch does not introduce any backward incompatibility since the dts
 for EN7581 SoC is not upstream yet.
 
 Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
+Link: https://lore.kernel.org/r/20241112-clk-en7581-syscon-v2-7-8ada5e394ae4 at kernel.org
+Signed-off-by: Stephen Boyd <sboyd at kernel.org>
 ---
  drivers/clk/clk-en7523.c | 32 +++++++++++++-------------------
  1 file changed, 13 insertions(+), 19 deletions(-)
diff --git a/target/linux/airoha/patches-6.6/107-pinctrl-airoha-Add-support-for-EN7581-SoC.patch b/target/linux/airoha/patches-6.6/034-v6.13-pinctrl-airoha-Add-support-for-EN7581-SoC.patch
similarity index 99%
rename from target/linux/airoha/patches-6.6/107-pinctrl-airoha-Add-support-for-EN7581-SoC.patch
rename to target/linux/airoha/patches-6.6/034-v6.13-pinctrl-airoha-Add-support-for-EN7581-SoC.patch
index 8e299512c3..2e36a2540f 100644
--- a/target/linux/airoha/patches-6.6/107-pinctrl-airoha-Add-support-for-EN7581-SoC.patch
+++ b/target/linux/airoha/patches-6.6/034-v6.13-pinctrl-airoha-Add-support-for-EN7581-SoC.patch
@@ -1,7 +1,7 @@
-From 21cb14f3e6d12d666a9ec0fd7cc01d722b04e514 Mon Sep 17 00:00:00 2001
+From 1c8ace2d0725c1c8d5012f8a56c5fb31805aad27 Mon Sep 17 00:00:00 2001
 From: Lorenzo Bianconi <lorenzo at kernel.org>
-Date: Wed, 16 Oct 2024 12:07:33 +0200
-Subject: [PATCH 1/2] pinctrl: airoha: Add support for EN7581 SoC
+Date: Wed, 23 Oct 2024 01:20:05 +0200
+Subject: [PATCH] pinctrl: airoha: Add support for EN7581 SoC
 
 Introduce pinctrl driver for EN7581 SoC. Current EN7581 pinctrl driver
 supports the following functionalities:
@@ -15,8 +15,10 @@ Tested-by: Benjamin Larsson <benjamin.larsson at genexis.eu>
 Co-developed-by: Benjamin Larsson <benjamin.larsson at genexis.eu>
 Signed-off-by: Benjamin Larsson <benjamin.larsson at genexis.eu>
 Reviewed-by: Linus Walleij <linus.walleij at linaro.org>
-Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
 Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno at collabora.com>
+Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
+Link: https://lore.kernel.org/20241023-en7581-pinctrl-v9-5-afb0cbcab0ec at kernel.org
+Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
 ---
  MAINTAINERS                               |    7 +
  drivers/pinctrl/mediatek/Kconfig          |   17 +-
@@ -25,24 +27,22 @@ Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno at collabora.com
  4 files changed, 2994 insertions(+), 1 deletion(-)
  create mode 100644 drivers/pinctrl/mediatek/pinctrl-airoha.c
 
-# diff --git a/MAINTAINERS b/MAINTAINERS
-# index 8a6ea49e1a9d..ca4a78737dc6 100644
-# --- a/MAINTAINERS
-# +++ b/MAINTAINERS
-# @@ -18331,6 +18331,13 @@ F:	drivers/pinctrl/
-#  F:	include/dt-bindings/pinctrl/
-#  F:	include/linux/pinctrl/
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -16870,6 +16870,13 @@ F:	drivers/pinctrl/
+ F:	include/dt-bindings/pinctrl/
+ F:	include/linux/pinctrl/
  
-# +PIN CONTROLLER - AIROHA
-# +M:	Lorenzo Bianconi <lorenzo at kernel.org>
-# +L:	linux-mediatek at lists.infradead.org (moderated for non-subscribers)
-# +S:	Maintained
-# +F:	Documentation/devicetree/bindings/pinctrl/airoha,en7581-pinctrl.yaml
-# +F:	drivers/pinctrl/mediatek/pinctrl-airoha.c
-# +
-#  PIN CONTROLLER - AMD
-#  M:	Basavaraj Natikar <Basavaraj.Natikar at amd.com>
-#  M:	Shyam Sundar S K <Shyam-sundar.S-k at amd.com>
++PIN CONTROLLER - AIROHA
++M:	Lorenzo Bianconi <lorenzo at kernel.org>
++L:	linux-mediatek at lists.infradead.org (moderated for non-subscribers)
++S:	Maintained
++F:	Documentation/devicetree/bindings/pinctrl/airoha,en7581-pinctrl.yaml
++F:	drivers/pinctrl/mediatek/pinctrl-airoha.c
++
+ PIN CONTROLLER - AMD
+ M:	Basavaraj Natikar <Basavaraj.Natikar at amd.com>
+ M:	Shyam Sundar S K <Shyam-sundar.S-k at amd.com>
 --- a/drivers/pinctrl/mediatek/Kconfig
 +++ b/drivers/pinctrl/mediatek/Kconfig
 @@ -1,6 +1,6 @@



From lede-commits at lists.infradead.org  Mon Nov 18 06:06:13 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 18 Nov 2024 09:06:13 -0500
Subject: [openwrt/openwrt]  airoha: an7581: sync patch with upstream version
 and tag them
In-Reply-To: <173193877376.625915.1982513060279974350@git-01.infra.openwrt.org>
References: <173193877376.625915.1982513060279974350@git-01.infra.openwrt.org>
Message-ID: <mailman.2037.1731938777.1089.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/3ecfc24c511c51e42e98a27a94543a442a7f59a7

commit 3ecfc24c511c51e42e98a27a94543a442a7f59a7
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Mon Nov 18 15:01:07 2024 +0100

    airoha: an7581: sync patch with upstream version and tag them
    
    Sync patch with upstream version and tag them.
    Minor changes done to Pinctrl patch to support older kernel.
    
    Patch automatically refreshed with make target/linux/refresh.
    
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
    (cherry picked from commit a5d23e3aee9bd616044c3eadfe2dbcad5d18b163)
---
 ...g-Add-support-for-Airoha-EN7851-watchdog.patch} | 15 ++++----
 ...emove-REG_PCIE-_-MEM-MEM_MASK-configurat.patch} |  6 ++--
 ...-move-clock_register-in-hw_init-callback.patch} |  6 ++--
 ....13-clk-en7523-introduce-chip_scu-regmap.patch} |  6 ++--
 ...-fix-estimation-of-fixed-rate-for-EN7581.patch} |  6 ++--
 ...ove-en7581_reset_register-in-en7581_clk_.patch} |  6 ++--
 ...k-en7523-map-io-region-in-a-single-block.patch} |  6 ++--
 ...inctrl-airoha-Add-support-for-EN7581-SoC.patch} | 42 +++++++++++-----------
 8 files changed, 52 insertions(+), 41 deletions(-)

diff --git a/target/linux/airoha/patches-6.6/103-watchdog-Add-support-for-Airoha-EN7851-watchdog.patch b/target/linux/airoha/patches-6.6/032-v6.13-watchdog-Add-support-for-Airoha-EN7851-watchdog.patch
similarity index 94%
rename from target/linux/airoha/patches-6.6/103-watchdog-Add-support-for-Airoha-EN7851-watchdog.patch
rename to target/linux/airoha/patches-6.6/032-v6.13-watchdog-Add-support-for-Airoha-EN7851-watchdog.patch
index e58ee54609..02dbadff4e 100644
--- a/target/linux/airoha/patches-6.6/103-watchdog-Add-support-for-Airoha-EN7851-watchdog.patch
+++ b/target/linux/airoha/patches-6.6/032-v6.13-watchdog-Add-support-for-Airoha-EN7851-watchdog.patch
@@ -1,19 +1,18 @@
-From 4019d58ca5b249e4cf79169cc0c6a4ff5275c155 Mon Sep 17 00:00:00 2001
+From 3cf67f3769b8227ca75ca7102180a2e270ee01aa Mon Sep 17 00:00:00 2001
 From: Christian Marangi <ansuelsmth at gmail.com>
-Date: Fri, 5 Jul 2024 19:12:12 +0200
-Subject: [PATCH v2 2/2] watchdog: Add support for Airoha EN7851 watchdog
+Date: Fri, 11 Oct 2024 12:43:53 +0200
+Subject: [PATCH] watchdog: Add support for Airoha EN7851 watchdog
 
 Add support for Airoha EN7851 watchdog. This is a very basic watchdog
 with no pretimeout support, max timeout is 28 seconds and it ticks based
 on half the SoC BUS clock.
 
 Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
+Reviewed-by: Guenter Roeck <linux at roeck-us.net>
+Link: https://lore.kernel.org/r/20241011104411.28659-2-ansuelsmth at gmail.com
+Signed-off-by: Guenter Roeck <linux at roeck-us.net>
+Signed-off-by: Wim Van Sebroeck <wim at linux-watchdog.org>
 ---
-Changes v2:
-- Drop clock-frequency implementation
-- Add missing bitfield.h header
-- Attach BUS clock
-
  drivers/watchdog/Kconfig      |   8 ++
  drivers/watchdog/Makefile     |   1 +
  drivers/watchdog/airoha_wdt.c | 216 ++++++++++++++++++++++++++++++++++
diff --git a/target/linux/airoha/patches-6.6/106-01-clk-en7523-remove-REG_PCIE-_-MEM-MEM_MASK-configurat.patch b/target/linux/airoha/patches-6.6/033-01-v6.13-clk-en7523-remove-REG_PCIE-_-MEM-MEM_MASK-configurat.patch
similarity index 89%
rename from target/linux/airoha/patches-6.6/106-01-clk-en7523-remove-REG_PCIE-_-MEM-MEM_MASK-configurat.patch
rename to target/linux/airoha/patches-6.6/033-01-v6.13-clk-en7523-remove-REG_PCIE-_-MEM-MEM_MASK-configurat.patch
index d2e0c6d541..59aefbb66e 100644
--- a/target/linux/airoha/patches-6.6/106-01-clk-en7523-remove-REG_PCIE-_-MEM-MEM_MASK-configurat.patch
+++ b/target/linux/airoha/patches-6.6/033-01-v6.13-clk-en7523-remove-REG_PCIE-_-MEM-MEM_MASK-configurat.patch
@@ -1,6 +1,6 @@
-From 64e497f372dfca3e6be9fe05a0f9b874ea8604d2 Mon Sep 17 00:00:00 2001
+From c31d1cdd7bff1d2c13d435bb9d0c76bfaa332097 Mon Sep 17 00:00:00 2001
 From: Lorenzo Bianconi <lorenzo at kernel.org>
-Date: Tue, 3 Sep 2024 23:39:46 +0200
+Date: Tue, 12 Nov 2024 01:08:49 +0100
 Subject: [PATCH 1/6] clk: en7523: remove REG_PCIE*_{MEM,MEM_MASK}
  configuration
 
@@ -12,6 +12,8 @@ This patch does not introduce any backward incompatibility since the dts
 for EN7581 SoC is not upstream yet.
 
 Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
+Link: https://lore.kernel.org/r/20241112-clk-en7581-syscon-v2-2-8ada5e394ae4 at kernel.org
+Signed-off-by: Stephen Boyd <sboyd at kernel.org>
 ---
  drivers/clk/clk-en7523.c | 18 ------------------
  1 file changed, 18 deletions(-)
diff --git a/target/linux/airoha/patches-6.6/106-02-clk-en7523-move-clock_register-in-hw_init-callback.patch b/target/linux/airoha/patches-6.6/033-02-v6.13-clk-en7523-move-clock_register-in-hw_init-callback.patch
similarity index 94%
rename from target/linux/airoha/patches-6.6/106-02-clk-en7523-move-clock_register-in-hw_init-callback.patch
rename to target/linux/airoha/patches-6.6/033-02-v6.13-clk-en7523-move-clock_register-in-hw_init-callback.patch
index 44bfc4404b..f4cfaa2bf9 100644
--- a/target/linux/airoha/patches-6.6/106-02-clk-en7523-move-clock_register-in-hw_init-callback.patch
+++ b/target/linux/airoha/patches-6.6/033-02-v6.13-clk-en7523-move-clock_register-in-hw_init-callback.patch
@@ -1,6 +1,6 @@
-From 0dd8a6df58a4a8cf1f341249e7358b3bb51f52ad Mon Sep 17 00:00:00 2001
+From b8bdfc666bc5f58caf46e67b615132fccbaca3d4 Mon Sep 17 00:00:00 2001
 From: Lorenzo Bianconi <lorenzo at kernel.org>
-Date: Tue, 3 Sep 2024 23:39:47 +0200
+Date: Tue, 12 Nov 2024 01:08:50 +0100
 Subject: [PATCH 2/6] clk: en7523: move clock_register in hw_init callback
 
 Move en7523_register_clocks routine in hw_init callback.
@@ -11,6 +11,8 @@ EN7523 and EN7581 SoCs in order to access chip-scu IO region
 miscellaneous registers needed by multiple devices (clock, pinctrl ..).
 
 Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
+Link: https://lore.kernel.org/r/20241112-clk-en7581-syscon-v2-3-8ada5e394ae4 at kernel.org
+Signed-off-by: Stephen Boyd <sboyd at kernel.org>
 ---
  drivers/clk/clk-en7523.c | 82 ++++++++++++++++++++++++----------------
  1 file changed, 50 insertions(+), 32 deletions(-)
diff --git a/target/linux/airoha/patches-6.6/106-03-clk-en7523-introduce-chip_scu-regmap.patch b/target/linux/airoha/patches-6.6/033-03-v6.13-clk-en7523-introduce-chip_scu-regmap.patch
similarity index 95%
rename from target/linux/airoha/patches-6.6/106-03-clk-en7523-introduce-chip_scu-regmap.patch
rename to target/linux/airoha/patches-6.6/033-03-v6.13-clk-en7523-introduce-chip_scu-regmap.patch
index 4f8211c564..6c34ca2fa5 100644
--- a/target/linux/airoha/patches-6.6/106-03-clk-en7523-introduce-chip_scu-regmap.patch
+++ b/target/linux/airoha/patches-6.6/033-03-v6.13-clk-en7523-introduce-chip_scu-regmap.patch
@@ -1,6 +1,6 @@
-From f849bcb746abeaafa63b4f02f1d8bb22703fc645 Mon Sep 17 00:00:00 2001
+From f72fc22038dd544fa4d39c06e8c81c09c0041ed4 Mon Sep 17 00:00:00 2001
 From: Lorenzo Bianconi <lorenzo at kernel.org>
-Date: Tue, 3 Sep 2024 23:39:48 +0200
+Date: Tue, 12 Nov 2024 01:08:51 +0100
 Subject: [PATCH 3/6] clk: en7523: introduce chip_scu regmap
 
 Introduce chip_scu regmap pointer since EN7581 SoC will access chip-scu
@@ -9,6 +9,8 @@ for EN7581 SoC. This patch does not introduce any backward incompatibility
 since the dts for EN7581 SoC is not upstream yet.
 
 Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
+Link: https://lore.kernel.org/r/20241112-clk-en7581-syscon-v2-4-8ada5e394ae4 at kernel.org
+Signed-off-by: Stephen Boyd <sboyd at kernel.org>
 ---
  drivers/clk/clk-en7523.c | 81 ++++++++++++++++++++++++++++++----------
  1 file changed, 61 insertions(+), 20 deletions(-)
diff --git a/target/linux/airoha/patches-6.6/106-04-clk-en7523-fix-estimation-of-fixed-rate-for-EN7581.patch b/target/linux/airoha/patches-6.6/033-04-v6.13-clk-en7523-fix-estimation-of-fixed-rate-for-EN7581.patch
similarity index 94%
rename from target/linux/airoha/patches-6.6/106-04-clk-en7523-fix-estimation-of-fixed-rate-for-EN7581.patch
rename to target/linux/airoha/patches-6.6/033-04-v6.13-clk-en7523-fix-estimation-of-fixed-rate-for-EN7581.patch
index c311375a8b..79c9ab2ee1 100644
--- a/target/linux/airoha/patches-6.6/106-04-clk-en7523-fix-estimation-of-fixed-rate-for-EN7581.patch
+++ b/target/linux/airoha/patches-6.6/033-04-v6.13-clk-en7523-fix-estimation-of-fixed-rate-for-EN7581.patch
@@ -1,6 +1,6 @@
-From b9ea4918216ca0c2511446c531d3f8163ac1466d Mon Sep 17 00:00:00 2001
+From f98eded9e9ab048c88ff59c5523e703a6ced5523 Mon Sep 17 00:00:00 2001
 From: Lorenzo Bianconi <lorenzo at kernel.org>
-Date: Tue, 3 Sep 2024 23:39:49 +0200
+Date: Tue, 12 Nov 2024 01:08:52 +0100
 Subject: [PATCH 4/6] clk: en7523: fix estimation of fixed rate for EN7581
 
 Introduce en7581_base_clks array in order to define per-SoC fixed-rate
@@ -9,6 +9,8 @@ clocks
 
 Fixes: 66bc47326ce2 ("clk: en7523: Add EN7581 support")
 Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
+Link: https://lore.kernel.org/r/20241112-clk-en7581-syscon-v2-5-8ada5e394ae4 at kernel.org
+Signed-off-by: Stephen Boyd <sboyd at kernel.org>
 ---
  drivers/clk/clk-en7523.c | 105 ++++++++++++++++++++++++++++++++++++++-
  1 file changed, 103 insertions(+), 2 deletions(-)
diff --git a/target/linux/airoha/patches-6.6/106-05-clk-en7523-move-en7581_reset_register-in-en7581_clk_.patch b/target/linux/airoha/patches-6.6/033-05-v6.13-clk-en7523-move-en7581_reset_register-in-en7581_clk_.patch
similarity index 95%
rename from target/linux/airoha/patches-6.6/106-05-clk-en7523-move-en7581_reset_register-in-en7581_clk_.patch
rename to target/linux/airoha/patches-6.6/033-05-v6.13-clk-en7523-move-en7581_reset_register-in-en7581_clk_.patch
index 3869a58a83..36b9d9f3dc 100644
--- a/target/linux/airoha/patches-6.6/106-05-clk-en7523-move-en7581_reset_register-in-en7581_clk_.patch
+++ b/target/linux/airoha/patches-6.6/033-05-v6.13-clk-en7523-move-en7581_reset_register-in-en7581_clk_.patch
@@ -1,6 +1,6 @@
-From 2c5b1a5b68973947a6919d9c951f9b3e0d84f347 Mon Sep 17 00:00:00 2001
+From 82e6bf912d5846646892becea659b39d178d79e3 Mon Sep 17 00:00:00 2001
 From: Lorenzo Bianconi <lorenzo at kernel.org>
-Date: Tue, 3 Sep 2024 23:39:50 +0200
+Date: Tue, 12 Nov 2024 01:08:53 +0100
 Subject: [PATCH 5/6] clk: en7523: move en7581_reset_register() in
  en7581_clk_hw_init()
 
@@ -9,6 +9,8 @@ feature is supported just by EN7581 SoC.
 Get rid of reset struct in en_clk_soc_data data struct.
 
 Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
+Link: https://lore.kernel.org/r/20241112-clk-en7581-syscon-v2-6-8ada5e394ae4 at kernel.org
+Signed-off-by: Stephen Boyd <sboyd at kernel.org>
 ---
  drivers/clk/clk-en7523.c | 93 ++++++++++++++--------------------------
  1 file changed, 33 insertions(+), 60 deletions(-)
diff --git a/target/linux/airoha/patches-6.6/106-06-clk-en7523-map-io-region-in-a-single-block.patch b/target/linux/airoha/patches-6.6/033-06-v6.13-clk-en7523-map-io-region-in-a-single-block.patch
similarity index 91%
rename from target/linux/airoha/patches-6.6/106-06-clk-en7523-map-io-region-in-a-single-block.patch
rename to target/linux/airoha/patches-6.6/033-06-v6.13-clk-en7523-map-io-region-in-a-single-block.patch
index db04d602f3..dec7b81e5b 100644
--- a/target/linux/airoha/patches-6.6/106-06-clk-en7523-map-io-region-in-a-single-block.patch
+++ b/target/linux/airoha/patches-6.6/033-06-v6.13-clk-en7523-map-io-region-in-a-single-block.patch
@@ -1,6 +1,6 @@
-From 665a59f4836c3d7813a9d8bfb9680d93adb4626e Mon Sep 17 00:00:00 2001
+From a9eaf305017a5ebe73ab34e85bd5414055a88f29 Mon Sep 17 00:00:00 2001
 From: Lorenzo Bianconi <lorenzo at kernel.org>
-Date: Tue, 3 Sep 2024 23:39:51 +0200
+Date: Tue, 12 Nov 2024 01:08:54 +0100
 Subject: [PATCH 6/6] clk: en7523: map io region in a single block
 
 Map all clock-controller memory region in a single block.
@@ -8,6 +8,8 @@ This patch does not introduce any backward incompatibility since the dts
 for EN7581 SoC is not upstream yet.
 
 Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
+Link: https://lore.kernel.org/r/20241112-clk-en7581-syscon-v2-7-8ada5e394ae4 at kernel.org
+Signed-off-by: Stephen Boyd <sboyd at kernel.org>
 ---
  drivers/clk/clk-en7523.c | 32 +++++++++++++-------------------
  1 file changed, 13 insertions(+), 19 deletions(-)
diff --git a/target/linux/airoha/patches-6.6/107-pinctrl-airoha-Add-support-for-EN7581-SoC.patch b/target/linux/airoha/patches-6.6/034-v6.13-pinctrl-airoha-Add-support-for-EN7581-SoC.patch
similarity index 99%
rename from target/linux/airoha/patches-6.6/107-pinctrl-airoha-Add-support-for-EN7581-SoC.patch
rename to target/linux/airoha/patches-6.6/034-v6.13-pinctrl-airoha-Add-support-for-EN7581-SoC.patch
index 8e299512c3..2e36a2540f 100644
--- a/target/linux/airoha/patches-6.6/107-pinctrl-airoha-Add-support-for-EN7581-SoC.patch
+++ b/target/linux/airoha/patches-6.6/034-v6.13-pinctrl-airoha-Add-support-for-EN7581-SoC.patch
@@ -1,7 +1,7 @@
-From 21cb14f3e6d12d666a9ec0fd7cc01d722b04e514 Mon Sep 17 00:00:00 2001
+From 1c8ace2d0725c1c8d5012f8a56c5fb31805aad27 Mon Sep 17 00:00:00 2001
 From: Lorenzo Bianconi <lorenzo at kernel.org>
-Date: Wed, 16 Oct 2024 12:07:33 +0200
-Subject: [PATCH 1/2] pinctrl: airoha: Add support for EN7581 SoC
+Date: Wed, 23 Oct 2024 01:20:05 +0200
+Subject: [PATCH] pinctrl: airoha: Add support for EN7581 SoC
 
 Introduce pinctrl driver for EN7581 SoC. Current EN7581 pinctrl driver
 supports the following functionalities:
@@ -15,8 +15,10 @@ Tested-by: Benjamin Larsson <benjamin.larsson at genexis.eu>
 Co-developed-by: Benjamin Larsson <benjamin.larsson at genexis.eu>
 Signed-off-by: Benjamin Larsson <benjamin.larsson at genexis.eu>
 Reviewed-by: Linus Walleij <linus.walleij at linaro.org>
-Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
 Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno at collabora.com>
+Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
+Link: https://lore.kernel.org/20241023-en7581-pinctrl-v9-5-afb0cbcab0ec at kernel.org
+Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
 ---
  MAINTAINERS                               |    7 +
  drivers/pinctrl/mediatek/Kconfig          |   17 +-
@@ -25,24 +27,22 @@ Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno at collabora.com
  4 files changed, 2994 insertions(+), 1 deletion(-)
  create mode 100644 drivers/pinctrl/mediatek/pinctrl-airoha.c
 
-# diff --git a/MAINTAINERS b/MAINTAINERS
-# index 8a6ea49e1a9d..ca4a78737dc6 100644
-# --- a/MAINTAINERS
-# +++ b/MAINTAINERS
-# @@ -18331,6 +18331,13 @@ F:	drivers/pinctrl/
-#  F:	include/dt-bindings/pinctrl/
-#  F:	include/linux/pinctrl/
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -16870,6 +16870,13 @@ F:	drivers/pinctrl/
+ F:	include/dt-bindings/pinctrl/
+ F:	include/linux/pinctrl/
  
-# +PIN CONTROLLER - AIROHA
-# +M:	Lorenzo Bianconi <lorenzo at kernel.org>
-# +L:	linux-mediatek at lists.infradead.org (moderated for non-subscribers)
-# +S:	Maintained
-# +F:	Documentation/devicetree/bindings/pinctrl/airoha,en7581-pinctrl.yaml
-# +F:	drivers/pinctrl/mediatek/pinctrl-airoha.c
-# +
-#  PIN CONTROLLER - AMD
-#  M:	Basavaraj Natikar <Basavaraj.Natikar at amd.com>
-#  M:	Shyam Sundar S K <Shyam-sundar.S-k at amd.com>
++PIN CONTROLLER - AIROHA
++M:	Lorenzo Bianconi <lorenzo at kernel.org>
++L:	linux-mediatek at lists.infradead.org (moderated for non-subscribers)
++S:	Maintained
++F:	Documentation/devicetree/bindings/pinctrl/airoha,en7581-pinctrl.yaml
++F:	drivers/pinctrl/mediatek/pinctrl-airoha.c
++
+ PIN CONTROLLER - AMD
+ M:	Basavaraj Natikar <Basavaraj.Natikar at amd.com>
+ M:	Shyam Sundar S K <Shyam-sundar.S-k at amd.com>
 --- a/drivers/pinctrl/mediatek/Kconfig
 +++ b/drivers/pinctrl/mediatek/Kconfig
 @@ -1,6 +1,6 @@



From lede-commits at lists.infradead.org  Mon Nov 18 06:18:47 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 18 Nov 2024 09:18:47 -0500
Subject: [openwrt/openwrt]  mtd-utils: add ubihealthd to nand-utils
In-Reply-To: <173193952701.672768.1837957858406565385@git-01.infra.openwrt.org>
References: <173193952701.672768.1837957858406565385@git-01.infra.openwrt.org>
Message-ID: <mailman.2040.1731939530.1089.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/7e287b563aa1043a1af54d5e2b0bd96326371732

commit 7e287b563aa1043a1af54d5e2b0bd96326371732
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Sat Nov 16 15:29:24 2024 +0000

    mtd-utils: add ubihealthd to nand-utils
    
    Add ubihealthd to the nand-utils package, auto-create UCI config for
    each UBI device and launch the daemon on boot.
    
    The default time interval between scrubbing a random PED is 120 seconds
    which means that a fully used 128 MiB flash chip gets scrubbed in about
    a day and a half. The interval can be adjusted in UCI using the
    'interval' option.
    
    Suggested-by: Rodrigo Balerdi <lanchon at gmail.com>
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
    Link: https://github.com/openwrt/openwrt/pull/16973
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 package/utils/mtd-utils/Makefile                  | 12 ++++++++--
 package/utils/mtd-utils/files/ubihealthd.defaults | 18 +++++++++++++++
 package/utils/mtd-utils/files/ubihealthd.init     | 27 +++++++++++++++++++++++
 3 files changed, 55 insertions(+), 2 deletions(-)

diff --git a/package/utils/mtd-utils/Makefile b/package/utils/mtd-utils/Makefile
index 046572e83b..0dc8831251 100644
--- a/package/utils/mtd-utils/Makefile
+++ b/package/utils/mtd-utils/Makefile
@@ -65,12 +65,20 @@ CONFIGURE_ARGS += \
 	--without-lzo \
 	--without-zlib
 
+define Package/ubi-utils/conffiles
+/etc/config/ubihealthd
+endef
+
 define Package/ubi-utils/install
 	$(INSTALL_DIR) $(1)/usr/sbin
 	$(INSTALL_BIN) \
-		$(PKG_INSTALL_DIR)/usr/sbin/{ubiattach,ubicrc32,ubiblock,ubidetach,ubiformat,ubimkvol} $(1)/usr/sbin/
+		$(PKG_INSTALL_DIR)/usr/sbin/{ubiattach,ubicrc32,ubiblock,ubidetach,ubiformat,ubihealthd} $(1)/usr/sbin/
 	$(INSTALL_BIN) \
-		$(PKG_INSTALL_DIR)/usr/sbin/{ubinfo,ubinize,ubirename,ubirmvol,ubirsvol,ubiupdatevol} $(1)/usr/sbin/
+		$(PKG_INSTALL_DIR)/usr/sbin/{ubimkvol,ubinfo,ubinize,ubirename,ubirmvol,ubirsvol,ubiupdatevol} $(1)/usr/sbin/
+	$(INSTALL_DIR) $(1)/etc/init.d
+	$(INSTALL_BIN) ./files/ubihealthd.init $(1)/etc/init.d/ubihealthd
+	$(INSTALL_DIR) $(1)/etc/uci-defaults
+	$(INSTALL_DATA) ./files/ubihealthd.defaults $(1)/etc/uci-defaults/ubihealthd
 endef
 
 define Package/nand-utils/install
diff --git a/package/utils/mtd-utils/files/ubihealthd.defaults b/package/utils/mtd-utils/files/ubihealthd.defaults
new file mode 100644
index 0000000000..5222961bd4
--- /dev/null
+++ b/package/utils/mtd-utils/files/ubihealthd.defaults
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+[ -e "/etc/config/ubihealthd" ] && exit 0
+[ ! -e "/sys/class/ubi" ] && exit 0
+
+touch  "/etc/config/ubihealthd"
+
+for ubidev in /sys/class/ubi/*/total_eraseblocks; do
+	ubidev="${ubidev%/*}"
+	ubidev="${ubidev##*/}"
+	uci batch <<EOF
+set ubihealthd.$ubidev=ubi-device
+set ubihealthd.$ubidev.device="/dev/$ubidev"
+set ubihealthd.$ubidev.enable=1
+EOF
+done
+
+uci commit ubihealthd
diff --git a/package/utils/mtd-utils/files/ubihealthd.init b/package/utils/mtd-utils/files/ubihealthd.init
new file mode 100644
index 0000000000..c5ec97b22e
--- /dev/null
+++ b/package/utils/mtd-utils/files/ubihealthd.init
@@ -0,0 +1,27 @@
+#!/bin/sh /etc/rc.common
+
+START=99
+
+USE_PROCD=1
+PROG=/usr/sbin/ubihealthd
+
+ubihealthd_instance() {
+	local cfg="$1"
+	local device interval enable
+
+	config_get_bool enable "$cfg" "enable" 1
+	[ "$enable" = "1" ] || return 0
+
+	config_get device "$cfg" "device"
+	config_get interval "$cfg" "interval"
+
+	procd_open_instance
+	procd_set_param command "$PROG" -f -d "$device"
+	[ -n "$interval" ] && procd_append_param command -i "$interval"
+	procd_close_instance
+}
+
+start_service() {
+	config_load ubihealthd
+	config_foreach ubihealthd_instance ubi-device
+}



From lede-commits at lists.infradead.org  Mon Nov 18 10:06:37 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 18 Nov 2024 13:06:37 -0500
Subject: [openwrt/openwrt]  omnia-eeprom: depend only on subtarget
In-Reply-To: <173195319791.1351277.10939562386008405874@git-01.infra.openwrt.org>
References: <173195319791.1351277.10939562386008405874@git-01.infra.openwrt.org>
Message-ID: <mailman.2139.1731953208.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/90de3b277b8e1d121b2f7023578979c6b616167f

commit 90de3b277b8e1d121b2f7023578979c6b616167f
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Mon Nov 18 17:15:54 2024 +0100

    omnia-eeprom: depend only on subtarget
    
    Now that omnia-eeprom is marked nonshared building the cortex-a9 mvebu
    subtarget will fail with:
    ERROR: unable to select packages:
      omnia-eeprom (no such package):
        required by: world[omnia-eeprom]
    
    This is because omnia-eeprom depends on TARGET_mvebu_cortexa9_DEVICE_cznic_turris-omnia
    which will not be satisfied in buildbots since CONFIG_TARGET_ALL_PROFILES
    and CONFIG_TARGET_PER_DEVICE_ROOTFS are set in which case
    CONFIG_TARGET_mvebu_cortexa9_DEVICE_cznic_turris-omnia is not set.
    
    So, lets simply depend on the mvebu/cortex-a9 subtarget.
    
    Fixes: 371e7bef4046 ("omnia-eeprom: Mark it nonshared")
    Link: https://github.com/openwrt/openwrt/pull/17007
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/utils/omnia-eeprom/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/utils/omnia-eeprom/Makefile b/package/utils/omnia-eeprom/Makefile
index f9e48b28b9..9418e93f44 100644
--- a/package/utils/omnia-eeprom/Makefile
+++ b/package/utils/omnia-eeprom/Makefile
@@ -29,7 +29,7 @@ define Package/omnia-eeprom
   CATEGORY:=Utilities
   URL:=https://gitlab.nic.cz/turris/omnia-eeprom
   TITLE:=CZ.NIC Turris Omnia EEPROM accessing utility
-  DEPENDS:=@TARGET_mvebu_cortexa9_DEVICE_cznic_turris-omnia +kmod-eeprom-at24
+  DEPENDS:=@TARGET_mvebu_cortexa9 +kmod-eeprom-at24
 endef
 
 define Package/omnia-eeprom/description



From lede-commits at lists.infradead.org  Mon Nov 18 14:01:33 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 18 Nov 2024 17:01:33 -0500
Subject: [openwrt/openwrt]  net: phy: broadcom: update dependency condition
In-Reply-To: <173196729342.2030677.9332849158477663212@git-01.infra.openwrt.org>
References: <173196729342.2030677.9332849158477663212@git-01.infra.openwrt.org>
Message-ID: <mailman.2232.1731967302.1089.lede-commits@lists.infradead.org>

blocktrron pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/e6d483cd521a5b86191c544b1ed535fe2ff8ee39

commit e6d483cd521a5b86191c544b1ed535fe2ff8ee39
Author: David Bauer <mail at david-bauer.net>
AuthorDate: Sun Nov 17 13:23:09 2024 +0100

    net: phy: broadcom: update dependency condition
    
    The broadcom PHY driver only has to depend upon PTP_1588_CLOCK_OPTIONAL
    if NETWORK_PHY_TIMESTAMPING is enabled. The PTP functionality is stubbed
    in this case.
    
    Reflect this circumstance in the dependence condition. This allows to
    build the driver as a built-in module even if PTP is built as a module.
    
    This is required to include the broadcom PHY module regardless of the
    built-setting of the PTP subsystem. On ath79 (and probably more)
    targets with Broadcom PHY, Gigabit operation is currently broken as the
    PHY driver is only built as a module in case all kernel-packages are
    built. Due to this circumstance, affected devices fall back to using the
    generic PHY driver.
    
    Signed-off-by: David Bauer <mail at david-bauer.net>
---
 ...-phy-broadcom-update-dependency-condition.patch | 35 ++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/target/linux/generic/pending-6.6/741-net-phy-broadcom-update-dependency-condition.patch b/target/linux/generic/pending-6.6/741-net-phy-broadcom-update-dependency-condition.patch
new file mode 100644
index 0000000000..80b69920e9
--- /dev/null
+++ b/target/linux/generic/pending-6.6/741-net-phy-broadcom-update-dependency-condition.patch
@@ -0,0 +1,35 @@
+From 1be3688b3eaa7ea2d9e19bd29ae6a6a51c121a0b Mon Sep 17 00:00:00 2001
+From: David Bauer <mail at david-bauer.net>
+Date: Sat, 16 Nov 2024 22:36:15 +0100
+Subject: [PATCH] net: phy: broadcom: update dependency condition
+
+The broadcom PHY driver only has to depend upon PTP_1588_CLOCK_OPTIONAL
+if NETWORK_PHY_TIMESTAMPING is enabled. The PTP functionality is stubbed
+in this case.
+
+Reflect this circumstance in the dependence condition. This allows to
+build the driver as a built-in module even if PTP is built as a module.
+
+This is required to include the broadcom PHY module regardless of the
+built-setting of the PTP subsystem. On ath79 (and probably more)
+targets with Broadcom PHY, Gigabit operation is currently broken as the
+PHY driver is only built as a module in case all kernel-packages are
+built. Due to this circumstance, affected devices fall back to using the
+generic PHY driver.
+
+Signed-off-by: David Bauer <mail at david-bauer.net>
+---
+ drivers/net/phy/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/phy/Kconfig
++++ b/drivers/net/phy/Kconfig
+@@ -113,7 +113,7 @@ config BROADCOM_PHY
+ 	tristate "Broadcom 54XX PHYs"
+ 	select BCM_NET_PHYLIB
+ 	select BCM_NET_PHYPTP if NETWORK_PHY_TIMESTAMPING
+-	depends on PTP_1588_CLOCK_OPTIONAL
++	depends on NETWORK_PHY_TIMESTAMPING=n || PTP_1588_CLOCK_OPTIONAL
+ 	help
+ 	  Currently supports the BCM5411, BCM5421, BCM5461, BCM54616S, BCM5464,
+ 	  BCM5481, BCM54810 and BCM5482 PHYs.



From lede-commits at lists.infradead.org  Mon Nov 18 14:11:20 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 18 Nov 2024 17:11:20 -0500
Subject: [openwrt/openwrt]  net: phy: broadcom: update dependency condition
In-Reply-To: <173196788065.2045315.18164100945841129098@git-01.infra.openwrt.org>
References: <173196788065.2045315.18164100945841129098@git-01.infra.openwrt.org>
Message-ID: <mailman.2233.1731967884.1089.lede-commits@lists.infradead.org>

blocktrron pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/112adbee6822d39b418c7c569a522b9c4ae2456c

commit 112adbee6822d39b418c7c569a522b9c4ae2456c
Author: David Bauer <mail at david-bauer.net>
AuthorDate: Sun Nov 17 13:23:09 2024 +0100

    net: phy: broadcom: update dependency condition
    
    The broadcom PHY driver only has to depend upon PTP_1588_CLOCK_OPTIONAL
    if NETWORK_PHY_TIMESTAMPING is enabled. The PTP functionality is stubbed
    in this case.
    
    Reflect this circumstance in the dependence condition. This allows to
    build the driver as a built-in module even if PTP is built as a module.
    
    This is required to include the broadcom PHY module regardless of the
    built-setting of the PTP subsystem. On ath79 (and probably more)
    targets with Broadcom PHY, Gigabit operation is currently broken as the
    PHY driver is only built as a module in case all kernel-packages are
    built. Due to this circumstance, affected devices fall back to using the
    generic PHY driver.
    
    Signed-off-by: David Bauer <mail at david-bauer.net>
    (cherry picked from commit cbce32e30c29dc69907c6f4c0ab79dd5d9a8fb28)
---
 ...-phy-broadcom-update-dependency-condition.patch | 35 ++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/target/linux/generic/pending-6.6/741-net-phy-broadcom-update-dependency-condition.patch b/target/linux/generic/pending-6.6/741-net-phy-broadcom-update-dependency-condition.patch
new file mode 100644
index 0000000000..80b69920e9
--- /dev/null
+++ b/target/linux/generic/pending-6.6/741-net-phy-broadcom-update-dependency-condition.patch
@@ -0,0 +1,35 @@
+From 1be3688b3eaa7ea2d9e19bd29ae6a6a51c121a0b Mon Sep 17 00:00:00 2001
+From: David Bauer <mail at david-bauer.net>
+Date: Sat, 16 Nov 2024 22:36:15 +0100
+Subject: [PATCH] net: phy: broadcom: update dependency condition
+
+The broadcom PHY driver only has to depend upon PTP_1588_CLOCK_OPTIONAL
+if NETWORK_PHY_TIMESTAMPING is enabled. The PTP functionality is stubbed
+in this case.
+
+Reflect this circumstance in the dependence condition. This allows to
+build the driver as a built-in module even if PTP is built as a module.
+
+This is required to include the broadcom PHY module regardless of the
+built-setting of the PTP subsystem. On ath79 (and probably more)
+targets with Broadcom PHY, Gigabit operation is currently broken as the
+PHY driver is only built as a module in case all kernel-packages are
+built. Due to this circumstance, affected devices fall back to using the
+generic PHY driver.
+
+Signed-off-by: David Bauer <mail at david-bauer.net>
+---
+ drivers/net/phy/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/phy/Kconfig
++++ b/drivers/net/phy/Kconfig
+@@ -113,7 +113,7 @@ config BROADCOM_PHY
+ 	tristate "Broadcom 54XX PHYs"
+ 	select BCM_NET_PHYLIB
+ 	select BCM_NET_PHYPTP if NETWORK_PHY_TIMESTAMPING
+-	depends on PTP_1588_CLOCK_OPTIONAL
++	depends on NETWORK_PHY_TIMESTAMPING=n || PTP_1588_CLOCK_OPTIONAL
+ 	help
+ 	  Currently supports the BCM5411, BCM5421, BCM5461, BCM54616S, BCM5464,
+ 	  BCM5481, BCM54810 and BCM5482 PHYs.



From lede-commits at lists.infradead.org  Tue Nov 19 01:13:09 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 19 Nov 2024 04:13:09 -0500
Subject: [openwrt/openwrt]  odhcp6c: update to Git HEAD (2024-09-25)
In-Reply-To: <173200758909.3862379.16452850251316816918@git-01.infra.openwrt.org>
References: <173200758909.3862379.16452850251316816918@git-01.infra.openwrt.org>
Message-ID: <mailman.2429.1732007598.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/b0312c10818f36bc6e61a518bb528d2809562796

commit b0312c10818f36bc6e61a518bb528d2809562796
Author: He Ping <pinghejk at gmail.com>
AuthorDate: Tue Nov 19 10:41:42 2024 +0800

    odhcp6c: update to Git HEAD (2024-09-25)
    
    b6ae9ffaeb0e odhcp6c: allow to request specific ipv6 prefix
    
    Signed-off-by: He Ping <pinghejk at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/17013
    Signed-off-by: Petr ?tetiar <ynezz at true.cz> [hash, commit]
---
 package/network/ipv6/odhcp6c/Makefile | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/package/network/ipv6/odhcp6c/Makefile b/package/network/ipv6/odhcp6c/Makefile
index 894f388945..c16ecfa083 100644
--- a/package/network/ipv6/odhcp6c/Makefile
+++ b/package/network/ipv6/odhcp6c/Makefile
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=odhcp6c
-PKG_RELEASE:=20
+PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/project/odhcp6c.git
-PKG_SOURCE_DATE:=2023-05-12
-PKG_SOURCE_VERSION:=bcd283632ac13391aac3ebdd074d1fd832d76fa3
-PKG_MIRROR_HASH:=0c18c578045f9251bd86a5b8fb0518b69c519e83f69907bf76583a2985482508
+PKG_SOURCE_DATE:=2024-09-25
+PKG_SOURCE_VERSION:=b6ae9ffaeb0e18e9fa3d5be62faa8d3c9f340a58
+PKG_MIRROR_HASH:=25499b6a0d403815e6b04869a02d2d5a32582348bff2bc2626559d297425a908
 PKG_MAINTAINER:=Hans Dedecker <dedeckeh at gmail.com>
 PKG_LICENSE:=GPL-2.0
 



From lede-commits at lists.infradead.org  Tue Nov 19 02:24:10 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 19 Nov 2024 05:24:10 -0500
Subject: [openwrt/openwrt]  include/package-pack: add default
 'provider_priority' for APK packages
In-Reply-To: <173201185031.4052361.15253758345066123160@git-01.infra.openwrt.org>
References: <173201185031.4052361.15253758345066123160@git-01.infra.openwrt.org>
Message-ID: <mailman.2514.1732012412.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/dea839773c27430031c2a59c3d37ebdfef3937b9

commit dea839773c27430031c2a59c3d37ebdfef3937b9
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Mon Nov 18 19:55:57 2024 +0100

    include/package-pack: add default 'provider_priority' for APK packages
    
    Currently, trying to use APK to install a package that has a dependency on
    a virtual package that needs to be resolved via 'provides' it will fail if
    package does not have 'DEFAULT_VARIANT:=1' like:
    apk add usbutils
    ERROR: unable to select packages:
      libudev (virtual):
        note: please select one of the 'provided by' packages explicitly
        provided by: libudev-zero
        required by: usbutils-017-r1[libudev]
    
    Issue is that we dont set 'provider_priority' that APK uses to break ties
    when choosing a virtual package to satisfy a dependency and thus despite
    only one package providing the dependency it will still end up with a tie
    and just error out.
    
    So, lets simply fix this by providing a default value for
    'provider_priority' when 'DEFAULT_VARIANT' is not set and then APK will
    be able to resolve dependencies.
    
    Fixes: #16976
    Link: https://github.com/openwrt/openwrt/pull/17008
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 include/package-pack.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/package-pack.mk b/include/package-pack.mk
index 830b39f8d7..e9892f9ca6 100644
--- a/include/package-pack.mk
+++ b/include/package-pack.mk
@@ -359,7 +359,7 @@ else
 			) \
 		), \
 		$$(prov) )" \
-	  $(if $(DEFAULT_VARIANT),--info "provider-priority:100") \
+	  $(if $(DEFAULT_VARIANT),--info "provider-priority:100",$(if $(PROVIDES),--info "provider-priority:1")) \
 	  --script "post-install:$$(ADIR_$(1))/post-install" \
 	  --script "pre-deinstall:$$(ADIR_$(1))/pre-deinstall" \
 	  --info "depends:$$(foreach depends,$$(subst $$(comma),$$(space),$$(subst $$(space),,$$(subst $$(paren_right),,$$(subst $$(paren_left),,$$(Package/$(1)/DEPENDS))))),$$(depends))" \



From lede-commits at lists.infradead.org  Tue Nov 19 04:44:31 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 19 Nov 2024 07:44:31 -0500
Subject: [openwrt/openwrt]  ipq806x: tr4400v2: fix dtc warnings by deleting
 stock partitions
In-Reply-To: <173202027184.233940.11272444162594600706@git-01.infra.openwrt.org>
References: <173202027184.233940.11272444162594600706@git-01.infra.openwrt.org>
Message-ID: <mailman.2571.1732020280.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/8ec35a2a1533ccff8a4b0e6f4f0a0954d1bee6a6

commit 8ec35a2a1533ccff8a4b0e6f4f0a0954d1bee6a6
Author: Rodrigo Balerdi <lanchon at gmail.com>
AuthorDate: Thu Nov 14 17:37:32 2024 -0300

    ipq806x: tr4400v2: fix dtc warnings by deleting stock partitions
    
    The original set of stock partitions was kept in the TR4400 v2 port,
    with the same partition numbers but their names prefixed with 'stock_'.
    This allowed scripts (installation, back to stock, etc) to run on both
    stock and OpenWrt firmware. But this triggers warnings in the device
    tree compiler, as partitions of the old and new schemes overlap.
    
    This commit fixes the dtc warnings by deleting the stock partitions,
    also renumbering some of the remaining MTD partitions in the process.
    Additionally, the 'fw_env' partition is set to read-only.
    
    These changes can break existing scripts as well as user configurations
    that utilize the 'extra' partition. Users wanting to run old scripts can
    do so by reverting to the 23.05 series releases.
    
    Signed-off-by: Rodrigo Balerdi <lanchon at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16958
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 .../arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts   | 30 +++-------------------
 1 file changed, 3 insertions(+), 27 deletions(-)

diff --git a/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts b/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts
index 8410721b72..5d86d80047 100644
--- a/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts
+++ b/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts
@@ -204,8 +204,8 @@
 					};
 				};
 			};
-			stock_partition at 1340000 {
-				label = "stock_rootfs";
+			partition at 1340000 {
+				label = "extra";
 				reg = <0x1340000 0x4000000>;
 			};
 			partition at 5340000 {
@@ -253,30 +253,10 @@
 				reg = <0x5f00000 0x0500000>;
 				read-only;
 			};
-			stock_partition at 6400000 {
-				label = "stock_rootfs_1";
-				reg = <0x6400000 0x4000000>;
-			};
-			stock_partition at a400000 {
-				label = "stock_fw_env";
-				reg = <0xa400000 0x0100000>;
-			};
-			stock_partition at a500000 {
-				label = "stock_config";
-				reg = <0xa500000 0x0800000>;
-			};
-			stock_partition at ad00000 {
-				label = "stock_PKI";
-				reg = <0xad00000 0x0200000>;
-			};
-			stock_partition at af00000 {
-				label = "stock_scfgmgr";
-				reg = <0xaf00000 0x0100000>;
-			};
-
 			partition at 6400000 {
 				label = "fw_env";
 				reg = <0x6400000 0x0100000>;
+				read-only;
 
 				nvmem-layout {
 					compatible = "fixed-layout";
@@ -304,10 +284,6 @@
 				label = "ubi";
 				reg = <0x6500000 0x9b00000>;
 			};
-			partition at 1340000 {
-				label = "extra";
-				reg = <0x1340000 0x4000000>;
-			};
 		};
 	};
 };



From lede-commits at lists.infradead.org  Tue Nov 19 04:45:08 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 19 Nov 2024 07:45:08 -0500
Subject: [openwrt/openwrt]  ipq806x: tr4400v2: fix dtc warnings by deleting
 stock partitions
In-Reply-To: <173202030878.236428.7950207110202623927@git-01.infra.openwrt.org>
References: <173202030878.236428.7950207110202623927@git-01.infra.openwrt.org>
Message-ID: <mailman.2574.1732020312.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/5ad5677067cbad3c209c38e9fffdc5e839e87e6e

commit 5ad5677067cbad3c209c38e9fffdc5e839e87e6e
Author: Rodrigo Balerdi <lanchon at gmail.com>
AuthorDate: Thu Nov 14 17:37:32 2024 -0300

    ipq806x: tr4400v2: fix dtc warnings by deleting stock partitions
    
    The original set of stock partitions was kept in the TR4400 v2 port,
    with the same partition numbers but their names prefixed with 'stock_'.
    This allowed scripts (installation, back to stock, etc) to run on both
    stock and OpenWrt firmware. But this triggers warnings in the device
    tree compiler, as partitions of the old and new schemes overlap.
    
    This commit fixes the dtc warnings by deleting the stock partitions,
    also renumbering some of the remaining MTD partitions in the process.
    Additionally, the 'fw_env' partition is set to read-only.
    
    These changes can break existing scripts as well as user configurations
    that utilize the 'extra' partition. Users wanting to run old scripts can
    do so by reverting to the 23.05 series releases.
    
    Signed-off-by: Rodrigo Balerdi <lanchon at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16958
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 8ec35a2a1533ccff8a4b0e6f4f0a0954d1bee6a6)
---
 .../arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts   | 30 +++-------------------
 1 file changed, 3 insertions(+), 27 deletions(-)

diff --git a/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts b/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts
index 8410721b72..5d86d80047 100644
--- a/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts
+++ b/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8065-tr4400-v2.dts
@@ -204,8 +204,8 @@
 					};
 				};
 			};
-			stock_partition at 1340000 {
-				label = "stock_rootfs";
+			partition at 1340000 {
+				label = "extra";
 				reg = <0x1340000 0x4000000>;
 			};
 			partition at 5340000 {
@@ -253,30 +253,10 @@
 				reg = <0x5f00000 0x0500000>;
 				read-only;
 			};
-			stock_partition at 6400000 {
-				label = "stock_rootfs_1";
-				reg = <0x6400000 0x4000000>;
-			};
-			stock_partition at a400000 {
-				label = "stock_fw_env";
-				reg = <0xa400000 0x0100000>;
-			};
-			stock_partition at a500000 {
-				label = "stock_config";
-				reg = <0xa500000 0x0800000>;
-			};
-			stock_partition at ad00000 {
-				label = "stock_PKI";
-				reg = <0xad00000 0x0200000>;
-			};
-			stock_partition at af00000 {
-				label = "stock_scfgmgr";
-				reg = <0xaf00000 0x0100000>;
-			};
-
 			partition at 6400000 {
 				label = "fw_env";
 				reg = <0x6400000 0x0100000>;
+				read-only;
 
 				nvmem-layout {
 					compatible = "fixed-layout";
@@ -304,10 +284,6 @@
 				label = "ubi";
 				reg = <0x6500000 0x9b00000>;
 			};
-			partition at 1340000 {
-				label = "extra";
-				reg = <0x1340000 0x4000000>;
-			};
 		};
 	};
 };



From lede-commits at lists.infradead.org  Tue Nov 19 10:52:10 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 19 Nov 2024 13:52:10 -0500
Subject: [openwrt/openwrt]  apk: update to git
 e3464d096708b270138653ef93db59134bb24813 (2024-11-13)
In-Reply-To: <173204232825.1247352.5935716657425466829@git-01.infra.openwrt.org>
References: <173204232825.1247352.5935716657425466829@git-01.infra.openwrt.org>
Message-ID: <mailman.2903.1732042336.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/6756929b75984d5da259c65a6da35095c9969162

commit 6756929b75984d5da259c65a6da35095c9969162
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Tue Nov 19 13:48:06 2024 +0100

    apk: update to git e3464d096708b270138653ef93db59134bb24813 (2024-11-13)
    
    Allows us to drop the description backport.
    
    Changes:
    e3464d0 db: make repository description an atom instead of allocation
    417a93c pkg: truncate apkv3 description to 256 bytes
    d26b65d db, audit: remove support for files without embedded checksum
    64ff8c7 db: allow files starting with a dot in the root directory of apk3 packages
    89e4bf1 db, fs: do not extract devices in --usermode
    4050f9e db: fix hardlink handling: root directory and v3 checksums
    ade0be3 db, extract: handle file/directory extraction errors more consistently
    a4837ae package: don't call make_device_tree when APK_NO_CHROOT is set
    1e04115 package: respect libexecdir instead of hard-coding /usr/libexec
    76970a9 package: move the location of executable package scripts
    19b1df7 blob: refactor apk_blob_for_each_segment into apk_blob_foreach_word
    e38d5b5 test: add missing alpine tests makefile
    fcd4def test: move vertest to cmocka based unit testing infrastructure
    8a13ed9 test: fix solver.sh for parallel use
    5add6fc (tag: v3.0.0_pre4) apk-tools-3.0.0_pre4
    5dd91e3 db: consider --force-no-chroot when determining /dev/fd availability
    d86afde db: print message when a file is written to .apk-new
    a5aeb3d test: unify makefile and meson tests
    a236fdd pkg: use memfd_create only if target root has dev/fd working
    563d364 tests: minor updates to root tests
    08b4d21 tests: move solver test data to separate directory
    c259642 tests: rework solver tests to not require apk-test binary
    d2aaf13 commit: sort matched dependencies on error analysis
    98d7196 db: fix permissions of arch file
    b231eac db: simplify add_repos_from_file
    2a3dbfc db: add and use apk_db_parse_file helper to parse files line by line
    c1a3e69 db: validate package arch against compatible arches
    
    Link: https://github.com/openwrt/openwrt/pull/17015
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/system/apk/Makefile                        |  8 ++--
 ...g-truncate-apkv3-description-to-256-bytes.patch | 45 ----------------------
 2 files changed, 4 insertions(+), 49 deletions(-)

diff --git a/package/system/apk/Makefile b/package/system/apk/Makefile
index fbb9ef85ee..693c008df9 100644
--- a/package/system/apk/Makefile
+++ b/package/system/apk/Makefile
@@ -1,13 +1,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=apk
-PKG_RELEASE:=2
+PKG_RELEASE:=1
 
 PKG_SOURCE_URL=https://gitlab.alpinelinux.org/alpine/apk-tools.git
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2024-11-08
-PKG_SOURCE_VERSION:=d9c24813d983df9524fa7a2b78fc3132c159a20f
-PKG_MIRROR_HASH:=3d1a79c08ef8c8b9404f9287d9acda6468b8b1c2a99dd384287f522ed3b1a047
+PKG_SOURCE_DATE:=2024-11-13
+PKG_SOURCE_VERSION:=e3464d096708b270138653ef93db59134bb24813
+PKG_MIRROR_HASH:=cc633e5c294c9d92391fba5537dfe2f12f82011b55d282beb0d5d7ceba212962
 
 PKG_VERSION=3.0.0_pre$(subst -,,$(PKG_SOURCE_DATE))
 
diff --git a/package/system/apk/patches/0020-pkg-truncate-apkv3-description-to-256-bytes.patch b/package/system/apk/patches/0020-pkg-truncate-apkv3-description-to-256-bytes.patch
deleted file mode 100644
index 62cdd9d0c9..0000000000
--- a/package/system/apk/patches/0020-pkg-truncate-apkv3-description-to-256-bytes.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 417a93ceae540444fdbd3f76d1dadf0e15621fdc Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras at iki.fi>
-Date: Wed, 13 Nov 2024 09:40:21 +0200
-Subject: [PATCH] pkg: truncate apkv3 description to 256 bytes
-
-The code to read/write installeddb does not really handle long
-description well. Until the database is converted to apkv3 format,
-truncate the apkv3 descriptions to allow existing code to work.
-
-APKv3 index and packages still contain the original long description
-unmodified, so no package rebuild will be needed.
-
-fixes #11038
-
-Upstream-Status: Backport [https://gitlab.alpinelinux.org/alpine/apk-tools/-/commit/417a93ceae540444fdbd3f76d1dadf0e15621fdc]
----
- src/apk_blob.h | 5 +++++
- src/package.c  | 2 +-
- 2 files changed, 6 insertions(+), 1 deletion(-)
-
---- a/src/apk_blob.h
-+++ b/src/apk_blob.h
-@@ -48,6 +48,11 @@ static inline apk_blob_t apk_blob_trim(a
- 	return b;
- }
- 
-+static inline apk_blob_t apk_blob_truncate(apk_blob_t blob, int maxlen)
-+{
-+	return APK_BLOB_PTR_LEN(blob.ptr, min(blob.len, maxlen));
-+}
-+
- char *apk_blob_cstr(apk_blob_t str);
- apk_blob_t apk_blob_dup(apk_blob_t blob);
- int apk_blob_split(apk_blob_t blob, apk_blob_t split, apk_blob_t *l, apk_blob_t *r);
---- a/src/package.c
-+++ b/src/package.c
-@@ -577,7 +577,7 @@ void apk_pkgtmpl_from_adb(struct apk_dat
- 
- 	pkg->name = apk_db_get_name(db, adb_ro_blob(pkginfo, ADBI_PI_NAME));
- 	pkg->version = apk_atomize_dup(&db->atoms, adb_ro_blob(pkginfo, ADBI_PI_VERSION));
--	pkg->description = apk_atomize_dup0(&db->atoms, adb_ro_blob(pkginfo, ADBI_PI_DESCRIPTION));
-+	pkg->description = apk_atomize_dup0(&db->atoms, apk_blob_truncate(adb_ro_blob(pkginfo, ADBI_PI_DESCRIPTION), 512));
- 	pkg->url = apk_atomize_dup(&db->atoms, adb_ro_blob(pkginfo, ADBI_PI_URL));
- 	pkg->license = apk_atomize_dup(&db->atoms, adb_ro_blob(pkginfo, ADBI_PI_LICENSE));
- 	pkg->arch = apk_atomize_dup(&db->atoms, adb_ro_blob(pkginfo, ADBI_PI_ARCH));



From lede-commits at lists.infradead.org  Tue Nov 19 10:52:09 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 19 Nov 2024 13:52:09 -0500
Subject: [openwrt/openwrt]  imagebuilder: fix APK architecture setting
In-Reply-To: <173204232825.1247352.5935716657425466829@git-01.infra.openwrt.org>
References: <173204232825.1247352.5935716657425466829@git-01.infra.openwrt.org>
Message-ID: <mailman.2904.1732042336.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/1c308bad5445df91d901d8389bfe31c888d0e8c9

commit 1c308bad5445df91d901d8389bfe31c888d0e8c9
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Tue Nov 19 14:36:17 2024 +0100

    imagebuilder: fix APK architecture setting
    
    Currently, when "apk add --initdb" is called it will populate the
    /etc/apk/arch file with the architecture of the host instead of the target
    package architecture and this will then make it impossible for new packages
    to be installed on the device as the target architecture will not match
    after APK is updated to include [1].
    
    So, lets use override the architecture by passing the target package one
    by using the "--arch" argument to "apk add".
    
    [1] https://gitlab.alpinelinux.org/alpine/apk-tools/-/commit/c1a3e69f24e235fc78f4dddb1f85fdf281464446
    
    Fixes: #16953
    Link: https://github.com/openwrt/openwrt/pull/17015
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/imagebuilder/files/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/target/imagebuilder/files/Makefile b/target/imagebuilder/files/Makefile
index d1502d40c1..2c6e26e4ee 100644
--- a/target/imagebuilder/files/Makefile
+++ b/target/imagebuilder/files/Makefile
@@ -200,7 +200,7 @@ ifeq ($(CONFIG_USE_APK),)
 		$(OPKG) update >&2 || true; \
 	fi
 else
-	$(APK) add --initdb
+	$(APK) add --arch $(ARCH_PACKAGES) --initdb
 	if [ -d "$(PACKAGE_DIR)" ] && ( \
 			[ ! -f "$(PACKAGE_DIR)/packages.adb" ] || \
 			[ "`find $(PACKAGE_DIR) -cnewer $(PACKAGE_DIR)/packages.adb`" ] ); then \
@@ -227,7 +227,7 @@ ifeq ($(CONFIG_USE_APK),)
 	$(OPKG) install $(wildcard $(PACKAGE_DIR)/kernel_*.ipk)
 	$(OPKG) install $(BUILD_PACKAGES)
 else
-	$(APK) add --no-scripts $(BUILD_PACKAGES)
+	$(APK) add --arch $(ARCH_PACKAGES) --no-scripts $(BUILD_PACKAGES)
 endif
 
 prepare_rootfs: FORCE



From lede-commits at lists.infradead.org  Tue Nov 19 10:52:08 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 19 Nov 2024 13:52:08 -0500
Subject: [openwrt/openwrt]  include/package-pack: translate PKGARCH for APK
In-Reply-To: <173204232825.1247352.5935716657425466829@git-01.infra.openwrt.org>
References: <173204232825.1247352.5935716657425466829@git-01.infra.openwrt.org>
Message-ID: <mailman.2905.1732042338.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/0d0a5eb4b590f6f1f50040a56a35179886b40e62

commit 0d0a5eb4b590f6f1f50040a56a35179886b40e62
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Tue Nov 19 13:12:28 2024 +0100

    include/package-pack: translate PKGARCH for APK
    
    We have a lot of script-only packages that are universal for all arch-s
    and those set PKGARCH:=all to indicate it.
    
    Unfortunately, APK expects architecture to be set to "noarch" instead to
    indicate that its universal so instead of having to update all packages
    that set PKGARCH:=all and thus break OPKG lets simply translate "all" to
    "noarch" when generating the APK package.
    
    This will be required as soon we update APK to include [1] as it will start
    enforcing package architecture checks.
    
    [1] https://gitlab.alpinelinux.org/alpine/apk-tools/-/commit/c1a3e69f24e235fc78f4dddb1f85fdf281464446
    
    Suggested-by: Jonas Gorski <jonas.gorski at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/17015
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 include/package-pack.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/package-pack.mk b/include/package-pack.mk
index e9892f9ca6..3ac7a036f9 100644
--- a/include/package-pack.mk
+++ b/include/package-pack.mk
@@ -344,7 +344,7 @@ else
 	  --info "name:$(1)$$(ABIV_$(1))" \
 	  --info "version:$(VERSION)" \
 	  --info "description:$$(call description_escape,$$(strip $$(Package/$(1)/description)))" \
-	  --info "arch:$(PKGARCH)" \
+	  $(if $(findstring all,$(PKGARCH)),--info "arch:noarch",--info "arch:$(PKGARCH)") \
 	  --info "license:$(LICENSE)" \
 	  --info "origin:$(SOURCE)" \
 	  --info "url:$(URL)" \



From lede-commits at lists.infradead.org  Tue Nov 19 10:52:50 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 19 Nov 2024 13:52:50 -0500
Subject: [openwrt/openwrt]  mpc85xx: p1010: add missing symbols
In-Reply-To: <173204236904.1248949.6593414047980874594@git-01.infra.openwrt.org>
References: <173204236904.1248949.6593414047980874594@git-01.infra.openwrt.org>
Message-ID: <mailman.2906.1732042372.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/e9dd6da91661612d2330c2b633f3dd55b93218f8

commit e9dd6da91661612d2330c2b633f3dd55b93218f8
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Wed Oct 16 15:42:56 2024 -0700

    mpc85xx: p1010: add missing symbols
    
    Since kernel_oldconfig doesn't work properly with it, I ran that first
    and then moved all the config symbols to config-6.6 and found the
    differences.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16847
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/mpc85xx/p1010/config-default | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/target/linux/mpc85xx/p1010/config-default b/target/linux/mpc85xx/p1010/config-default
index 5a17e38f5c..22801b9c2b 100644
--- a/target/linux/mpc85xx/p1010/config-default
+++ b/target/linux/mpc85xx/p1010/config-default
@@ -1,11 +1,19 @@
 CONFIG_BR200_WP=y
 CONFIG_CMDLINE_OVERRIDE=y
+CONFIG_CRC16=y
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_ZSTD=y
+CONFIG_DEFAULT_UIMAGE=y
 CONFIG_FIREBOX_T10=y
 # CONFIG_FSL_CORENET_CF is not set
 CONFIG_FSL_IFC=y
 CONFIG_GPIO_74X164=y
+CONFIG_GRO_CELLS=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
 CONFIG_MEMORY=y
-CONFIG_MTD_CFI=y
 CONFIG_MTD_NAND_FSL_IFC=y
 CONFIG_MTD_PHYSMAP=y
 CONFIG_MTD_SPLIT_TPLINK_FW=y
@@ -14,6 +22,7 @@ CONFIG_MTD_UBI=y
 CONFIG_MTD_UBI_BEB_LIMIT=20
 CONFIG_MTD_UBI_BLOCK=y
 CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_NEED_DMA_MAP_STATE=y
 CONFIG_NET_DEVLINK=y
 CONFIG_NET_DSA=y
 CONFIG_NET_DSA_QCA8K=y
@@ -27,7 +36,16 @@ CONFIG_REALTEK_PHY=y
 CONFIG_RED_15W_REV1=y
 CONFIG_REGMAP=y
 CONFIG_REGULATOR=y
+CONFIG_SGL_ALLOC=y
+CONFIG_SPI_BITBANG=y
 CONFIG_SPI_GPIO=y
+CONFIG_SWIOTLB=y
 CONFIG_TL_WDR4900_V1=y
 CONFIG_UBIFS_FS=y
 CONFIG_WS_AP3715I=y
+CONFIG_XXHASH=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZSTD_COMMON=y
+CONFIG_ZSTD_COMPRESS=y
+CONFIG_ZSTD_DECOMPRESS=y



From lede-commits at lists.infradead.org  Tue Nov 19 10:52:49 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 19 Nov 2024 13:52:49 -0500
Subject: [openwrt/openwrt]  mpc85xx: run make kernel_oldconfig
In-Reply-To: <173204236904.1248949.6593414047980874594@git-01.infra.openwrt.org>
References: <173204236904.1248949.6593414047980874594@git-01.infra.openwrt.org>
Message-ID: <mailman.2909.1732042372.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/890d47b60a221328bbf05518eedc35ac5bd922f1

commit 890d47b60a221328bbf05518eedc35ac5bd922f1
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Wed Oct 16 15:17:14 2024 -0700

    mpc85xx: run make kernel_oldconfig
    
    Adjusts the default config to modern kernels.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16847
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/mpc85xx/config-6.6 | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/target/linux/mpc85xx/config-6.6 b/target/linux/mpc85xx/config-6.6
index 132917bf2b..30a551e55e 100644
--- a/target/linux/mpc85xx/config-6.6
+++ b/target/linux/mpc85xx/config-6.6
@@ -40,6 +40,7 @@ CONFIG_COMPAT_32BIT_TIME=y
 # CONFIG_CORENET_GENERIC is not set
 # CONFIG_CPM2 is not set
 CONFIG_CPU_BIG_ENDIAN=y
+CONFIG_CPU_MITIGATIONS=y
 # CONFIG_CRYPTO_AES_PPC_SPE is not set
 CONFIG_CRYPTO_AUTHENC=y
 CONFIG_CRYPTO_HW=y
@@ -71,6 +72,7 @@ CONFIG_EDAC_SUPPORT=y
 CONFIG_EXCLUSIVE_SYSTEM_RAM=y
 # CONFIG_FIREBOX_T10 is not set
 CONFIG_FIXED_PHY=y
+CONFIG_FORCE_NR_CPUS=y
 CONFIG_FSL_EMB_PERFMON=y
 # CONFIG_FSL_FMAN is not set
 CONFIG_FSL_LBC=y
@@ -84,7 +86,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_BUG=y



From lede-commits at lists.infradead.org  Tue Nov 19 10:52:51 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 19 Nov 2024 13:52:51 -0500
Subject: [openwrt/openwrt]  mpc85xx: p1020: add missing symbols
In-Reply-To: <173204236904.1248949.6593414047980874594@git-01.infra.openwrt.org>
References: <173204236904.1248949.6593414047980874594@git-01.infra.openwrt.org>
Message-ID: <mailman.2910.1732042372.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/bec8edb6d61eb74e8d7578749560cbb5040f307a

commit bec8edb6d61eb74e8d7578749560cbb5040f307a
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Thu Oct 17 16:09:17 2024 -0700

    mpc85xx: p1020: add missing symbols
    
    Since kernel_oldconfig doesn't work properly with it, I ran that first
    and then moved all the config symbols to config-6.6 and found the
    differences.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16847
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/mpc85xx/p1020/config-default | 29 +++++++++++++++++++++++++----
 1 file changed, 25 insertions(+), 4 deletions(-)

diff --git a/target/linux/mpc85xx/p1020/config-default b/target/linux/mpc85xx/p1020/config-default
index 66710a9ace..6169791007 100644
--- a/target/linux/mpc85xx/p1020/config-default
+++ b/target/linux/mpc85xx/p1020/config-default
@@ -1,24 +1,31 @@
-CONFIG_ARCH_HAS_TICK_BROADCAST=y
 CONFIG_AT803X_PHY=y
 CONFIG_B53=y
 CONFIG_B53_MDIO_DRIVER=y
 CONFIG_BCM_NET_PHYLIB=y
 CONFIG_BROADCOM_PHY=y
 CONFIG_CMDLINE_OVERRIDE=y
+CONFIG_CONTEXT_TRACKING=y
+CONFIG_CONTEXT_TRACKING_IDLE=y
 CONFIG_CPU_RMAP=y
+CONFIG_CRC16=y
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_ZSTD=y
+CONFIG_DEFAULT_UIMAGE=y
 CONFIG_EEPROM_LEGACY=y
-# CONFIG_FSL_CORENET_CF is not set
 CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
 CONFIG_GENERIC_TBSYNC=y
 CONFIG_GPIO_74X164=y
 # CONFIG_GPIO_MAX77620 is not set
 CONFIG_GRO_CELLS=y
-CONFIG_HAVE_RCU_TABLE_FREE=y
 CONFIG_HIVEAP_330=y
 CONFIG_I2C_CHARDEV=y
 CONFIG_LEDS_LP5521=y
 CONFIG_LEDS_LP55XX_COMMON=y
 CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
 # CONFIG_MAX77620_THERMAL is not set
 # CONFIG_MAX77620_WATCHDOG is not set
 CONFIG_MFD_CORE=y
@@ -46,16 +53,30 @@ CONFIG_NET_SWITCHDEV=y
 CONFIG_NR_CPUS=2
 CONFIG_PADATA=y
 CONFIG_PANDA=y
+CONFIG_PHYLINK=y
+CONFIG_PPC_ZIMAGE_LA3000000=y
+CONFIG_QCOM_NET_PHYLIB=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
 CONFIG_REGMAP_IRQ=y
 CONFIG_REGULATOR=y
 CONFIG_RFS_ACCEL=y
 CONFIG_RPS=y
-# CONFIG_RTC_DRV_MAX77686 is not set
 CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_SGL_ALLOC=y
 CONFIG_SMP=y
+CONFIG_SOCK_RX_QUEUE_MAPPING=y
+CONFIG_SPI_BITBANG=y
 CONFIG_SPI_GPIO=y
 CONFIG_TREE_RCU=y
+CONFIG_TREE_SRCU=y
 CONFIG_UBIFS_FS=y
 CONFIG_WS_AP3710I=y
 CONFIG_WS_AP3825I=y
 CONFIG_XPS=y
+CONFIG_XXHASH=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZSTD_COMMON=y
+CONFIG_ZSTD_COMPRESS=y
+CONFIG_ZSTD_DECOMPRESS=y



From lede-commits at lists.infradead.org  Tue Nov 19 10:52:52 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 19 Nov 2024 13:52:52 -0500
Subject: [openwrt/openwrt]  mpc85xx: p2020: add missing symbols
In-Reply-To: <173204236904.1248949.6593414047980874594@git-01.infra.openwrt.org>
References: <173204236904.1248949.6593414047980874594@git-01.infra.openwrt.org>
Message-ID: <mailman.2911.1732042372.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/22664498ebdd47aad9b15f62edbcaadd851fd62c

commit 22664498ebdd47aad9b15f62edbcaadd851fd62c
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Thu Oct 17 16:14:07 2024 -0700

    mpc85xx: p2020: add missing symbols
    
    Since kernel_oldconfig doesn't work properly with it, I ran that first
    and then moved all the config symbols to config-6.6 and found the
    differences.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16847
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/mpc85xx/p2020/config-default | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/target/linux/mpc85xx/p2020/config-default b/target/linux/mpc85xx/p2020/config-default
index ff8c8cb939..bfdb48959a 100644
--- a/target/linux/mpc85xx/p2020/config-default
+++ b/target/linux/mpc85xx/p2020/config-default
@@ -1,16 +1,16 @@
 CONFIG_BLK_DEV_NVME=y
+CONFIG_CONTEXT_TRACKING=y
+CONFIG_CONTEXT_TRACKING_IDLE=y
 CONFIG_CPU_RMAP=y
 CONFIG_DEFAULT_UIMAGE=y
 CONFIG_FSL_ULI1575=y
 CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
 CONFIG_GENERIC_IRQ_MIGRATION=y
 CONFIG_GENERIC_MSI_IRQ=y
-CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
 CONFIG_GENERIC_TBSYNC=y
 CONFIG_IRQ_DOMAIN_HIERARCHY=y
 CONFIG_LOCK_SPIN_ON_OWNER=y
 CONFIG_MAX63XX_WATCHDOG=y
-CONFIG_MDIO_DEVRES=y
 CONFIG_MPC85xx_RDB=y
 CONFIG_MTD_CFI=y
 CONFIG_MTD_NAND_FSL_ELBC=y
@@ -36,6 +36,7 @@ CONFIG_RPS=y
 CONFIG_RTC_DRV_DS1307=y
 CONFIG_RWSEM_SPIN_ON_OWNER=y
 CONFIG_SMP=y
+CONFIG_SOCK_RX_QUEUE_MAPPING=y
 CONFIG_SWIOTLB=y
 CONFIG_TARGET_CPU="8540"
 CONFIG_TARGET_CPU_BOOL=y



From lede-commits at lists.infradead.org  Wed Nov 20 00:49:25 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 20 Nov 2024 03:49:25 -0500
Subject: [openwrt/openwrt]  imagebuilder: fix APK package_depends support
In-Reply-To: <173209256581.3842724.17996201023150926128@git-01.infra.openwrt.org>
References: <173209256581.3842724.17996201023150926128@git-01.infra.openwrt.org>
Message-ID: <mailman.3141.1732092570.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/03eeeffbd62bbba201445e0b79bd3360c896a4c8

commit 03eeeffbd62bbba201445e0b79bd3360c896a4c8
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Tue Nov 19 23:38:02 2024 +0100

    imagebuilder: fix APK package_depends support
    
    Currently trying to use the 'package_depends' feature of ImageBuilder will
    result in it trying to call OPKG:
    make package_depends PACKAGE="usbutils"
    OK: 26 MiB in 142 packages
    bash: line 1: openwrt-imagebuilder-qualcommax-ipq807x.Linux-x86_64/staging_dir/host/bin/opkg: No such file or directory
    make: *** [Makefile:363: package_depends] Error 127
    
    It looks like a copy/paste error when APK support was being added, so lets
    fix it by calling APK and its "info --depends" command.
    
    Fixes: #16996
    Fixes: d788ab376f85 ("build: add APK package build capabilities")
    Link: https://github.com/openwrt/openwrt/pull/17022
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/imagebuilder/files/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/imagebuilder/files/Makefile b/target/imagebuilder/files/Makefile
index 2c6e26e4ee..125cc798fc 100644
--- a/target/imagebuilder/files/Makefile
+++ b/target/imagebuilder/files/Makefile
@@ -363,7 +363,7 @@ endif
 ifeq ($(CONFIG_USE_APK),)
 	@$(OPKG) depends -A $(PACKAGE)
 else
-	@$(OPKG) whatdepends -A $(PACKAGE)
+	@$(APK) info --depends $(PACKAGE)
 endif
 
 .SILENT: help info image manifest package_whatdepends package_depends



From lede-commits at lists.infradead.org  Wed Nov 20 00:49:26 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 20 Nov 2024 03:49:26 -0500
Subject: [openwrt/openwrt]  imagebuilder: fix OPKG package_whatdepends support
In-Reply-To: <173209256581.3842724.17996201023150926128@git-01.infra.openwrt.org>
References: <173209256581.3842724.17996201023150926128@git-01.infra.openwrt.org>
Message-ID: <mailman.3142.1732092574.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/52519a59a859d349f154ed79e0a3d63457b6aa6a

commit 52519a59a859d349f154ed79e0a3d63457b6aa6a
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Tue Nov 19 23:56:19 2024 +0100

    imagebuilder: fix OPKG package_whatdepends support
    
    Trying to use 'package_whatdepends' feature of the ImageBuilder with OPKG
    will currently fail as OPKG does not support "list --depends" call at all,
    it seems that this is a mixup from the original APK support commit.
    
    So, lets restore 'package_whatdepends' support for OPKG by calling
    "whatdepends -A" instead as we used to before APK support.
    
    Fixes: d788ab376f85 ("build: add APK package build capabilities")
    Link: https://github.com/openwrt/openwrt/pull/17022
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/imagebuilder/files/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/imagebuilder/files/Makefile b/target/imagebuilder/files/Makefile
index 125cc798fc..07cca7eea4 100644
--- a/target/imagebuilder/files/Makefile
+++ b/target/imagebuilder/files/Makefile
@@ -349,7 +349,7 @@ ifeq ($(PACKAGE),)
 endif
 	@$(MAKE) -s package_reload
 ifeq ($(CONFIG_USE_APK),)
-	@$(OPKG) list --depends $(PACKAGE)
+	@$(OPKG) whatdepends -A $(PACKAGE)
 else
 	@$(APK) list --depends $(PACKAGE)
 endif



From lede-commits at lists.infradead.org  Wed Nov 20 00:50:02 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 20 Nov 2024 03:50:02 -0500
Subject: [openwrt/openwrt]  imagebuilder: fix OPKG package_whatdepends support
In-Reply-To: <173209260278.3844344.5937604426795994491@git-01.infra.openwrt.org>
References: <173209260278.3844344.5937604426795994491@git-01.infra.openwrt.org>
Message-ID: <mailman.3143.1732092606.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/1abaf051d2f8b53eac2ebc245e22dfeef45ec1c9

commit 1abaf051d2f8b53eac2ebc245e22dfeef45ec1c9
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Tue Nov 19 23:56:19 2024 +0100

    imagebuilder: fix OPKG package_whatdepends support
    
    Trying to use 'package_whatdepends' feature of the ImageBuilder with OPKG
    will currently fail as OPKG does not support "list --depends" call at all,
    it seems that this is a mixup from the original APK support commit.
    
    So, lets restore 'package_whatdepends' support for OPKG by calling
    "whatdepends -A" instead as we used to before APK support.
    
    Fixes: d788ab376f85 ("build: add APK package build capabilities")
    Link: https://github.com/openwrt/openwrt/pull/17022
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 52519a59a859d349f154ed79e0a3d63457b6aa6a)
---
 target/imagebuilder/files/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/imagebuilder/files/Makefile b/target/imagebuilder/files/Makefile
index f46b61b787..54bc612840 100644
--- a/target/imagebuilder/files/Makefile
+++ b/target/imagebuilder/files/Makefile
@@ -352,7 +352,7 @@ ifeq ($(PACKAGE),)
 endif
 	@$(MAKE) -s package_reload
 ifeq ($(CONFIG_USE_APK),)
-	@$(OPKG) list --depends $(PACKAGE)
+	@$(OPKG) whatdepends -A $(PACKAGE)
 else
 	@$(APK) list --depends $(PACKAGE)
 endif



From lede-commits at lists.infradead.org  Thu Nov 21 08:20:48 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 21 Nov 2024 11:20:48 -0500
Subject: [openwrt/openwrt]  include/package-pack: actually call
 default_postinist/prerm when using APK
In-Reply-To: <173220604848.724356.11447629625909314781@git-01.infra.openwrt.org>
References: <173220604848.724356.11447629625909314781@git-01.infra.openwrt.org>
Message-ID: <mailman.3844.1732206054.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/5b6f8353fe2af6c270a30dc8c38791cf03fd265d

commit 5b6f8353fe2af6c270a30dc8c38791cf03fd265d
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Wed Nov 20 13:51:53 2024 +0100

    include/package-pack: actually call default_postinist/prerm when using APK
    
    Currently, when you install a package that ships uci-defaults scripts they
    are not getting executed during package installation.
    
    For example, if you install a new LuCI theme it ships a uci-defaults script
    to add it to the UCI LuCI config so the theme is actually selectable but
    that does not happen until the device is rebooted so that uci-defaults
    script is actually executed.
    
    It turns out that the recipe for post-install is the issue since it will
    include contents of postinst-pkg before the call to default_postinist.
    This is an issue since postinst-pkg will exit with code 0 before we ever
    reach the call to default_postinist.
    
    So, lets simply make the call to default_postinist before postinst-pkg
    inclusion which is what OPKG based installation does.
    
    The same issue affects pre-deinstall script but its not actually being hit
    since we dont seem to be actually even generating prerm-pkg scripts but
    lets fix this theoretical issue as well.
    
    Fixes: #16987
    Fixes: d788ab376f85 ("build: add APK package build capabilities")
    Link: https://github.com/openwrt/openwrt/pull/17023
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 include/package-pack.mk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/package-pack.mk b/include/package-pack.mk
index 3ac7a036f9..1f1b8c73f9 100644
--- a/include/package-pack.mk
+++ b/include/package-pack.mk
@@ -294,8 +294,8 @@ else
 		echo 'export root="$$$${IPKG_INSTROOT}"'; \
 		echo 'export pkgname="$(1)"'; \
 		echo "add_group_and_user"; \
-		[ ! -f $$(ADIR_$(1))/postinst-pkg ] || cat "$$(ADIR_$(1))/postinst-pkg"; \
 		echo "default_postinst"; \
+		[ ! -f $$(ADIR_$(1))/postinst-pkg ] || cat "$$(ADIR_$(1))/postinst-pkg"; \
 	) > $$(ADIR_$(1))/post-install;
 
 	( \
@@ -304,8 +304,8 @@ else
 		echo ". \$$$${IPKG_INSTROOT}/lib/functions.sh"; \
 		echo 'export root="$$$${IPKG_INSTROOT}"'; \
 		echo 'export pkgname="$(1)"'; \
-		[ ! -f $$(ADIR_$(1))/prerm-pkg ] || cat "$$(ADIR_$(1))/prerm-pkg"; \
 		echo "default_prerm"; \
+		[ ! -f $$(ADIR_$(1))/prerm-pkg ] || cat "$$(ADIR_$(1))/prerm-pkg"; \
 	) > $$(ADIR_$(1))/pre-deinstall;
 
 	if [ -n "$(USERID)" ]; then echo $(USERID) > $$(IDIR_$(1))/lib/apk/packages/$(1).rusers; fi;



From lede-commits at lists.infradead.org  Thu Nov 21 08:20:49 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 21 Nov 2024 11:20:49 -0500
Subject: [openwrt/openwrt]  include/package-pack: add support for postrm with
 APK
In-Reply-To: <173220604848.724356.11447629625909314781@git-01.infra.openwrt.org>
References: <173220604848.724356.11447629625909314781@git-01.infra.openwrt.org>
Message-ID: <mailman.3845.1732206054.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/fc2ba101089117d72903f9464269da73763ded42

commit fc2ba101089117d72903f9464269da73763ded42
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Thu Nov 21 14:34:03 2024 +0100

    include/package-pack: add support for postrm with APK
    
    Currently, postrm scripts are not being executed when package is removed
    with APK since they are not being included at all.
    
    So, lets use APK-s support for post-deinstall scripts and ship our postrm
    scripts if packages define them.
    
    Fixes: d788ab376f85 ("build: add APK package build capabilities")
    Link: https://github.com/openwrt/openwrt/pull/17023
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 include/package-pack.mk | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/include/package-pack.mk b/include/package-pack.mk
index 1f1b8c73f9..a36d690901 100644
--- a/include/package-pack.mk
+++ b/include/package-pack.mk
@@ -110,6 +110,13 @@ endif
     IDIR_$(1):=$(PKG_BUILD_DIR)/ipkg-$(PKGARCH)/$(1)
     ADIR_$(1):=$(PKG_BUILD_DIR)/apk-$(PKGARCH)/$(1)
     KEEP_$(1):=$(strip $(call Package/$(1)/conffiles))
+    APK_SCRIPTS_$(1):=\
+    --script "post-install:$$(ADIR_$(1))/post-install" \
+    --script "pre-deinstall:$$(ADIR_$(1))/pre-deinstall"
+
+    ifdef Package/$(1)/postrm
+        APK_SCRIPTS_$(1)+=--script "post-deinstall:$$(ADIR_$(1))/postrm"
+    endif
 
     TARGET_VARIANT:=$$(if $(ALL_VARIANTS),$$(if $$(VARIANT),$$(filter-out *,$$(VARIANT)),$(firstword $(ALL_VARIANTS))))
     ifeq ($(BUILD_VARIANT),$$(if $$(TARGET_VARIANT),$$(TARGET_VARIANT),$(BUILD_VARIANT)))
@@ -360,8 +367,7 @@ else
 		), \
 		$$(prov) )" \
 	  $(if $(DEFAULT_VARIANT),--info "provider-priority:100",$(if $(PROVIDES),--info "provider-priority:1")) \
-	  --script "post-install:$$(ADIR_$(1))/post-install" \
-	  --script "pre-deinstall:$$(ADIR_$(1))/pre-deinstall" \
+	  $$(APK_SCRIPTS_$(1)) \
 	  --info "depends:$$(foreach depends,$$(subst $$(comma),$$(space),$$(subst $$(space),,$$(subst $$(paren_right),,$$(subst $$(paren_left),,$$(Package/$(1)/DEPENDS))))),$$(depends))" \
 	  --files "$$(IDIR_$(1))" \
 	  --output "$$(PACK_$(1))" \



From lede-commits at lists.infradead.org  Thu Nov 21 08:55:49 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 21 Nov 2024 11:55:49 -0500
Subject: [openwrt/openwrt]  build: fix filtering of non-upgradable packages
In-Reply-To: <173220814975.823429.3161674991818461013@git-01.infra.openwrt.org>
References: <173220814975.823429.3161674991818461013@git-01.infra.openwrt.org>
Message-ID: <mailman.3852.1732208153.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/2784f78c6c22c0731ef551e4fcd42295f08a07a5

commit 2784f78c6c22c0731ef551e4fcd42295f08a07a5
Author: Eric Fahlgren <ericfahlgren at gmail.com>
AuthorDate: Thu Nov 21 05:50:21 2024 -0800

    build: fix filtering of non-upgradable packages
    
    Add anchor to name search so that we don't inadvertently filter out
    packages containing, say, "kernel-" as part of their name.
    
    Fixes: openwrt/packages#25372
    Signed-off-by: Eric Fahlgren <ericfahlgren at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/17032
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/Makefile b/package/Makefile
index 3c6621b81c..ca43eb7e01 100644
--- a/package/Makefile
+++ b/package/Makefile
@@ -131,7 +131,7 @@ ifneq ($(CONFIG_USE_APK),)
 			--keys-dir $(TOPDIR) \
 			--sign $(BUILD_KEY_APK_SEC) \
 			--output packages.adb \
-			$$(ls *.apk | grep -v 'base-files-\|kernel-\|libc-'); \
+			$$(ls *.apk | grep -vE '^(base-files-|kernel-|libc-)'); \
 		echo -n '{"architecture": "$(ARCH_PACKAGES)", "packages":{' > index.json; \
 		$(STAGING_DIR_HOST)/bin/apk adbdump packages.adb | \
 			awk '/- name: / {pkg = $$NF} ; / version: / {printf "\"%s\": \"%s\", ", pkg, $$NF}' | \



From lede-commits at lists.infradead.org  Thu Nov 21 13:04:19 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 21 Nov 2024 16:04:19 -0500
Subject: [openwrt/openwrt]  mediatek: fix pwn fan settings for sinovoip bpi-r3
In-Reply-To: <173222305923.1555187.15947989773181572660@git-01.infra.openwrt.org>
References: <173222305923.1555187.15947989773181572660@git-01.infra.openwrt.org>
Message-ID: <mailman.3891.1732223063.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/3467ea905b40f0df87700a15b716b1f5a4efc955

commit 3467ea905b40f0df87700a15b716b1f5a4efc955
Author: Mikhail Kshevetskiy <mikhail.kshevetskiy at gmail.com>
AuthorDate: Fri Nov 15 03:17:07 2024 +0300

    mediatek: fix pwn fan settings for sinovoip bpi-r3
    
    Popular bpi-r3 pwm fans like this one
    
      https://www.amazon.com/youyeetoo-Barebone-Fan-BPI-R3-Integrated/dp/B0CCCTY8PS
    
    will not work properly with current openwrt-23.05/24.10 firmware.
    Trying different pwm setting
    
      echo $value > /sys/devices/platform/pwm-fan/hwmon/hwmon1/pwm1
    
    I found:
    
      pwm1 value     fan rotation speed   cpu temperature     notes
      -----------------------------------------------------------------
        0            maximal              31.5 Celsius        too noisy
       40            optimal              35.2 Celsius        no noise hearable
       95            minimal
       above 95      does not rotate      55.5 Celsius
      -----------------------------------------------------------------
    
    At the moment we have following cooling levels:
    
      cooling-levels = <255 96 0>;
    
    for cpu-active-high, cpu-active-medium and cpu-active-low modes correspondingly.
    Thus only cpu-active-high and cpu-active-low are usable. I think this is wrong.
    
    This patch fixes cpu-active-medium settings for bpi-r3 board.
    
    PS: I know, the patch is not ideal as it can break pwm fan for some users.
        There are some peoples that use handmade cooling solutions, but:
          * discussed cooler is the only 'official' pwm cooler for bpi-r3
            available on the market.
          * most peoples will use passive cooling available on the market or
            the discussed cooler.
          * the pwm-fan dts section was added before the official cooler
            appears on the market.
        Thus it should not be a lot of harm from this fix.
    
    Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16974
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 .../196-dts-mt7986a-bpi-r3-pwm-fan-cooling-levels.patch       | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/target/linux/mediatek/patches-5.15/196-dts-mt7986a-bpi-r3-pwm-fan-cooling-levels.patch b/target/linux/mediatek/patches-5.15/196-dts-mt7986a-bpi-r3-pwm-fan-cooling-levels.patch
new file mode 100644
index 0000000000..267c654f35
--- /dev/null
+++ b/target/linux/mediatek/patches-5.15/196-dts-mt7986a-bpi-r3-pwm-fan-cooling-levels.patch
@@ -0,0 +1,11 @@
+--- a/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts
++++ b/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts
+@@ -46,7 +46,7 @@
+ 		compatible = "pwm-fan";
+ 		#cooling-cells = <2>;
+ 		/* cooling level (0, 1, 2) - pwm inverted */
+-		cooling-levels = <255 96 0>;
++		cooling-levels = <255 40 0>;
+ 		pwms = <&pwm 0 10000>;
+ 		status = "okay";
+ 	};



From lede-commits at lists.infradead.org  Thu Nov 21 13:04:52 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 21 Nov 2024 16:04:52 -0500
Subject: [openwrt/openwrt]  Revert "mediatek: fix pwn fan settings for
 sinovoip bpi-r3"
In-Reply-To: <173222309298.1556485.8663159104011222294@git-01.infra.openwrt.org>
References: <173222309298.1556485.8663159104011222294@git-01.infra.openwrt.org>
Message-ID: <mailman.3892.1732223101.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/52b6c9247997e51a97f13bb9e94749bc34e2d52e

commit 52b6c9247997e51a97f13bb9e94749bc34e2d52e
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Thu Nov 21 22:04:41 2024 +0100

    Revert "mediatek: fix pwn fan settings for sinovoip bpi-r3"
    
    This reverts commit 3467ea905b40f0df87700a15b716b1f5a4efc955.
    
    I merged it by accident.
    
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 .../196-dts-mt7986a-bpi-r3-pwm-fan-cooling-levels.patch       | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/target/linux/mediatek/patches-5.15/196-dts-mt7986a-bpi-r3-pwm-fan-cooling-levels.patch b/target/linux/mediatek/patches-5.15/196-dts-mt7986a-bpi-r3-pwm-fan-cooling-levels.patch
deleted file mode 100644
index 267c654f35..0000000000
--- a/target/linux/mediatek/patches-5.15/196-dts-mt7986a-bpi-r3-pwm-fan-cooling-levels.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts
-+++ b/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts
-@@ -46,7 +46,7 @@
- 		compatible = "pwm-fan";
- 		#cooling-cells = <2>;
- 		/* cooling level (0, 1, 2) - pwm inverted */
--		cooling-levels = <255 96 0>;
-+		cooling-levels = <255 40 0>;
- 		pwms = <&pwm 0 10000>;
- 		status = "okay";
- 	};



From lede-commits at lists.infradead.org  Sat Nov 23 05:04:54 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 08:04:54 -0500
Subject: [openwrt/openwrt]  wifi-scripts: Fix parsing of Capabilities
In-Reply-To: <173236709464.1165686.10689570744352355166@git-01.infra.openwrt.org>
References: <173236709464.1165686.10689570744352355166@git-01.infra.openwrt.org>
Message-ID: <mailman.4603.1732367105.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/adf958c9192d94fbeeb0ec8e16800b0071455909

commit adf958c9192d94fbeeb0ec8e16800b0071455909
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sat Nov 23 00:34:30 2024 +0100

    wifi-scripts: Fix parsing of Capabilities
    
    Fixup capabilities parsing in iw output.
    
    In addition to the normal capabilities iw now also outputs HE MAC, HE
    PHY and EHT MAC and EHT PHY capabilities. Exclude them in the parsing.
    
    The grep returns this with mac80211-hwsim:
    ```
    root at OpenWrt:~# iw phy phy0 info | grep 'Capabilities:'
                    Capabilities: 0x107e
                            HE PHY Capabilities: (0x02bfce0000000000000000):
                            EHT PHY Capabilities: (0x7c0000feffff7f01):
                            HE PHY Capabilities: (0x02bfce0000000000000000):
                            EHT PHY Capabilities: (0x7c0000feffff7f01):
                            HE PHY Capabilities: (0x02bf000000000000000000):
                    Capabilities: 0x107e
                            HE PHY Capabilities: (0x1cbfce0000000000000000):
                            EHT PHY Capabilities: (0xfc1f3ffeffff7f37):
                            HE PHY Capabilities: (0x1cbfce0000000000000000):
                            EHT PHY Capabilities: (0xfc1f3ffeffff7f37):
                            HE PHY Capabilities: (0x1cbf000000000000000000):
                            HE PHY Capabilities: (0x1cbfce0000000000000000):
                            EHT PHY Capabilities: (0xfefffffeffffff7f):
                            HE PHY Capabilities: (0x1cbfce0000000000000000):
                            EHT PHY Capabilities: (0xfefffffeffffff7f):
                            HE PHY Capabilities: (0x1cbf000000000000000000):
                    Capabilities: 0x107e
    ```
    
    With busybox 1.36.1 the ht_cap_mask variable will be set to
    -72057598332895361. With busybox 1.37.0 it will be set to -1.
    Both values are wrong, after this change it will be set to 4222
    (0x107E).
    
    Link: https://github.com/openwrt/openwrt/pull/17043
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 .../network/config/wifi-scripts/files/lib/netifd/wireless/mac80211.sh   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/network/config/wifi-scripts/files/lib/netifd/wireless/mac80211.sh b/package/network/config/wifi-scripts/files/lib/netifd/wireless/mac80211.sh
index 9998e26ec1..3d953eff74 100755
--- a/package/network/config/wifi-scripts/files/lib/netifd/wireless/mac80211.sh
+++ b/package/network/config/wifi-scripts/files/lib/netifd/wireless/mac80211.sh
@@ -208,7 +208,7 @@ mac80211_hostapd_setup_base() {
 				dsss_cck_40:1
 
 			ht_cap_mask=0
-			for cap in $(iw phy "$phy" info | grep 'Capabilities:' | cut -d: -f2); do
+			for cap in $(iw phy "$phy" info | grep -E '^\s*Capabilities:' | cut -d: -f2); do
 				ht_cap_mask="$(($ht_cap_mask | $cap))"
 			done
 



From lede-commits at lists.infradead.org  Sat Nov 23 05:06:52 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 08:06:52 -0500
Subject: [openwrt/openwrt]  kernel: bump 6.6 to 6.6.62
In-Reply-To: <173236721288.1173099.16525635611674257650@git-01.infra.openwrt.org>
References: <173236721288.1173099.16525635611674257650@git-01.infra.openwrt.org>
Message-ID: <mailman.4604.1732367216.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/611bfa4d72c87e8163d7193d9557479fc7312467

commit 611bfa4d72c87e8163d7193d9557479fc7312467
Author: John Audia <therealgraysky at proton.me>
AuthorDate: Sun Nov 17 14:33:47 2024 -0500

    kernel: bump 6.6 to 6.6.62
    
    Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.62
    
    All patches automatically rebased.
    
    Build system: x86/64
    Build-tested: x86/64/AMD Cezanne, flogic/glinet_gl-mt6000, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
    Run-tested: x86/64/AMD Cezanne, flogic/glinet_gl-mt6000, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
    
    Signed-off-by: John Audia <therealgraysky at proton.me>
    Link: https://github.com/openwrt/openwrt/pull/16997
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 include/kernel-6.6                                             |  4 ++--
 ...-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch |  2 +-
 ...-mm-page_alloc-cma-introduce-a-customisable-threshold.patch |  2 +-
 ...-mm-numa-Allow-override-of-kernel-s-default-NUMA-poli.patch | 10 +++++-----
 4 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/include/kernel-6.6 b/include/kernel-6.6
index d870747f83..dfb1e855f8 100644
--- a/include/kernel-6.6
+++ b/include/kernel-6.6
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.6 = .61
-LINUX_KERNEL_HASH-6.6.61 = 418fc24df9190f1c3ed9906dc3b7651c2a2eae5c1cb9ab4a6348e20faf047c0b
+LINUX_VERSION-6.6 = .62
+LINUX_KERNEL_HASH-6.6.62 = e2c35611775534941b9d4dd871f3ae5b988b6594dc9033b5ca784366e07d9336
diff --git a/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch
index 5301066196..6e9ca2261b 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch
@@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.org>
  #define USB_VENDOR_ID_BELKIN		0x050d
  #define USB_DEVICE_ID_FLIP_KVM		0x3201
  
-@@ -1404,6 +1407,9 @@
+@@ -1405,6 +1408,9 @@
  #define USB_VENDOR_ID_XIAOMI		0x2717
  #define USB_DEVICE_ID_MI_SILENT_MOUSE	0x5014
  
diff --git a/target/linux/bcm27xx/patches-6.6/950-0359-mm-page_alloc-cma-introduce-a-customisable-threshold.patch b/target/linux/bcm27xx/patches-6.6/950-0359-mm-page_alloc-cma-introduce-a-customisable-threshold.patch
index 8c39ae9931..f8baf9befc 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0359-mm-page_alloc-cma-introduce-a-customisable-threshold.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0359-mm-page_alloc-cma-introduce-a-customisable-threshold.patch
@@ -48,7 +48,7 @@ Signed-off-by: David Plowman <david.plowman at raspberrypi.com>
  /*
   * A cached value of the page's pageblock's migratetype, used when the page is
   * put on a pcplist. Used to avoid the pageblock migratetype lookup when
-@@ -2095,12 +2116,13 @@ __rmqueue(struct zone *zone, unsigned in
+@@ -2094,12 +2115,13 @@ __rmqueue(struct zone *zone, unsigned in
  	if (IS_ENABLED(CONFIG_CMA)) {
  		/*
  		 * Balance movable allocations between regular and CMA areas by
diff --git a/target/linux/bcm27xx/patches-6.6/950-1340-mm-numa-Allow-override-of-kernel-s-default-NUMA-poli.patch b/target/linux/bcm27xx/patches-6.6/950-1340-mm-numa-Allow-override-of-kernel-s-default-NUMA-poli.patch
index f0de0ce9d5..dceb6df45f 100644
--- a/target/linux/bcm27xx/patches-6.6/950-1340-mm-numa-Allow-override-of-kernel-s-default-NUMA-poli.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-1340-mm-numa-Allow-override-of-kernel-s-default-NUMA-poli.patch
@@ -23,7 +23,7 @@ Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
 
 --- a/mm/mempolicy.c
 +++ b/mm/mempolicy.c
-@@ -2974,7 +2974,9 @@ void __init numa_policy_init(void)
+@@ -2963,7 +2963,9 @@ void __init numa_policy_init(void)
  /* Reset policy of current process to default */
  void numa_default_policy(void)
  {
@@ -34,7 +34,7 @@ Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
  }
  
  /*
-@@ -2992,7 +2994,6 @@ static const char * const policy_modes[]
+@@ -2981,7 +2983,6 @@ static const char * const policy_modes[]
  };
  
  
@@ -42,7 +42,7 @@ Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
  /**
   * mpol_parse_str - parse string to mempolicy, for tmpfs mpol mount option.
   * @str:  string containing mempolicy to parse
-@@ -3005,13 +3006,18 @@ static const char * const policy_modes[]
+@@ -2994,13 +2995,18 @@ static const char * const policy_modes[]
   */
  int mpol_parse_str(char *str, struct mempolicy **mpol)
  {
@@ -62,7 +62,7 @@ Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
  	if (flags)
  		*flags++ = '\0';	/* terminate mode string */
  
-@@ -3090,9 +3096,16 @@ int mpol_parse_str(char *str, struct mem
+@@ -3079,9 +3085,16 @@ int mpol_parse_str(char *str, struct mem
  			goto out;
  	}
  
@@ -82,7 +82,7 @@ Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
  
  	/*
  	 * Save nodes for mpol_to_str() to show the tmpfs mount options
-@@ -3125,7 +3138,29 @@ out:
+@@ -3114,7 +3127,29 @@ out:
  		*mpol = new;
  	return err;
  }



From lede-commits at lists.infradead.org  Sat Nov 23 05:06:53 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 08:06:53 -0500
Subject: [openwrt/openwrt]  kernel: bump 6.6 to 6.6.63
In-Reply-To: <173236721288.1173099.16525635611674257650@git-01.infra.openwrt.org>
References: <173236721288.1173099.16525635611674257650@git-01.infra.openwrt.org>
Message-ID: <mailman.4605.1732367217.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/eb395585ae1b7560bbcea9544f428db2a9105152

commit eb395585ae1b7560bbcea9544f428db2a9105152
Author: John Audia <therealgraysky at proton.me>
AuthorDate: Fri Nov 22 10:53:37 2024 -0500

    kernel: bump 6.6 to 6.6.63
    
    Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.63
    
    Manually rebased:
            bcm27xx/patches-6.6/950-0297-staging-vchiq_arm-Add-36-bit-address-support.patch
    
    All other patches automatically rebased.
    
    Build system: x86/64
    Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
    Run-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
    
    Signed-off-by: John Audia <therealgraysky at proton.me>
    Link: https://github.com/openwrt/openwrt/pull/16997
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 include/kernel-6.6                                 |  4 +--
 .../patches-6.6/900-unaligned_access_hacks.patch   |  4 +--
 ...iq_arm-Register-vcsm-cma-as-a-platform-dr.patch |  4 +--
 ...iq_arm-Register-bcm2835-codec-as-a-platfo.patch |  4 +--
 ...iq_arm-Set-up-dma-ranges-on-child-devices.patch |  2 +-
 ...iq-Use-the-old-dma-controller-for-OF-conf.patch |  4 +--
 ...ng-vchiq_arm-Give-vchiq-children-DT-nodes.patch |  2 +-
 ...-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch |  4 +--
 ...ging-vchiq_arm-Add-36-bit-address-support.patch | 30 +++++++++++-----------
 ...ing-vchiq_arm-children-inherit-DMA-config.patch |  2 +-
 ...-vchiq_arm-Usa-a-DMA-pool-for-small-bulks.patch | 14 +++++-----
 11 files changed, 37 insertions(+), 37 deletions(-)

diff --git a/include/kernel-6.6 b/include/kernel-6.6
index dfb1e855f8..0cfe052e65 100644
--- a/include/kernel-6.6
+++ b/include/kernel-6.6
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.6 = .62
-LINUX_KERNEL_HASH-6.6.62 = e2c35611775534941b9d4dd871f3ae5b988b6594dc9033b5ca784366e07d9336
+LINUX_VERSION-6.6 = .63
+LINUX_KERNEL_HASH-6.6.63 = d1054ab4803413efe2850f50f1a84349c091631ec50a1cf9e891d1b1f9061835
diff --git a/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch b/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch
index c5b01b7dad..dd57c53a18 100644
--- a/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch
+++ b/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch
@@ -557,7 +557,7 @@ SVN-Revision: 35130
  static inline struct neighbour *__ipv6_neigh_lookup_noref(struct net_device *dev, const void *pkey)
 --- a/net/sched/cls_u32.c
 +++ b/net/sched/cls_u32.c
-@@ -157,7 +157,7 @@ next_knode:
+@@ -167,7 +167,7 @@ next_knode:
  			data = skb_header_pointer(skb, toff, 4, &hdata);
  			if (!data)
  				goto out;
@@ -566,7 +566,7 @@ SVN-Revision: 35130
  				n = rcu_dereference_bh(n->next);
  				goto next_knode;
  			}
-@@ -208,8 +208,8 @@ check_terminal:
+@@ -218,8 +218,8 @@ check_terminal:
  						  &hdata);
  			if (!data)
  				goto out;
diff --git a/target/linux/bcm27xx/patches-6.6/950-0184-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch b/target/linux/bcm27xx/patches-6.6/950-0184-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch
index 1029316504..741d377fc8 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0184-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0184-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch
@@ -22,7 +22,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  
  struct vchiq_drvdata {
  	const unsigned int cache_line_size;
-@@ -1838,6 +1839,7 @@ static int vchiq_probe(struct platform_d
+@@ -1825,6 +1826,7 @@ static int vchiq_probe(struct platform_d
  		goto error_exit;
  	}
  
@@ -30,7 +30,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera");
  	bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio");
  
-@@ -1853,6 +1855,7 @@ static void vchiq_remove(struct platform
+@@ -1840,6 +1842,7 @@ static void vchiq_remove(struct platform
  {
  	platform_device_unregister(bcm2835_audio);
  	platform_device_unregister(bcm2835_camera);
diff --git a/target/linux/bcm27xx/patches-6.6/950-0185-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch b/target/linux/bcm27xx/patches-6.6/950-0185-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch
index ab4fb514d6..5a3c91b780 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0185-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0185-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch
@@ -22,7 +22,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  static struct platform_device *vcsm_cma;
  
  struct vchiq_drvdata {
-@@ -1840,6 +1841,7 @@ static int vchiq_probe(struct platform_d
+@@ -1827,6 +1828,7 @@ static int vchiq_probe(struct platform_d
  	}
  
  	vcsm_cma = vchiq_register_child(pdev, "vcsm-cma");
@@ -30,7 +30,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera");
  	bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio");
  
-@@ -1855,6 +1857,7 @@ static void vchiq_remove(struct platform
+@@ -1842,6 +1844,7 @@ static void vchiq_remove(struct platform
  {
  	platform_device_unregister(bcm2835_audio);
  	platform_device_unregister(bcm2835_camera);
diff --git a/target/linux/bcm27xx/patches-6.6/950-0190-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch b/target/linux/bcm27xx/patches-6.6/950-0190-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch
index b008f90946..3abc4f19bf 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0190-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0190-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch
@@ -18,7 +18,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
 
 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
 +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -1790,6 +1790,12 @@ vchiq_register_child(struct platform_dev
+@@ -1777,6 +1777,12 @@ vchiq_register_child(struct platform_dev
  		child = NULL;
  	}
  
diff --git a/target/linux/bcm27xx/patches-6.6/950-0191-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch b/target/linux/bcm27xx/patches-6.6/950-0191-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch
index 85d1174a60..e5c5fdbc0b 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0191-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0191-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch
@@ -17,7 +17,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
 
 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
 +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -1776,6 +1776,7 @@ vchiq_register_child(struct platform_dev
+@@ -1763,6 +1763,7 @@ vchiq_register_child(struct platform_dev
  {
  	struct platform_device_info pdevinfo;
  	struct platform_device *child;
@@ -25,7 +25,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
  
  	memset(&pdevinfo, 0, sizeof(pdevinfo));
  
-@@ -1791,10 +1792,20 @@ vchiq_register_child(struct platform_dev
+@@ -1778,10 +1779,20 @@ vchiq_register_child(struct platform_dev
  	}
  
  	/*
diff --git a/target/linux/bcm27xx/patches-6.6/950-0194-staging-vchiq_arm-Give-vchiq-children-DT-nodes.patch b/target/linux/bcm27xx/patches-6.6/950-0194-staging-vchiq_arm-Give-vchiq-children-DT-nodes.patch
index eab0710367..9dba2dffca 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0194-staging-vchiq_arm-Give-vchiq-children-DT-nodes.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0194-staging-vchiq_arm-Give-vchiq-children-DT-nodes.patch
@@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 
 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
 +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -1785,12 +1785,20 @@ vchiq_register_child(struct platform_dev
+@@ -1772,12 +1772,20 @@ vchiq_register_child(struct platform_dev
  	pdevinfo.id = PLATFORM_DEVID_NONE;
  	pdevinfo.dma_mask = DMA_BIT_MASK(32);
  
diff --git a/target/linux/bcm27xx/patches-6.6/950-0209-staging-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch b/target/linux/bcm27xx/patches-6.6/950-0209-staging-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch
index a33b39967f..b5f912c85b 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0209-staging-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0209-staging-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch
@@ -21,7 +21,7 @@ Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
  
  struct vchiq_drvdata {
  	const unsigned int cache_line_size;
-@@ -1869,6 +1870,7 @@ static int vchiq_probe(struct platform_d
+@@ -1856,6 +1857,7 @@ static int vchiq_probe(struct platform_d
  	bcm2835_codec = vchiq_register_child(pdev, "bcm2835-codec");
  	bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera");
  	bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio");
@@ -29,7 +29,7 @@ Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
  
  	return 0;
  
-@@ -1880,6 +1882,7 @@ error_exit:
+@@ -1867,6 +1869,7 @@ error_exit:
  
  static void vchiq_remove(struct platform_device *pdev)
  {
diff --git a/target/linux/bcm27xx/patches-6.6/950-0297-staging-vchiq_arm-Add-36-bit-address-support.patch b/target/linux/bcm27xx/patches-6.6/950-0297-staging-vchiq_arm-Add-36-bit-address-support.patch
index 0c1ee62fab..11147d9fd9 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0297-staging-vchiq_arm-Add-36-bit-address-support.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0297-staging-vchiq_arm-Add-36-bit-address-support.patch
@@ -36,10 +36,10 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 +	.use_36bit_addrs = true,
 +};
 +
- struct vchiq_2835_state {
- 	int inited;
- 	struct vchiq_arm_state arm_state;
-@@ -147,10 +153,12 @@ static void __iomem *g_regs;
+ struct vchiq_pagelist_info {
+ 	struct pagelist *pagelist;
+ 	size_t pagelist_buffer_size;
+@@ -142,10 +148,12 @@ static void __iomem *g_regs;
   * of 32.
   */
  static unsigned int g_cache_line_size = 32;
@@ -52,7 +52,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  
  static DEFINE_SEMAPHORE(g_free_fragments_mutex, 1);
  
-@@ -180,7 +188,7 @@ static void
+@@ -175,7 +183,7 @@ static void
  cleanup_pagelistinfo(struct vchiq_instance *instance, struct vchiq_pagelist_info *pagelistinfo)
  {
  	if (pagelistinfo->scatterlist_mapped) {
@@ -61,7 +61,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  			     pagelistinfo->num_pages, pagelistinfo->dma_dir);
  	}
  
-@@ -340,7 +348,7 @@ create_pagelist(struct vchiq_instance *i
+@@ -335,7 +343,7 @@ create_pagelist(struct vchiq_instance *i
  		count -= len;
  	}
  
@@ -70,7 +70,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  				 scatterlist,
  				 num_pages,
  				 pagelistinfo->dma_dir);
-@@ -354,22 +362,61 @@ create_pagelist(struct vchiq_instance *i
+@@ -349,22 +357,61 @@ create_pagelist(struct vchiq_instance *i
  
  	/* Combine adjacent blocks for performance */
  	k = 0;
@@ -148,7 +148,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	}
  
  	/* Partial cache lines (fragments) require special measures */
-@@ -413,7 +460,7 @@ free_pagelist(struct vchiq_instance *ins
+@@ -408,7 +455,7 @@ free_pagelist(struct vchiq_instance *ins
  	 * NOTE: dma_unmap_sg must be called before the
  	 * cpu can touch any of the data/pages.
  	 */
@@ -157,7 +157,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  		     pagelistinfo->num_pages, pagelistinfo->dma_dir);
  	pagelistinfo->scatterlist_mapped = 0;
  
-@@ -468,6 +515,7 @@ free_pagelist(struct vchiq_instance *ins
+@@ -463,6 +510,7 @@ free_pagelist(struct vchiq_instance *ins
  static int vchiq_platform_init(struct platform_device *pdev, struct vchiq_state *state)
  {
  	struct device *dev = &pdev->dev;
@@ -165,7 +165,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	struct vchiq_drvdata *drvdata = platform_get_drvdata(pdev);
  	struct rpi_firmware *fw = drvdata->fw;
  	struct vchiq_slot_zero *vchiq_slot_zero;
-@@ -489,6 +537,24 @@ static int vchiq_platform_init(struct pl
+@@ -484,6 +532,24 @@ static int vchiq_platform_init(struct pl
  	g_cache_line_size = drvdata->cache_line_size;
  	g_fragments_size = 2 * g_cache_line_size;
  
@@ -190,7 +190,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	/* Allocate space for the channels in coherent memory */
  	slot_mem_size = PAGE_ALIGN(TOTAL_SLOTS * VCHIQ_SLOT_SIZE);
  	frag_mem_size = PAGE_ALIGN(g_fragments_size * MAX_FRAGMENTS);
-@@ -501,13 +567,14 @@ static int vchiq_platform_init(struct pl
+@@ -496,13 +562,14 @@ static int vchiq_platform_init(struct pl
  	}
  
  	WARN_ON(((unsigned long)slot_mem & (PAGE_SIZE - 1)) != 0);
@@ -206,7 +206,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	vchiq_slot_zero->platform_data[VCHIQ_PLATFORM_FRAGMENTS_COUNT_IDX] =
  		MAX_FRAGMENTS;
  
-@@ -541,7 +608,6 @@ static int vchiq_platform_init(struct pl
+@@ -536,7 +603,6 @@ static int vchiq_platform_init(struct pl
  	}
  
  	/* Send the base address of the slots to VideoCore */
@@ -214,7 +214,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	err = rpi_firmware_property(fw, RPI_FIRMWARE_VCHIQ_INIT,
  				    &channelbase, sizeof(channelbase));
  	if (err) {
-@@ -555,6 +621,8 @@ static int vchiq_platform_init(struct pl
+@@ -550,6 +616,8 @@ static int vchiq_platform_init(struct pl
  		return -ENXIO;
  	}
  
@@ -223,7 +223,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	vchiq_log_info(vchiq_arm_log_level, "vchiq_init - done (slots %pK, phys %pad)",
  		       vchiq_slot_zero, &slot_phys);
  
-@@ -1768,6 +1836,7 @@ void vchiq_platform_conn_state_changed(s
+@@ -1755,6 +1823,7 @@ void vchiq_platform_conn_state_changed(s
  static const struct of_device_id vchiq_of_match[] = {
  	{ .compatible = "brcm,bcm2835-vchiq", .data = &bcm2835_drvdata },
  	{ .compatible = "brcm,bcm2836-vchiq", .data = &bcm2836_drvdata },
@@ -231,7 +231,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	{},
  };
  MODULE_DEVICE_TABLE(of, vchiq_of_match);
-@@ -1800,22 +1869,8 @@ vchiq_register_child(struct platform_dev
+@@ -1787,22 +1856,8 @@ vchiq_register_child(struct platform_dev
  
  	child->dev.of_node = np;
  
diff --git a/target/linux/bcm27xx/patches-6.6/950-0298-staging-vchiq_arm-children-inherit-DMA-config.patch b/target/linux/bcm27xx/patches-6.6/950-0298-staging-vchiq_arm-children-inherit-DMA-config.patch
index b6fb2e9eda..87bea65fc7 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0298-staging-vchiq_arm-children-inherit-DMA-config.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0298-staging-vchiq_arm-children-inherit-DMA-config.patch
@@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 
 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
 +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -1869,8 +1869,18 @@ vchiq_register_child(struct platform_dev
+@@ -1856,8 +1856,18 @@ vchiq_register_child(struct platform_dev
  
  	child->dev.of_node = np;
  
diff --git a/target/linux/bcm27xx/patches-6.6/950-0299-staging-vchiq_arm-Usa-a-DMA-pool-for-small-bulks.patch b/target/linux/bcm27xx/patches-6.6/950-0299-staging-vchiq_arm-Usa-a-DMA-pool-for-small-bulks.patch
index bcd9dae853..162d333c61 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0299-staging-vchiq_arm-Usa-a-DMA-pool-for-small-bulks.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0299-staging-vchiq_arm-Usa-a-DMA-pool-for-small-bulks.patch
@@ -37,7 +37,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski at gmail.com>
  /* Override the default prefix, which would be vchiq_arm (from the filename) */
  #undef MODULE_PARAM_PREFIX
  #define MODULE_PARAM_PREFIX DEVICE_NAME "."
-@@ -133,6 +136,7 @@ struct vchiq_pagelist_info {
+@@ -128,6 +131,7 @@ struct vchiq_pagelist_info {
  	struct pagelist *pagelist;
  	size_t pagelist_buffer_size;
  	dma_addr_t dma_addr;
@@ -45,7 +45,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski at gmail.com>
  	enum dma_data_direction dma_dir;
  	unsigned int num_pages;
  	unsigned int pages_need_release;
-@@ -153,6 +157,7 @@ static void __iomem *g_regs;
+@@ -148,6 +152,7 @@ static void __iomem *g_regs;
   * of 32.
   */
  static unsigned int g_cache_line_size = 32;
@@ -53,7 +53,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski at gmail.com>
  static unsigned int g_use_36bit_addrs = 0;
  static unsigned int g_fragments_size;
  static char *g_fragments_base;
-@@ -195,8 +200,13 @@ cleanup_pagelistinfo(struct vchiq_instan
+@@ -190,8 +195,13 @@ cleanup_pagelistinfo(struct vchiq_instan
  	if (pagelistinfo->pages_need_release)
  		unpin_user_pages(pagelistinfo->pages, pagelistinfo->num_pages);
  
@@ -69,7 +69,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski at gmail.com>
  }
  
  static inline bool
-@@ -231,6 +241,7 @@ create_pagelist(struct vchiq_instance *i
+@@ -226,6 +236,7 @@ create_pagelist(struct vchiq_instance *i
  	u32 *addrs;
  	unsigned int num_pages, offset, i, k;
  	int actual_pages;
@@ -77,7 +77,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski at gmail.com>
  	size_t pagelist_size;
  	struct scatterlist *scatterlist, *sg;
  	int dma_buffers;
-@@ -260,8 +271,14 @@ create_pagelist(struct vchiq_instance *i
+@@ -255,8 +266,14 @@ create_pagelist(struct vchiq_instance *i
  	/* Allocate enough storage to hold the page pointers and the page
  	 * list
  	 */
@@ -94,7 +94,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski at gmail.com>
  
  	vchiq_log_trace(vchiq_arm_log_level, "%s - %pK", __func__, pagelist);
  
-@@ -282,6 +299,7 @@ create_pagelist(struct vchiq_instance *i
+@@ -277,6 +294,7 @@ create_pagelist(struct vchiq_instance *i
  	pagelistinfo->pagelist = pagelist;
  	pagelistinfo->pagelist_buffer_size = pagelist_size;
  	pagelistinfo->dma_addr = dma_addr;
@@ -102,7 +102,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski at gmail.com>
  	pagelistinfo->dma_dir =  (type == PAGELIST_WRITE) ?
  				  DMA_TO_DEVICE : DMA_FROM_DEVICE;
  	pagelistinfo->num_pages = num_pages;
-@@ -622,6 +640,13 @@ static int vchiq_platform_init(struct pl
+@@ -617,6 +635,13 @@ static int vchiq_platform_init(struct pl
  	}
  
  	g_dma_dev = dma_dev ?: dev;



From lede-commits at lists.infradead.org  Sat Nov 23 06:09:09 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 09:09:09 -0500
Subject: [openwrt/openwrt]  ramips: sync upstream Ralink clock patches
In-Reply-To: <173237094986.1379159.11885444591880080982@git-01.infra.openwrt.org>
References: <173237094986.1379159.11885444591880080982@git-01.infra.openwrt.org>
Message-ID: <mailman.4608.1732370954.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/7bb99bca3dfd878e6ad950b218c0cb96d36d14f4

commit 7bb99bca3dfd878e6ad950b218c0cb96d36d14f4
Author: Shiji Yang <yangshiji66 at qq.com>
AuthorDate: Fri Nov 22 18:12:12 2024 +0800

    ramips: sync upstream Ralink clock patches
    
    1. Add sdhc clock for MT7620 and MT76x8 SoCs.
    2. Fix clock driver warning for RT2880, RT305x and RT3883.
    
    Link: https://lore.kernel.org/all/20240910044024.120009-1-sergio.paracuellos at gmail.com/
    Signed-off-by: Shiji Yang <yangshiji66 at qq.com>
    Link: https://github.com/openwrt/openwrt/pull/17037
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/ramips/dts/mt7620a.dtsi               |  27 ++---
 target/linux/ramips/dts/mt7620n.dtsi               |  14 +--
 target/linux/ramips/dts/mt7628an.dtsi              |  23 ++--
 target/linux/ramips/dts/rt3883.dtsi                |  20 ++--
 ...tmips-fix-clock-plan-for-Ralink-SoC-RT38.patch} |  15 ++-
 ...mtmips-fix-clocks-probe-order-in-oldest-r.patch | 124 +++++++++++++++++++++
 ...mtmips-add-mmc-related-clocks-for-SoCs-MT.patch | 101 +++++++++++++++++
 7 files changed, 269 insertions(+), 55 deletions(-)

diff --git a/target/linux/ramips/dts/mt7620a.dtsi b/target/linux/ramips/dts/mt7620a.dtsi
index bcc7f4be3f..93b4286193 100644
--- a/target/linux/ramips/dts/mt7620a.dtsi
+++ b/target/linux/ramips/dts/mt7620a.dtsi
@@ -32,13 +32,6 @@
 		compatible = "mti,cpu-interrupt-controller";
 	};
 
-	mmc_clk: mmc-clock {
-		compatible = "fixed-clock";
-		#clock-cells = <0>;
-		clock-frequency = <48000000>;
-		clock-accuracy = <100>;
-	};
-
 	mmc_reg_1v8: regulator-1v8 {
 		compatible = "regulator-fixed";
 
@@ -80,7 +73,7 @@
 			compatible = "ralink,rt2880-timer";
 			reg = <0x100 0x20>;
 
-			clocks = <&sysc 5>;
+			clocks = <&sysc 7>;
 
 			interrupt-parent = <&intc>;
 			interrupts = <1>;
@@ -90,7 +83,7 @@
 			compatible = "ralink,rt2880-wdt";
 			reg = <0x120 0x10>;
 
-			clocks = <&sysc 6>;
+			clocks = <&sysc 8>;
 
 			resets = <&sysc 8>;
 			reset-names = "wdt";
@@ -122,7 +115,7 @@
 			compatible = "ralink,mt7620a-uart", "ralink,rt2880-uart", "ns16550a";
 			reg = <0x500 0x100>;
 
-			clocks = <&sysc 7>;
+			clocks = <&sysc 9>;
 
 			resets = <&sysc 12>;
 
@@ -216,7 +209,7 @@
 			compatible = "ralink,rt2880-i2c";
 			reg = <0x900 0x100>;
 
-			clocks = <&sysc 8>;
+			clocks = <&sysc 10>;
 
 			resets = <&sysc 16>;
 			reset-names = "i2c";
@@ -234,7 +227,7 @@
 			compatible = "mediatek,mt7620-i2s";
 			reg = <0xa00 0x100>;
 
-			clocks = <&sysc 9>;
+			clocks = <&sysc 11>;
 
 			resets = <&sysc 17>;
 			reset-names = "i2s";
@@ -256,7 +249,7 @@
 			compatible = "ralink,rt2880-spi";
 			reg = <0xb00 0x40>;
 
-			clocks = <&sysc 10>;
+			clocks = <&sysc 12>;
 
 			resets = <&sysc 18>;
 			reset-names = "spi";
@@ -274,7 +267,7 @@
 			compatible = "ralink,rt2880-spi";
 			reg = <0xb40 0x60>;
 
-			clocks = <&sysc 11>;
+			clocks = <&sysc 13>;
 
 			resets = <&sysc 18>;
 			reset-names = "spi";
@@ -292,7 +285,7 @@
 			compatible = "ralink,mt7620a-uart", "ralink,rt2880-uart", "ns16550a";
 			reg = <0xc00 0x100>;
 
-			clocks = <&sysc 12>;
+			clocks = <&sysc 14>;
 
 			resets = <&sysc 19>;
 
@@ -539,7 +532,7 @@
 		cap-mmc-highspeed;
 		cap-sd-highspeed;
 
-		clocks = <&mmc_clk>, <&mmc_clk>;
+		clocks = <&sysc 15>, <&sysc 15>;
 		clock-names = "source", "hclk";
 
 		disable-wp;
@@ -645,7 +638,7 @@
 		compatible = "ralink,rt7620-wmac", "ralink,rt2880-wmac";
 		reg = <0x10180000 0x40000>;
 
-		clocks = <&sysc 13>;
+		clocks = <&sysc 16>;
 
 		interrupt-parent = <&cpuintc>;
 		interrupts = <6>;
diff --git a/target/linux/ramips/dts/mt7620n.dtsi b/target/linux/ramips/dts/mt7620n.dtsi
index b284119961..64dbd0a50e 100644
--- a/target/linux/ramips/dts/mt7620n.dtsi
+++ b/target/linux/ramips/dts/mt7620n.dtsi
@@ -51,7 +51,7 @@
 			compatible = "ralink,rt2880-timer";
 			reg = <0x100 0x20>;
 
-			clocks = <&sysc 5>;
+			clocks = <&sysc 7>;
 
 			interrupt-parent = <&intc>;
 			interrupts = <1>;
@@ -61,7 +61,7 @@
 			compatible = "ralink,rt2880-wdt";
 			reg = <0x120 0x10>;
 
-			clocks = <&sysc 6>;
+			clocks = <&sysc 8>;
 
 			resets = <&sysc 8>;
 			reset-names = "wdt";
@@ -171,7 +171,7 @@
 			compatible = "ralink,rt2880-i2c";
 			reg = <0x900 0x100>;
 
-			clocks = <&sysc 8>;
+			clocks = <&sysc 10>;
 
 			resets = <&sysc 16>;
 			reset-names = "i2c";
@@ -189,7 +189,7 @@
 			compatible = "ralink,rt2880-spi";
 			reg = <0xb00 0x40>;
 
-			clocks = <&sysc 10>;
+			clocks = <&sysc 12>;
 
 			resets = <&sysc 18>;
 			reset-names = "spi";
@@ -207,7 +207,7 @@
 			compatible = "ralink,rt2880-spi";
 			reg = <0xb40 0x60>;
 
-			clocks = <&sysc 11>;
+			clocks = <&sysc 13>;
 
 			resets = <&sysc 18>;
 			reset-names = "spi";
@@ -225,7 +225,7 @@
 			compatible = "ralink,mt7620a-uart", "ralink,rt2880-uart", "ns16550a";
 			reg = <0xc00 0x100>;
 
-			clocks = <&sysc 12>;
+			clocks = <&sysc 14>;
 
 			resets = <&sysc 19>;
 
@@ -372,7 +372,7 @@
 		compatible = "ralink,rt7620-wmac", "ralink,rt2880-wmac";
 		reg = <0x10180000 0x40000>;
 
-		clocks = <&sysc 13>;
+		clocks = <&sysc 16>;
 
 		interrupt-parent = <&cpuintc>;
 		interrupts = <6>;
diff --git a/target/linux/ramips/dts/mt7628an.dtsi b/target/linux/ramips/dts/mt7628an.dtsi
index 445c530815..239211b1e1 100644
--- a/target/linux/ramips/dts/mt7628an.dtsi
+++ b/target/linux/ramips/dts/mt7628an.dtsi
@@ -30,13 +30,6 @@
 		compatible = "mti,cpu-interrupt-controller";
 	};
 
-	mmc_clk: mmc-clock {
-		compatible = "fixed-clock";
-		#clock-cells = <0>;
-		clock-frequency = <48000000>;
-		clock-accuracy = <100>;
-	};
-
 	mmc_reg_1v8: regulator-1v8 {
 		compatible = "regulator-fixed";
 
@@ -121,7 +114,7 @@
 			compatible = "mediatek,mt7621-i2c";
 			reg = <0x900 0x100>;
 
-			clocks = <&sysc 7>;
+			clocks = <&sysc 9>;
 			clock-names = "i2c";
 
 			resets = <&sysc 16>;
@@ -140,7 +133,7 @@
 			compatible = "mediatek,mt7628-i2s";
 			reg = <0xa00 0x100>;
 
-			clocks = <&sysc 8>;
+			clocks = <&sysc 10>;
 
 			resets = <&sysc 17>;
 			reset-names = "i2s";
@@ -162,7 +155,7 @@
 			compatible = "ralink,mt7621-spi";
 			reg = <0xb00 0x100>;
 
-			clocks = <&sysc 9>;
+			clocks = <&sysc 11>;
 			clock-names = "spi";
 
 			resets = <&sysc 18>;
@@ -185,7 +178,7 @@
 			reg-io-width = <4>;
 			no-loopback-test;
 
-			clocks = <&sysc 11>;
+			clocks = <&sysc 13>;
 
 			resets = <&sysc 12>;
 
@@ -204,7 +197,7 @@
 			reg-io-width = <4>;
 			no-loopback-test;
 
-			clocks = <&sysc 12>;
+			clocks = <&sysc 14>;
 
 			resets = <&sysc 19>;
 
@@ -225,7 +218,7 @@
 			reg-io-width = <4>;
 			no-loopback-test;
 
-			clocks = <&sysc 13>;
+			clocks = <&sysc 15>;
 
 			resets = <&sysc 20>;
 
@@ -393,7 +386,7 @@
 		cap-mmc-highspeed;
 		cap-sd-highspeed;
 
-		clocks = <&mmc_clk>, <&mmc_clk>;
+		clocks = <&sysc 16>, <&sysc 16>;
 		clock-names = "source", "hclk";
 
 		disable-wp;
@@ -516,7 +509,7 @@
 		compatible = "mediatek,mt7628-wmac";
 		reg = <0x10300000 0x100000>;
 
-		clocks = <&sysc 14>;
+		clocks = <&sysc 17>;
 
 		interrupt-parent = <&cpuintc>;
 		interrupts = <6>;
diff --git a/target/linux/ramips/dts/rt3883.dtsi b/target/linux/ramips/dts/rt3883.dtsi
index 509d1c21e8..363b1959b6 100644
--- a/target/linux/ramips/dts/rt3883.dtsi
+++ b/target/linux/ramips/dts/rt3883.dtsi
@@ -51,7 +51,7 @@
 			compatible = "ralink,rt2880-timer";
 			reg = <0x100 0x20>;
 
-			clocks = <&sysc 4>;
+			clocks = <&sysc 5>;
 
 			interrupt-parent = <&intc>;
 			interrupts = <1>;
@@ -61,7 +61,7 @@
 			compatible = "ralink,rt2880-wdt";
 			reg = <0x120 0x10>;
 
-			clocks = <&sysc 5>;
+			clocks = <&sysc 6>;
 
 			resets = <&sysc 8>;
 			reset-names = "wdt";
@@ -93,7 +93,7 @@
 			compatible = "ralink,rt3883-uart", "ralink,rt2880-uart", "ns16550a";
 			reg = <0x500 0x100>;
 
-			clocks = <&sysc 6>;
+			clocks = <&sysc 7>;
 
 			resets = <&sysc 12>;
 
@@ -187,7 +187,7 @@
 			compatible = "ralink,rt2880-i2c";
 			reg = <0x900 0x100>;
 
-			clocks = <&sysc 7>;
+			clocks = <&sysc 8>;
 
 			resets = <&sysc 16>;
 			reset-names = "i2c";
@@ -205,7 +205,7 @@
 			compatible = "ralink,rt3883-i2s";
 			reg = <0xa00 0x100>;
 
-			clocks = <&sysc 8>;
+			clocks = <&sysc 9>;
 
 			resets = <&sysc 17>;
 			reset-names = "i2s";
@@ -229,7 +229,7 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 
-			clocks = <&sysc 9>;
+			clocks = <&sysc 10>;
 
 			resets = <&sysc 18>;
 			reset-names = "spi";
@@ -246,7 +246,7 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 
-			clocks = <&sysc 10>;
+			clocks = <&sysc 11>;
 
 			resets = <&sysc 18>;
 			reset-names = "spi";
@@ -261,7 +261,7 @@
 			compatible = "ralink,rt3883-uart", "ralink,rt2880-uart", "ns16550a";
 			reg = <0xc00 0x100>;
 
-			clocks = <&sysc 11>;
+			clocks = <&sysc 12>;
 
 			resets = <&sysc 19>;
 
@@ -343,7 +343,7 @@
 		#size-cells = <0>;
 		reg = <0x10100000 0x10000>;
 
-		clocks = <&sysc 12>;
+		clocks = <&sysc 13>;
 
 		resets = <&sysc 21>;
 		reset-names = "fe";
@@ -463,7 +463,7 @@
 		compatible = "ralink,rt3883-wmac", "ralink,rt2880-wmac";
 		reg = <0x10180000 0x40000>;
 
-		clocks = <&sysc 13>;
+		clocks = <&sysc 14>;
 
 		interrupt-parent = <&cpuintc>;
 		interrupts = <6>;
diff --git a/target/linux/ramips/patches-6.6/100-clk-ralink-mtmips-fix-clock-plan-for-Ralink-SoC-RT3883.patch b/target/linux/ramips/patches-6.6/002-01-v6.13-clk-ralink-mtmips-fix-clock-plan-for-Ralink-SoC-RT38.patch
similarity index 75%
rename from target/linux/ramips/patches-6.6/100-clk-ralink-mtmips-fix-clock-plan-for-Ralink-SoC-RT3883.patch
rename to target/linux/ramips/patches-6.6/002-01-v6.13-clk-ralink-mtmips-fix-clock-plan-for-Ralink-SoC-RT38.patch
index a3d58b78f6..422b6dcfb0 100644
--- a/target/linux/ramips/patches-6.6/100-clk-ralink-mtmips-fix-clock-plan-for-Ralink-SoC-RT3883.patch
+++ b/target/linux/ramips/patches-6.6/002-01-v6.13-clk-ralink-mtmips-fix-clock-plan-for-Ralink-SoC-RT38.patch
@@ -1,6 +1,7 @@
-Subject: [PATCH] clk: ralink: mtmips: fix clock plan for Ralink SoC RT3883
-Date: Tue,  6 Aug 2024 16:29:02 +0200
-Message-Id: <20240806142902.224164-1-sergio.paracuellos at gmail.com>
+From 33239152305567b3e9bf052f71fd4baecd626341 Mon Sep 17 00:00:00 2001
+From: Sergio Paracuellos <sergio.paracuellos at gmail.com>
+Date: Tue, 10 Sep 2024 06:40:22 +0200
+Subject: [PATCH 1/3] clk: ralink: mtmips: fix clock plan for Ralink SoC RT3883
 
 Clock plan for Ralink SoC RT3883 needs an extra 'periph' clock to properly
 set some peripherals that has this clock as their parent. When this driver
@@ -14,6 +15,8 @@ properly working clock plan for this SoC.
 
 Fixes: 6f3b15586eef ("clk: ralink: add clock and reset driver for MTMIPS SoCs")
 Signed-off-by: Sergio Paracuellos <sergio.paracuellos at gmail.com>
+Link: https://lore.kernel.org/r/20240910044024.120009-2-sergio.paracuellos at gmail.com
+Signed-off-by: Stephen Boyd <sboyd at kernel.org>
 ---
  drivers/clk/ralink/clk-mtmips.c | 9 +++++++--
  1 file changed, 7 insertions(+), 2 deletions(-)
@@ -24,7 +27,7 @@ Signed-off-by: Sergio Paracuellos <sergio.paracuellos at gmail.com>
  	CLK_FIXED("xtal", NULL, 40000000)
  };
  
-+static struct mtmips_clk_fixed rt3383_fixed_clocks[] = {
++static struct mtmips_clk_fixed rt3883_fixed_clocks[] = {
 +	CLK_FIXED("xtal", NULL, 40000000),
 +	CLK_FIXED("periph", "xtal", 40000000)
 +};
@@ -38,8 +41,8 @@ Signed-off-by: Sergio Paracuellos <sergio.paracuellos at gmail.com>
  	.num_clk_base = ARRAY_SIZE(rt3883_clks_base),
 -	.clk_fixed = rt305x_fixed_clocks,
 -	.num_clk_fixed = ARRAY_SIZE(rt305x_fixed_clocks),
-+	.clk_fixed = rt3383_fixed_clocks,
-+	.num_clk_fixed = ARRAY_SIZE(rt3383_fixed_clocks),
++	.clk_fixed = rt3883_fixed_clocks,
++	.num_clk_fixed = ARRAY_SIZE(rt3883_fixed_clocks),
  	.clk_factor = NULL,
  	.num_clk_factor = 0,
  	.clk_periph = rt5350_pherip_clks,
diff --git a/target/linux/ramips/patches-6.6/002-02-v6.13-clk-ralink-mtmips-fix-clocks-probe-order-in-oldest-r.patch b/target/linux/ramips/patches-6.6/002-02-v6.13-clk-ralink-mtmips-fix-clocks-probe-order-in-oldest-r.patch
new file mode 100644
index 0000000000..3268a18dac
--- /dev/null
+++ b/target/linux/ramips/patches-6.6/002-02-v6.13-clk-ralink-mtmips-fix-clocks-probe-order-in-oldest-r.patch
@@ -0,0 +1,124 @@
+From d34db686a3d74bd564bfce2ada15011c556269fc Mon Sep 17 00:00:00 2001
+From: Sergio Paracuellos <sergio.paracuellos at gmail.com>
+Date: Tue, 10 Sep 2024 06:40:23 +0200
+Subject: [PATCH 2/3] clk: ralink: mtmips: fix clocks probe order in oldest
+ ralink SoCs
+
+Base clocks are the first in being probed and are real dependencies of the
+rest of fixed, factor and peripheral clocks. For old ralink SoCs RT2880,
+RT305x and RT3883 'xtal' must be defined first since in any other case,
+when fixed clocks are probed they are delayed until 'xtal' is probed so the
+following warning appears:
+
+ WARNING: CPU: 0 PID: 0 at drivers/clk/ralink/clk-mtmips.c:499 rt3883_bus_recalc_rate+0x98/0x138
+ Modules linked in:
+ CPU: 0 PID: 0 Comm: swapper Not tainted 6.6.43 #0
+ Stack : 805e58d0 00000000 00000004 8004f950 00000000 00000004 00000000 00000000
+ 80669c54 80830000 80700000 805ae570 80670068 00000001 80669bf8 00000000
+ 00000000 00000000 805ae570 80669b38 00000020 804db7dc 00000000 00000000
+ 203a6d6d 80669b78 80669e48 70617773 00000000 805ae570 00000000 00000009
+ 00000000 00000001 00000004 00000001 00000000 00000000 83fe43b0 00000000
+ ...
+ Call Trace:
+ [<800065d0>] show_stack+0x64/0xf4
+ [<804bca14>] dump_stack_lvl+0x38/0x60
+ [<800218ac>] __warn+0x94/0xe4
+ [<8002195c>] warn_slowpath_fmt+0x60/0x94
+ [<80259ff8>] rt3883_bus_recalc_rate+0x98/0x138
+ [<80254530>] __clk_register+0x568/0x688
+ [<80254838>] of_clk_hw_register+0x18/0x2c
+ [<8070b910>] rt2880_clk_of_clk_init_driver+0x18c/0x594
+ [<8070b628>] of_clk_init+0x1c0/0x23c
+ [<806fc448>] plat_time_init+0x58/0x18c
+ [<806fdaf0>] time_init+0x10/0x6c
+ [<806f9bc4>] start_kernel+0x458/0x67c
+
+ ---[ end trace 0000000000000000 ]---
+
+When this driver was mainlined we could not find any active users of old
+ralink SoCs so we cannot perform any real tests for them. Now, one user
+of a Belkin f9k1109 version 1 device which uses RT3883 SoC appeared and
+reported some issues in openWRT:
+- https://github.com/openwrt/openwrt/issues/16054
+
+Thus, define a 'rt2880_xtal_recalc_rate()' just returning the expected
+frequency 40Mhz and use it along the old ralink SoCs to have a correct
+boot trace with no warnings and a working clock plan from the beggining.
+
+Fixes: 6f3b15586eef ("clk: ralink: add clock and reset driver for MTMIPS SoCs")
+Signed-off-by: Sergio Paracuellos <sergio.paracuellos at gmail.com>
+Link: https://lore.kernel.org/r/20240910044024.120009-3-sergio.paracuellos at gmail.com
+Signed-off-by: Stephen Boyd <sboyd at kernel.org>
+---
+ drivers/clk/ralink/clk-mtmips.c | 21 +++++++++++++--------
+ 1 file changed, 13 insertions(+), 8 deletions(-)
+
+--- a/drivers/clk/ralink/clk-mtmips.c
++++ b/drivers/clk/ralink/clk-mtmips.c
+@@ -263,10 +263,6 @@ err_clk_unreg:
+ 		.rate = _rate		 \
+ 	}
+ 
+-static struct mtmips_clk_fixed rt305x_fixed_clocks[] = {
+-	CLK_FIXED("xtal", NULL, 40000000)
+-};
+-
+ static struct mtmips_clk_fixed rt3883_fixed_clocks[] = {
+ 	CLK_FIXED("xtal", NULL, 40000000),
+ 	CLK_FIXED("periph", "xtal", 40000000)
+@@ -371,6 +367,12 @@ static inline struct mtmips_clk *to_mtmi
+ 	return container_of(hw, struct mtmips_clk, hw);
+ }
+ 
++static unsigned long rt2880_xtal_recalc_rate(struct clk_hw *hw,
++					     unsigned long parent_rate)
++{
++	return 40000000;
++}
++
+ static unsigned long rt5350_xtal_recalc_rate(struct clk_hw *hw,
+ 					     unsigned long parent_rate)
+ {
+@@ -682,10 +684,12 @@ static unsigned long mt76x8_cpu_recalc_r
+ }
+ 
+ static struct mtmips_clk rt2880_clks_base[] = {
++	{ CLK_BASE("xtal", NULL, rt2880_xtal_recalc_rate) },
+ 	{ CLK_BASE("cpu", "xtal", rt2880_cpu_recalc_rate) }
+ };
+ 
+ static struct mtmips_clk rt305x_clks_base[] = {
++	{ CLK_BASE("xtal", NULL, rt2880_xtal_recalc_rate) },
+ 	{ CLK_BASE("cpu", "xtal", rt305x_cpu_recalc_rate) }
+ };
+ 
+@@ -695,6 +699,7 @@ static struct mtmips_clk rt3352_clks_bas
+ };
+ 
+ static struct mtmips_clk rt3883_clks_base[] = {
++	{ CLK_BASE("xtal", NULL, rt2880_xtal_recalc_rate) },
+ 	{ CLK_BASE("cpu", "xtal", rt3883_cpu_recalc_rate) },
+ 	{ CLK_BASE("bus", "cpu", rt3883_bus_recalc_rate) }
+ };
+@@ -751,8 +756,8 @@ err_clk_unreg:
+ static const struct mtmips_clk_data rt2880_clk_data = {
+ 	.clk_base = rt2880_clks_base,
+ 	.num_clk_base = ARRAY_SIZE(rt2880_clks_base),
+-	.clk_fixed = rt305x_fixed_clocks,
+-	.num_clk_fixed = ARRAY_SIZE(rt305x_fixed_clocks),
++	.clk_fixed = NULL,
++	.num_clk_fixed = 0,
+ 	.clk_factor = rt2880_factor_clocks,
+ 	.num_clk_factor = ARRAY_SIZE(rt2880_factor_clocks),
+ 	.clk_periph = rt2880_pherip_clks,
+@@ -762,8 +767,8 @@ static const struct mtmips_clk_data rt28
+ static const struct mtmips_clk_data rt305x_clk_data = {
+ 	.clk_base = rt305x_clks_base,
+ 	.num_clk_base = ARRAY_SIZE(rt305x_clks_base),
+-	.clk_fixed = rt305x_fixed_clocks,
+-	.num_clk_fixed = ARRAY_SIZE(rt305x_fixed_clocks),
++	.clk_fixed = NULL,
++	.num_clk_fixed = 0,
+ 	.clk_factor = rt305x_factor_clocks,
+ 	.num_clk_factor = ARRAY_SIZE(rt305x_factor_clocks),
+ 	.clk_periph = rt305x_pherip_clks,
diff --git a/target/linux/ramips/patches-6.6/002-03-v6.13-clk-ralink-mtmips-add-mmc-related-clocks-for-SoCs-MT.patch b/target/linux/ramips/patches-6.6/002-03-v6.13-clk-ralink-mtmips-add-mmc-related-clocks-for-SoCs-MT.patch
new file mode 100644
index 0000000000..b90a19b7ca
--- /dev/null
+++ b/target/linux/ramips/patches-6.6/002-03-v6.13-clk-ralink-mtmips-add-mmc-related-clocks-for-SoCs-MT.patch
@@ -0,0 +1,101 @@
+From 198675bbc03d437fb80a35d781ad13d622d0ff68 Mon Sep 17 00:00:00 2001
+From: Sergio Paracuellos <sergio.paracuellos at gmail.com>
+Date: Tue, 10 Sep 2024 06:40:24 +0200
+Subject: [PATCH 3/3] clk: ralink: mtmips: add mmc related clocks for SoCs
+ MT7620, MT7628 and MT7688
+
+Original architecture clock code from where this driver was derived did not
+include nothing related to mmc clocks. OpenWRT people started to use mtk-sd
+upstream driver recently and they were forced to use a dts 'fixed-clock'
+node with 48 MHz clock:
+- https://github.com/openwrt/openwrt/pull/15896
+The proper thing to do to avoid that is to add the mmc related clocks to the
+driver to avoid a dts with fixed clocks nodes. The minimal documentation in
+the mt7620 programming guide says that there is a BBP_PLL clock of 480 MHz
+derived from the 40 MHz XTAL and from there a clock divider by ten produces
+the desired SDHC clock of 48 MHz for the mmc. Hence add a fixed clock 'bbppll'
+and factor clock 'sdhc' ten divider child to properly set the 'mmc' peripheral
+clock with the desired 48 Mhz rate.
+
+Signed-off-by: Sergio Paracuellos <sergio.paracuellos at gmail.com>
+Link: https://lore.kernel.org/r/20240910044024.120009-4-sergio.paracuellos at gmail.com
+Signed-off-by: Stephen Boyd <sboyd at kernel.org>
+---
+ drivers/clk/ralink/clk-mtmips.c | 30 +++++++++++++++++++++++-------
+ 1 file changed, 23 insertions(+), 7 deletions(-)
+
+--- a/drivers/clk/ralink/clk-mtmips.c
++++ b/drivers/clk/ralink/clk-mtmips.c
+@@ -207,6 +207,7 @@ static struct mtmips_clk mt7620_pherip_c
+ 	{ CLK_PERIPH("10000b00.spi", "bus") },
+ 	{ CLK_PERIPH("10000b40.spi", "bus") },
+ 	{ CLK_PERIPH("10000c00.uartlite", "periph") },
++	{ CLK_PERIPH("10130000.mmc", "sdhc") },
+ 	{ CLK_PERIPH("10180000.wmac", "xtal") }
+ };
+ 
+@@ -220,6 +221,7 @@ static struct mtmips_clk mt76x8_pherip_c
+ 	{ CLK_PERIPH("10000c00.uart0", "periph") },
+ 	{ CLK_PERIPH("10000d00.uart1", "periph") },
+ 	{ CLK_PERIPH("10000e00.uart2", "periph") },
++	{ CLK_PERIPH("10130000.mmc", "sdhc") },
+ 	{ CLK_PERIPH("10300000.wmac", "xtal") }
+ };
+ 
+@@ -272,8 +274,13 @@ static struct mtmips_clk_fixed rt3352_fi
+ 	CLK_FIXED("periph", "xtal", 40000000)
+ };
+ 
++static struct mtmips_clk_fixed mt7620_fixed_clocks[] = {
++	CLK_FIXED("bbppll", "xtal", 480000000)
++};
++
+ static struct mtmips_clk_fixed mt76x8_fixed_clocks[] = {
+-	CLK_FIXED("pcmi2s", "xtal", 480000000),
++	CLK_FIXED("bbppll", "xtal", 480000000),
++	CLK_FIXED("pcmi2s", "bbppll", 480000000),
+ 	CLK_FIXED("periph", "xtal", 40000000)
+ };
+ 
+@@ -328,6 +335,15 @@ static struct mtmips_clk_factor rt305x_f
+ 	CLK_FACTOR("bus", "cpu", 1, 3)
+ };
+ 
++static struct mtmips_clk_factor mt7620_factor_clocks[] = {
++	CLK_FACTOR("sdhc", "bbppll", 1, 10)
++};
++
++static struct mtmips_clk_factor mt76x8_factor_clocks[] = {
++	CLK_FACTOR("bus", "cpu", 1, 3),
++	CLK_FACTOR("sdhc", "bbppll", 1, 10)
++};
++
+ static int mtmips_register_factor_clocks(struct clk_hw_onecell_data *clk_data,
+ 					 struct mtmips_clk_priv *priv)
+ {
+@@ -811,10 +827,10 @@ static const struct mtmips_clk_data rt53
+ static const struct mtmips_clk_data mt7620_clk_data = {
+ 	.clk_base = mt7620_clks_base,
+ 	.num_clk_base = ARRAY_SIZE(mt7620_clks_base),
+-	.clk_fixed = NULL,
+-	.num_clk_fixed = 0,
+-	.clk_factor = NULL,
+-	.num_clk_factor = 0,
++	.clk_fixed = mt7620_fixed_clocks,
++	.num_clk_fixed = ARRAY_SIZE(mt7620_fixed_clocks),
++	.clk_factor = mt7620_factor_clocks,
++	.num_clk_factor = ARRAY_SIZE(mt7620_factor_clocks),
+ 	.clk_periph = mt7620_pherip_clks,
+ 	.num_clk_periph = ARRAY_SIZE(mt7620_pherip_clks),
+ };
+@@ -824,8 +840,8 @@ static const struct mtmips_clk_data mt76
+ 	.num_clk_base = ARRAY_SIZE(mt76x8_clks_base),
+ 	.clk_fixed = mt76x8_fixed_clocks,
+ 	.num_clk_fixed = ARRAY_SIZE(mt76x8_fixed_clocks),
+-	.clk_factor = rt305x_factor_clocks,
+-	.num_clk_factor = ARRAY_SIZE(rt305x_factor_clocks),
++	.clk_factor = mt76x8_factor_clocks,
++	.num_clk_factor = ARRAY_SIZE(mt76x8_factor_clocks),
+ 	.clk_periph = mt76x8_pherip_clks,
+ 	.num_clk_periph = ARRAY_SIZE(mt76x8_pherip_clks),
+ };



From lede-commits at lists.infradead.org  Sat Nov 23 06:11:23 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 09:11:23 -0500
Subject: [openwrt/openwrt]  x86: add all ports to the Gowin 1U default network
 config
In-Reply-To: <173237108382.1385445.3899384499564580586@git-01.infra.openwrt.org>
References: <173237108382.1385445.3899384499564580586@git-01.infra.openwrt.org>
Message-ID: <mailman.4609.1732371087.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/75af6a0d736a696ca726cb44d813791858c29f0c

commit 75af6a0d736a696ca726cb44d813791858c29f0c
Author: Til Kaiser <mail at tk154.de>
AuthorDate: Fri Nov 15 16:49:14 2024 +0100

    x86: add all ports to the Gowin 1U default network config
    
    Commit e52c57bb1b30375e0bcc5523db76a672a4a8b4a4 renamed all
    network ports to match the faceplate of the Gowin 1U Rack
    Mount Server and added the br-lan bridge for the eth* ports.
    
    This commit adds the PoE port to the br-lan bridge and a
    br-wan bridge for the two SFP ports so that all ports are
    part of the default network configuration.
    
    Signed-off-by: Til Kaiser <mail at tk154.de>
    Link: https://github.com/openwrt/openwrt/pull/16965
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/x86/base-files/etc/board.d/02_network | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/linux/x86/base-files/etc/board.d/02_network b/target/linux/x86/base-files/etc/board.d/02_network
index dc744db05d..b3d1855764 100644
--- a/target/linux/x86/base-files/etc/board.d/02_network
+++ b/target/linux/x86/base-files/etc/board.d/02_network
@@ -58,7 +58,7 @@ gowin-solution-co-ltd-gw-mb-u01)
 		ucidef_set_network_device_path_port "sfp2" "$sfp_device/$sfp_port" "0"
 	fi
 
-	ucidef_set_interface_lan "eth1 eth2 eth3 eth4"
+	ucidef_set_interfaces_lan_wan "eth1 eth2 eth3 eth4 poe" "sfp1 sfp2"
 	;;
 pc-engines-apu1|pc-engines-apu2|pc-engines-apu3)
 	ucidef_set_interfaces_lan_wan "eth1 eth2" "eth0"



From lede-commits at lists.infradead.org  Sat Nov 23 06:43:02 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 09:43:02 -0500
Subject: [openwrt/openwrt]  mediatek: change Routerich AX3000 ubi size All new
 routers are shipped with ubi size 112MB since early September. Bootloader
 update required (ask vendor , see wiki)
In-Reply-To: <173237298236.1499864.14530816273375717269@git-01.infra.openwrt.org>
References: <173237298236.1499864.14530816273375717269@git-01.infra.openwrt.org>
Message-ID: <mailman.4612.1732372987.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/d8a9669093359d60f4d6f183b58a22f24cf01731

commit d8a9669093359d60f4d6f183b58a22f24cf01731
Author: Romanov Danila <pervokur at gmail.com>
AuthorDate: Mon Oct 21 21:34:34 2024 +0300

    mediatek: change Routerich AX3000 ubi size
    All new routers are shipped with ubi size 112MB since early September.
    Bootloader update required (ask vendor , see wiki)
    
    These partitions weren't used:
    firmware_backup
    zrsave
    config2
    
    Signed-off-by: Romanov Danila <pervokur at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16686
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 .../linux/mediatek/dts/mt7981b-routerich-ax3000.dts  | 20 +-------------------
 .../filogic/base-files/etc/board.d/05_compat-version |  3 +++
 target/linux/mediatek/image/filogic.mk               |  5 +++++
 3 files changed, 9 insertions(+), 19 deletions(-)

diff --git a/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts b/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts
index dfe44843b9..aa6a15ee1d 100644
--- a/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts
+++ b/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts
@@ -226,25 +226,7 @@
 
 			partition at 580000 {
 				label = "ubi";
-				reg = <0x580000 0x4000000>;
-			};
-
-			partition at 4580000 {
-				label = "firmware_backup";
-				reg = <0x4580000 0x2000000>;
-				read-only;
-			};
-
-			partition at 6580000 {
-				label = "zrsave";
-				reg = <0x6580000 0x100000>;
-				read-only;
-			};
-
-			partition at 6680000 {
-				label = "config2";
-				reg = <0x6680000 0x100000>;
-				read-only;
+				reg = <0x580000 0x7000000>;
 			};
 		};
 	};
diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/05_compat-version b/target/linux/mediatek/filogic/base-files/etc/board.d/05_compat-version
index d0cfd8f0a1..9b704b983c 100644
--- a/target/linux/mediatek/filogic/base-files/etc/board.d/05_compat-version
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/05_compat-version
@@ -8,6 +8,9 @@ case "$(board_name)" in
 	bananapi,bpi-r3)
 		ucidef_set_compat_version "1.2"
 		;;
+	routerich,ax3000)
+		ucidef_set_compat_version "1.1"
+		;;
 esac
 
 board_config_flush
diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index 739fd54308..cb5c102b1e 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -1173,6 +1173,11 @@ define Device/routerich_ax3000
   DEVICE_PACKAGES := kmod-mt7915e kmod-mt7981-firmware mt7981-wo-firmware kmod-usb3
   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
   SUPPORTED_DEVICES += mediatek,mt7981-spim-snand-rfb
+  DEVICE_COMPAT_VERSION := 1.1
+  DEVICE_COMPAT_MESSAGE := Partition layout has been changed. Bootloader MUST be \
+	upgraded to avoid data corruption and getting bricked. \
+	Please, contact your vendor and follow the guide: \
+	https://openwrt.org/toh/routerich/ax3000#web_ui_method
 endef
 TARGET_DEVICES += routerich_ax3000
 



From lede-commits at lists.infradead.org  Sat Nov 23 07:20:53 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 10:20:53 -0500
Subject: [openwrt/openwrt]  arm-trusted-firmware-stm32: add ATF for stm32
 boards
In-Reply-To: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
References: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
Message-ID: <mailman.4619.1732375254.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/08dcb73c8d05aa774957422731bfed1b322648d7

commit 08dcb73c8d05aa774957422731bfed1b322648d7
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Thu Sep 26 16:29:41 2024 +0200

    arm-trusted-firmware-stm32: add ATF for stm32 boards
    
    Add ATF for stm32 boards, with the first being STM32MP135F-DK.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/boot/arm-trusted-firmware-stm32/Makefile | 63 ++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/package/boot/arm-trusted-firmware-stm32/Makefile b/package/boot/arm-trusted-firmware-stm32/Makefile
new file mode 100644
index 0000000000..75a92f15af
--- /dev/null
+++ b/package/boot/arm-trusted-firmware-stm32/Makefile
@@ -0,0 +1,63 @@
+#
+# Copyright (C) 2024 Bootlin
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_VERSION:=2.10
+PKG_RELEASE:=1
+
+PKG_HASH:=88215a62291b9ba87da8e50b077741103cdc08fb6c9e1ebd34dfaace746d3201
+PKG_MAINTAINER:=Thomas Richard <thomas.richard at bootlin.com>
+
+include $(INCLUDE_DIR)/kernel.mk
+include $(INCLUDE_DIR)/trusted-firmware-a.mk
+include $(INCLUDE_DIR)/package.mk
+
+define Trusted-Firmware-A/Default
+  BUILD_TARGET:=stm32
+  BUILD_DEVICES:=$(1)
+  DEPENDS:=+u-boot-$(1) +optee-os-$(1)
+endef
+
+define Trusted-Firmware-A/stm32mp1
+  BUILD_SUBTARGET:=stm32mp1
+  PLAT:=stm32mp1
+  MAKE_ARGS += BL32_EXTRA2=$(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-tee-pageable_v2.bin \
+	       STM32MP_USB_PROGRAMMER=1 \
+	       STM32MP1_OPTEE_IN_SYSRAM=1 \
+	       ARM_ARCH_MAJOR=7
+endef
+
+define Trusted-Firmware-A/stm32mp135f-dk
+  $(call Trusted-Firmware-A/stm32mp1)
+  NAME:=STM32MP135F-DK
+  DTB_FILE_NAME=stm32mp135f-dk.dtb
+endef
+
+TFA_TARGETS := stm32mp135f-dk
+
+TFA_MAKE_FLAGS += \
+		ARCH=aarch32 AARCH32_SP=optee \
+		BL32=$(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-tee-header_v2.bin \
+		BL32_EXTRA1=$(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-tee-pager_v2.bin \
+		BL33=$(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-u-boot.bin \
+		BL33_CFG=$(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-u-boot.dtb \
+		DTB_FILE_NAME=$(DTB_FILE_NAME) \
+		STM32MP_SDMMC=1 \
+		TARGET_BOARD="" \
+		$(MAKE_ARGS) \
+		all fip
+
+define Package/trusted-firmware-a/install
+	$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
+	$(CP) $(PKG_BUILD_DIR)/build/$(PLAT)/release/tf-a-$(BUILD_VARIANT).stm32 \
+		$(STAGING_DIR_IMAGE)/tf-a-$(BUILD_VARIANT).stm32
+	$(CP) $(PKG_BUILD_DIR)/build/$(PLAT)/release/fip.bin \
+		$(STAGING_DIR_IMAGE)/fip-$(BUILD_VARIANT).bin
+endef
+
+$(eval $(call BuildPackage/Trusted-Firmware-A))



From lede-commits at lists.infradead.org  Sat Nov 23 07:20:51 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 10:20:51 -0500
Subject: [openwrt/openwrt]  optee-os-stm32: add OP-TEE for stm32 boards
In-Reply-To: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
References: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
Message-ID: <mailman.4620.1732375255.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/fae25d4001bcbae0bb1ce60b676bd421e97d78fc

commit fae25d4001bcbae0bb1ce60b676bd421e97d78fc
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Thu Sep 26 16:19:35 2024 +0200

    optee-os-stm32: add OP-TEE for stm32 boards
    
    Add OP-TEE for stm32 boards, with the first being STM32MP135F-DK.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/boot/optee-os-stm32/Makefile | 49 ++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/package/boot/optee-os-stm32/Makefile b/package/boot/optee-os-stm32/Makefile
new file mode 100644
index 0000000000..9e681127e6
--- /dev/null
+++ b/package/boot/optee-os-stm32/Makefile
@@ -0,0 +1,49 @@
+#
+# Copyright (C) 2024 Bootlin
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_VERSION:=4.3.0
+PKG_RELEASE:=1
+
+PKG_HASH:=390b271905c828d6def9fa6a77bbaa425f3b434d733c8eb18f582ccbc6896096
+PKG_MAINTAINER:=Thomas Richard <thomas.richard at bootlin.com>
+
+OPTEE_USE_INTREE_DTC:=1
+
+include $(INCLUDE_DIR)/kernel.mk
+include $(INCLUDE_DIR)/optee-os.mk
+include $(INCLUDE_DIR)/package.mk
+
+define Optee-os/Default
+  BUILD_TARGET:=stm32
+endef
+
+define Optee-os/stm32mp1
+  BUILD_SUBTARGET:=stm32mp1
+  PLAT:=stm32mp1
+endef
+
+define Optee-os/stm32mp135f-dk
+  $(call Optee-os/stm32mp1)
+  NAME:=STM32MP135F-DK
+  PLAT_FLAVOR:=135F_DK
+endef
+
+OPTEE_TARGETS := stm32mp135f-dk
+
+define Package/optee-os/install/default
+endef
+
+define Build/InstallDev
+	$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
+	$(foreach img,$(OPTEE_IMAGE), \
+		$(CP) $(PKG_BUILD_DIR)/out/arm-plat-$(PLAT)/core/$(img) $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-$(img); \
+	)
+endef
+
+$(eval $(call BuildPackage/Optee-os))



From lede-commits at lists.infradead.org  Sat Nov 23 07:20:52 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 10:20:52 -0500
Subject: [openwrt/openwrt]  uboot-stm32: add U-Boot for stm32 boards
In-Reply-To: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
References: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
Message-ID: <mailman.4621.1732375255.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/ac79ad0757764028a138d0138c8d9aa74420f9ed

commit ac79ad0757764028a138d0138c8d9aa74420f9ed
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Thu Sep 26 16:24:26 2024 +0200

    uboot-stm32: add U-Boot for stm32 boards
    
    Add U-Boot for stm32 boards, with the first being STM32MP135F-DK.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/boot/uboot-stm32/Makefile | 51 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/package/boot/uboot-stm32/Makefile b/package/boot/uboot-stm32/Makefile
new file mode 100644
index 0000000000..58754aedd5
--- /dev/null
+++ b/package/boot/uboot-stm32/Makefile
@@ -0,0 +1,51 @@
+#
+# Copyright (C) 2024 Bootlin
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_VERSION:=2024.07
+PKG_RELEASE:=1
+
+PKG_HASH:=f591da9ab90ef3d6b3d173766d0ddff90c4ed7330680897486117df390d83c8f
+PKG_MAINTAINER:=Thomas Richard <thomas.richard at bootlin.com>
+
+UBOOT_USE_INTREE_DTC:=1
+
+include $(INCLUDE_DIR)/u-boot.mk
+include $(INCLUDE_DIR)/package.mk
+
+define U-Boot/Default
+  BUILD_TARGET:=stm32
+  UBOOT_IMAGE:=u-boot.bin u-boot.dtb
+endef
+
+define U-Boot/stm32mp13
+  BUILD_SUBTARGET:=stm32mp1
+  UBOOT_CONFIG:=stm32mp13
+endef
+
+define U-Boot/stm32mp135f-dk
+  $(call U-Boot/stm32mp13)
+  NAME:=STM32MP135F-DK
+  DEVICE_TREE:=stm32mp135f-dk
+endef
+
+UBOOT_TARGETS := stm32mp135f-dk
+
+UBOOT_MAKE_FLAGS += DEVICE_TREE=$(DEVICE_TREE)
+
+define Build/InstallDev
+	$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
+	$(foreach img,$(UBOOT_IMAGE), \
+		$(CP) $(PKG_BUILD_DIR)/$(img) $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-$(img); \
+	)
+endef
+
+define Package/u-boot/install/default
+endef
+
+$(eval $(call BuildPackage/U-Boot))



From lede-commits at lists.infradead.org  Sat Nov 23 07:20:57 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 10:20:57 -0500
Subject: [openwrt/openwrt]  kernel: package industrialio-hw-consumer driver
In-Reply-To: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
References: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
Message-ID: <mailman.4622.1732375255.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/ff96bd84ce0bae633007cf0de82d69796cf3508a

commit ff96bd84ce0bae633007cf0de82d69796cf3508a
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Fri Oct 25 15:20:38 2024 +0200

    kernel: package industrialio-hw-consumer driver
    
    It is needed for the stm32/stm32mp1 subtarget.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/kernel/linux/modules/iio.mk | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/package/kernel/linux/modules/iio.mk b/package/kernel/linux/modules/iio.mk
index e46544b79c..b9bcaad5b2 100644
--- a/package/kernel/linux/modules/iio.mk
+++ b/package/kernel/linux/modules/iio.mk
@@ -46,6 +46,23 @@ endef
 $(eval $(call KernelPackage,iio-kfifo-buf))
 
 
+define KernelPackage/industrialio-hw-consumer
+  TITLE:=Provides a bonding way to an other device in hardware
+  KCONFIG:=CONFIG_IIO_BUFFER_HW_CONSUMER
+  FILES:=$(LINUX_DIR)/drivers/iio/buffer/industrialio-hw-consumer.ko
+  AUTOLOAD:=$(call AutoLoad,55,industrialio-hw-consumer)
+  $(call AddDepends/iio,+kmod-iio-kfifo-buf)
+endef
+
+define KernelPackage/industrialio-hw-consumer/description
+ Provides a way to bonding when an IIO device has a direct connection
+ to another device in hardware. In this case buffers for data transfers
+ are handled by hardware.
+endef
+
+$(eval $(call KernelPackage,industrialio-hw-consumer))
+
+
 define KernelPackage/industrialio-triggered-buffer
   TITLE:=Provides helper functions for setting up triggered buffers.
   DEPENDS:=+kmod-iio-kfifo-buf



From lede-commits at lists.infradead.org  Sat Nov 23 07:20:58 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 10:20:58 -0500
Subject: [openwrt/openwrt]  kernel: package snd-soc-dmic driver
In-Reply-To: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
References: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
Message-ID: <mailman.4623.1732375257.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/e606366a2e018e0a3b25e3dd4b3a937bb53c70e1

commit e606366a2e018e0a3b25e3dd4b3a937bb53c70e1
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Fri Oct 25 15:21:57 2024 +0200

    kernel: package snd-soc-dmic driver
    
    It is needed for the stm32/stm32mp1 subtarget.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/kernel/linux/modules/sound.mk | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/package/kernel/linux/modules/sound.mk b/package/kernel/linux/modules/sound.mk
index 623f65ac59..f3e44e01ee 100644
--- a/package/kernel/linux/modules/sound.mk
+++ b/package/kernel/linux/modules/sound.mk
@@ -314,6 +314,17 @@ endef
 $(eval $(call KernelPackage,sound-soc-spdif))
 
 
+define KernelPackage/sound-soc-dmic
+  TITLE:=Generic Digital Microphone CODEC
+  KCONFIG:=CONFIG_SND_SOC_DMIC
+  FILES:=$(LINUX_DIR)/sound/soc/codecs/snd-soc-dmic.ko
+  AUTOLOAD:=$(call AutoProbe,snd-soc-dmic)
+  $(call AddDepends/sound,+kmod-sound-soc-core)
+endef
+
+$(eval $(call KernelPackage,sound-soc-dmic))
+
+
 define KernelPackage/pcspkr
   DEPENDS:=@TARGET_x86 +kmod-input-core
   TITLE:=PC speaker support



From lede-commits at lists.infradead.org  Sat Nov 23 07:20:50 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 10:20:50 -0500
Subject: [openwrt/openwrt]  build: add generic build template for optee-os
 packages
In-Reply-To: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
References: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
Message-ID: <mailman.4624.1732375259.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/dedb90e8f82a179ad67b6eac3b6f8862b9183077

commit dedb90e8f82a179ad67b6eac3b6f8862b9183077
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Thu Sep 26 16:10:26 2024 +0200

    build: add generic build template for optee-os packages
    
    Add a generic template include/optee-os.mk to build OP-TEE.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 include/optee-os.mk | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 113 insertions(+)

diff --git a/include/optee-os.mk b/include/optee-os.mk
new file mode 100644
index 0000000000..396d2406bf
--- /dev/null
+++ b/include/optee-os.mk
@@ -0,0 +1,113 @@
+include $(INCLUDE_DIR)/prereq.mk
+
+PKG_NAME ?= optee-os
+
+ifndef PKG_SOURCE_PROTO
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL_FILE:=$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL = https://github.com/OP-TEE/optee_os/archive/refs/tags/
+TAR_OPTIONS+= --transform 's/optee_os/$(PKG_NAME)/'
+endif
+
+PKG_BUILD_DIR = $(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+
+PKG_TARGETS := bin
+PKG_FLAGS:=nonshared
+
+PKG_LICENSE:=BSD 2-Clause
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_BUILD_PARALLEL ?= 1
+
+$(eval $(call TestHostCommand,python3-cryptography, \
+  Please install the Python3 cryptography module, \
+  $(STAGING_DIR_HOST)/bin/python3 -c 'import cryptography'))
+
+$(eval $(call TestHostCommand,python3-pyelftools, \
+    Please install the Python3 pyelftools module, \
+    $(STAGING_DIR_HOST)/bin/python3 -c 'import elftools'))
+
+export GCC_HONOUR_COPTS=s
+
+define Package/optee-os/install/default
+	$(CP) $(patsubst %,$(PKG_BUILD_DIR)/out/arm-plat-$(PLAT)/core/%,$(OPTEE_IMAGE)) $(1)/
+endef
+
+Package/optee-os/install = $(Package/optee-os/install/default)
+
+define Optee-os/Init
+  BUILD_TARGET:=
+  BUILD_SUBTARGET:=
+  BUILD_DEVICES:=
+  NAME:=
+  DEPENDS:=
+  HIDDEN:=
+  DEFAULT:=
+  VARIANT:=$(1)
+  PLAT:=$(1)
+  PLAT_FLAVOR:=
+  OPTEE_IMAGE:=tee-header_v2.bin tee-pager_v2.bin tee-pageable_v2.bin
+endef
+
+TARGET_DEP = TARGET_$(BUILD_TARGET)$(if $(BUILD_SUBTARGET),_$(BUILD_SUBTARGET))
+
+define Build/Optee-os/Target
+  $(eval $(call Optee-os/Init,$(1)))
+  $(eval $(call Optee-os/Default,$(1)))
+  $(eval $(call Optee-os/$(1),$(1)))
+
+  define Package/optee-os-$(1)
+    SECTION:=boot
+    CATEGORY:=Boot Loaders
+    TITLE:=OPTEE-OS for $(NAME)
+    VARIANT:=$(VARIANT)
+    DEPENDS:=@!IN_SDK $(DEPENDS)
+    HIDDEN:=$(HIDDEN)
+    ifneq ($(BUILD_TARGET),)
+      DEPENDS += @$(TARGET_DEP)
+      ifneq ($(BUILD_DEVICES),)
+        DEFAULT := y if ($(TARGET_DEP)_Default \
+		$(patsubst %,|| $(TARGET_DEP)_DEVICE_%,$(BUILD_DEVICES)) \
+		$(patsubst %,|| $(patsubst TARGET_%,TARGET_DEVICE_%,$(TARGET_DEP))_DEVICE_%,$(BUILD_DEVICES)))
+      endif
+    endif
+    $(if $(DEFAULT),DEFAULT:=$(DEFAULT))
+    URL:=https://optee.readthedocs.io
+  endef
+
+  define Package/optee-os-$(1)/install
+	$$(Package/optee-os/install)
+  endef
+endef
+
+define Build/Configure/Optee-os
+endef
+
+define Build/Compile/Optee-os
+	+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
+		PATH=$(LINUX_DIR)/scripts/dtc/:$(PATH) \
+		CROSS_COMPILE=$(TARGET_CROSS) \
+		CROSS_COMPILE_core="$(TARGET_CROSS)" \
+		CROSS_COMPILE_ta_arm64="$(TARGET_CROSS)" \
+		CROSS_COMPILE_ta_arm32="$(TARGET_CROSS)" \
+		$(if $(CONFIG_ARCH_64BIT), CFG_ARM64_core=y CFG_USER_TA_TARGETS=ta_arm64, CFG_ARM32_core=y) \
+		PLATFORM="$(PLAT)" \
+		PLATFORM_FLAVOR="$(call qstrip,$(PLAT_FLAVOR))" \
+		$(OPTEE_MAKE_FLAGS)
+endef
+
+define BuildPackage/Optee-os/Defaults
+  Build/Configure/Default = $$$$(Build/Configure/Optee-os)
+  Build/Compile/Default = $$$$(Build/Compile/Optee-os)
+endef
+
+define BuildPackage/Optee-os
+  $(eval $(call BuildPackage/Optee-os/Defaults))
+  $(foreach type,$(if $(DUMP),$(OPTEE_TARGETS),$(BUILD_VARIANT)), \
+    $(eval $(call Build/Optee-os/Target,$(type)))
+  )
+  $(eval $(call Build/DefaultTargets))
+  $(foreach type,$(if $(DUMP),$(OPTEE_TARGETS),$(BUILD_VARIANT)), \
+    $(call BuildPackage,optee-os-$(type))
+  )
+endef



From lede-commits at lists.infradead.org  Sat Nov 23 07:20:59 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 10:20:59 -0500
Subject: [openwrt/openwrt]  kernel: unset CONFIG_DEVFREQ_THERMAL in
 kmod-thermal package
In-Reply-To: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
References: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
Message-ID: <mailman.4627.1732375259.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/6b9df468f05fefa21a8cbce2fdb2e59692b4d246

commit 6b9df468f05fefa21a8cbce2fdb2e59692b4d246
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Fri Oct 25 15:23:26 2024 +0200

    kernel: unset CONFIG_DEVFREQ_THERMAL in kmod-thermal package
    
    It is needed for the stm32/stm32mp1 subtarget.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/kernel/linux/modules/other.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/kernel/linux/modules/other.mk b/package/kernel/linux/modules/other.mk
index bbebcf37ec..7b64985fd6 100644
--- a/package/kernel/linux/modules/other.mk
+++ b/package/kernel/linux/modules/other.mk
@@ -961,6 +961,7 @@ define KernelPackage/thermal
 	CONFIG_THERMAL=y \
 	CONFIG_THERMAL_OF=y \
 	CONFIG_CPU_THERMAL=y \
+	CONFIG_DEVFREQ_THERMAL=n \
 	CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y \
 	CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE=n \
 	CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE=n \



From lede-commits at lists.infradead.org  Sat Nov 23 07:20:56 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 10:20:56 -0500
Subject: [openwrt/openwrt]  murata-nvram: add new package
In-Reply-To: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
References: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
Message-ID: <mailman.4628.1732375259.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/be937952fdf8f78fb45ea001258074ddb45e0891

commit be937952fdf8f78fb45ea001258074ddb45e0891
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Thu Oct 10 17:21:16 2024 +0200

    murata-nvram: add new package
    
    This package contains nvram files for Murata's Wi-Fi/Bluetooth modules.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/firmware/murata-nvram/Makefile             | 48 ++++++++++++++++++++++
 .../files/cyfmac43430-sdio.1DX.stm32.txt           | 47 +++++++++++++++++++++
 2 files changed, 95 insertions(+)

diff --git a/package/firmware/murata-nvram/Makefile b/package/firmware/murata-nvram/Makefile
new file mode 100644
index 0000000000..daf382e3bc
--- /dev/null
+++ b/package/firmware/murata-nvram/Makefile
@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2024 Bootlin
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=murata-nvram
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_DATE:=2024-09-28
+PKG_SOURCE_URL:=https://github.com/murata-wireless/cyw-fmac-nvram.git
+PKG_MIRROR_HASH:=e2fc6f1f9898edfd67f5495e615882700f03b42a75efa2e3f4e2d524aed0efb8
+PKG_SOURCE_VERSION:=255819aab07572d87576a13329ef9d4c654167aa
+
+PKG_MAINTAINER:=Thomas Richard <thomas.richard at bootlin.com>
+PKG_LICENSE_FILES:=LICENCE.cypress
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/murata-nvram-default
+  SECTION:=firmware
+  CATEGORY:=Firmware
+  URL:=https://community.murata.com/
+endef
+
+define Build/Compile
+endef
+
+define Package/murata-nvram-43430-sdio
+  $(Package/murata-nvram-default)
+  TITLE:=BCM43430 SDIO NVRAM
+  CONFLICTS:=brcmfmac-nvram-43430-sdio
+endef
+
+define Package/murata-nvram-43430-sdio/install
+	$(INSTALL_DIR) $(1)/lib/firmware/brcm
+	$(INSTALL_DATA)	./files/cyfmac43430-sdio.1DX.stm32.txt \
+		$(1)/lib/firmware/brcm/
+	$(LN) \
+		cyfmac43430-sdio.1DX.stm32.txt \
+		$(1)/lib/firmware/brcm/brcmfmac43430-sdio.st,stm32mp135f-dk.txt
+endef
+
+$(eval $(call BuildPackage,murata-nvram-43430-sdio))
diff --git a/package/firmware/murata-nvram/files/cyfmac43430-sdio.1DX.stm32.txt b/package/firmware/murata-nvram/files/cyfmac43430-sdio.1DX.stm32.txt
new file mode 100755
index 0000000000..f06abf0380
--- /dev/null
+++ b/package/firmware/murata-nvram/files/cyfmac43430-sdio.1DX.stm32.txt
@@ -0,0 +1,47 @@
+# This NVRAM file is based on cyfmac43430-sdio.1DX.txt, except that the muxenab
+# parameter was unset to enable IB IRQ (OOB IRQ is not stable on STM32
+# platforms).
+# 2.4 GHz, 20 MHz BW mode
+manfid=0x2d0
+prodid=0x0726
+vendid=0x14e4
+devid=0x43e2
+boardtype=0x0726
+boardrev=0x1202
+boardnum=22
+macaddr=00:90:4c:c5:12:38
+sromrev=11
+boardflags=0x00404201
+boardflags3=0x08000000
+xtalfreq=37400
+nocrc=1
+ag0=0
+aa2g=1
+ccode=ALL
+#pa0itssit=0x20
+extpagain2g=0
+pa2ga0=-145,6667,-751
+AvVmid_c0=0x0,0xc8
+cckpwroffset0=2
+maxp2ga0=74
+#txpwrbckof=6
+cckbw202gpo=0
+legofdmbw202gpo=0x88888888
+mcsbw202gpo=0xaaaaaaaa
+propbw202gpo=0xdd
+ofdmdigfilttype=18
+ofdmdigfilttypebe=18
+papdmode=1
+papdvalidtest=1
+pacalidx2g=48
+papdepsoffset=-22
+papdendidx=58
+il0macaddr=00:90:4c:c5:12:38
+wl0id=0x431b
+# muxenab defined to enable OOB IRQ. Level sensitive interrupt via WL_HOST_WAKE line. 
+# muxenab=0x10
+#BT COEX deferral limit setting
+#btc_params 8 45000
+#btc_params 10 20000
+#spurconfig=0x3
+# End of NVRAM - do not remove this line #



From lede-commits at lists.infradead.org  Sat Nov 23 07:20:54 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 10:20:54 -0500
Subject: [openwrt/openwrt]  mac80211: enable CONFIG_BRCMFMAC_SDIO for stm32
In-Reply-To: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
References: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
Message-ID: <mailman.4629.1732375259.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/456e0aad97413816aee41e68b3d3cfdfadc2fd43

commit 456e0aad97413816aee41e68b3d3cfdfadc2fd43
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Tue Sep 24 18:06:28 2024 +0200

    mac80211: enable CONFIG_BRCMFMAC_SDIO for stm32
    
    All stm32 devices use BCM43430 Wi-Fi interface in SDIO mode.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/kernel/mac80211/broadcom.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/kernel/mac80211/broadcom.mk b/package/kernel/mac80211/broadcom.mk
index a6f42cd19a..444d705ab3 100644
--- a/package/kernel/mac80211/broadcom.mk
+++ b/package/kernel/mac80211/broadcom.mk
@@ -437,6 +437,7 @@ define KernelPackage/brcmfmac/config
 		default y if TARGET_starfive
 		default y if TARGET_rockchip
 		default y if TARGET_sunxi
+		default y if TARGET_stm32
 		default n
 		help
 		  Enable support for cards attached to an SDIO bus.



From lede-commits at lists.infradead.org  Sat Nov 23 07:20:55 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 10:20:55 -0500
Subject: [openwrt/openwrt]  murata-firmware: add new package
In-Reply-To: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
References: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
Message-ID: <mailman.4630.1732375259.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/960f5f94d7cefe89abd41347124fd3f0fbb945ae

commit 960f5f94d7cefe89abd41347124fd3f0fbb945ae
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Thu Oct 10 17:19:38 2024 +0200

    murata-firmware: add new package
    
    This package contains firmwares provided by Murata.
    See https://community.murata.com/.
    
    Murata firmwares are used by wifi chip on stm32 boards.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/firmware/murata-firmware/Makefile | 57 +++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/package/firmware/murata-firmware/Makefile b/package/firmware/murata-firmware/Makefile
new file mode 100644
index 0000000000..1d9efda576
--- /dev/null
+++ b/package/firmware/murata-firmware/Makefile
@@ -0,0 +1,57 @@
+#
+# Copyright (C) 2024 Bootlin
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=murata-firmware
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_DATE:=2024-09-12
+PKG_SOURCE_URL:=https://github.com/murata-wireless/cyw-fmac-fw.git
+PKG_MIRROR_HASH:=26f8a2df800666daab183b2842e5b3d591b1e5b31769d5429f9d70527f43d152
+PKG_SOURCE_VERSION:=50ac17bb65b2342cd954d49d9bc492709d431c3c
+
+PKG_MAINTAINER:=Thomas Richard <thomas.richard at bootlin.com>
+PKG_LICENSE_FILES:=LICENCE
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/murata-firmware-default
+  SECTION:=firmware
+  CATEGORY:=Firmware
+  URL:=https://community.murata.com/
+endef
+
+define Build/Compile
+endef
+
+define Package/murata-firmware-43430-sdio
+  $(Package/murata-firmware-default)
+  TITLE:=BCM43430 FullMac SDIO firmware
+  CONFLICTS:=cypress-firmware-43430-sdio
+endef
+
+define Package/murata-firmware-43430-sdio/install
+	$(INSTALL_DIR) $(1)/lib/firmware/murata
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/cyfmac43430-sdio.bin \
+		$(1)/lib/firmware/murata/
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/cyfmac43430-sdio.1DX.clm_blob \
+		$(1)/lib/firmware/murata/
+	$(INSTALL_DIR) $(1)/lib/firmware/brcm
+	$(LN) \
+		../murata/cyfmac43430-sdio.bin \
+		$(1)/lib/firmware/brcm/brcmfmac43430-sdio.bin
+	$(LN) \
+		../murata/cyfmac43430-sdio.1DX.clm_blob \
+		$(1)/lib/firmware/brcm/brcmfmac43430-sdio.clm_blob
+endef
+
+$(eval $(call BuildPackage,murata-firmware-43430-sdio))
+



From lede-commits at lists.infradead.org  Sat Nov 23 07:21:05 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 10:21:05 -0500
Subject: [openwrt/openwrt]  stm32: add new stm32 target
In-Reply-To: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
References: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
Message-ID: <mailman.4631.1732376136.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/851e7f77e424f24cda8531330f2d82ebc942c0a4

commit 851e7f77e424f24cda8531330f2d82ebc942c0a4
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Thu Sep 26 16:55:22 2024 +0200

    stm32: add new stm32 target
    
    New stm32 target introduces support for stm32mp1 based devices.
    For now it includes an initial support of the STM32MP135F-DK device.
    The specifications bellow only list supported features.
    
    Specifications
    --------------
    
    SOC: STM32MP135FAF7
    RAM: 512 MiB
    Storage: SD Card
    Ethernet: 2x 100 Mbps
    Wireless: 2.4GHz Cypress CYW43455 (802.11b/g/n)
    LEDs: Heartbeat (Blue)
    Buttons: 1x Reset, 1x User (USER2)
    USB: 4x 2.0 Type-A
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/stm32/Makefile                        |   24 +
 .../linux/stm32/base-files/etc/board.d/02_network  |   18 +
 .../stm32/base-files/lib/preinit/79_move_config    |   15 +
 .../linux/stm32/base-files/lib/upgrade/platform.sh |  181 +++
 target/linux/stm32/image/Makefile                  |   63 ++
 target/linux/stm32/image/extlinux.conf             |    4 +
 target/linux/stm32/image/gen_stm32_sdcard_img.sh   |   35 +
 target/linux/stm32/modules.mk                      |  256 +++++
 ...dwmac-stm32-use-devm_stmmac_probe_config_.patch |   69 ++
 ...-stmmac-dwmac-stm32-refactor-clock-config.patch |  241 ++++
 ...dwmac-stm32-Separate-out-external-clock-r.patch |  125 ++
 ...dwmac-stm32-Separate-out-external-clock-s.patch |  132 +++
 ...ac-dwmac-stm32-Extract-PMCR-configuration.patch |   71 ++
 ...mac-dwmac-stm32-Clean-up-the-debug-prints.patch |   83 ++
 ...dwmac-stm32-Mask-support-for-PMCR-configu.patch |  101 ++
 ...dwmac-stm32-add-management-of-stm32mp13-f.patch |   94 ++
 ...32-add-ETZPC-as-a-system-bus-for-STM32MP1.patch | 1192 ++++++++++++++++++++
 ...32-put-ETZPC-as-an-access-controller-for-.patch |  265 +++++
 ...32-add-ethernet1-2-RMII-pins-for-STM32MP1.patch |  126 +++
 ...32-add-ethernet1-and-ethernet2-support-on.patch |  108 ++
 ...32-add-ethernet1-for-STM32MP135F-DK-board.patch |   58 +
 ...mci-stm32-add-SDIO-in-band-interrupt-mode.patch |  166 +++
 ...c-stm32-add-pinctrl-and-pinmux-interfaces.patch |  189 ++++
 ...2-add-Low-Speed-Clock-Output-LSCO-support.patch |  253 +++++
 ...32-rtc-add-pin-to-provide-LSCO-on-stm32mp.patch |   31 +
 ...32-rtc-add-LSCO-to-WLAN-BT-module-on-stm3.patch |   34 +
 ...32-add-support-of-WLAN-BT-on-stm32mp135f-.patch |   84 ++
 ...dwmac-stm32-add-support-of-phy-supply-pro.patch |  106 ++
 ...32-add-ethernet2-for-STM32MP135F-DK-board.patch |   53 +
 target/linux/stm32/stm32mp1/config-6.6             |  485 ++++++++
 target/linux/stm32/stm32mp1/target.mk              |   12 +
 31 files changed, 4674 insertions(+)

diff --git a/target/linux/stm32/Makefile b/target/linux/stm32/Makefile
new file mode 100644
index 0000000000..3020d0b2b8
--- /dev/null
+++ b/target/linux/stm32/Makefile
@@ -0,0 +1,24 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Copyright (C) 2024 Bootlin
+#
+
+include $(TOPDIR)/rules.mk
+
+BOARD:=stm32
+BOARDNAME:=STMicroelectronics STM32
+FEATURES:=boot-part emmc ext4 gpio rtc usb
+SUBTARGETS:=stm32mp1
+CPU_TYPE:=
+
+KERNEL_PATCHVER:=6.6
+
+include $(INCLUDE_DIR)/target.mk
+
+DEFAULT_PACKAGES += blockdev kmod-gpio-button-hotplug
+
+define Target/Description
+	Build firmware image for STM32 devices
+endef
+
+$(eval $(call BuildTarget))
diff --git a/target/linux/stm32/base-files/etc/board.d/02_network b/target/linux/stm32/base-files/etc/board.d/02_network
new file mode 100644
index 0000000000..a96fada9a4
--- /dev/null
+++ b/target/linux/stm32/base-files/etc/board.d/02_network
@@ -0,0 +1,18 @@
+
+. /lib/functions/uci-defaults.sh
+. /lib/functions.sh
+. /lib/functions/system.sh
+
+board_config_update
+
+board=$(board_name)
+
+case "$board" in
+st,stm32mp135f-dk)
+	ucidef_set_interfaces_lan_wan "eth0" "eth1"
+	;;
+esac
+
+board_config_flush
+
+exit 0
diff --git a/target/linux/stm32/base-files/lib/preinit/79_move_config b/target/linux/stm32/base-files/lib/preinit/79_move_config
new file mode 100644
index 0000000000..bc7db4c782
--- /dev/null
+++ b/target/linux/stm32/base-files/lib/preinit/79_move_config
@@ -0,0 +1,15 @@
+
+move_config() {
+	. /lib/upgrade/common.sh
+	. /lib/upgrade/platform.sh
+
+	if export_bootdevice && export_partdevice partdev 4; then
+		mount -t ext4 -o rw,noatime "/dev/$partdev" /mnt
+		if [ -f "/mnt/$BACKUP_FILE" ]; then
+			mv -f "/mnt/$BACKUP_FILE" /
+		fi
+		umount /mnt
+	fi
+}
+
+boot_hook_add preinit_mount_root move_config
diff --git a/target/linux/stm32/base-files/lib/upgrade/platform.sh b/target/linux/stm32/base-files/lib/upgrade/platform.sh
new file mode 100644
index 0000000000..4cd88ab6bd
--- /dev/null
+++ b/target/linux/stm32/base-files/lib/upgrade/platform.sh
@@ -0,0 +1,181 @@
+REQUIRE_IMAGE_METADATA=1
+
+UBOOT_ENV_PART=3
+BOOT_PART=4
+ROOTFS_PART=5
+
+RAMFS_COPY_BIN='blockdev'
+
+export_bootdevice() {
+	local cmdline uuid blockdev uevent line class
+	local MAJOR MINOR DEVNAME DEVTYPE
+	local rootpart="$(cmdline_get_var root)"
+
+	case "$rootpart" in
+		PARTUUID=????????-????-????-????-??????????0?/PARTNROFF=1 | \
+		PARTUUID=????????-????-????-????-??????????05)
+			uuid="${rootpart#PARTUUID=}"
+			uuid="${uuid%/PARTNROFF=1}"
+			uuid="${uuid%0?}00"
+			for disk in $(find /dev -type b); do
+				set -- $(dd if=$disk bs=1 skip=568 count=16 2>/dev/null | hexdump -v -e '8/1 "%02x "" "2/1 "%02x""-"6/1 "%02x"')
+				if [ "$4$3$2$1-$6$5-$8$7-$9" = "$uuid" ]; then
+					uevent="/sys/class/block/${disk##*/}/uevent"
+					break
+				fi
+			done
+		;;
+	esac
+
+	if [ -e "$uevent" ]; then
+		while read line; do
+			export -n "$line"
+		done < "$uevent"
+		export BOOTDEV_MAJOR=$MAJOR
+		export BOOTDEV_MINOR=$MINOR
+		return 0
+	fi
+
+	return 1
+}
+
+platform_check_image() {
+	local diskdev partdev diff
+
+        [ "$#" -gt 1 ] && return 1
+
+	export_bootdevice && export_partdevice diskdev 0 || {
+		v "platform_check_image: Unable to determine upgrade device"
+		return 1
+	}
+
+	get_partitions "/dev/$diskdev" bootdisk
+
+	v "Extract the boot sector from the image"
+	get_image_dd "$1" of=/tmp/image.bs count=63 bs=512b
+
+	get_partitions /tmp/image.bs image
+
+	#compare tables
+	diff="$(grep -F -x -v -f /tmp/partmap.bootdisk /tmp/partmap.image)"
+
+	rm -f /tmp/image.bs /tmp/partmap.bootdisk /tmp/partmap.image
+
+	if [ -n "$diff" ]; then
+		echo "Partition layout has changed. Full image will be written."
+		ask_bool 0 "Abort" && exit 1
+		return 0
+	fi
+}
+
+platform_do_upgrade() {
+	local diskdev partdev diff partlabel
+
+	export_bootdevice && export_partdevice diskdev 0 || {
+		v "platform_do_upgrade: Unable to determine upgrade device"
+		return 1
+	}
+
+	sync
+
+	if [ "$UPGRADE_OPT_SAVE_PARTITIONS" = "1" ]; then
+		get_partitions "/dev/$diskdev" bootdisk
+
+		v "Extract boot sector from the image"
+		get_image_dd "$1" of=/tmp/image.bs count=63 bs=512b
+
+		get_partitions /tmp/image.bs image
+
+		#compare tables
+		diff="$(grep -F -x -v -f /tmp/partmap.bootdisk /tmp/partmap.image)"
+	else
+		diff=1
+	fi
+
+	if [ -n "$diff" ]; then
+		rm -rf /tmp/ubootenv
+
+		if export_partdevice partdev $UBOOT_ENV_PART; then
+			v "Saving u-boot env (/dev/$partdev) before to write image"
+			get_image_dd "/dev/$partdev" of=/tmp/ubootenv
+		fi
+
+		v "Writing image to /dev/$diskdev..."
+		get_image_dd "$1" of="/dev/$diskdev" conv=fsync
+
+		blockdev --rereadpt "/dev/$diskdev"
+
+		[ -f /tmp/ubootenv ] && {
+			# iterate over each partition from the image to find the
+			# u-boot-env partition and restore u-boot env.
+			while read part start size; do
+				if export_partdevice partdev $part; then
+					while read line; do
+						eval "local l$line"
+					done < "/sys/class/block/$partdev/uevent"
+
+					[ "$lPARTNAME" = "u-boot-env" ] || continue
+
+					v "Writting u-boot env to /dev/$partdev"
+					get_image_dd /tmp/ubootenv of="/dev/$partdev" conv=fsync
+
+					return 0
+				fi
+			done < /tmp/partmap.image
+		}
+		return 0
+	fi
+
+	#iterate over each partition from the image and write it to the boot disk
+	while read part start size; do
+		if export_partdevice partdev $part; then
+			# do not erase u-boot env
+			[ "$part" = "$UBOOT_ENV_PART" ] && continue
+
+			v "Writing image to /dev/$partdev..."
+			v "Normal partition, doing DD"
+			get_image_dd "$1" of="/dev/$partdev" ibs=512 obs=1M skip="$start" \
+				count="$size" conv=fsync
+		else
+			v "Unable to find partition $part device, skipped."
+		fi
+	done < /tmp/partmap.image
+
+	if export_partdevice partdev "$BOOT_PART"; then
+		mount -t ext4 -o rw,noatime "/dev/$partdev" /mnt
+		local partuuid="$(cmdline_get_var root)"
+		v "Setting rootfs ${partuuid}"
+		sed -i "s/PARTUUID=[a-f0-9-]\+/${partuuid}/ig" \
+			/mnt/extlinux/extlinux.conf
+		umount /mnt
+	fi
+}
+
+platform_copy_config() {
+	local partdev
+
+	# Iterate over each partition from the image to find the boot partition
+	# and copy the config tarball.
+	# The partlabel is used to find the partition.
+	# An hardcoded partition number cannot be used, as it could be wrong if
+	# the partition table changed, and the full image was written.
+	while read part start size; do
+		# config is copied in the boot partition, as for squashfs image, the
+		# rootfs partition is not writable.
+		if export_partdevice partdev "$part"; then
+			while read line; do
+				eval "local l$line"
+			done < "/sys/class/block/$partdev/uevent"
+
+			[ "$lPARTNAME" = "boot" ] || continue
+
+			mount -t ext4 -o rw,noatime "/dev/$partdev" /mnt
+			cp -af "$UPGRADE_BACKUP" "/mnt/$BACKUP_FILE"
+			umount /mnt
+			return 0
+		else
+			v "ERROR: Unable to find partition to copy config data to"
+		fi
+	done < /tmp/partmap.image
+}
+
diff --git a/target/linux/stm32/image/Makefile b/target/linux/stm32/image/Makefile
new file mode 100644
index 0000000000..77c25edaf8
--- /dev/null
+++ b/target/linux/stm32/image/Makefile
@@ -0,0 +1,63 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Copyright (C) 2024 Bootlin
+#
+
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/image.mk
+
+define Build/boot-img-ext4
+	rm -fR $@.boot
+	mkdir -p $@.boot
+	$(foreach dts,$(DEVICE_DTS), $(CP) $(KDIR)/image-$(dts).dtb $@.boot/$(dts).dtb;)
+	$(CP) $(IMAGE_KERNEL) $@.boot/$(KERNEL_IMG)
+	$(INSTALL_DIR) $@.boot/extlinux
+	$(CP) ./extlinux.conf $@.boot/extlinux/
+	$(SED) 's/@KERNEL@/$(KERNEL_IMG)/' $@.boot/extlinux/extlinux.conf
+	$(SED) 's/@DEVICE@/$(DEVICE_NAME)/' $@.boot/extlinux/extlinux.conf
+	$(SED) 's/@DTS@/$(DEVICE_DTS)/' $@.boot/extlinux/extlinux.conf
+	$(SED) 's/@ROOT@/PARTUUID=$(shell echo $(IMG_PART_DISKGUID) | sed 's/00$$/05/')/' $@.boot/extlinux/extlinux.conf
+
+	make_ext4fs -J -L kernel -l $(CONFIG_TARGET_KERNEL_PARTSIZE)M \
+		$(if $(SOURCE_DATE_EPOCH),-T $(SOURCE_DATE_EPOCH)) \
+		$@.bootimg $@.boot
+endef
+
+define Build/sdcard-img
+	GUID=$(IMG_PART_DISKGUID) ./gen_stm32_sdcard_img.sh \
+	     $@ $(STAGING_DIR_IMAGE)/tf-a-$(DEVICE_NAME).stm32 \
+	     $(STAGING_DIR_IMAGE)/fip-$(DEVICE_NAME).bin $@.bootimg $(IMAGE_ROOTFS) \
+	     $(ENV_SIZE) $(CONFIG_TARGET_KERNEL_PARTSIZE) $(CONFIG_TARGET_ROOTFS_PARTSIZE)
+endef
+
+define Device/Default
+  PROFILES := Default
+  DEVICE_VENDOR := STMicroelectronics
+  IMAGES := factory.img.gz sysupgrade.img.gz
+  IMAGE/factory.img.gz := boot-img-ext4 | sdcard-img | gzip
+  IMAGE/sysupgrade.img.gz := boot-img-ext4 | sdcard-img | gzip | append-metadata
+  KERNEL := kernel-bin
+  KERNEL_NAME := zImage
+  KERNEL_IMG := zImage
+  DEVICE_DTS_DIR := $(DTS_DIR)/st
+  ENV_SIZE := 0x200000
+  DEVICE_PACKAGES := kmod-brcmfmac \
+		     murata-firmware-43430-sdio \
+		     murata-nvram-43430-sdio \
+		     wpad-basic-mbedtls \
+		     kmod-phy-stm32-usbphyc \
+		     kmod-usb2 \
+		     kmod-usb-storage \
+		     kmod-usb-ledtrig-usbport \
+		     -mtd
+endef
+
+define Device/stm32mp135f-dk
+  DEVICE_MODEL := STM32MP135F-DK
+  DEVICE_DTS := stm32mp135f-dk
+  SUPPORTED_DEVICES := st,stm32mp135f-dk
+endef
+
+TARGET_DEVICES += stm32mp135f-dk
+
+$(eval $(call BuildImage))
diff --git a/target/linux/stm32/image/extlinux.conf b/target/linux/stm32/image/extlinux.conf
new file mode 100644
index 0000000000..5c7773c2a8
--- /dev/null
+++ b/target/linux/stm32/image/extlinux.conf
@@ -0,0 +1,4 @@
+label @DEVICE at -openwrt
+  kernel /@KERNEL@
+  devicetree /@DTS at .dtb
+  append root=@ROOT@ rootwait
diff --git a/target/linux/stm32/image/gen_stm32_sdcard_img.sh b/target/linux/stm32/image/gen_stm32_sdcard_img.sh
new file mode 100755
index 0000000000..9af891694a
--- /dev/null
+++ b/target/linux/stm32/image/gen_stm32_sdcard_img.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+# Copyright (C) 2024 Bootlin
+
+set -ex
+[ $# -eq 8 ] || {
+    echo "SYNTAX: $0 <file> <fsbl> <fip> <bootfs image> <rootfs image> <env size> <bootfs size> <rootfs size>"
+    exit 1
+}
+
+OUTPUT="${1}"
+FSBL="${2}"
+FIP="${3}"
+BOOTFS="${4}"
+ROOTFS="${5}"
+ENVSIZE="$((${6} / 1024))"
+BOOTFSSIZE="${7}"
+ROOTFSSIZE="${8}"
+
+set $(ptgen -o "${OUTPUT}" -g -a 4 -l 2048 -G ${GUID} -N fsbla -p 2M -N fip -p 3M -N u-boot-env -p "${ENVSIZE}" -N boot -p${BOOTFSSIZE}M -N rootfs -p ${ROOTFSSIZE}M)
+FSBLAOFFSET="$((${1} / 512))"
+FSBLASIZE="$((${2} / 512))"
+FIPOFFSET="$((${3} / 512))"
+FIPSIZE="$((${4} / 512))"
+ENVOFFSET="$((${5} / 512))"
+ENVSIZE="$((${6} / 512))"
+BOOTFSOFFSET="$((${7} / 512))"
+BOOTFSSIZE="$((${8} / 512))"
+ROOTFSOFFSET="$((${9} / 512))"
+ROOTFSSIZE="$((${10} / 512))"
+
+dd bs=512 if="${FSBL}" of="${OUTPUT}" seek="${FSBLAOFFSET}" conv=notrunc
+dd bs=512 if="${FIP}"  of="${OUTPUT}" seek="${FIPOFFSET}" conv=notrunc
+dd bs=512 if=/dev/zero of="${OUTPUT}" seek="${ENVOFFSET}" count="${ENVSIZE}" conv=notrunc
+dd bs=512 if="${BOOTFS}" of="${OUTPUT}" seek="${BOOTFSOFFSET}" conv=notrunc
+dd bs=512 if="${ROOTFS}" of="${OUTPUT}" seek="${ROOTFSOFFSET}" conv=notrunc
diff --git a/target/linux/stm32/modules.mk b/target/linux/stm32/modules.mk
new file mode 100644
index 0000000000..baba80baba
--- /dev/null
+++ b/target/linux/stm32/modules.mk
@@ -0,0 +1,256 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Copyright (C) 2024 Bootlin
+
+define KernelPackage/phy-stm32-usbphyc
+  TITLE:=STM32 USB HS PHY Controller driver
+  DEPENDS:=@TARGET_stm32
+  KCONFIG:=CONFIG_PHY_STM32_USBPHYC
+  FILES:=$(LINUX_DIR)/drivers/phy/st/phy-stm32-usbphyc.ko
+  AUTOLOAD:=$(call AutoProbe,phy-stm32-usbphyc,)
+endef
+
+define KernelPackage/phy-stm32-usbphyc/description
+  Kernel module for STM32 USB HS PHY Controller
+endef
+
+$(eval $(call KernelPackage,phy-stm32-usbphyc))
+
+
+define KernelPackage/bxcan
+  TITLE:=STM32 Basic Extended CAN (bxCAN) devices
+  KCONFIG:=CONFIG_CAN_BXCAN
+  FILES=$(LINUX_DIR)/drivers/net/can/bxcan.ko
+  AUTOLOAD:=$(call AutoProbe,bxcan)
+  $(call AddDepends/can, at TARGET_stm32)
+endef
+
+$(eval $(call KernelPackage,bxcan))
+
+
+define KernelPackage/spi-stm32
+  SUBMENU=$(SPI_MENU)
+  TITLE:=STM32 SPI controller
+  DEPENDS:=@TARGET_stm32
+  KCONFIG:=CONFIG_SPI_STM32 \
+	   CONFIG_SPI=y \
+	   CONFIG_SPI_MASTER=y \
+	   CONFIG_SPI_SLAVE_TIME=n \
+	   CONFIG_SPI_SLAVE_SYSTEM_CONTROL=n
+  FILES=$(LINUX_DIR)/drivers/spi/spi-stm32.ko
+  AUTOLOAD:=$(call AutoProbe,spi-stm32)
+endef
+
+define KernelPackage/spi-stm32/description
+  SPI driver for STMicroelectronics STM32 SoCs.
+endef
+
+$(eval $(call KernelPackage,spi-stm32))
+
+
+define KernelPackage/scmi-hwmon
+  TITLE:=ARM SCMI Sensors
+  KCONFIG:=CONFIG_SENSORS_ARM_SCMI
+  FILES:=$(LINUX_DIR)/drivers/hwmon/scmi-hwmon.ko
+  AUTOLOAD:=$(call AutoProbe,scmi-hwmon)
+  $(call AddDepends/hwmon, at TARGET_stm32 +kmod-thermal)
+endef
+
+$(eval $(call KernelPackage,scmi-hwmon))
+
+
+define KernelPackage/stm32-dcmi
+  TITLE:=STM32 Digital Camera Memory Interface support
+  KCONFIG:=CONFIG_VIDEO_STM32_DCMI
+  FILES:=$(LINUX_DIR)/drivers/media/platform/st/stm32/stm32-dcmi.ko
+  AUTOLOAD:=$(call AutoProbe,stm32-dcmi)
+  $(call AddDepends/video, at TARGET_stm32 +kmod-video-videobuf2 +kmod-video-dma-contig +kmod-video-async +kmod-video-fwnode)
+endef
+
+$(eval $(call KernelPackage,stm32-dcmi))
+
+
+define KernelPackage/sound-soc-stm32-sai
+  TITLE:=STM32 SAI interface (Serial Audio Interface) support
+  KCONFIG:=CONFIG_SND_SOC_STM32_SAI
+  FILES:=$(LINUX_DIR)/sound/soc/stm/snd-soc-stm32-sai-sub.ko \
+	 $(LINUX_DIR)/sound/soc/stm/snd-soc-stm32-sai.ko
+  AUTOLOAD:=$(call AutoProbe,snd-soc-stm32-sai-sub snd-soc-stm32-sai)
+  $(call AddDepends/sound, at TARGET_stm32 +kmod-sound-soc-core)
+endef
+
+$(eval $(call KernelPackage,sound-soc-stm32-sai))
+
+
+define KernelPackage/sound-soc-stm32-i2s
+  TITLE:=STM32 I2S interface (SPI/I2S block) support
+  KCONFIG:=CONFIG_SND_SOC_STM32_I2S
+  FILES:=$(LINUX_DIR)/sound/soc/stm/snd-soc-stm32-i2s.ko
+  AUTOLOAD:=$(call AutoProbe,snd-soc-stm32-i2s)
+  $(call AddDepends/sound, at TARGET_stm32 +kmod-sound-soc-core)
+endef
+
+$(eval $(call KernelPackage,sound-soc-stm32-i2s))
+
+
+define KernelPackage/sound-soc-stm32-spdifrx
+  TITLE:=STM32 S/PDIF receiver (SPDIFRX) support
+  KCONFIG:=CONFIG_SND_SOC_STM32_SPDIFRX
+  FILES:=$(LINUX_DIR)/sound/soc/stm/snd-soc-stm32-spdifrx.ko
+  AUTOLOAD:=$(call AutoProbe,snd-soc-stm32-spdifrx)
+  $(call AddDepends/sound, at TARGET_stm32 +kmod-sound-soc-core)
+endef
+
+$(eval $(call KernelPackage,sound-soc-stm32-spdifrx))
+
+
+define KernelPackage/sound-soc-stm32-dfsdm
+  TITLE:=SoC Audio support for STM32 DFSDM
+  KCONFIG:=CONFIG_SND_SOC_STM32_DFSDM
+  FILES:=$(LINUX_DIR)/sound/soc/stm/stm32_adfsdm.ko
+  AUTOLOAD:=$(call AutoProbe,stm32_adfsdm)
+  $(call AddDepends/sound, at TARGET_stm32 +kmod-sound-soc-core +kmod-stm32-dfsdm-adc +kmod-industrialio-buffer-cb)
+endef
+
+$(eval $(call KernelPackage,sound-soc-stm32-dfsdm))
+
+
+define KernelPackage/stm32-timers
+  TITLE:=STM32 Timers
+  DEPENDS:=@TARGET_stm32 +kmod-mfd
+  KCONFIG:=CONFIG_MFD_STM32_TIMERS
+  FILES:=$(LINUX_DIR)/drivers/mfd/stm32-timers.ko
+  AUTOLOAD:=$(call AutoProbe,stm32-timers)
+endef
+
+$(eval $(call KernelPackage,stm32-timers))
+
+
+define KernelPackage/stm32-timer-trigger
+  TITLE:=STM32 Timer Trigger
+  KCONFIG:=CONFIG_IIO_STM32_TIMER_TRIGGER
+  FILES:=$(LINUX_DIR)/drivers/iio/trigger/stm32-timer-trigger.ko
+  AUTOLOAD:=$(call AutoProbe,stm32-timer-trigger)
+  $(call AddDepends/iio, at TARGET_stm32 +kmod-stm32-timers)
+endef
+
+$(eval $(call KernelPackage,stm32-timer-trigger))
+
+
+define KernelPackage/stm32-adc
+  TITLE:=STM32 ADC
+  KCONFIG:=CONFIG_STM32_ADC_CORE \
+	   CONFIG_STM32_ADC
+  FILES:=$(LINUX_DIR)/drivers/iio/adc/stm32-adc-core.ko \
+	 $(LINUX_DIR)/drivers/iio/adc/stm32-adc.ko
+  AUTOLOAD:=$(call AutoProbe,stm32-adc-core stm32-adc)
+  $(call AddDepends/iio, at TARGET_stm32 +kmod-stm32-timer-trigger +kmod-industrialio-triggered-buffer)
+endef
+
+$(eval $(call KernelPackage,stm32-adc))
+
+
+define KernelPackage/stm32-dfsdm-adc
+  TITLE:=STM32 DFSDM ADC
+  KCONFIG:=CONFIG_STM32_DFSDM_CORE \
+	   CONFIG_STM32_DFSDM_ADC
+  FILES:=$(LINUX_DIR)/drivers/iio/adc/stm32-dfsdm-core.ko \
+	 $(LINUX_DIR)/drivers/iio/adc/stm32-dfsdm-adc.ko
+  AUTOLOAD:=$(call AutoProbe,stm32-dfsdm-core stm32-dfsdm-adc)
+  $(call AddDepends/iio, at TARGET_stm32 +kmod-stm32-timer-trigger +kmod-industrialio-triggered-buffer +kmod-industrialio-hw-consumer)
+endef
+
+$(eval $(call KernelPackage,stm32-dfsdm-adc))
+
+
+define KernelPackage/scmi-iio
+  TITLE:=IIO SCMI
+  KCONFIG=CONFIG_IIO_SCMI
+  FILES:=$(LINUX_DIR)/drivers/iio/common/scmi_sensors/scmi_iio.ko
+  AUTOLOAD:=$(call AutoProbe,scmi_iio)
+  $(call AddDepends/iio, at TARGET_stm32 +kmod-iio-kfifo-buf)
+endef
+
+$(eval $(call KernelPackage,scmi-iio))
+
+
+define KernelPackage/stm32-dac
+  TITLE:=STM32 DAC
+  DEPENDS:=@TARGET_stm32
+  KCONFIG:=CONFIG_STM32_DAC_CORE \
+	   CONFIG_STM32_DAC
+  FILES:=$(LINUX_DIR)/drivers/iio/dac/stm32-dac-core.ko \
+	 $(LINUX_DIR)/drivers/iio/dac/stm32-dac.ko
+  AUTOLOAD:=$(call AutoProbe,stm32-dac-core stm32-dac)
+  $(call AddDepends/iio, at TARGET_stm32)
+endef
+
+$(eval $(call KernelPackage,stm32-dac))
+
+
+define KernelPackage/nvmem-stm32-romem
+  SUBMENU:=$(OTHER_MENU)
+  TITLE:=STM32 factory-programmed memory support
+  DEPENDS:=@TARGET_stm32
+  KCONFIG:=CONFIG_NVMEM_STM32_ROMEM
+  FILES:=$(LINUX_DIR)/drivers/nvmem/nvmem_stm32_romem.ko
+  AUTOLOAD:=$(call AutoProbe,nvmem-stm32-romem)
+endef
+
+$(eval $(call KernelPackage,nvmem-stm32-romem))
+
+
+define KernelPackage/stm32-crc32
+  TITLE:=Support for STM32 crc accelerators
+  KCONFIG:=CONFIG_CRYPTO_DEV_STM32_CRC \
+	   CONFIG_CRYPTO_HW=y
+  FILES:=$(LINUX_DIR)/drivers/crypto/stm32/stm32-crc32.ko
+  AUTOLOAD:=$(call AutoProbe,stm32-crc32)
+  $(call AddDepends/crypto, at TARGET_stm32 +kmod-crypto-crc32)
+endef
+
+$(eval $(call KernelPackage,stm32-crc32))
+
+
+define KernelPackage/stm32-hash
+  SUBMENU:=$(CRYPTO_MENU)
+  TITLE:=Support for STM32 hash accelerators
+  DEPENDS:=@TARGET_stm32 \
+	   +kmod-crypto-md5 \
+	   +kmod-crypto-sha1 \
+	   +kmod-crypto-sha256 \
+	   +kmod-crypto-sha3 \
+	   +kmod-crypto-rsa
+  KCONFIG:=CONFIG_CRYPTO_DEV_STM32_HASH \
+	   CONFIG_CRYPTO_ENGINE=y \
+  FILES:=$(LINUX_DIR)/drivers/crypto/stm32/stm32-hash.ko
+  AUTOLOAD:=$(call AutoProbe,stm32-hash)
+endef
+
+$(eval $(call KernelPackage,stm32-hash))
+
+
+define KernelPackage/stm32-cryp
+  TITLE:=Support for STM32 cryp accelerators
+  KCONFIG:=CONFIG_CRYPTO_DEV_STM32_CRYP \
+	   CONFIG_CRYPTO_LIB_DES=y
+  FILES:=$(LINUX_DIR)/drivers/crypto/stm32/stm32-cryp.ko
+  AUTOLOAD:=$(call AutoProbe,stm32-cryp)
+  $(call AddDepends/crypto, at TARGET_stm32 +kmod-crypto-hash +kmod-crypto-des +kmod-crypto-engine)
+endef
+
+$(eval $(call KernelPackage,stm32-cryp))
+
+
+define KernelPackage/st-thermal
+  SUBMENU:=$(OTHER_MENU)
+  TITLE:=Thermal sensors on STMicroelectronics STi series of SoCs
+  KCONFIG:=CONFIG_ST_THERMAL \
+	   CONFIG_ST_THERMAL_MEMMAP
+  DEPENDS:=@TARGET_stm32 +kmod-thermal
+  FILES:=$(LINUX_DIR)/drivers/thermal/st/st_thermal.ko \
+	 $(LINUX_DIR)/drivers/thermal/st/st_thermal_memmap.ko
+  AUTOLOAD:=$(call AutoProbe,st_thermal st_thermal_memmap)
+endef
+
+$(eval $(call KernelPackage,st-thermal))
diff --git a/target/linux/stm32/patches-6.6/001-net-stmmac-dwmac-stm32-use-devm_stmmac_probe_config_.patch b/target/linux/stm32/patches-6.6/001-net-stmmac-dwmac-stm32-use-devm_stmmac_probe_config_.patch
new file mode 100644
index 0000000000..cf192fdef4
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/001-net-stmmac-dwmac-stm32-use-devm_stmmac_probe_config_.patch
@@ -0,0 +1,69 @@
+From 1ddced59ac1f7c739f21e930d87b126a30c561bb Mon Sep 17 00:00:00 2001
+From: Jisheng Zhang <jszhang at kernel.org>
+Date: Sat, 16 Sep 2023 15:58:23 +0800
+Subject: [PATCH 1/8] net: stmmac: dwmac-stm32: use
+ devm_stmmac_probe_config_dt()
+
+Simplify the driver's probe() function by using the devres
+variant of stmmac_probe_config_dt().
+
+Signed-off-by: Jisheng Zhang <jszhang at kernel.org>
+Signed-off-by: David S. Miller <davem at davemloft.net>
+---
+ .../net/ethernet/stmicro/stmmac/dwmac-stm32.c   | 17 ++++++-----------
+ 1 file changed, 6 insertions(+), 11 deletions(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
+@@ -372,21 +372,18 @@ static int stm32_dwmac_probe(struct plat
+ 	if (ret)
+ 		return ret;
+ 
+-	plat_dat = stmmac_probe_config_dt(pdev, stmmac_res.mac);
++	plat_dat = devm_stmmac_probe_config_dt(pdev, stmmac_res.mac);
+ 	if (IS_ERR(plat_dat))
+ 		return PTR_ERR(plat_dat);
+ 
+ 	dwmac = devm_kzalloc(&pdev->dev, sizeof(*dwmac), GFP_KERNEL);
+-	if (!dwmac) {
+-		ret = -ENOMEM;
+-		goto err_remove_config_dt;
+-	}
++	if (!dwmac)
++		return -ENOMEM;
+ 
+ 	data = of_device_get_match_data(&pdev->dev);
+ 	if (!data) {
+ 		dev_err(&pdev->dev, "no of match data provided\n");
+-		ret = -EINVAL;
+-		goto err_remove_config_dt;
++		return -EINVAL;
+ 	}
+ 
+ 	dwmac->ops = data;
+@@ -395,14 +392,14 @@ static int stm32_dwmac_probe(struct plat
+ 	ret = stm32_dwmac_parse_data(dwmac, &pdev->dev);
+ 	if (ret) {
+ 		dev_err(&pdev->dev, "Unable to parse OF data\n");
+-		goto err_remove_config_dt;
++		return ret;
+ 	}
+ 
+ 	plat_dat->bsp_priv = dwmac;
+ 
+ 	ret = stm32_dwmac_init(plat_dat);
+ 	if (ret)
+-		goto err_remove_config_dt;
++		return ret;
+ 
+ 	ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
+ 	if (ret)
+@@ -412,8 +409,6 @@ static int stm32_dwmac_probe(struct plat
+ 
+ err_clk_disable:
+ 	stm32_dwmac_clk_disable(dwmac);
+-err_remove_config_dt:
+-	stmmac_remove_config_dt(pdev, plat_dat);
+ 
+ 	return ret;
+ }
diff --git a/target/linux/stm32/patches-6.6/002-net-stmmac-dwmac-stm32-refactor-clock-config.patch b/target/linux/stm32/patches-6.6/002-net-stmmac-dwmac-stm32-refactor-clock-config.patch
new file mode 100644
index 0000000000..dd791dab6a
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/002-net-stmmac-dwmac-stm32-refactor-clock-config.patch
@@ -0,0 +1,241 @@
+From 73c350e3fb32e9598b66f61081c7e06a7fba49f8 Mon Sep 17 00:00:00 2001
+From: Ben Wolsieffer <ben.wolsieffer at hefring.com>
+Date: Mon, 9 Oct 2023 10:59:04 -0400
+Subject: [PATCH 2/8] net: stmmac: dwmac-stm32: refactor clock config
+
+Currently, clock configuration is spread throughout the driver and
+partially duplicated for the STM32MP1 and STM32 MCU variants. This makes
+it difficult to keep track of which clocks need to be enabled or disabled
+in various scenarios.
+
+This patch adds symmetric stm32_dwmac_clk_enable/disable() functions
+that handle all clock configuration, including quirks required while
+suspending or resuming. syscfg_clk and clk_eth_ck are not present on
+STM32 MCUs, but it is fine to try to configure them anyway since NULL
+clocks are ignored.
+
+Signed-off-by: Ben Wolsieffer <ben.wolsieffer at hefring.com>
+Signed-off-by: David S. Miller <davem at davemloft.net>
+---
+ .../net/ethernet/stmicro/stmmac/dwmac-stm32.c | 113 +++++++-----------
+ 1 file changed, 45 insertions(+), 68 deletions(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
+@@ -98,7 +98,6 @@ struct stm32_dwmac {
+ 
+ struct stm32_ops {
+ 	int (*set_mode)(struct plat_stmmacenet_data *plat_dat);
+-	int (*clk_prepare)(struct stm32_dwmac *dwmac, bool prepare);
+ 	int (*suspend)(struct stm32_dwmac *dwmac);
+ 	void (*resume)(struct stm32_dwmac *dwmac);
+ 	int (*parse_data)(struct stm32_dwmac *dwmac,
+@@ -107,62 +106,55 @@ struct stm32_ops {
+ 	bool clk_rx_enable_in_suspend;
+ };
+ 
+-static int stm32_dwmac_init(struct plat_stmmacenet_data *plat_dat)
++static int stm32_dwmac_clk_enable(struct stm32_dwmac *dwmac, bool resume)
+ {
+-	struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
+ 	int ret;
+ 
+-	if (dwmac->ops->set_mode) {
+-		ret = dwmac->ops->set_mode(plat_dat);
+-		if (ret)
+-			return ret;
+-	}
+-
+ 	ret = clk_prepare_enable(dwmac->clk_tx);
+ 	if (ret)
+-		return ret;
++		goto err_clk_tx;
+ 
+-	if (!dwmac->ops->clk_rx_enable_in_suspend ||
+-	    !dwmac->dev->power.is_suspended) {
++	if (!dwmac->ops->clk_rx_enable_in_suspend || !resume) {
+ 		ret = clk_prepare_enable(dwmac->clk_rx);
+-		if (ret) {
+-			clk_disable_unprepare(dwmac->clk_tx);
+-			return ret;
+-		}
++		if (ret)
++			goto err_clk_rx;
+ 	}
+ 
+-	if (dwmac->ops->clk_prepare) {
+-		ret = dwmac->ops->clk_prepare(dwmac, true);
+-		if (ret) {
+-			clk_disable_unprepare(dwmac->clk_rx);
+-			clk_disable_unprepare(dwmac->clk_tx);
+-		}
++	ret = clk_prepare_enable(dwmac->syscfg_clk);
++	if (ret)
++		goto err_syscfg_clk;
++
++	if (dwmac->enable_eth_ck) {
++		ret = clk_prepare_enable(dwmac->clk_eth_ck);
++		if (ret)
++			goto err_clk_eth_ck;
+ 	}
+ 
+ 	return ret;
++
++err_clk_eth_ck:
++	clk_disable_unprepare(dwmac->syscfg_clk);
++err_syscfg_clk:
++	if (!dwmac->ops->clk_rx_enable_in_suspend || !resume)
++		clk_disable_unprepare(dwmac->clk_rx);
++err_clk_rx:
++	clk_disable_unprepare(dwmac->clk_tx);
++err_clk_tx:
++	return ret;
+ }
+ 
+-static int stm32mp1_clk_prepare(struct stm32_dwmac *dwmac, bool prepare)
++static int stm32_dwmac_init(struct plat_stmmacenet_data *plat_dat, bool resume)
+ {
+-	int ret = 0;
++	struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
++	int ret;
+ 
+-	if (prepare) {
+-		ret = clk_prepare_enable(dwmac->syscfg_clk);
++	if (dwmac->ops->set_mode) {
++		ret = dwmac->ops->set_mode(plat_dat);
+ 		if (ret)
+ 			return ret;
+-		if (dwmac->enable_eth_ck) {
+-			ret = clk_prepare_enable(dwmac->clk_eth_ck);
+-			if (ret) {
+-				clk_disable_unprepare(dwmac->syscfg_clk);
+-				return ret;
+-			}
+-		}
+-	} else {
+-		clk_disable_unprepare(dwmac->syscfg_clk);
+-		if (dwmac->enable_eth_ck)
+-			clk_disable_unprepare(dwmac->clk_eth_ck);
+ 	}
+-	return ret;
++
++	return stm32_dwmac_clk_enable(dwmac, resume);
+ }
+ 
+ static int stm32mp1_set_mode(struct plat_stmmacenet_data *plat_dat)
+@@ -252,13 +244,15 @@ static int stm32mcu_set_mode(struct plat
+ 				 dwmac->ops->syscfg_eth_mask, val << 23);
+ }
+ 
+-static void stm32_dwmac_clk_disable(struct stm32_dwmac *dwmac)
++static void stm32_dwmac_clk_disable(struct stm32_dwmac *dwmac, bool suspend)
+ {
+ 	clk_disable_unprepare(dwmac->clk_tx);
+-	clk_disable_unprepare(dwmac->clk_rx);
++	if (!dwmac->ops->clk_rx_enable_in_suspend || !suspend)
++		clk_disable_unprepare(dwmac->clk_rx);
+ 
+-	if (dwmac->ops->clk_prepare)
+-		dwmac->ops->clk_prepare(dwmac, false);
++	clk_disable_unprepare(dwmac->syscfg_clk);
++	if (dwmac->enable_eth_ck)
++		clk_disable_unprepare(dwmac->clk_eth_ck);
+ }
+ 
+ static int stm32_dwmac_parse_data(struct stm32_dwmac *dwmac,
+@@ -397,7 +391,7 @@ static int stm32_dwmac_probe(struct plat
+ 
+ 	plat_dat->bsp_priv = dwmac;
+ 
+-	ret = stm32_dwmac_init(plat_dat);
++	ret = stm32_dwmac_init(plat_dat, false);
+ 	if (ret)
+ 		return ret;
+ 
+@@ -408,7 +402,7 @@ static int stm32_dwmac_probe(struct plat
+ 	return 0;
+ 
+ err_clk_disable:
+-	stm32_dwmac_clk_disable(dwmac);
++	stm32_dwmac_clk_disable(dwmac, false);
+ 
+ 	return ret;
+ }
+@@ -421,7 +415,7 @@ static void stm32_dwmac_remove(struct pl
+ 
+ 	stmmac_dvr_remove(&pdev->dev);
+ 
+-	stm32_dwmac_clk_disable(priv->plat->bsp_priv);
++	stm32_dwmac_clk_disable(dwmac, false);
+ 
+ 	if (dwmac->irq_pwr_wakeup >= 0) {
+ 		dev_pm_clear_wake_irq(&pdev->dev);
+@@ -431,18 +425,7 @@ static void stm32_dwmac_remove(struct pl
+ 
+ static int stm32mp1_suspend(struct stm32_dwmac *dwmac)
+ {
+-	int ret = 0;
+-
+-	ret = clk_prepare_enable(dwmac->clk_ethstp);
+-	if (ret)
+-		return ret;
+-
+-	clk_disable_unprepare(dwmac->clk_tx);
+-	clk_disable_unprepare(dwmac->syscfg_clk);
+-	if (dwmac->enable_eth_ck)
+-		clk_disable_unprepare(dwmac->clk_eth_ck);
+-
+-	return ret;
++	return clk_prepare_enable(dwmac->clk_ethstp);
+ }
+ 
+ static void stm32mp1_resume(struct stm32_dwmac *dwmac)
+@@ -450,14 +433,6 @@ static void stm32mp1_resume(struct stm32
+ 	clk_disable_unprepare(dwmac->clk_ethstp);
+ }
+ 
+-static int stm32mcu_suspend(struct stm32_dwmac *dwmac)
+-{
+-	clk_disable_unprepare(dwmac->clk_tx);
+-	clk_disable_unprepare(dwmac->clk_rx);
+-
+-	return 0;
+-}
+-
+ #ifdef CONFIG_PM_SLEEP
+ static int stm32_dwmac_suspend(struct device *dev)
+ {
+@@ -468,6 +443,10 @@ static int stm32_dwmac_suspend(struct de
+ 	int ret;
+ 
+ 	ret = stmmac_suspend(dev);
++	if (ret)
++		return ret;
++
++	stm32_dwmac_clk_disable(dwmac, true);
+ 
+ 	if (dwmac->ops->suspend)
+ 		ret = dwmac->ops->suspend(dwmac);
+@@ -485,7 +464,7 @@ static int stm32_dwmac_resume(struct dev
+ 	if (dwmac->ops->resume)
+ 		dwmac->ops->resume(dwmac);
+ 
+-	ret = stm32_dwmac_init(priv->plat);
++	ret = stm32_dwmac_init(priv->plat, true);
+ 	if (ret)
+ 		return ret;
+ 
+@@ -500,13 +479,11 @@ static SIMPLE_DEV_PM_OPS(stm32_dwmac_pm_
+ 
+ static struct stm32_ops stm32mcu_dwmac_data = {
+ 	.set_mode = stm32mcu_set_mode,
+-	.suspend = stm32mcu_suspend,
+ 	.syscfg_eth_mask = SYSCFG_MCU_ETH_MASK
+ };
+ 
+ static struct stm32_ops stm32mp1_dwmac_data = {
+ 	.set_mode = stm32mp1_set_mode,
+-	.clk_prepare = stm32mp1_clk_prepare,
+ 	.suspend = stm32mp1_suspend,
+ 	.resume = stm32mp1_resume,
+ 	.parse_data = stm32mp1_parse_data,
diff --git a/target/linux/stm32/patches-6.6/003-net-stmmac-dwmac-stm32-Separate-out-external-clock-r.patch b/target/linux/stm32/patches-6.6/003-net-stmmac-dwmac-stm32-Separate-out-external-clock-r.patch
new file mode 100644
index 0000000000..bcdd23b4eb
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/003-net-stmmac-dwmac-stm32-Separate-out-external-clock-r.patch
@@ -0,0 +1,125 @@
+From 23c08dc4ff28b5ca1aa5ee745a5e9688561e8f6a Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex at denx.de>
+Date: Tue, 11 Jun 2024 10:36:00 +0200
+Subject: [PATCH 3/8] net: stmmac: dwmac-stm32: Separate out external clock
+ rate validation
+
+Pull the external clock frequency validation into a separate function,
+to avoid conflating it with external clock DT property decoding and
+clock mux register configuration. This should make the code easier to
+read and understand.
+
+This does change the code behavior slightly. The clock mux PMCR register
+setting now depends solely on the DT properties which configure the clock
+mux between external clock and internal RCC generated clock. The mux PMCR
+register settings no longer depend on the supplied clock frequency, that
+supplied clock frequency is now only validated, and if the clock frequency
+is invalid for a mode, it is rejected.
+
+Previously, the code would switch the PMCR register clock mux to internal
+RCC generated clock if external clock couldn't provide suitable frequency,
+without checking whether the RCC generated clock frequency is correct. Such
+behavior is risky at best, user should have configured their clock correctly
+in the first place, so this behavior is removed here.
+
+Signed-off-by: Marek Vasut <marex at denx.de>
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Signed-off-by: Paolo Abeni <pabeni at redhat.com>
+---
+ .../net/ethernet/stmicro/stmmac/dwmac-stm32.c | 51 +++++++++++++++----
+ 1 file changed, 41 insertions(+), 10 deletions(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
+@@ -157,25 +157,54 @@ static int stm32_dwmac_init(struct plat_
+ 	return stm32_dwmac_clk_enable(dwmac, resume);
+ }
+ 
++static int stm32mp1_validate_ethck_rate(struct plat_stmmacenet_data *plat_dat)
++{
++	struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
++	const u32 clk_rate = clk_get_rate(dwmac->clk_eth_ck);
++
++	switch (plat_dat->mac_interface) {
++	case PHY_INTERFACE_MODE_MII:
++	case PHY_INTERFACE_MODE_GMII:
++		if (clk_rate == ETH_CK_F_25M)
++			return 0;
++		break;
++	case PHY_INTERFACE_MODE_RMII:
++		if (clk_rate == ETH_CK_F_25M || clk_rate == ETH_CK_F_50M)
++			return 0;
++		break;
++	case PHY_INTERFACE_MODE_RGMII:
++	case PHY_INTERFACE_MODE_RGMII_ID:
++	case PHY_INTERFACE_MODE_RGMII_RXID:
++	case PHY_INTERFACE_MODE_RGMII_TXID:
++		if (clk_rate == ETH_CK_F_25M || clk_rate == ETH_CK_F_125M)
++			return 0;
++		break;
++	default:
++		break;
++	}
++
++	dev_err(dwmac->dev, "Mode %s does not match eth-ck frequency %d Hz",
++		phy_modes(plat_dat->mac_interface), clk_rate);
++	return -EINVAL;
++}
++
+ static int stm32mp1_set_mode(struct plat_stmmacenet_data *plat_dat)
+ {
+ 	struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
+-	u32 reg = dwmac->mode_reg, clk_rate;
+-	int val;
++	u32 reg = dwmac->mode_reg;
++	int val, ret;
+ 
+-	clk_rate = clk_get_rate(dwmac->clk_eth_ck);
+ 	dwmac->enable_eth_ck = false;
+ 	switch (plat_dat->mac_interface) {
+ 	case PHY_INTERFACE_MODE_MII:
+-		if (clk_rate == ETH_CK_F_25M && dwmac->ext_phyclk)
++		if (dwmac->ext_phyclk)
+ 			dwmac->enable_eth_ck = true;
+ 		val = SYSCFG_PMCR_ETH_SEL_MII;
+ 		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_MII\n");
+ 		break;
+ 	case PHY_INTERFACE_MODE_GMII:
+ 		val = SYSCFG_PMCR_ETH_SEL_GMII;
+-		if (clk_rate == ETH_CK_F_25M &&
+-		    (dwmac->eth_clk_sel_reg || dwmac->ext_phyclk)) {
++		if (dwmac->eth_clk_sel_reg || dwmac->ext_phyclk) {
+ 			dwmac->enable_eth_ck = true;
+ 			val |= SYSCFG_PMCR_ETH_CLK_SEL;
+ 		}
+@@ -183,8 +212,7 @@ static int stm32mp1_set_mode(struct plat
+ 		break;
+ 	case PHY_INTERFACE_MODE_RMII:
+ 		val = SYSCFG_PMCR_ETH_SEL_RMII;
+-		if ((clk_rate == ETH_CK_F_25M || clk_rate == ETH_CK_F_50M) &&
+-		    (dwmac->eth_ref_clk_sel_reg || dwmac->ext_phyclk)) {
++		if (dwmac->eth_ref_clk_sel_reg || dwmac->ext_phyclk) {
+ 			dwmac->enable_eth_ck = true;
+ 			val |= SYSCFG_PMCR_ETH_REF_CLK_SEL;
+ 		}
+@@ -195,8 +223,7 @@ static int stm32mp1_set_mode(struct plat
+ 	case PHY_INTERFACE_MODE_RGMII_RXID:
+ 	case PHY_INTERFACE_MODE_RGMII_TXID:
+ 		val = SYSCFG_PMCR_ETH_SEL_RGMII;
+-		if ((clk_rate == ETH_CK_F_25M || clk_rate == ETH_CK_F_125M) &&
+-		    (dwmac->eth_clk_sel_reg || dwmac->ext_phyclk)) {
++		if (dwmac->eth_clk_sel_reg || dwmac->ext_phyclk) {
+ 			dwmac->enable_eth_ck = true;
+ 			val |= SYSCFG_PMCR_ETH_CLK_SEL;
+ 		}
+@@ -209,6 +236,10 @@ static int stm32mp1_set_mode(struct plat
+ 		return -EINVAL;
+ 	}
+ 
++	ret = stm32mp1_validate_ethck_rate(plat_dat);
++	if (ret)
++		return ret;
++
+ 	/* Need to update PMCCLRR (clear register) */
+ 	regmap_write(dwmac->regmap, reg + SYSCFG_PMCCLRR_OFFSET,
+ 		     dwmac->ops->syscfg_eth_mask);
diff --git a/target/linux/stm32/patches-6.6/004-net-stmmac-dwmac-stm32-Separate-out-external-clock-s.patch b/target/linux/stm32/patches-6.6/004-net-stmmac-dwmac-stm32-Separate-out-external-clock-s.patch
new file mode 100644
index 0000000000..2e8f76158d
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/004-net-stmmac-dwmac-stm32-Separate-out-external-clock-s.patch
@@ -0,0 +1,132 @@
+From d23ba64e733580db2809e6f6dbf6f093fbd1b91b Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex at denx.de>
+Date: Tue, 11 Jun 2024 10:36:01 +0200
+Subject: [PATCH 4/8] net: stmmac: dwmac-stm32: Separate out external clock
+ selector
+
+Pull the external clock selector into a separate function, to avoid
+conflating it with external clock rate validation and clock mux
+register configuration. This should make the code easier to read and
+understand.
+
+The dwmac->enable_eth_ck variable in the end indicates whether the MAC
+clock are supplied by external oscillator (true) or internal RCC clock
+IP (false). The dwmac->enable_eth_ck value is set based on multiple DT
+properties, some of them deprecated, some of them specific to bus mode.
+
+The following DT properties and variables are taken into account. In
+each case, if the property is present or true, MAC clock is supplied
+by external oscillator.
+- "st,ext-phyclk", assigned to variable dwmac->ext_phyclk
+  - Used in any mode (MII/RMII/GMII/RGMII)
+  - The only non-deprecated DT property of the three
+- "st,eth-clk-sel", assigned to variable dwmac->eth_clk_sel_reg
+  - Valid only in GMII/RGMII mode
+  - Deprecated property, backward compatibility only
+- "st,eth-ref-clk-sel", assigned to variable dwmac->eth_ref_clk_sel_reg
+  - Valid only in RMII mode
+  - Deprecated property, backward compatibility only
+
+The stm32mp1_select_ethck_external() function handles the aforementioned
+DT properties and sets dwmac->enable_eth_ck accordingly.
+
+The stm32mp1_set_mode() is adjusted to call stm32mp1_select_ethck_external()
+first and then only use dwmac->enable_eth_ck to determine hardware clock mux
+settings.
+
+No functional change intended.
+
+Signed-off-by: Marek Vasut <marex at denx.de>
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Signed-off-by: Paolo Abeni <pabeni at redhat.com>
+---
+ .../net/ethernet/stmicro/stmmac/dwmac-stm32.c | 50 ++++++++++++++-----
+ 1 file changed, 38 insertions(+), 12 deletions(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
+@@ -157,6 +157,37 @@ static int stm32_dwmac_init(struct plat_
+ 	return stm32_dwmac_clk_enable(dwmac, resume);
+ }
+ 
++static int stm32mp1_select_ethck_external(struct plat_stmmacenet_data *plat_dat)
++{
++	struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
++
++	switch (plat_dat->mac_interface) {
++	case PHY_INTERFACE_MODE_MII:
++		dwmac->enable_eth_ck = dwmac->ext_phyclk;
++		return 0;
++	case PHY_INTERFACE_MODE_GMII:
++		dwmac->enable_eth_ck = dwmac->eth_clk_sel_reg ||
++				       dwmac->ext_phyclk;
++		return 0;
++	case PHY_INTERFACE_MODE_RMII:
++		dwmac->enable_eth_ck = dwmac->eth_ref_clk_sel_reg ||
++				       dwmac->ext_phyclk;
++		return 0;
++	case PHY_INTERFACE_MODE_RGMII:
++	case PHY_INTERFACE_MODE_RGMII_ID:
++	case PHY_INTERFACE_MODE_RGMII_RXID:
++	case PHY_INTERFACE_MODE_RGMII_TXID:
++		dwmac->enable_eth_ck = dwmac->eth_clk_sel_reg ||
++				       dwmac->ext_phyclk;
++		return 0;
++	default:
++		dwmac->enable_eth_ck = false;
++		dev_err(dwmac->dev, "Mode %s not supported",
++			phy_modes(plat_dat->mac_interface));
++		return -EINVAL;
++	}
++}
++
+ static int stm32mp1_validate_ethck_rate(struct plat_stmmacenet_data *plat_dat)
+ {
+ 	struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
+@@ -194,28 +225,25 @@ static int stm32mp1_set_mode(struct plat
+ 	u32 reg = dwmac->mode_reg;
+ 	int val, ret;
+ 
+-	dwmac->enable_eth_ck = false;
++	ret = stm32mp1_select_ethck_external(plat_dat);
++	if (ret)
++		return ret;
++
+ 	switch (plat_dat->mac_interface) {
+ 	case PHY_INTERFACE_MODE_MII:
+-		if (dwmac->ext_phyclk)
+-			dwmac->enable_eth_ck = true;
+ 		val = SYSCFG_PMCR_ETH_SEL_MII;
+ 		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_MII\n");
+ 		break;
+ 	case PHY_INTERFACE_MODE_GMII:
+ 		val = SYSCFG_PMCR_ETH_SEL_GMII;
+-		if (dwmac->eth_clk_sel_reg || dwmac->ext_phyclk) {
+-			dwmac->enable_eth_ck = true;
++		if (dwmac->enable_eth_ck)
+ 			val |= SYSCFG_PMCR_ETH_CLK_SEL;
+-		}
+ 		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_GMII\n");
+ 		break;
+ 	case PHY_INTERFACE_MODE_RMII:
+ 		val = SYSCFG_PMCR_ETH_SEL_RMII;
+-		if (dwmac->eth_ref_clk_sel_reg || dwmac->ext_phyclk) {
+-			dwmac->enable_eth_ck = true;
++		if (dwmac->enable_eth_ck)
+ 			val |= SYSCFG_PMCR_ETH_REF_CLK_SEL;
+-		}
+ 		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_RMII\n");
+ 		break;
+ 	case PHY_INTERFACE_MODE_RGMII:
+@@ -223,10 +251,8 @@ static int stm32mp1_set_mode(struct plat
+ 	case PHY_INTERFACE_MODE_RGMII_RXID:
+ 	case PHY_INTERFACE_MODE_RGMII_TXID:
+ 		val = SYSCFG_PMCR_ETH_SEL_RGMII;
+-		if (dwmac->eth_clk_sel_reg || dwmac->ext_phyclk) {
+-			dwmac->enable_eth_ck = true;
++		if (dwmac->enable_eth_ck)
+ 			val |= SYSCFG_PMCR_ETH_CLK_SEL;
+-		}
+ 		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_RGMII\n");
+ 		break;
+ 	default:
diff --git a/target/linux/stm32/patches-6.6/005-net-stmmac-dwmac-stm32-Extract-PMCR-configuration.patch b/target/linux/stm32/patches-6.6/005-net-stmmac-dwmac-stm32-Extract-PMCR-configuration.patch
new file mode 100644
index 0000000000..b28884df58
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/005-net-stmmac-dwmac-stm32-Extract-PMCR-configuration.patch
@@ -0,0 +1,71 @@
+From bb7ab910631ee0ade0758a3c4aa8dadc3b6934b6 Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex at denx.de>
+Date: Tue, 11 Jun 2024 10:36:02 +0200
+Subject: [PATCH 5/8] net: stmmac: dwmac-stm32: Extract PMCR configuration
+
+Pull the PMCR clock mux configuration into a separate function. This is
+the final change of three, which moves external clock rate validation,
+external clock selector decoding, and clock mux configuration into
+separate functions. This should make the code easier to understand.
+No functional change intended.
+
+Signed-off-by: Marek Vasut <marex at denx.de>
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Signed-off-by: Paolo Abeni <pabeni at redhat.com>
+---
+ .../net/ethernet/stmicro/stmmac/dwmac-stm32.c | 27 ++++++++++++-------
+ 1 file changed, 17 insertions(+), 10 deletions(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
+@@ -219,15 +219,11 @@ static int stm32mp1_validate_ethck_rate(
+ 	return -EINVAL;
+ }
+ 
+-static int stm32mp1_set_mode(struct plat_stmmacenet_data *plat_dat)
++static int stm32mp1_configure_pmcr(struct plat_stmmacenet_data *plat_dat)
+ {
+ 	struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
+ 	u32 reg = dwmac->mode_reg;
+-	int val, ret;
+-
+-	ret = stm32mp1_select_ethck_external(plat_dat);
+-	if (ret)
+-		return ret;
++	int val;
+ 
+ 	switch (plat_dat->mac_interface) {
+ 	case PHY_INTERFACE_MODE_MII:
+@@ -262,10 +258,6 @@ static int stm32mp1_set_mode(struct plat
+ 		return -EINVAL;
+ 	}
+ 
+-	ret = stm32mp1_validate_ethck_rate(plat_dat);
+-	if (ret)
+-		return ret;
+-
+ 	/* Need to update PMCCLRR (clear register) */
+ 	regmap_write(dwmac->regmap, reg + SYSCFG_PMCCLRR_OFFSET,
+ 		     dwmac->ops->syscfg_eth_mask);
+@@ -275,6 +267,21 @@ static int stm32mp1_set_mode(struct plat
+ 				 dwmac->ops->syscfg_eth_mask, val);
+ }
+ 
++static int stm32mp1_set_mode(struct plat_stmmacenet_data *plat_dat)
++{
++	int ret;
++
++	ret = stm32mp1_select_ethck_external(plat_dat);
++	if (ret)
++		return ret;
++
++	ret = stm32mp1_validate_ethck_rate(plat_dat);
++	if (ret)
++		return ret;
++
++	return stm32mp1_configure_pmcr(plat_dat);
++}
++
+ static int stm32mcu_set_mode(struct plat_stmmacenet_data *plat_dat)
+ {
+ 	struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
diff --git a/target/linux/stm32/patches-6.6/006-net-stmmac-dwmac-stm32-Clean-up-the-debug-prints.patch b/target/linux/stm32/patches-6.6/006-net-stmmac-dwmac-stm32-Clean-up-the-debug-prints.patch
new file mode 100644
index 0000000000..45050ae077
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/006-net-stmmac-dwmac-stm32-Clean-up-the-debug-prints.patch
@@ -0,0 +1,83 @@
+From 0476213f50452446fedd1a918b7bc72eb39a4c46 Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex at denx.de>
+Date: Tue, 11 Jun 2024 10:36:03 +0200
+Subject: [PATCH 6/8] net: stmmac: dwmac-stm32: Clean up the debug prints
+
+Use dev_err()/dev_dbg() and phy_modes() to print PHY mode instead of
+pr_debug() and hand-written PHY mode decoding. This way, each debug
+print has associated device with it and duplicated mode decoding is
+removed.
+
+Signed-off-by: Marek Vasut <marex at denx.de>
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Signed-off-by: Paolo Abeni <pabeni at redhat.com>
+---
+ .../net/ethernet/stmicro/stmmac/dwmac-stm32.c  | 18 ++++++++----------
+ 1 file changed, 8 insertions(+), 10 deletions(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
+@@ -228,19 +228,16 @@ static int stm32mp1_configure_pmcr(struc
+ 	switch (plat_dat->mac_interface) {
+ 	case PHY_INTERFACE_MODE_MII:
+ 		val = SYSCFG_PMCR_ETH_SEL_MII;
+-		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_MII\n");
+ 		break;
+ 	case PHY_INTERFACE_MODE_GMII:
+ 		val = SYSCFG_PMCR_ETH_SEL_GMII;
+ 		if (dwmac->enable_eth_ck)
+ 			val |= SYSCFG_PMCR_ETH_CLK_SEL;
+-		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_GMII\n");
+ 		break;
+ 	case PHY_INTERFACE_MODE_RMII:
+ 		val = SYSCFG_PMCR_ETH_SEL_RMII;
+ 		if (dwmac->enable_eth_ck)
+ 			val |= SYSCFG_PMCR_ETH_REF_CLK_SEL;
+-		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_RMII\n");
+ 		break;
+ 	case PHY_INTERFACE_MODE_RGMII:
+ 	case PHY_INTERFACE_MODE_RGMII_ID:
+@@ -249,15 +246,16 @@ static int stm32mp1_configure_pmcr(struc
+ 		val = SYSCFG_PMCR_ETH_SEL_RGMII;
+ 		if (dwmac->enable_eth_ck)
+ 			val |= SYSCFG_PMCR_ETH_CLK_SEL;
+-		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_RGMII\n");
+ 		break;
+ 	default:
+-		pr_debug("SYSCFG init :  Do not manage %d interface\n",
+-			 plat_dat->mac_interface);
++		dev_err(dwmac->dev, "Mode %s not supported",
++			phy_modes(plat_dat->mac_interface));
+ 		/* Do not manage others interfaces */
+ 		return -EINVAL;
+ 	}
+ 
++	dev_dbg(dwmac->dev, "Mode %s", phy_modes(plat_dat->mac_interface));
++
+ 	/* Need to update PMCCLRR (clear register) */
+ 	regmap_write(dwmac->regmap, reg + SYSCFG_PMCCLRR_OFFSET,
+ 		     dwmac->ops->syscfg_eth_mask);
+@@ -291,19 +289,19 @@ static int stm32mcu_set_mode(struct plat
+ 	switch (plat_dat->mac_interface) {
+ 	case PHY_INTERFACE_MODE_MII:
+ 		val = SYSCFG_MCU_ETH_SEL_MII;
+-		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_MII\n");
+ 		break;
+ 	case PHY_INTERFACE_MODE_RMII:
+ 		val = SYSCFG_MCU_ETH_SEL_RMII;
+-		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_RMII\n");
+ 		break;
+ 	default:
+-		pr_debug("SYSCFG init :  Do not manage %d interface\n",
+-			 plat_dat->mac_interface);
++		dev_err(dwmac->dev, "Mode %s not supported",
++			phy_modes(plat_dat->mac_interface));
+ 		/* Do not manage others interfaces */
+ 		return -EINVAL;
+ 	}
+ 
++	dev_dbg(dwmac->dev, "Mode %s", phy_modes(plat_dat->mac_interface));
++
+ 	return regmap_update_bits(dwmac->regmap, reg,
+ 				 dwmac->ops->syscfg_eth_mask, val << 23);
+ }
diff --git a/target/linux/stm32/patches-6.6/007-net-stmmac-dwmac-stm32-Mask-support-for-PMCR-configu.patch b/target/linux/stm32/patches-6.6/007-net-stmmac-dwmac-stm32-Mask-support-for-PMCR-configu.patch
new file mode 100644
index 0000000000..336378abb3
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/007-net-stmmac-dwmac-stm32-Mask-support-for-PMCR-configu.patch
@@ -0,0 +1,101 @@
+From 796669a85c5c4fa80cb8790e9adcccbbd99750e8 Mon Sep 17 00:00:00 2001
+From: Christophe Roullier <christophe.roullier at foss.st.com>
+Date: Tue, 11 Jun 2024 10:36:05 +0200
+Subject: [PATCH 7/8] net: stmmac: dwmac-stm32: Mask support for PMCR
+ configuration
+
+Add possibility to have second argument in syscon property to manage
+mask. This mask will be used to address right BITFIELDS of PMCR register.
+
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Reviewed-by: Marek Vasut <marex at denx.de>
+Signed-off-by: Paolo Abeni <pabeni at redhat.com>
+---
+ .../net/ethernet/stmicro/stmmac/dwmac-stm32.c | 28 +++++++++++++------
+ 1 file changed, 19 insertions(+), 9 deletions(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
+@@ -90,6 +90,7 @@ struct stm32_dwmac {
+ 	int eth_ref_clk_sel_reg;
+ 	int irq_pwr_wakeup;
+ 	u32 mode_reg;		 /* MAC glue-logic mode register */
++	u32 mode_mask;
+ 	struct regmap *regmap;
+ 	u32 speed;
+ 	const struct stm32_ops *ops;
+@@ -102,8 +103,8 @@ struct stm32_ops {
+ 	void (*resume)(struct stm32_dwmac *dwmac);
+ 	int (*parse_data)(struct stm32_dwmac *dwmac,
+ 			  struct device *dev);
+-	u32 syscfg_eth_mask;
+ 	bool clk_rx_enable_in_suspend;
++	u32 syscfg_clr_off;
+ };
+ 
+ static int stm32_dwmac_clk_enable(struct stm32_dwmac *dwmac, bool resume)
+@@ -256,13 +257,16 @@ static int stm32mp1_configure_pmcr(struc
+ 
+ 	dev_dbg(dwmac->dev, "Mode %s", phy_modes(plat_dat->mac_interface));
+ 
++	/* Shift value at correct ethernet MAC offset in SYSCFG_PMCSETR */
++	val <<= ffs(dwmac->mode_mask) - ffs(SYSCFG_MP1_ETH_MASK);
++
+ 	/* Need to update PMCCLRR (clear register) */
+-	regmap_write(dwmac->regmap, reg + SYSCFG_PMCCLRR_OFFSET,
+-		     dwmac->ops->syscfg_eth_mask);
++	regmap_write(dwmac->regmap, dwmac->ops->syscfg_clr_off,
++		     dwmac->mode_mask);
+ 
+ 	/* Update PMCSETR (set register) */
+ 	return regmap_update_bits(dwmac->regmap, reg,
+-				 dwmac->ops->syscfg_eth_mask, val);
++				 dwmac->mode_mask, val);
+ }
+ 
+ static int stm32mp1_set_mode(struct plat_stmmacenet_data *plat_dat)
+@@ -303,7 +307,7 @@ static int stm32mcu_set_mode(struct plat
+ 	dev_dbg(dwmac->dev, "Mode %s", phy_modes(plat_dat->mac_interface));
+ 
+ 	return regmap_update_bits(dwmac->regmap, reg,
+-				 dwmac->ops->syscfg_eth_mask, val << 23);
++				 SYSCFG_MCU_ETH_MASK, val << 23);
+ }
+ 
+ static void stm32_dwmac_clk_disable(struct stm32_dwmac *dwmac, bool suspend)
+@@ -348,8 +352,15 @@ static int stm32_dwmac_parse_data(struct
+ 		return PTR_ERR(dwmac->regmap);
+ 
+ 	err = of_property_read_u32_index(np, "st,syscon", 1, &dwmac->mode_reg);
+-	if (err)
++	if (err) {
+ 		dev_err(dev, "Can't get sysconfig mode offset (%d)\n", err);
++		return err;
++	}
++
++	dwmac->mode_mask = SYSCFG_MP1_ETH_MASK;
++	err = of_property_read_u32_index(np, "st,syscon", 2, &dwmac->mode_mask);
++	if (err)
++		dev_dbg(dev, "Warning sysconfig register mask not set\n");
+ 
+ 	return err;
+ }
+@@ -540,8 +551,7 @@ static SIMPLE_DEV_PM_OPS(stm32_dwmac_pm_
+ 	stm32_dwmac_suspend, stm32_dwmac_resume);
+ 
+ static struct stm32_ops stm32mcu_dwmac_data = {
+-	.set_mode = stm32mcu_set_mode,
+-	.syscfg_eth_mask = SYSCFG_MCU_ETH_MASK
++	.set_mode = stm32mcu_set_mode
+ };
+ 
+ static struct stm32_ops stm32mp1_dwmac_data = {
+@@ -549,7 +559,7 @@ static struct stm32_ops stm32mp1_dwmac_d
+ 	.suspend = stm32mp1_suspend,
+ 	.resume = stm32mp1_resume,
+ 	.parse_data = stm32mp1_parse_data,
+-	.syscfg_eth_mask = SYSCFG_MP1_ETH_MASK,
++	.syscfg_clr_off = 0x44,
+ 	.clk_rx_enable_in_suspend = true
+ };
+ 
diff --git a/target/linux/stm32/patches-6.6/008-net-stmmac-dwmac-stm32-add-management-of-stm32mp13-f.patch b/target/linux/stm32/patches-6.6/008-net-stmmac-dwmac-stm32-add-management-of-stm32mp13-f.patch
new file mode 100644
index 0000000000..c2526019e2
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/008-net-stmmac-dwmac-stm32-add-management-of-stm32mp13-f.patch
@@ -0,0 +1,94 @@
+From 8d28aaf5d5dbfd1f452286fa6ac571df0bcf00ad Mon Sep 17 00:00:00 2001
+From: Christophe Roullier <christophe.roullier at foss.st.com>
+Date: Tue, 11 Jun 2024 10:36:06 +0200
+Subject: [PATCH 8/8] net: stmmac: dwmac-stm32: add management of stm32mp13 for
+ stm32
+
+Add Ethernet support for STM32MP13.
+STM32MP13 is STM32 SOC with 2 GMACs instances.
+GMAC IP version is SNPS 4.20.
+GMAC IP configure with 1 RX and 1 TX queue.
+DMA HW capability register supported
+RX Checksum Offload Engine supported
+TX Checksum insertion supported
+Wake-Up On Lan supported
+TSO supported
+
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Reviewed-by: Marek Vasut <marex at denx.de>
+Signed-off-by: Paolo Abeni <pabeni at redhat.com>
+---
+ .../net/ethernet/stmicro/stmmac/dwmac-stm32.c | 32 ++++++++++++++++---
+ 1 file changed, 28 insertions(+), 4 deletions(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
+@@ -104,6 +104,7 @@ struct stm32_ops {
+ 	int (*parse_data)(struct stm32_dwmac *dwmac,
+ 			  struct device *dev);
+ 	bool clk_rx_enable_in_suspend;
++	bool is_mp13;
+ 	u32 syscfg_clr_off;
+ };
+ 
+@@ -224,11 +225,18 @@ static int stm32mp1_configure_pmcr(struc
+ {
+ 	struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
+ 	u32 reg = dwmac->mode_reg;
+-	int val;
++	int val = 0;
+ 
+ 	switch (plat_dat->mac_interface) {
+ 	case PHY_INTERFACE_MODE_MII:
+-		val = SYSCFG_PMCR_ETH_SEL_MII;
++		/*
++		 * STM32MP15xx supports both MII and GMII, STM32MP13xx MII only.
++		 * SYSCFG_PMCSETR ETH_SELMII is present only on STM32MP15xx and
++		 * acts as a selector between 0:GMII and 1:MII. As STM32MP13xx
++		 * supports only MII, ETH_SELMII is not present.
++		 */
++		if (!dwmac->ops->is_mp13)  /* Select MII mode on STM32MP15xx */
++			val |= SYSCFG_PMCR_ETH_SEL_MII;
+ 		break;
+ 	case PHY_INTERFACE_MODE_GMII:
+ 		val = SYSCFG_PMCR_ETH_SEL_GMII;
+@@ -359,8 +367,12 @@ static int stm32_dwmac_parse_data(struct
+ 
+ 	dwmac->mode_mask = SYSCFG_MP1_ETH_MASK;
+ 	err = of_property_read_u32_index(np, "st,syscon", 2, &dwmac->mode_mask);
+-	if (err)
+-		dev_dbg(dev, "Warning sysconfig register mask not set\n");
++	if (err) {
++		if (dwmac->ops->is_mp13)
++			dev_err(dev, "Sysconfig register mask must be set (%d)\n", err);
++		else
++			dev_dbg(dev, "Warning sysconfig register mask not set\n");
++	}
+ 
+ 	return err;
+ }
+@@ -560,12 +572,24 @@ static struct stm32_ops stm32mp1_dwmac_d
+ 	.resume = stm32mp1_resume,
+ 	.parse_data = stm32mp1_parse_data,
+ 	.syscfg_clr_off = 0x44,
++	.is_mp13 = false,
++	.clk_rx_enable_in_suspend = true
++};
++
++static struct stm32_ops stm32mp13_dwmac_data = {
++	.set_mode = stm32mp1_set_mode,
++	.suspend = stm32mp1_suspend,
++	.resume = stm32mp1_resume,
++	.parse_data = stm32mp1_parse_data,
++	.syscfg_clr_off = 0x08,
++	.is_mp13 = true,
+ 	.clk_rx_enable_in_suspend = true
+ };
+ 
+ static const struct of_device_id stm32_dwmac_match[] = {
+ 	{ .compatible = "st,stm32-dwmac", .data = &stm32mcu_dwmac_data},
+ 	{ .compatible = "st,stm32mp1-dwmac", .data = &stm32mp1_dwmac_data},
++	{ .compatible = "st,stm32mp13-dwmac", .data = &stm32mp13_dwmac_data},
+ 	{ }
+ };
+ MODULE_DEVICE_TABLE(of, stm32_dwmac_match);
diff --git a/target/linux/stm32/patches-6.6/009-ARM-dts-stm32-add-ETZPC-as-a-system-bus-for-STM32MP1.patch b/target/linux/stm32/patches-6.6/009-ARM-dts-stm32-add-ETZPC-as-a-system-bus-for-STM32MP1.patch
new file mode 100644
index 0000000000..f00001bc47
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/009-ARM-dts-stm32-add-ETZPC-as-a-system-bus-for-STM32MP1.patch
@@ -0,0 +1,1192 @@
+From d788961c5b25d9d822c4230bfbc536a6736b91ff Mon Sep 17 00:00:00 2001
+From: Gatien Chevallier <gatien.chevallier at foss.st.com>
+Date: Fri, 5 Jan 2024 14:04:03 +0100
+Subject: [PATCH 1/5] ARM: dts: stm32: add ETZPC as a system bus for STM32MP13x
+ boards
+
+ETZPC is a firewall controller. Put all peripherals filtered by the
+ETZPC as ETZPC subnodes and keep the "simple-bus" compatible for
+backward compatibility.
+
+Signed-off-by: Gatien Chevallier <gatien.chevallier at foss.st.com>
+Signed-off-by: Alexandre Torgue <alexandre.torgue at foss.st.com>
+---
+ arch/arm/boot/dts/st/stm32mp131.dtsi  | 1020 +++++++++++++------------
+ arch/arm/boot/dts/st/stm32mp133.dtsi  |   50 +-
+ arch/arm/boot/dts/st/stm32mp13xc.dtsi |   18 +-
+ arch/arm/boot/dts/st/stm32mp13xf.dtsi |   18 +-
+ 4 files changed, 569 insertions(+), 537 deletions(-)
+
+--- a/arch/arm/boot/dts/st/stm32mp131.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp131.dtsi
+@@ -745,340 +745,6 @@
+ 			dma-channels = <16>;
+ 		};
+ 
+-		adc_2: adc at 48004000 {
+-			compatible = "st,stm32mp13-adc-core";
+-			reg = <0x48004000 0x400>;
+-			interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc ADC2>, <&rcc ADC2_K>;
+-			clock-names = "bus", "adc";
+-			interrupt-controller;
+-			#interrupt-cells = <1>;
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			status = "disabled";
+-
+-			adc2: adc at 0 {
+-				compatible = "st,stm32mp13-adc";
+-				#io-channel-cells = <1>;
+-				#address-cells = <1>;
+-				#size-cells = <0>;
+-				reg = <0x0>;
+-				interrupt-parent = <&adc_2>;
+-				interrupts = <0>;
+-				dmas = <&dmamux1 10 0x400 0x80000001>;
+-				dma-names = "rx";
+-				status = "disabled";
+-
+-				channel at 13 {
+-					reg = <13>;
+-					label = "vrefint";
+-				};
+-				channel at 14 {
+-					reg = <14>;
+-					label = "vddcore";
+-				};
+-				channel at 16 {
+-					reg = <16>;
+-					label = "vddcpu";
+-				};
+-				channel at 17 {
+-					reg = <17>;
+-					label = "vddq_ddr";
+-				};
+-			};
+-		};
+-
+-		usbotg_hs: usb at 49000000 {
+-			compatible = "st,stm32mp15-hsotg", "snps,dwc2";
+-			reg = <0x49000000 0x40000>;
+-			clocks = <&rcc USBO_K>;
+-			clock-names = "otg";
+-			resets = <&rcc USBO_R>;
+-			reset-names = "dwc2";
+-			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+-			g-rx-fifo-size = <512>;
+-			g-np-tx-fifo-size = <32>;
+-			g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
+-			dr_mode = "otg";
+-			otg-rev = <0x200>;
+-			usb33d-supply = <&scmi_usb33>;
+-			status = "disabled";
+-		};
+-
+-		usart1: serial at 4c000000 {
+-			compatible = "st,stm32h7-uart";
+-			reg = <0x4c000000 0x400>;
+-			interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc USART1_K>;
+-			resets = <&rcc USART1_R>;
+-			wakeup-source;
+-			dmas = <&dmamux1 41 0x400 0x5>,
+-			       <&dmamux1 42 0x400 0x1>;
+-			dma-names = "rx", "tx";
+-			status = "disabled";
+-		};
+-
+-		usart2: serial at 4c001000 {
+-			compatible = "st,stm32h7-uart";
+-			reg = <0x4c001000 0x400>;
+-			interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc USART2_K>;
+-			resets = <&rcc USART2_R>;
+-			wakeup-source;
+-			dmas = <&dmamux1 43 0x400 0x5>,
+-			       <&dmamux1 44 0x400 0x1>;
+-			dma-names = "rx", "tx";
+-			status = "disabled";
+-		};
+-
+-		i2s4: audio-controller at 4c002000 {
+-			compatible = "st,stm32h7-i2s";
+-			reg = <0x4c002000 0x400>;
+-			#sound-dai-cells = <0>;
+-			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+-			dmas = <&dmamux1 83 0x400 0x01>,
+-			       <&dmamux1 84 0x400 0x01>;
+-			dma-names = "rx", "tx";
+-			status = "disabled";
+-		};
+-
+-		spi4: spi at 4c002000 {
+-			compatible = "st,stm32h7-spi";
+-			reg = <0x4c002000 0x400>;
+-			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc SPI4_K>;
+-			resets = <&rcc SPI4_R>;
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			dmas = <&dmamux1 83 0x400 0x01>,
+-			       <&dmamux1 84 0x400 0x01>;
+-			dma-names = "rx", "tx";
+-			status = "disabled";
+-		};
+-
+-		spi5: spi at 4c003000 {
+-			compatible = "st,stm32h7-spi";
+-			reg = <0x4c003000 0x400>;
+-			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc SPI5_K>;
+-			resets = <&rcc SPI5_R>;
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			dmas = <&dmamux1 85 0x400 0x01>,
+-			       <&dmamux1 86 0x400 0x01>;
+-			dma-names = "rx", "tx";
+-			status = "disabled";
+-		};
+-
+-		i2c3: i2c at 4c004000 {
+-			compatible = "st,stm32mp13-i2c";
+-			reg = <0x4c004000 0x400>;
+-			interrupt-names = "event", "error";
+-			interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
+-				     <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc I2C3_K>;
+-			resets = <&rcc I2C3_R>;
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			dmas = <&dmamux1 73 0x400 0x1>,
+-			       <&dmamux1 74 0x400 0x1>;
+-			dma-names = "rx", "tx";
+-			st,syscfg-fmp = <&syscfg 0x4 0x4>;
+-			i2c-analog-filter;
+-			status = "disabled";
+-		};
+-
+-		i2c4: i2c at 4c005000 {
+-			compatible = "st,stm32mp13-i2c";
+-			reg = <0x4c005000 0x400>;
+-			interrupt-names = "event", "error";
+-			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
+-				     <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc I2C4_K>;
+-			resets = <&rcc I2C4_R>;
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			dmas = <&dmamux1 75 0x400 0x1>,
+-			       <&dmamux1 76 0x400 0x1>;
+-			dma-names = "rx", "tx";
+-			st,syscfg-fmp = <&syscfg 0x4 0x8>;
+-			i2c-analog-filter;
+-			status = "disabled";
+-		};
+-
+-		i2c5: i2c at 4c006000 {
+-			compatible = "st,stm32mp13-i2c";
+-			reg = <0x4c006000 0x400>;
+-			interrupt-names = "event", "error";
+-			interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+-				     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc I2C5_K>;
+-			resets = <&rcc I2C5_R>;
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			dmas = <&dmamux1 115 0x400 0x1>,
+-			       <&dmamux1 116 0x400 0x1>;
+-			dma-names = "rx", "tx";
+-			st,syscfg-fmp = <&syscfg 0x4 0x10>;
+-			i2c-analog-filter;
+-			status = "disabled";
+-		};
+-
+-		timers12: timer at 4c007000 {
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			compatible = "st,stm32-timers";
+-			reg = <0x4c007000 0x400>;
+-			interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
+-			interrupt-names = "global";
+-			clocks = <&rcc TIM12_K>;
+-			clock-names = "int";
+-			status = "disabled";
+-
+-			pwm {
+-				compatible = "st,stm32-pwm";
+-				#pwm-cells = <3>;
+-				status = "disabled";
+-			};
+-
+-			timer at 11 {
+-				compatible = "st,stm32h7-timer-trigger";
+-				reg = <11>;
+-				status = "disabled";
+-			};
+-		};
+-
+-		timers13: timer at 4c008000 {
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			compatible = "st,stm32-timers";
+-			reg = <0x4c008000 0x400>;
+-			interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
+-			interrupt-names = "global";
+-			clocks = <&rcc TIM13_K>;
+-			clock-names = "int";
+-			status = "disabled";
+-
+-			pwm {
+-				compatible = "st,stm32-pwm";
+-				#pwm-cells = <3>;
+-				status = "disabled";
+-			};
+-
+-			timer at 12 {
+-				compatible = "st,stm32h7-timer-trigger";
+-				reg = <12>;
+-				status = "disabled";
+-			};
+-		};
+-
+-		timers14: timer at 4c009000 {
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			compatible = "st,stm32-timers";
+-			reg = <0x4c009000 0x400>;
+-			interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
+-			interrupt-names = "global";
+-			clocks = <&rcc TIM14_K>;
+-			clock-names = "int";
+-			status = "disabled";
+-
+-			pwm {
+-				compatible = "st,stm32-pwm";
+-				#pwm-cells = <3>;
+-				status = "disabled";
+-			};
+-
+-			timer at 13 {
+-				compatible = "st,stm32h7-timer-trigger";
+-				reg = <13>;
+-				status = "disabled";
+-			};
+-		};
+-
+-		timers15: timer at 4c00a000 {
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			compatible = "st,stm32-timers";
+-			reg = <0x4c00a000 0x400>;
+-			interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
+-			interrupt-names = "global";
+-			clocks = <&rcc TIM15_K>;
+-			clock-names = "int";
+-			dmas = <&dmamux1 105 0x400 0x1>,
+-			       <&dmamux1 106 0x400 0x1>,
+-			       <&dmamux1 107 0x400 0x1>,
+-			       <&dmamux1 108 0x400 0x1>;
+-			dma-names = "ch1", "up", "trig", "com";
+-			status = "disabled";
+-
+-			pwm {
+-				compatible = "st,stm32-pwm";
+-				#pwm-cells = <3>;
+-				status = "disabled";
+-			};
+-
+-			timer at 14 {
+-				compatible = "st,stm32h7-timer-trigger";
+-				reg = <14>;
+-				status = "disabled";
+-			};
+-		};
+-
+-		timers16: timer at 4c00b000 {
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			compatible = "st,stm32-timers";
+-			reg = <0x4c00b000 0x400>;
+-			interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+-			interrupt-names = "global";
+-			clocks = <&rcc TIM16_K>;
+-			clock-names = "int";
+-			dmas = <&dmamux1 109 0x400 0x1>,
+-			       <&dmamux1 110 0x400 0x1>;
+-			dma-names = "ch1", "up";
+-			status = "disabled";
+-
+-			pwm {
+-				compatible = "st,stm32-pwm";
+-				#pwm-cells = <3>;
+-				status = "disabled";
+-			};
+-
+-			timer at 15 {
+-				compatible = "st,stm32h7-timer-trigger";
+-				reg = <15>;
+-				status = "disabled";
+-			};
+-		};
+-
+-		timers17: timer at 4c00c000 {
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			compatible = "st,stm32-timers";
+-			reg = <0x4c00c000 0x400>;
+-			interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+-			interrupt-names = "global";
+-			clocks = <&rcc TIM17_K>;
+-			clock-names = "int";
+-			dmas = <&dmamux1 111 0x400 0x1>,
+-			       <&dmamux1 112 0x400 0x1>;
+-			dma-names = "ch1", "up";
+-			status = "disabled";
+-
+-			pwm {
+-				compatible = "st,stm32-pwm";
+-				#pwm-cells = <3>;
+-				status = "disabled";
+-			};
+-
+-			timer at 16 {
+-				compatible = "st,stm32h7-timer-trigger";
+-				reg = <16>;
+-				status = "disabled";
+-			};
+-		};
+-
+ 		rcc: rcc at 50000000 {
+ 			compatible = "st,stm32mp13-rcc", "syscon";
+ 			reg = <0x50000000 0x1000>;
+@@ -1105,69 +771,6 @@
+ 			clocks = <&rcc SYSCFG>;
+ 		};
+ 
+-		lptimer2: timer at 50021000 {
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			compatible = "st,stm32-lptimer";
+-			reg = <0x50021000 0x400>;
+-			interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc LPTIM2_K>;
+-			clock-names = "mux";
+-			wakeup-source;
+-			status = "disabled";
+-
+-			pwm {
+-				compatible = "st,stm32-pwm-lp";
+-				#pwm-cells = <3>;
+-				status = "disabled";
+-			};
+-
+-			trigger at 1 {
+-				compatible = "st,stm32-lptimer-trigger";
+-				reg = <1>;
+-				status = "disabled";
+-			};
+-
+-			counter {
+-				compatible = "st,stm32-lptimer-counter";
+-				status = "disabled";
+-			};
+-
+-			timer {
+-				compatible = "st,stm32-lptimer-timer";
+-				status = "disabled";
+-			};
+-		};
+-
+-		lptimer3: timer at 50022000 {
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			compatible = "st,stm32-lptimer";
+-			reg = <0x50022000 0x400>;
+-			interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc LPTIM3_K>;
+-			clock-names = "mux";
+-			wakeup-source;
+-			status = "disabled";
+-
+-			pwm {
+-				compatible = "st,stm32-pwm-lp";
+-				#pwm-cells = <3>;
+-				status = "disabled";
+-			};
+-
+-			trigger at 2 {
+-				compatible = "st,stm32-lptimer-trigger";
+-				reg = <2>;
+-				status = "disabled";
+-			};
+-
+-			timer {
+-				compatible = "st,stm32-lptimer-timer";
+-				status = "disabled";
+-			};
+-		};
+-
+ 		lptimer4: timer at 50023000 {
+ 			compatible = "st,stm32-lptimer";
+ 			reg = <0x50023000 0x400>;
+@@ -1220,79 +823,10 @@
+ 			dma-requests = <48>;
+ 		};
+ 
+-		fmc: memory-controller at 58002000 {
+-			compatible = "st,stm32mp1-fmc2-ebi";
+-			reg = <0x58002000 0x1000>;
+-			ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
+-				 <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
+-				 <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
+-				 <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
+-				 <4 0 0x80000000 0x10000000>; /* NAND */
+-			#address-cells = <2>;
+-			#size-cells = <1>;
+-			clocks = <&rcc FMC_K>;
+-			resets = <&rcc FMC_R>;
+-			status = "disabled";
+-
+-			nand-controller at 4,0 {
+-				compatible = "st,stm32mp1-fmc2-nfc";
+-				reg = <4 0x00000000 0x1000>,
+-				      <4 0x08010000 0x1000>,
+-				      <4 0x08020000 0x1000>,
+-				      <4 0x01000000 0x1000>,
+-				      <4 0x09010000 0x1000>,
+-				      <4 0x09020000 0x1000>;
+-				#address-cells = <1>;
+-				#size-cells = <0>;
+-				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+-				dmas = <&mdma 24 0x2 0x12000a02 0x0 0x0>,
+-				       <&mdma 24 0x2 0x12000a08 0x0 0x0>,
+-				       <&mdma 25 0x2 0x12000a0a 0x0 0x0>;
+-				dma-names = "tx", "rx", "ecc";
+-				status = "disabled";
+-			};
+-		};
+-
+-		qspi: spi at 58003000 {
+-			compatible = "st,stm32f469-qspi";
+-			reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
+-			reg-names = "qspi", "qspi_mm";
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
+-			dmas = <&mdma 26 0x2 0x10100002 0x0 0x0>,
+-			       <&mdma 26 0x2 0x10100008 0x0 0x0>;
+-			dma-names = "tx", "rx";
+-			clocks = <&rcc QSPI_K>;
+-			resets = <&rcc QSPI_R>;
+-			status = "disabled";
+-		};
+-
+-		sdmmc1: mmc at 58005000 {
+-			compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
+-			arm,primecell-periphid = <0x20253180>;
+-			reg = <0x58005000 0x1000>, <0x58006000 0x1000>;
+-			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc SDMMC1_K>;
+-			clock-names = "apb_pclk";
+-			resets = <&rcc SDMMC1_R>;
+-			cap-sd-highspeed;
+-			cap-mmc-highspeed;
+-			max-frequency = <130000000>;
+-			status = "disabled";
+-		};
+-
+-		sdmmc2: mmc at 58007000 {
+-			compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
+-			arm,primecell-periphid = <0x20253180>;
+-			reg = <0x58007000 0x1000>, <0x58008000 0x1000>;
+-			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc SDMMC2_K>;
+-			clock-names = "apb_pclk";
+-			resets = <&rcc SDMMC2_R>;
+-			cap-sd-highspeed;
+-			cap-mmc-highspeed;
+-			max-frequency = <130000000>;
++		crc1: crc at 58009000 {
++			compatible = "st,stm32f7-crc";
++			reg = <0x58009000 0x400>;
++			clocks = <&rcc CRC1>;
+ 			status = "disabled";
+ 		};
+ 
+@@ -1323,29 +857,6 @@
+ 			status = "disabled";
+ 		};
+ 
+-		usbphyc: usbphyc at 5a006000 {
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			#clock-cells = <0>;
+-			compatible = "st,stm32mp1-usbphyc";
+-			reg = <0x5a006000 0x1000>;
+-			clocks = <&rcc USBPHY_K>;
+-			resets = <&rcc USBPHY_R>;
+-			vdda1v1-supply = <&scmi_reg11>;
+-			vdda1v8-supply = <&scmi_reg18>;
+-			status = "disabled";
+-
+-			usbphyc_port0: usb-phy at 0 {
+-				#phy-cells = <0>;
+-				reg = <0>;
+-			};
+-
+-			usbphyc_port1: usb-phy at 1 {
+-				#phy-cells = <1>;
+-				reg = <1>;
+-			};
+-		};
+-
+ 		rtc: rtc at 5c004000 {
+ 			compatible = "st,stm32mp1-rtc";
+ 			reg = <0x5c004000 0x400>;
+@@ -1374,6 +885,529 @@
+ 			};
+ 		};
+ 
++		etzpc: bus at 5c007000 {
++			compatible = "simple-bus";
++			reg = <0x5c007000 0x400>;
++			#address-cells = <1>;
++			#size-cells = <1>;
++			ranges;
++
++			adc_2: adc at 48004000 {
++				compatible = "st,stm32mp13-adc-core";
++				reg = <0x48004000 0x400>;
++				interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc ADC2>, <&rcc ADC2_K>;
++				clock-names = "bus", "adc";
++				interrupt-controller;
++				#interrupt-cells = <1>;
++				#address-cells = <1>;
++				#size-cells = <0>;
++				status = "disabled";
++
++				adc2: adc at 0 {
++					compatible = "st,stm32mp13-adc";
++					#io-channel-cells = <1>;
++					#address-cells = <1>;
++					#size-cells = <0>;
++					reg = <0x0>;
++					interrupt-parent = <&adc_2>;
++					interrupts = <0>;
++					dmas = <&dmamux1 10 0x400 0x80000001>;
++					dma-names = "rx";
++					status = "disabled";
++
++					channel at 13 {
++						reg = <13>;
++						label = "vrefint";
++					};
++					channel at 14 {
++						reg = <14>;
++						label = "vddcore";
++					};
++					channel at 16 {
++						reg = <16>;
++						label = "vddcpu";
++					};
++					channel at 17 {
++						reg = <17>;
++						label = "vddq_ddr";
++					};
++				};
++			};
++
++			usbotg_hs: usb at 49000000 {
++				compatible = "st,stm32mp15-hsotg", "snps,dwc2";
++				reg = <0x49000000 0x40000>;
++				clocks = <&rcc USBO_K>;
++				clock-names = "otg";
++				resets = <&rcc USBO_R>;
++				reset-names = "dwc2";
++				interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
++				g-rx-fifo-size = <512>;
++				g-np-tx-fifo-size = <32>;
++				g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
++				dr_mode = "otg";
++				otg-rev = <0x200>;
++				usb33d-supply = <&scmi_usb33>;
++				status = "disabled";
++			};
++
++			usart1: serial at 4c000000 {
++				compatible = "st,stm32h7-uart";
++				reg = <0x4c000000 0x400>;
++				interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc USART1_K>;
++				resets = <&rcc USART1_R>;
++				wakeup-source;
++				dmas = <&dmamux1 41 0x400 0x5>,
++				<&dmamux1 42 0x400 0x1>;
++				dma-names = "rx", "tx";
++				status = "disabled";
++			};
++
++			usart2: serial at 4c001000 {
++				compatible = "st,stm32h7-uart";
++				reg = <0x4c001000 0x400>;
++				interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc USART2_K>;
++				resets = <&rcc USART2_R>;
++				wakeup-source;
++				dmas = <&dmamux1 43 0x400 0x5>,
++				<&dmamux1 44 0x400 0x1>;
++				dma-names = "rx", "tx";
++				status = "disabled";
++			};
++
++			i2s4: audio-controller at 4c002000 {
++				compatible = "st,stm32h7-i2s";
++				reg = <0x4c002000 0x400>;
++				#sound-dai-cells = <0>;
++				interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
++				dmas = <&dmamux1 83 0x400 0x01>,
++				<&dmamux1 84 0x400 0x01>;
++				dma-names = "rx", "tx";
++				status = "disabled";
++			};
++
++			spi4: spi at 4c002000 {
++				compatible = "st,stm32h7-spi";
++				reg = <0x4c002000 0x400>;
++				interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc SPI4_K>;
++				resets = <&rcc SPI4_R>;
++				#address-cells = <1>;
++				#size-cells = <0>;
++				dmas = <&dmamux1 83 0x400 0x01>,
++				       <&dmamux1 84 0x400 0x01>;
++				dma-names = "rx", "tx";
++				status = "disabled";
++			};
++
++			spi5: spi at 4c003000 {
++				compatible = "st,stm32h7-spi";
++				reg = <0x4c003000 0x400>;
++				interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc SPI5_K>;
++				resets = <&rcc SPI5_R>;
++				#address-cells = <1>;
++				#size-cells = <0>;
++				dmas = <&dmamux1 85 0x400 0x01>,
++				       <&dmamux1 86 0x400 0x01>;
++				dma-names = "rx", "tx";
++				status = "disabled";
++			};
++
++			i2c3: i2c at 4c004000 {
++				compatible = "st,stm32mp13-i2c";
++				reg = <0x4c004000 0x400>;
++				interrupt-names = "event", "error";
++				interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
++					     <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc I2C3_K>;
++				resets = <&rcc I2C3_R>;
++				#address-cells = <1>;
++				#size-cells = <0>;
++				dmas = <&dmamux1 73 0x400 0x1>,
++				       <&dmamux1 74 0x400 0x1>;
++				dma-names = "rx", "tx";
++				st,syscfg-fmp = <&syscfg 0x4 0x4>;
++				i2c-analog-filter;
++				status = "disabled";
++			};
++
++			i2c4: i2c at 4c005000 {
++				compatible = "st,stm32mp13-i2c";
++				reg = <0x4c005000 0x400>;
++				interrupt-names = "event", "error";
++				interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
++					     <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc I2C4_K>;
++				resets = <&rcc I2C4_R>;
++				#address-cells = <1>;
++				#size-cells = <0>;
++				dmas = <&dmamux1 75 0x400 0x1>,
++				       <&dmamux1 76 0x400 0x1>;
++				dma-names = "rx", "tx";
++				st,syscfg-fmp = <&syscfg 0x4 0x8>;
++				i2c-analog-filter;
++				status = "disabled";
++			};
++
++			i2c5: i2c at 4c006000 {
++				compatible = "st,stm32mp13-i2c";
++				reg = <0x4c006000 0x400>;
++				interrupt-names = "event", "error";
++				interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
++					     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc I2C5_K>;
++				resets = <&rcc I2C5_R>;
++				#address-cells = <1>;
++				#size-cells = <0>;
++				dmas = <&dmamux1 115 0x400 0x1>,
++				       <&dmamux1 116 0x400 0x1>;
++				dma-names = "rx", "tx";
++				st,syscfg-fmp = <&syscfg 0x4 0x10>;
++				i2c-analog-filter;
++				status = "disabled";
++			};
++
++			timers12: timer at 4c007000 {
++				#address-cells = <1>;
++				#size-cells = <0>;
++				compatible = "st,stm32-timers";
++				reg = <0x4c007000 0x400>;
++				interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
++				interrupt-names = "global";
++				clocks = <&rcc TIM12_K>;
++				clock-names = "int";
++				status = "disabled";
++
++				pwm {
++					compatible = "st,stm32-pwm";
++					#pwm-cells = <3>;
++					status = "disabled";
++				};
++
++				timer at 11 {
++					compatible = "st,stm32h7-timer-trigger";
++					reg = <11>;
++					status = "disabled";
++				};
++			};
++
++			timers13: timer at 4c008000 {
++				#address-cells = <1>;
++				#size-cells = <0>;
++				compatible = "st,stm32-timers";
++				reg = <0x4c008000 0x400>;
++				interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
++				interrupt-names = "global";
++				clocks = <&rcc TIM13_K>;
++				clock-names = "int";
++				status = "disabled";
++
++				pwm {
++					compatible = "st,stm32-pwm";
++					#pwm-cells = <3>;
++					status = "disabled";
++				};
++
++				timer at 12 {
++					compatible = "st,stm32h7-timer-trigger";
++					reg = <12>;
++					status = "disabled";
++				};
++			};
++
++			timers14: timer at 4c009000 {
++				#address-cells = <1>;
++				#size-cells = <0>;
++				compatible = "st,stm32-timers";
++				reg = <0x4c009000 0x400>;
++				interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
++				interrupt-names = "global";
++				clocks = <&rcc TIM14_K>;
++				clock-names = "int";
++				status = "disabled";
++
++				pwm {
++					compatible = "st,stm32-pwm";
++					#pwm-cells = <3>;
++					status = "disabled";
++				};
++
++				timer at 13 {
++					compatible = "st,stm32h7-timer-trigger";
++					reg = <13>;
++					status = "disabled";
++				};
++			};
++
++			timers15: timer at 4c00a000 {
++				#address-cells = <1>;
++				#size-cells = <0>;
++				compatible = "st,stm32-timers";
++				reg = <0x4c00a000 0x400>;
++				interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
++				interrupt-names = "global";
++				clocks = <&rcc TIM15_K>;
++				clock-names = "int";
++				dmas = <&dmamux1 105 0x400 0x1>,
++				<&dmamux1 106 0x400 0x1>,
++				<&dmamux1 107 0x400 0x1>,
++				<&dmamux1 108 0x400 0x1>;
++				dma-names = "ch1", "up", "trig", "com";
++				status = "disabled";
++
++				pwm {
++					compatible = "st,stm32-pwm";
++					#pwm-cells = <3>;
++					status = "disabled";
++				};
++
++				timer at 14 {
++					compatible = "st,stm32h7-timer-trigger";
++					reg = <14>;
++					status = "disabled";
++				};
++			};
++
++			timers16: timer at 4c00b000 {
++				#address-cells = <1>;
++				#size-cells = <0>;
++				compatible = "st,stm32-timers";
++				reg = <0x4c00b000 0x400>;
++				interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
++				interrupt-names = "global";
++				clocks = <&rcc TIM16_K>;
++				clock-names = "int";
++				dmas = <&dmamux1 109 0x400 0x1>,
++				<&dmamux1 110 0x400 0x1>;
++				dma-names = "ch1", "up";
++				status = "disabled";
++
++				pwm {
++					compatible = "st,stm32-pwm";
++					#pwm-cells = <3>;
++					status = "disabled";
++				};
++
++				timer at 15 {
++					compatible = "st,stm32h7-timer-trigger";
++					reg = <15>;
++					status = "disabled";
++				};
++			};
++
++			timers17: timer at 4c00c000 {
++				#address-cells = <1>;
++				#size-cells = <0>;
++				compatible = "st,stm32-timers";
++				reg = <0x4c00c000 0x400>;
++				interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
++				interrupt-names = "global";
++				clocks = <&rcc TIM17_K>;
++				clock-names = "int";
++				dmas = <&dmamux1 111 0x400 0x1>,
++				       <&dmamux1 112 0x400 0x1>;
++				dma-names = "ch1", "up";
++				status = "disabled";
++
++				pwm {
++					compatible = "st,stm32-pwm";
++					#pwm-cells = <3>;
++					status = "disabled";
++				};
++
++				timer at 16 {
++					compatible = "st,stm32h7-timer-trigger";
++					reg = <16>;
++					status = "disabled";
++				};
++			};
++
++			lptimer2: timer at 50021000 {
++				#address-cells = <1>;
++				#size-cells = <0>;
++				compatible = "st,stm32-lptimer";
++				reg = <0x50021000 0x400>;
++				interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc LPTIM2_K>;
++				clock-names = "mux";
++				wakeup-source;
++				status = "disabled";
++
++				pwm {
++					compatible = "st,stm32-pwm-lp";
++					#pwm-cells = <3>;
++					status = "disabled";
++				};
++
++				trigger at 1 {
++					compatible = "st,stm32-lptimer-trigger";
++					reg = <1>;
++					status = "disabled";
++				};
++
++				counter {
++					compatible = "st,stm32-lptimer-counter";
++					status = "disabled";
++				};
++
++				timer {
++					compatible = "st,stm32-lptimer-timer";
++					status = "disabled";
++				};
++			};
++
++			lptimer3: timer at 50022000 {
++				#address-cells = <1>;
++				#size-cells = <0>;
++				compatible = "st,stm32-lptimer";
++				reg = <0x50022000 0x400>;
++				interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc LPTIM3_K>;
++				clock-names = "mux";
++				wakeup-source;
++				status = "disabled";
++
++				pwm {
++					compatible = "st,stm32-pwm-lp";
++					#pwm-cells = <3>;
++					status = "disabled";
++				};
++
++				trigger at 2 {
++					compatible = "st,stm32-lptimer-trigger";
++					reg = <2>;
++					status = "disabled";
++				};
++
++				timer {
++					compatible = "st,stm32-lptimer-timer";
++					status = "disabled";
++				};
++			};
++
++			hash: hash at 54003000 {
++				compatible = "st,stm32mp13-hash";
++				reg = <0x54003000 0x400>;
++				interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc HASH1>;
++				resets = <&rcc HASH1_R>;
++				dmas = <&mdma 30 0x2 0x1000a02 0x0 0x0>;
++				dma-names = "in";
++				status = "disabled";
++			};
++
++			rng: rng at 54004000 {
++				compatible = "st,stm32mp13-rng";
++				reg = <0x54004000 0x400>;
++				clocks = <&rcc RNG1_K>;
++				resets = <&rcc RNG1_R>;
++				status = "disabled";
++			};
++
++			fmc: memory-controller at 58002000 {
++				compatible = "st,stm32mp1-fmc2-ebi";
++				reg = <0x58002000 0x1000>;
++				ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
++					 <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
++					 <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
++					 <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
++					 <4 0 0x80000000 0x10000000>; /* NAND */
++				#address-cells = <2>;
++				#size-cells = <1>;
++				clocks = <&rcc FMC_K>;
++				resets = <&rcc FMC_R>;
++				status = "disabled";
++
++				nand-controller at 4,0 {
++					compatible = "st,stm32mp1-fmc2-nfc";
++					reg = <4 0x00000000 0x1000>,
++					      <4 0x08010000 0x1000>,
++					      <4 0x08020000 0x1000>,
++					      <4 0x01000000 0x1000>,
++					      <4 0x09010000 0x1000>,
++					      <4 0x09020000 0x1000>;
++					#address-cells = <1>;
++					#size-cells = <0>;
++					interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
++					dmas = <&mdma 24 0x2 0x12000a02 0x0 0x0>,
++					       <&mdma 24 0x2 0x12000a08 0x0 0x0>,
++					       <&mdma 25 0x2 0x12000a0a 0x0 0x0>;
++					dma-names = "tx", "rx", "ecc";
++					status = "disabled";
++				};
++			};
++
++			qspi: spi at 58003000 {
++				compatible = "st,stm32f469-qspi";
++				reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
++				reg-names = "qspi", "qspi_mm";
++				#address-cells = <1>;
++				#size-cells = <0>;
++				interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
++				dmas = <&mdma 26 0x2 0x10100002 0x0 0x0>,
++				       <&mdma 26 0x2 0x10100008 0x0 0x0>;
++				dma-names = "tx", "rx";
++				clocks = <&rcc QSPI_K>;
++				resets = <&rcc QSPI_R>;
++				status = "disabled";
++			};
++
++			sdmmc1: mmc at 58005000 {
++				compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
++				arm,primecell-periphid = <0x20253180>;
++				reg = <0x58005000 0x1000>, <0x58006000 0x1000>;
++				interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc SDMMC1_K>;
++				clock-names = "apb_pclk";
++				resets = <&rcc SDMMC1_R>;
++				cap-sd-highspeed;
++				cap-mmc-highspeed;
++				max-frequency = <130000000>;
++				status = "disabled";
++			};
++
++			sdmmc2: mmc at 58007000 {
++				compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
++				arm,primecell-periphid = <0x20253180>;
++				reg = <0x58007000 0x1000>, <0x58008000 0x1000>;
++				interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc SDMMC2_K>;
++				clock-names = "apb_pclk";
++				resets = <&rcc SDMMC2_R>;
++				cap-sd-highspeed;
++				cap-mmc-highspeed;
++				max-frequency = <130000000>;
++				status = "disabled";
++			};
++
++			usbphyc: usbphyc at 5a006000 {
++				#address-cells = <1>;
++				#size-cells = <0>;
++				#clock-cells = <0>;
++				compatible = "st,stm32mp1-usbphyc";
++				reg = <0x5a006000 0x1000>;
++				clocks = <&rcc USBPHY_K>;
++				resets = <&rcc USBPHY_R>;
++				vdda1v1-supply = <&scmi_reg11>;
++				vdda1v8-supply = <&scmi_reg18>;
++				status = "disabled";
++
++				usbphyc_port0: usb-phy at 0 {
++					#phy-cells = <0>;
++					reg = <0>;
++				};
++
++				usbphyc_port1: usb-phy at 1 {
++					#phy-cells = <1>;
++					reg = <1>;
++				};
++			};
++		};
++
+ 		/*
+ 		 * Break node order to solve dependency probe issue between
+ 		 * pinctrl and exti.
+--- a/arch/arm/boot/dts/st/stm32mp133.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp133.dtsi
+@@ -33,35 +33,37 @@
+ 			bosch,mram-cfg = <0x1400 0 0 32 0 0 2 2>;
+ 			status = "disabled";
+ 		};
++	};
++};
++
++&etzpc {
++	adc_1: adc at 48003000 {
++		compatible = "st,stm32mp13-adc-core";
++		reg = <0x48003000 0x400>;
++		interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
++		clocks = <&rcc ADC1>, <&rcc ADC1_K>;
++		clock-names = "bus", "adc";
++		interrupt-controller;
++		#interrupt-cells = <1>;
++		#address-cells = <1>;
++		#size-cells = <0>;
++		status = "disabled";
+ 
+-		adc_1: adc at 48003000 {
+-			compatible = "st,stm32mp13-adc-core";
+-			reg = <0x48003000 0x400>;
+-			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc ADC1>, <&rcc ADC1_K>;
+-			clock-names = "bus", "adc";
+-			interrupt-controller;
+-			#interrupt-cells = <1>;
++		adc1: adc at 0 {
++			compatible = "st,stm32mp13-adc";
++			#io-channel-cells = <1>;
+ 			#address-cells = <1>;
+ 			#size-cells = <0>;
++			reg = <0x0>;
++			interrupt-parent = <&adc_1>;
++			interrupts = <0>;
++			dmas = <&dmamux1 9 0x400 0x80000001>;
++			dma-names = "rx";
+ 			status = "disabled";
+ 
+-			adc1: adc at 0 {
+-				compatible = "st,stm32mp13-adc";
+-				#io-channel-cells = <1>;
+-				#address-cells = <1>;
+-				#size-cells = <0>;
+-				reg = <0x0>;
+-				interrupt-parent = <&adc_1>;
+-				interrupts = <0>;
+-				dmas = <&dmamux1 9 0x400 0x80000001>;
+-				dma-names = "rx";
+-				status = "disabled";
+-
+-				channel at 18 {
+-					reg = <18>;
+-					label = "vrefint";
+-				};
++			channel at 18 {
++				reg = <18>;
++				label = "vrefint";
+ 			};
+ 		};
+ 	};
+--- a/arch/arm/boot/dts/st/stm32mp13xc.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp13xc.dtsi
+@@ -4,15 +4,13 @@
+  * Author: Alexandre Torgue <alexandre.torgue at foss.st.com> for STMicroelectronics.
+  */
+ 
+-/ {
+-	soc {
+-		cryp: crypto at 54002000 {
+-			compatible = "st,stm32mp1-cryp";
+-			reg = <0x54002000 0x400>;
+-			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc CRYP1>;
+-			resets = <&rcc CRYP1_R>;
+-			status = "disabled";
+-		};
++&etzpc {
++	cryp: crypto at 54002000 {
++		compatible = "st,stm32mp1-cryp";
++		reg = <0x54002000 0x400>;
++		interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
++		clocks = <&rcc CRYP1>;
++		resets = <&rcc CRYP1_R>;
++		status = "disabled";
+ 	};
+ };
+--- a/arch/arm/boot/dts/st/stm32mp13xf.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp13xf.dtsi
+@@ -4,15 +4,13 @@
+  * Author: Alexandre Torgue <alexandre.torgue at foss.st.com> for STMicroelectronics.
+  */
+ 
+-/ {
+-	soc {
+-		cryp: crypto at 54002000 {
+-			compatible = "st,stm32mp1-cryp";
+-			reg = <0x54002000 0x400>;
+-			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc CRYP1>;
+-			resets = <&rcc CRYP1_R>;
+-			status = "disabled";
+-		};
++&etzpc {
++	cryp: crypto at 54002000 {
++		compatible = "st,stm32mp1-cryp";
++		reg = <0x54002000 0x400>;
++		interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
++		clocks = <&rcc CRYP1>;
++		resets = <&rcc CRYP1_R>;
++		status = "disabled";
+ 	};
+ };
diff --git a/target/linux/stm32/patches-6.6/010-ARM-dts-stm32-put-ETZPC-as-an-access-controller-for-.patch b/target/linux/stm32/patches-6.6/010-ARM-dts-stm32-put-ETZPC-as-an-access-controller-for-.patch
new file mode 100644
index 0000000000..e6a4eee057
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/010-ARM-dts-stm32-put-ETZPC-as-an-access-controller-for-.patch
@@ -0,0 +1,265 @@
+From 21ca3d7c59595d76237faebeff4f6a979cf7ae82 Mon Sep 17 00:00:00 2001
+From: Alexandre Torgue <alexandre.torgue at foss.st.com>
+Date: Fri, 5 Apr 2024 13:45:24 +0200
+Subject: [PATCH 2/5] ARM: dts: stm32: put ETZPC as an access controller for
+ STM32MP13x boards
+
+Reference ETZPC as an access-control-provider.
+
+For more information on which peripheral is securable or supports MCU
+isolation, please read the STM32MP13 reference manual
+
+Signed-off-by: Gatien Chevallier <gatien.chevallier at foss.st.com>
+Signed-off-by: Alexandre Torgue <alexandre.torgue at foss.st.com>
+---
+ arch/arm/boot/dts/st/stm32mp131.dtsi  | 28 ++++++++++++++++++++++++++-
+ arch/arm/boot/dts/st/stm32mp133.dtsi  |  1 +
+ arch/arm/boot/dts/st/stm32mp13xc.dtsi |  1 +
+ arch/arm/boot/dts/st/stm32mp13xf.dtsi |  1 +
+ 4 files changed, 30 insertions(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/st/stm32mp131.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp131.dtsi
+@@ -886,10 +886,11 @@
+ 		};
+ 
+ 		etzpc: bus at 5c007000 {
+-			compatible = "simple-bus";
++			compatible = "st,stm32-etzpc", "simple-bus";
+ 			reg = <0x5c007000 0x400>;
+ 			#address-cells = <1>;
+ 			#size-cells = <1>;
++			#access-controller-cells = <1>;
+ 			ranges;
+ 
+ 			adc_2: adc at 48004000 {
+@@ -902,6 +903,7 @@
+ 				#interrupt-cells = <1>;
+ 				#address-cells = <1>;
+ 				#size-cells = <0>;
++				access-controllers = <&etzpc 33>;
+ 				status = "disabled";
+ 
+ 				adc2: adc at 0 {
+@@ -949,6 +951,7 @@
+ 				dr_mode = "otg";
+ 				otg-rev = <0x200>;
+ 				usb33d-supply = <&scmi_usb33>;
++				access-controllers = <&etzpc 34>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -962,6 +965,7 @@
+ 				dmas = <&dmamux1 41 0x400 0x5>,
+ 				<&dmamux1 42 0x400 0x1>;
+ 				dma-names = "rx", "tx";
++				access-controllers = <&etzpc 16>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -975,6 +979,7 @@
+ 				dmas = <&dmamux1 43 0x400 0x5>,
+ 				<&dmamux1 44 0x400 0x1>;
+ 				dma-names = "rx", "tx";
++				access-controllers = <&etzpc 17>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -986,6 +991,7 @@
+ 				dmas = <&dmamux1 83 0x400 0x01>,
+ 				<&dmamux1 84 0x400 0x01>;
+ 				dma-names = "rx", "tx";
++				access-controllers = <&etzpc 13>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1000,6 +1006,7 @@
+ 				dmas = <&dmamux1 83 0x400 0x01>,
+ 				       <&dmamux1 84 0x400 0x01>;
+ 				dma-names = "rx", "tx";
++				access-controllers = <&etzpc 18>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1014,6 +1021,7 @@
+ 				dmas = <&dmamux1 85 0x400 0x01>,
+ 				       <&dmamux1 86 0x400 0x01>;
+ 				dma-names = "rx", "tx";
++				access-controllers = <&etzpc 19>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1032,6 +1040,7 @@
+ 				dma-names = "rx", "tx";
+ 				st,syscfg-fmp = <&syscfg 0x4 0x4>;
+ 				i2c-analog-filter;
++				access-controllers = <&etzpc 20>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1050,6 +1059,7 @@
+ 				dma-names = "rx", "tx";
+ 				st,syscfg-fmp = <&syscfg 0x4 0x8>;
+ 				i2c-analog-filter;
++				access-controllers = <&etzpc 21>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1068,6 +1078,7 @@
+ 				dma-names = "rx", "tx";
+ 				st,syscfg-fmp = <&syscfg 0x4 0x10>;
+ 				i2c-analog-filter;
++				access-controllers = <&etzpc 22>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1080,6 +1091,7 @@
+ 				interrupt-names = "global";
+ 				clocks = <&rcc TIM12_K>;
+ 				clock-names = "int";
++				access-controllers = <&etzpc 23>;
+ 				status = "disabled";
+ 
+ 				pwm {
+@@ -1104,6 +1116,7 @@
+ 				interrupt-names = "global";
+ 				clocks = <&rcc TIM13_K>;
+ 				clock-names = "int";
++				access-controllers = <&etzpc 24>;
+ 				status = "disabled";
+ 
+ 				pwm {
+@@ -1128,6 +1141,7 @@
+ 				interrupt-names = "global";
+ 				clocks = <&rcc TIM14_K>;
+ 				clock-names = "int";
++				access-controllers = <&etzpc 25>;
+ 				status = "disabled";
+ 
+ 				pwm {
+@@ -1157,6 +1171,7 @@
+ 				<&dmamux1 107 0x400 0x1>,
+ 				<&dmamux1 108 0x400 0x1>;
+ 				dma-names = "ch1", "up", "trig", "com";
++				access-controllers = <&etzpc 26>;
+ 				status = "disabled";
+ 
+ 				pwm {
+@@ -1184,6 +1199,7 @@
+ 				dmas = <&dmamux1 109 0x400 0x1>,
+ 				<&dmamux1 110 0x400 0x1>;
+ 				dma-names = "ch1", "up";
++				access-controllers = <&etzpc 27>;
+ 				status = "disabled";
+ 
+ 				pwm {
+@@ -1211,6 +1227,7 @@
+ 				dmas = <&dmamux1 111 0x400 0x1>,
+ 				       <&dmamux1 112 0x400 0x1>;
+ 				dma-names = "ch1", "up";
++				access-controllers = <&etzpc 28>;
+ 				status = "disabled";
+ 
+ 				pwm {
+@@ -1235,6 +1252,7 @@
+ 				clocks = <&rcc LPTIM2_K>;
+ 				clock-names = "mux";
+ 				wakeup-source;
++				access-controllers = <&etzpc 1>;
+ 				status = "disabled";
+ 
+ 				pwm {
+@@ -1269,6 +1287,7 @@
+ 				clocks = <&rcc LPTIM3_K>;
+ 				clock-names = "mux";
+ 				wakeup-source;
++				access-controllers = <&etzpc 2>;
+ 				status = "disabled";
+ 
+ 				pwm {
+@@ -1297,6 +1316,7 @@
+ 				resets = <&rcc HASH1_R>;
+ 				dmas = <&mdma 30 0x2 0x1000a02 0x0 0x0>;
+ 				dma-names = "in";
++				access-controllers = <&etzpc 41>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1305,6 +1325,7 @@
+ 				reg = <0x54004000 0x400>;
+ 				clocks = <&rcc RNG1_K>;
+ 				resets = <&rcc RNG1_R>;
++				access-controllers = <&etzpc 40>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1320,6 +1341,7 @@
+ 				#size-cells = <1>;
+ 				clocks = <&rcc FMC_K>;
+ 				resets = <&rcc FMC_R>;
++				access-controllers = <&etzpc 54>;
+ 				status = "disabled";
+ 
+ 				nand-controller at 4,0 {
+@@ -1353,6 +1375,7 @@
+ 				dma-names = "tx", "rx";
+ 				clocks = <&rcc QSPI_K>;
+ 				resets = <&rcc QSPI_R>;
++				access-controllers = <&etzpc 55>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1367,6 +1390,7 @@
+ 				cap-sd-highspeed;
+ 				cap-mmc-highspeed;
+ 				max-frequency = <130000000>;
++				access-controllers = <&etzpc 50>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1381,6 +1405,7 @@
+ 				cap-sd-highspeed;
+ 				cap-mmc-highspeed;
+ 				max-frequency = <130000000>;
++				access-controllers = <&etzpc 51>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1394,6 +1419,7 @@
+ 				resets = <&rcc USBPHY_R>;
+ 				vdda1v1-supply = <&scmi_reg11>;
+ 				vdda1v8-supply = <&scmi_reg18>;
++				access-controllers = <&etzpc 5>;
+ 				status = "disabled";
+ 
+ 				usbphyc_port0: usb-phy at 0 {
+--- a/arch/arm/boot/dts/st/stm32mp133.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp133.dtsi
+@@ -47,6 +47,7 @@
+ 		#interrupt-cells = <1>;
+ 		#address-cells = <1>;
+ 		#size-cells = <0>;
++		access-controllers = <&etzpc 32>;
+ 		status = "disabled";
+ 
+ 		adc1: adc at 0 {
+--- a/arch/arm/boot/dts/st/stm32mp13xc.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp13xc.dtsi
+@@ -11,6 +11,7 @@
+ 		interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+ 		clocks = <&rcc CRYP1>;
+ 		resets = <&rcc CRYP1_R>;
++		access-controllers = <&etzpc 42>;
+ 		status = "disabled";
+ 	};
+ };
+--- a/arch/arm/boot/dts/st/stm32mp13xf.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp13xf.dtsi
+@@ -11,6 +11,7 @@
+ 		interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+ 		clocks = <&rcc CRYP1>;
+ 		resets = <&rcc CRYP1_R>;
++		access-controllers = <&etzpc 42>;
+ 		status = "disabled";
+ 	};
+ };
diff --git a/target/linux/stm32/patches-6.6/011-ARM-dts-stm32-add-ethernet1-2-RMII-pins-for-STM32MP1.patch b/target/linux/stm32/patches-6.6/011-ARM-dts-stm32-add-ethernet1-2-RMII-pins-for-STM32MP1.patch
new file mode 100644
index 0000000000..123bde8841
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/011-ARM-dts-stm32-add-ethernet1-2-RMII-pins-for-STM32MP1.patch
@@ -0,0 +1,126 @@
+From b1468a44e0c0f43a06e027efeff4183b3aee0cf7 Mon Sep 17 00:00:00 2001
+From: Christophe Roullier <christophe.roullier at foss.st.com>
+Date: Mon, 10 Jun 2024 10:03:08 +0200
+Subject: [PATCH 3/5] ARM: dts: stm32: add ethernet1/2 RMII pins for
+ STM32MP13F-DK board
+
+Those pins are used for Ethernet 1 and 2 on STM32MP13F-DK board.
+ethernet1: RMII with crystal.
+ethernet2: RMII without crystal.
+Add analog gpio pin configuration ("sleep") to manage power mode on
+stm32mp13.
+
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Reviewed-by: Marek Vasut <marex at denx.de>
+Signed-off-by: Alexandre Torgue <alexandre.torgue at foss.st.com>
+---
+ arch/arm/boot/dts/st/stm32mp13-pinctrl.dtsi | 98 +++++++++++++++++++++
+ 1 file changed, 98 insertions(+)
+
+--- a/arch/arm/boot/dts/st/stm32mp13-pinctrl.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp13-pinctrl.dtsi
+@@ -13,6 +13,104 @@
+ 		};
+ 	};
+ 
++	eth1_rgmii_pins_a: eth1-rgmii-0 {
++		pins1 {
++			pinmux = <STM32_PINMUX('G', 13, AF11)>, /* ETH_RGMII_TXD0 */
++				 <STM32_PINMUX('G', 14, AF11)>, /* ETH_RGMII_TXD1 */
++				 <STM32_PINMUX('C', 2, AF11)>, /* ETH_RGMII_TXD2 */
++				 <STM32_PINMUX('E', 5, AF10)>, /* ETH_RGMII_TXD3 */
++				 <STM32_PINMUX('B', 11, AF11)>, /* ETH_RGMII_TX_CTL */
++				 <STM32_PINMUX('C', 1, AF11)>, /* ETH_RGMII_GTX_CLK */
++				 <STM32_PINMUX('A', 2, AF11)>, /* ETH_MDIO */
++				 <STM32_PINMUX('G', 2, AF11)>; /* ETH_MDC */
++			bias-disable;
++			drive-push-pull;
++			slew-rate = <2>;
++		};
++
++		pins2 {
++			pinmux = <STM32_PINMUX('C', 4, AF11)>, /* ETH_RGMII_RXD0 */
++				 <STM32_PINMUX('C', 5, AF11)>, /* ETH_RGMII_RXD1 */
++				 <STM32_PINMUX('B', 0, AF11)>, /* ETH_RGMII_RXD2 */
++				 <STM32_PINMUX('B', 1, AF11)>, /* ETH_RGMII_RXD3 */
++				 <STM32_PINMUX('A', 7, AF11)>, /* ETH_RGMII_RX_CTL */
++				 <STM32_PINMUX('D', 7, AF10)>; /* ETH_RGMII_RX_CLK */
++			bias-disable;
++		};
++
++	};
++
++	eth1_rmii_pins_a: eth1-rmii-0 {
++		pins1 {
++			pinmux = <STM32_PINMUX('G', 13, AF11)>, /* ETH_RMII_TXD0 */
++				 <STM32_PINMUX('G', 14, AF11)>, /* ETH_RMII_TXD1 */
++				 <STM32_PINMUX('B', 11, AF11)>, /* ETH_RMII_TX_EN */
++				 <STM32_PINMUX('A', 1, AF11)>, /* ETH_RMII_REF_CLK */
++				 <STM32_PINMUX('A', 2, AF11)>, /* ETH_MDIO */
++				 <STM32_PINMUX('G', 2, AF11)>; /* ETH_MDC */
++			bias-disable;
++			drive-push-pull;
++			slew-rate = <1>;
++		};
++
++		pins2 {
++			pinmux = <STM32_PINMUX('C', 4, AF11)>, /* ETH_RMII_RXD0 */
++				 <STM32_PINMUX('C', 5, AF11)>, /* ETH_RMII_RXD1 */
++				 <STM32_PINMUX('C', 1, AF10)>; /* ETH_RMII_CRS_DV */
++			bias-disable;
++		};
++
++	};
++
++	eth1_rmii_sleep_pins_a: eth1-rmii-sleep-0 {
++		pins1 {
++			pinmux = <STM32_PINMUX('G', 13, ANALOG)>, /* ETH_RMII_TXD0 */
++				 <STM32_PINMUX('G', 14, ANALOG)>, /* ETH_RMII_TXD1 */
++				 <STM32_PINMUX('B', 11, ANALOG)>, /* ETH_RMII_TX_EN */
++				 <STM32_PINMUX('A', 1, ANALOG)>, /* ETH_RMII_REF_CLK */
++				 <STM32_PINMUX('A', 2, ANALOG)>, /* ETH_MDIO */
++				 <STM32_PINMUX('G', 2, ANALOG)>, /* ETH_MDC */
++				 <STM32_PINMUX('C', 4, ANALOG)>, /* ETH_RMII_RXD0 */
++				 <STM32_PINMUX('C', 5, ANALOG)>, /* ETH_RMII_RXD1 */
++				 <STM32_PINMUX('C', 1, ANALOG)>; /* ETH_RMII_CRS_DV */
++		};
++	};
++
++	eth2_rmii_pins_a: eth2-rmii-0 {
++		pins1 {
++			pinmux = <STM32_PINMUX('F', 7, AF11)>, /* ETH_RMII_TXD0 */
++				 <STM32_PINMUX('G', 11, AF10)>, /* ETH_RMII_TXD1 */
++				 <STM32_PINMUX('G', 8, AF13)>, /* ETH_RMII_ETHCK */
++				 <STM32_PINMUX('F', 6, AF11)>, /* ETH_RMII_TX_EN */
++				 <STM32_PINMUX('B', 2, AF11)>, /* ETH_MDIO */
++				 <STM32_PINMUX('G', 5, AF10)>; /* ETH_MDC */
++			bias-disable;
++			drive-push-pull;
++			slew-rate = <1>;
++		};
++
++		pins2 {
++			pinmux = <STM32_PINMUX('F', 4, AF11)>, /* ETH_RMII_RXD0 */
++				 <STM32_PINMUX('E', 2, AF10)>, /* ETH_RMII_RXD1 */
++				 <STM32_PINMUX('A', 12, AF11)>; /* ETH_RMII_CRS_DV */
++			bias-disable;
++		};
++	};
++
++	eth2_rmii_sleep_pins_a: eth2-rmii-sleep-0 {
++		pins1 {
++			pinmux = <STM32_PINMUX('F', 7, ANALOG)>, /* ETH_RMII_TXD0 */
++				 <STM32_PINMUX('G', 11, ANALOG)>, /* ETH_RMII_TXD1 */
++				 <STM32_PINMUX('G', 8, ANALOG)>, /* ETH_RMII_ETHCK */
++				 <STM32_PINMUX('F', 6, ANALOG)>, /* ETH_RMII_TX_EN */
++				 <STM32_PINMUX('B', 2, ANALOG)>, /* ETH_MDIO */
++				 <STM32_PINMUX('G', 5, ANALOG)>, /* ETH_MDC */
++				 <STM32_PINMUX('F', 4, ANALOG)>, /* ETH_RMII_RXD0 */
++				 <STM32_PINMUX('E', 2, ANALOG)>, /* ETH_RMII_RXD1 */
++				 <STM32_PINMUX('A', 12, ANALOG)>; /* ETH_RMII_CRS_DV */
++		};
++	};
++
+ 	i2c1_pins_a: i2c1-0 {
+ 		pins {
+ 			pinmux = <STM32_PINMUX('D', 12, AF5)>, /* I2C1_SCL */
diff --git a/target/linux/stm32/patches-6.6/012-ARM-dts-stm32-add-ethernet1-and-ethernet2-support-on.patch b/target/linux/stm32/patches-6.6/012-ARM-dts-stm32-add-ethernet1-and-ethernet2-support-on.patch
new file mode 100644
index 0000000000..947b141324
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/012-ARM-dts-stm32-add-ethernet1-and-ethernet2-support-on.patch
@@ -0,0 +1,108 @@
+From fcf6ca2da4650d0a7a9cd62c8c72341860931159 Mon Sep 17 00:00:00 2001
+From: Christophe Roullier <christophe.roullier at foss.st.com>
+Date: Mon, 10 Jun 2024 10:03:07 +0200
+Subject: [PATCH 4/5] ARM: dts: stm32: add ethernet1 and ethernet2 support on
+ stm32mp13
+
+Both instances ethernet based on GMAC SNPS IP on stm32mp13.
+GMAC IP version is SNPS 4.20.
+
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Signed-off-by: Alexandre Torgue <alexandre.torgue at foss.st.com>
+---
+ arch/arm/boot/dts/st/stm32mp131.dtsi | 38 ++++++++++++++++++++++++++++
+ arch/arm/boot/dts/st/stm32mp133.dtsi | 31 +++++++++++++++++++++++
+ 2 files changed, 69 insertions(+)
+
+--- a/arch/arm/boot/dts/st/stm32mp131.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp131.dtsi
+@@ -883,6 +883,12 @@
+ 			ts_cal2: calib at 5e {
+ 				reg = <0x5e 0x2>;
+ 			};
++			ethernet_mac1_address: mac1 at e4 {
++				reg = <0xe4 0x6>;
++			};
++			ethernet_mac2_address: mac2 at ea {
++				reg = <0xea 0x6>;
++			};
+ 		};
+ 
+ 		etzpc: bus at 5c007000 {
+@@ -1409,6 +1415,38 @@
+ 				status = "disabled";
+ 			};
+ 
++			ethernet1: ethernet at 5800a000 {
++				compatible = "st,stm32mp13-dwmac", "snps,dwmac-4.20a";
++				reg = <0x5800a000 0x2000>;
++				reg-names = "stmmaceth";
++				interrupts-extended = <&intc GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,
++						      <&exti 68 1>;
++				interrupt-names = "macirq", "eth_wake_irq";
++				clock-names = "stmmaceth",
++					      "mac-clk-tx",
++					      "mac-clk-rx",
++					      "ethstp",
++					      "eth-ck";
++				clocks = <&rcc ETH1MAC>,
++					 <&rcc ETH1TX>,
++					 <&rcc ETH1RX>,
++					 <&rcc ETH1STP>,
++					 <&rcc ETH1CK_K>;
++				st,syscon = <&syscfg 0x4 0xff0000>;
++				snps,mixed-burst;
++				snps,pbl = <2>;
++				snps,axi-config = <&stmmac_axi_config_1>;
++				snps,tso;
++				access-controllers = <&etzpc 48>;
++				status = "disabled";
++
++				stmmac_axi_config_1: stmmac-axi-config {
++					snps,blen = <0 0 0 0 16 8 4>;
++					snps,rd_osr_lmt = <0x7>;
++					snps,wr_osr_lmt = <0x7>;
++				};
++			};
++
+ 			usbphyc: usbphyc at 5a006000 {
+ 				#address-cells = <1>;
+ 				#size-cells = <0>;
+--- a/arch/arm/boot/dts/st/stm32mp133.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp133.dtsi
+@@ -68,4 +68,35 @@
+ 			};
+ 		};
+ 	};
++
++	ethernet2: ethernet at 5800e000 {
++		compatible = "st,stm32mp13-dwmac", "snps,dwmac-4.20a";
++		reg = <0x5800e000 0x2000>;
++		reg-names = "stmmaceth";
++		interrupts-extended = <&intc GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
++		interrupt-names = "macirq";
++		clock-names = "stmmaceth",
++			      "mac-clk-tx",
++			      "mac-clk-rx",
++			      "ethstp",
++			      "eth-ck";
++		clocks = <&rcc ETH2MAC>,
++			 <&rcc ETH2TX>,
++			 <&rcc ETH2RX>,
++			 <&rcc ETH2STP>,
++			 <&rcc ETH2CK_K>;
++		st,syscon = <&syscfg 0x4 0xff000000>;
++		snps,mixed-burst;
++		snps,pbl = <2>;
++		snps,axi-config = <&stmmac_axi_config_2>;
++		snps,tso;
++		access-controllers = <&etzpc 49>;
++		status = "disabled";
++
++		stmmac_axi_config_2: stmmac-axi-config {
++			snps,blen = <0 0 0 0 16 8 4>;
++			snps,rd_osr_lmt = <0x7>;
++			snps,wr_osr_lmt = <0x7>;
++		};
++	};
+ };
diff --git a/target/linux/stm32/patches-6.6/013-ARM-dts-stm32-add-ethernet1-for-STM32MP135F-DK-board.patch b/target/linux/stm32/patches-6.6/013-ARM-dts-stm32-add-ethernet1-for-STM32MP135F-DK-board.patch
new file mode 100644
index 0000000000..79408c5bad
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/013-ARM-dts-stm32-add-ethernet1-for-STM32MP135F-DK-board.patch
@@ -0,0 +1,58 @@
+From b255afeeb33efaa974b1b2454b1f58252d783b67 Mon Sep 17 00:00:00 2001
+From: Christophe Roullier <christophe.roullier at foss.st.com>
+Date: Mon, 10 Jun 2024 10:03:09 +0200
+Subject: [PATCH 5/5] ARM: dts: stm32: add ethernet1 for STM32MP135F-DK board
+
+Ethernet1: RMII with crystal
+Ethernet2: RMII with no cristal, need "phy-supply" property to work,
+today this property was managed by Ethernet glue, but should be present
+and managed in PHY node. So I will push second Ethernet in next step.
+
+PHYs used are SMSC (LAN8742A)
+
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Reviewed-by: Marek Vasut <marex at denx.de>
+Signed-off-by: Alexandre Torgue <alexandre.torgue at foss.st.com>
+---
+ arch/arm/boot/dts/st/stm32mp135f-dk.dts | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+
+--- a/arch/arm/boot/dts/st/stm32mp135f-dk.dts
++++ b/arch/arm/boot/dts/st/stm32mp135f-dk.dts
+@@ -19,6 +19,7 @@
+ 	compatible = "st,stm32mp135f-dk", "st,stm32mp135";
+ 
+ 	aliases {
++		ethernet0 = &ethernet1;
+ 		serial0 = &uart4;
+ 		serial1 = &usart1;
+ 		serial2 = &uart8;
+@@ -92,6 +93,28 @@
+ 		};
+ 	};
+ };
++
++&ethernet1 {
++	status = "okay";
++	pinctrl-0 = <&eth1_rmii_pins_a>;
++	pinctrl-1 = <&eth1_rmii_sleep_pins_a>;
++	pinctrl-names = "default", "sleep";
++	phy-mode = "rmii";
++	phy-handle = <&phy0_eth1>;
++
++	mdio {
++		#address-cells = <1>;
++		#size-cells = <0>;
++		compatible = "snps,dwmac-mdio";
++
++		phy0_eth1: ethernet-phy at 0 {
++			compatible = "ethernet-phy-id0007.c131";
++			reg = <0>;
++			reset-gpios = <&mcp23017 9 GPIO_ACTIVE_LOW>;
++			wakeup-source;
++		};
++	};
++};
+ 
+ &i2c1 {
+ 	pinctrl-names = "default", "sleep";
diff --git a/target/linux/stm32/patches-6.6/020-mmc-mmci-stm32-add-SDIO-in-band-interrupt-mode.patch b/target/linux/stm32/patches-6.6/020-mmc-mmci-stm32-add-SDIO-in-band-interrupt-mode.patch
new file mode 100644
index 0000000000..235efb5716
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/020-mmc-mmci-stm32-add-SDIO-in-band-interrupt-mode.patch
@@ -0,0 +1,166 @@
+From 1bcfbfd7c9aa716f61a01682345a1b329f6a6e66 Mon Sep 17 00:00:00 2001
+From: Christophe Kerello <christophe.kerello at foss.st.com>
+Date: Wed, 8 Nov 2023 15:16:37 +0100
+Subject: [PATCH] mmc: mmci: stm32: add SDIO in-band interrupt mode
+
+Add the support of SDIO in-band interrupt mode for STM32 and Ux500
+variants.
+It allows the SD I/O card to interrupt the host on SDMMC_D1 data line.
+It is not enabled by default on Ux500 variant as this is unstable and
+Ux500 users should use out-of-band IRQs.
+
+Signed-off-by: Christophe Kerello <christophe.kerello at foss.st.com>
+Signed-off-by: Yann Gautier <yann.gautier at foss.st.com>
+Reviewed-by: Linus Walleij <linus.walleij at linaro.org>
+Link: https://lore.kernel.org/r/20231108141637.119497-1-yann.gautier at foss.st.com
+Signed-off-by: Ulf Hansson <ulf.hansson at linaro.org>
+---
+ drivers/mmc/host/mmci.c | 69 +++++++++++++++++++++++++++++++++++++++--
+ drivers/mmc/host/mmci.h |  2 ++
+ 2 files changed, 69 insertions(+), 2 deletions(-)
+
+--- a/drivers/mmc/host/mmci.c
++++ b/drivers/mmc/host/mmci.c
+@@ -272,6 +272,7 @@ static struct variant_data variant_stm32
+ 	.datactrl_mask_sdio	= MCI_DPSM_ST_SDIOEN,
+ 	.stm32_idmabsize_mask	= GENMASK(12, 5),
+ 	.stm32_idmabsize_align	= BIT(5),
++	.supports_sdio_irq	= true,
+ 	.busy_timeout		= true,
+ 	.busy_detect		= true,
+ 	.busy_detect_flag	= MCI_STM32_BUSYD0,
+@@ -299,6 +300,7 @@ static struct variant_data variant_stm32
+ 	.datactrl_mask_sdio	= MCI_DPSM_ST_SDIOEN,
+ 	.stm32_idmabsize_mask	= GENMASK(16, 5),
+ 	.stm32_idmabsize_align	= BIT(5),
++	.supports_sdio_irq	= true,
+ 	.dma_lli		= true,
+ 	.busy_timeout		= true,
+ 	.busy_detect		= true,
+@@ -327,6 +329,7 @@ static struct variant_data variant_stm32
+ 	.datactrl_mask_sdio	= MCI_DPSM_ST_SDIOEN,
+ 	.stm32_idmabsize_mask	= GENMASK(16, 6),
+ 	.stm32_idmabsize_align	= BIT(6),
++	.supports_sdio_irq	= true,
+ 	.dma_lli		= true,
+ 	.busy_timeout		= true,
+ 	.busy_detect		= true,
+@@ -420,8 +423,9 @@ void mmci_write_pwrreg(struct mmci_host
+  */
+ static void mmci_write_datactrlreg(struct mmci_host *host, u32 datactrl)
+ {
+-	/* Keep busy mode in DPSM if enabled */
+-	datactrl |= host->datactrl_reg & host->variant->busy_dpsm_flag;
++	/* Keep busy mode in DPSM and SDIO mask if enabled */
++	datactrl |= host->datactrl_reg & (host->variant->busy_dpsm_flag |
++					  host->variant->datactrl_mask_sdio);
+ 
+ 	if (host->datactrl_reg != datactrl) {
+ 		host->datactrl_reg = datactrl;
+@@ -1761,6 +1765,25 @@ static irqreturn_t mmci_pio_irq(int irq,
+ 	return IRQ_HANDLED;
+ }
+ 
++static void mmci_write_sdio_irq_bit(struct mmci_host *host, int enable)
++{
++	void __iomem *base = host->base;
++	u32 mask = readl_relaxed(base + MMCIMASK0);
++
++	if (enable)
++		writel_relaxed(mask | MCI_ST_SDIOITMASK, base + MMCIMASK0);
++	else
++		writel_relaxed(mask & ~MCI_ST_SDIOITMASK, base + MMCIMASK0);
++}
++
++static void mmci_signal_sdio_irq(struct mmci_host *host, u32 status)
++{
++	if (status & MCI_ST_SDIOIT) {
++		mmci_write_sdio_irq_bit(host, 0);
++		sdio_signal_irq(host->mmc);
++	}
++}
++
+ /*
+  * Handle completion of command and data transfers.
+  */
+@@ -1805,6 +1828,9 @@ static irqreturn_t mmci_irq(int irq, voi
+ 			mmci_data_irq(host, host->data, status);
+ 		}
+ 
++		if (host->variant->supports_sdio_irq)
++			mmci_signal_sdio_irq(host, status);
++
+ 		/*
+ 		 * Busy detection has been handled by mmci_cmd_irq() above.
+ 		 * Clear the status bit to prevent polling in IRQ context.
+@@ -2041,6 +2067,35 @@ static int mmci_sig_volt_switch(struct m
+ 	return ret;
+ }
+ 
++static void mmci_enable_sdio_irq(struct mmc_host *mmc, int enable)
++{
++	struct mmci_host *host = mmc_priv(mmc);
++	unsigned long flags;
++
++	if (enable)
++		/* Keep the SDIO mode bit if SDIO irqs are enabled */
++		pm_runtime_get_sync(mmc_dev(mmc));
++
++	spin_lock_irqsave(&host->lock, flags);
++	mmci_write_sdio_irq_bit(host, enable);
++	spin_unlock_irqrestore(&host->lock, flags);
++
++	if (!enable) {
++		pm_runtime_mark_last_busy(mmc_dev(mmc));
++		pm_runtime_put_autosuspend(mmc_dev(mmc));
++	}
++}
++
++static void mmci_ack_sdio_irq(struct mmc_host *mmc)
++{
++	struct mmci_host *host = mmc_priv(mmc);
++	unsigned long flags;
++
++	spin_lock_irqsave(&host->lock, flags);
++	mmci_write_sdio_irq_bit(host, 1);
++	spin_unlock_irqrestore(&host->lock, flags);
++}
++
+ static struct mmc_host_ops mmci_ops = {
+ 	.request	= mmci_request,
+ 	.pre_req	= mmci_pre_request,
+@@ -2316,6 +2371,16 @@ static int mmci_probe(struct amba_device
+ 		mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY;
+ 	}
+ 
++	if (variant->supports_sdio_irq && host->mmc->caps & MMC_CAP_SDIO_IRQ) {
++		mmc->caps2 |= MMC_CAP2_SDIO_IRQ_NOTHREAD;
++
++		mmci_ops.enable_sdio_irq = mmci_enable_sdio_irq;
++		mmci_ops.ack_sdio_irq	= mmci_ack_sdio_irq;
++
++		mmci_write_datactrlreg(host,
++				       host->variant->datactrl_mask_sdio);
++	}
++
+ 	/* Variants with mandatory busy timeout in HW needs R1B responses. */
+ 	if (variant->busy_timeout)
+ 		mmc->caps |= MMC_CAP_NEED_RSP_BUSY;
+--- a/drivers/mmc/host/mmci.h
++++ b/drivers/mmc/host/mmci.h
+@@ -331,6 +331,7 @@ enum mmci_busy_state {
+  *	       register.
+  * @opendrain: bitmask identifying the OPENDRAIN bit inside MMCIPOWER register
+  * @dma_lli: true if variant has dma link list feature.
++ * @supports_sdio_irq: allow SD I/O card to interrupt the host
+  * @stm32_idmabsize_mask: stm32 sdmmc idma buffer size.
+  */
+ struct variant_data {
+@@ -376,6 +377,7 @@ struct variant_data {
+ 	u32			start_err;
+ 	u32			opendrain;
+ 	u8			dma_lli:1;
++	bool			supports_sdio_irq;
+ 	u32			stm32_idmabsize_mask;
+ 	u32			stm32_idmabsize_align;
+ 	void (*init)(struct mmci_host *host);
diff --git a/target/linux/stm32/patches-6.6/030-rtc-stm32-add-pinctrl-and-pinmux-interfaces.patch b/target/linux/stm32/patches-6.6/030-rtc-stm32-add-pinctrl-and-pinmux-interfaces.patch
new file mode 100644
index 0000000000..e06ea134c5
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/030-rtc-stm32-add-pinctrl-and-pinmux-interfaces.patch
@@ -0,0 +1,189 @@
+From c15671ce05a038b8c92a6f1e24b0b850a154ba59 Mon Sep 17 00:00:00 2001
+From: Valentin Caron <valentin.caron at foss.st.com>
+Date: Mon, 22 Jul 2024 18:00:20 +0200
+Subject: [PATCH] rtc: stm32: add pinctrl and pinmux interfaces
+
+STM32 RTC is capable to handle 3 specific pins of the soc.
+"out1, out2 and out2_rmp". To handle this, we use pinctrl framework.
+There is a single pin per group.
+
+Signed-off-by: Valentin Caron <valentin.caron at foss.st.com>
+Reviewed-by: Linus Walleij <linus.walleij at linaro.org>
+Link: https://lore.kernel.org/r/20240722160022.454226-3-valentin.caron at foss.st.com
+Signed-off-by: Alexandre Belloni <alexandre.belloni at bootlin.com>
+---
+ drivers/rtc/Kconfig     |   5 ++
+ drivers/rtc/rtc-stm32.c | 120 ++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 125 insertions(+)
+
+--- a/drivers/rtc/Kconfig
++++ b/drivers/rtc/Kconfig
+@@ -1887,6 +1887,11 @@ config RTC_DRV_STM32
+ 	tristate "STM32 RTC"
+ 	select REGMAP_MMIO
+ 	depends on ARCH_STM32 || COMPILE_TEST
++	depends on OF
++	depends on PINCTRL
++	select PINMUX
++	select PINCONF
++	select GENERIC_PINCONF
+ 	help
+ 	   If you say yes here you get support for the STM32 On-Chip
+ 	   Real Time Clock.
+--- a/drivers/rtc/rtc-stm32.c
++++ b/drivers/rtc/rtc-stm32.c
+@@ -12,6 +12,9 @@
+ #include <linux/mfd/syscon.h>
+ #include <linux/module.h>
+ #include <linux/of.h>
++#include <linux/pinctrl/pinctrl.h>
++#include <linux/pinctrl/pinconf-generic.h>
++#include <linux/pinctrl/pinmux.h>
+ #include <linux/platform_device.h>
+ #include <linux/pm_wakeirq.h>
+ #include <linux/regmap.h>
+@@ -94,6 +97,14 @@
+ /* STM32 RTC driver time helpers */
+ #define SEC_PER_DAY		(24 * 60 * 60)
+ 
++/* STM32 RTC pinctrl helpers */
++#define STM32_RTC_PINMUX(_name, _action, ...) { \
++	.name = (_name), \
++	.action = (_action), \
++	.groups = ((const char *[]){ __VA_ARGS__ }), \
++	.num_groups = ARRAY_SIZE(((const char *[]){ __VA_ARGS__ })), \
++}
++
+ struct stm32_rtc;
+ 
+ struct stm32_rtc_registers {
+@@ -149,6 +160,106 @@ static void stm32_rtc_wpr_lock(struct st
+ 	writel_relaxed(RTC_WPR_WRONG_KEY, rtc->base + regs->wpr);
+ }
+ 
++enum stm32_rtc_pin_name {
++	NONE,
++	OUT1,
++	OUT2,
++	OUT2_RMP
++};
++
++static const struct pinctrl_pin_desc stm32_rtc_pinctrl_pins[] = {
++	PINCTRL_PIN(OUT1, "out1"),
++	PINCTRL_PIN(OUT2, "out2"),
++	PINCTRL_PIN(OUT2_RMP, "out2_rmp"),
++};
++
++static int stm32_rtc_pinctrl_get_groups_count(struct pinctrl_dev *pctldev)
++{
++	return ARRAY_SIZE(stm32_rtc_pinctrl_pins);
++}
++
++static const char *stm32_rtc_pinctrl_get_group_name(struct pinctrl_dev *pctldev,
++						    unsigned int selector)
++{
++	return stm32_rtc_pinctrl_pins[selector].name;
++}
++
++static int stm32_rtc_pinctrl_get_group_pins(struct pinctrl_dev *pctldev,
++					    unsigned int selector,
++					    const unsigned int **pins,
++					    unsigned int *num_pins)
++{
++	*pins = &stm32_rtc_pinctrl_pins[selector].number;
++	*num_pins = 1;
++	return 0;
++}
++
++static const struct pinctrl_ops stm32_rtc_pinctrl_ops = {
++	.dt_node_to_map		= pinconf_generic_dt_node_to_map_all,
++	.dt_free_map		= pinconf_generic_dt_free_map,
++	.get_groups_count	= stm32_rtc_pinctrl_get_groups_count,
++	.get_group_name		= stm32_rtc_pinctrl_get_group_name,
++	.get_group_pins		= stm32_rtc_pinctrl_get_group_pins,
++};
++
++struct stm32_rtc_pinmux_func {
++	const char *name;
++	const char * const *groups;
++	const unsigned int num_groups;
++	int (*action)(struct pinctrl_dev *pctl_dev, unsigned int pin);
++};
++
++static const struct stm32_rtc_pinmux_func stm32_rtc_pinmux_functions[] = {
++};
++
++static int stm32_rtc_pinmux_get_functions_count(struct pinctrl_dev *pctldev)
++{
++	return ARRAY_SIZE(stm32_rtc_pinmux_functions);
++}
++
++static const char *stm32_rtc_pinmux_get_fname(struct pinctrl_dev *pctldev, unsigned int selector)
++{
++	return stm32_rtc_pinmux_functions[selector].name;
++}
++
++static int stm32_rtc_pinmux_get_groups(struct pinctrl_dev *pctldev, unsigned int selector,
++				       const char * const **groups, unsigned int * const num_groups)
++{
++	*groups = stm32_rtc_pinmux_functions[selector].groups;
++	*num_groups = stm32_rtc_pinmux_functions[selector].num_groups;
++	return 0;
++}
++
++static int stm32_rtc_pinmux_set_mux(struct pinctrl_dev *pctldev, unsigned int selector,
++				    unsigned int group)
++{
++	struct stm32_rtc_pinmux_func selected_func = stm32_rtc_pinmux_functions[selector];
++	struct pinctrl_pin_desc pin = stm32_rtc_pinctrl_pins[group];
++
++	/* Call action */
++	if (selected_func.action)
++		return selected_func.action(pctldev, pin.number);
++
++	return -EINVAL;
++}
++
++static const struct pinmux_ops stm32_rtc_pinmux_ops = {
++	.get_functions_count	= stm32_rtc_pinmux_get_functions_count,
++	.get_function_name	= stm32_rtc_pinmux_get_fname,
++	.get_function_groups	= stm32_rtc_pinmux_get_groups,
++	.set_mux		= stm32_rtc_pinmux_set_mux,
++	.strict			= true,
++};
++
++static struct pinctrl_desc stm32_rtc_pdesc = {
++	.name = DRIVER_NAME,
++	.pins = stm32_rtc_pinctrl_pins,
++	.npins = ARRAY_SIZE(stm32_rtc_pinctrl_pins),
++	.owner = THIS_MODULE,
++	.pctlops = &stm32_rtc_pinctrl_ops,
++	.pmxops = &stm32_rtc_pinmux_ops,
++};
++
+ static int stm32_rtc_enter_init_mode(struct stm32_rtc *rtc)
+ {
+ 	const struct stm32_rtc_registers *regs = &rtc->data->regs;
+@@ -723,6 +834,7 @@ static int stm32_rtc_probe(struct platfo
+ {
+ 	struct stm32_rtc *rtc;
+ 	const struct stm32_rtc_registers *regs;
++	struct pinctrl_dev *pctl;
+ 	int ret;
+ 
+ 	rtc = devm_kzalloc(&pdev->dev, sizeof(*rtc), GFP_KERNEL);
+@@ -834,6 +946,14 @@ static int stm32_rtc_probe(struct platfo
+ 		goto err;
+ 	}
+ 
++	ret = devm_pinctrl_register_and_init(&pdev->dev, &stm32_rtc_pdesc, rtc, &pctl);
++	if (ret)
++		return dev_err_probe(&pdev->dev, ret, "pinctrl register failed");
++
++	ret = pinctrl_enable(pctl);
++	if (ret)
++		return dev_err_probe(&pdev->dev, ret, "pinctrl enable failed");
++
+ 	/*
+ 	 * If INITS flag is reset (calendar year field set to 0x00), calendar
+ 	 * must be initialized
diff --git a/target/linux/stm32/patches-6.6/031-rtc-stm32-add-Low-Speed-Clock-Output-LSCO-support.patch b/target/linux/stm32/patches-6.6/031-rtc-stm32-add-Low-Speed-Clock-Output-LSCO-support.patch
new file mode 100644
index 0000000000..1ac0974572
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/031-rtc-stm32-add-Low-Speed-Clock-Output-LSCO-support.patch
@@ -0,0 +1,253 @@
+From 229476a4de2e237ebadddca8a82d20afa9298f71 Mon Sep 17 00:00:00 2001
+From: Valentin Caron <valentin.caron at foss.st.com>
+Date: Mon, 22 Jul 2024 18:00:21 +0200
+Subject: [PATCH] rtc: stm32: add Low Speed Clock Output (LSCO) support
+
+RTC is able to output on a pin the "LSE" internal clock.
+
+STM32 RTC is now registered as a clock provider.
+It provides rtc_lsco clock, that means RTC_LSCO is output on either
+RTC_OUT1 or RTC_OUT2_RMP, depending on pinmux DT property.
+The clock is marked as CLK_IGNORE_UNUSED and CLK_IS_CRITICAL because
+RTC_LSCO can be early required by devices needed it to init.
+
+Add LSCO in pinmux functions.
+
+Add "stm32_rtc_clean_outs" to disable LSCO. As RTC is part of "backup"
+power domain, it is not reset during shutdown or reboot. So force LSCO
+disable at probe.
+
+Co-developed-by: Amelie Delaunay <amelie.delaunay at foss.st.com>
+Signed-off-by: Amelie Delaunay <amelie.delaunay at foss.st.com>
+Signed-off-by: Valentin Caron <valentin.caron at foss.st.com>
+Link: https://lore.kernel.org/r/20240722160022.454226-4-valentin.caron at foss.st.com
+Signed-off-by: Alexandre Belloni <alexandre.belloni at bootlin.com>
+---
+ drivers/rtc/Kconfig     |  1 +
+ drivers/rtc/rtc-stm32.c | 99 +++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 100 insertions(+)
+
+--- a/drivers/rtc/Kconfig
++++ b/drivers/rtc/Kconfig
+@@ -1892,6 +1892,7 @@ config RTC_DRV_STM32
+ 	select PINMUX
+ 	select PINCONF
+ 	select GENERIC_PINCONF
++	depends on COMMON_CLK
+ 	help
+ 	   If you say yes here you get support for the STM32 On-Chip
+ 	   Real Time Clock.
+--- a/drivers/rtc/rtc-stm32.c
++++ b/drivers/rtc/rtc-stm32.c
+@@ -6,6 +6,7 @@
+ 
+ #include <linux/bcd.h>
+ #include <linux/clk.h>
++#include <linux/clk-provider.h>
+ #include <linux/errno.h>
+ #include <linux/iopoll.h>
+ #include <linux/ioport.h>
+@@ -44,6 +45,10 @@
+ #define STM32_RTC_CR_FMT		BIT(6)
+ #define STM32_RTC_CR_ALRAE		BIT(8)
+ #define STM32_RTC_CR_ALRAIE		BIT(12)
++#define STM32_RTC_CR_OSEL		GENMASK(22, 21)
++#define STM32_RTC_CR_COE		BIT(23)
++#define STM32_RTC_CR_TAMPOE		BIT(26)
++#define STM32_RTC_CR_OUT2EN		BIT(31)
+ 
+ /* STM32_RTC_ISR/STM32_RTC_ICSR bit fields */
+ #define STM32_RTC_ISR_ALRAWF		BIT(0)
+@@ -80,6 +85,12 @@
+ /* STM32_RTC_SR/_SCR bit fields */
+ #define STM32_RTC_SR_ALRA		BIT(0)
+ 
++/* STM32_RTC_CFGR bit fields */
++#define STM32_RTC_CFGR_OUT2_RMP		BIT(0)
++#define STM32_RTC_CFGR_LSCOEN		GENMASK(2, 1)
++#define STM32_RTC_CFGR_LSCOEN_OUT1	1
++#define STM32_RTC_CFGR_LSCOEN_OUT2_RMP	2
++
+ /* STM32_RTC_VERR bit fields */
+ #define STM32_RTC_VERR_MINREV_SHIFT	0
+ #define STM32_RTC_VERR_MINREV		GENMASK(3, 0)
+@@ -117,6 +128,7 @@ struct stm32_rtc_registers {
+ 	u16 wpr;
+ 	u16 sr;
+ 	u16 scr;
++	u16 cfgr;
+ 	u16 verr;
+ };
+ 
+@@ -131,6 +143,7 @@ struct stm32_rtc_data {
+ 	bool has_pclk;
+ 	bool need_dbp;
+ 	bool need_accuracy;
++	bool has_lsco;
+ };
+ 
+ struct stm32_rtc {
+@@ -143,6 +156,7 @@ struct stm32_rtc {
+ 	struct clk *rtc_ck;
+ 	const struct stm32_rtc_data *data;
+ 	int irq_alarm;
++	struct clk *clk_lsco;
+ };
+ 
+ static void stm32_rtc_wpr_unlock(struct stm32_rtc *rtc)
+@@ -209,7 +223,68 @@ struct stm32_rtc_pinmux_func {
+ 	int (*action)(struct pinctrl_dev *pctl_dev, unsigned int pin);
+ };
+ 
++static int stm32_rtc_pinmux_lsco_available(struct pinctrl_dev *pctldev, unsigned int pin)
++{
++	struct stm32_rtc *rtc = pinctrl_dev_get_drvdata(pctldev);
++	struct stm32_rtc_registers regs = rtc->data->regs;
++	unsigned int cr = readl_relaxed(rtc->base + regs.cr);
++	unsigned int cfgr = readl_relaxed(rtc->base + regs.cfgr);
++	unsigned int calib = STM32_RTC_CR_COE;
++	unsigned int tampalrm = STM32_RTC_CR_TAMPOE | STM32_RTC_CR_OSEL;
++
++	switch (pin) {
++	case OUT1:
++		if ((!(cr & STM32_RTC_CR_OUT2EN) &&
++		     ((cr & calib) || cr & tampalrm)) ||
++		     ((cr & calib) && (cr & tampalrm)))
++			return -EBUSY;
++		break;
++	case OUT2_RMP:
++		if ((cr & STM32_RTC_CR_OUT2EN) &&
++		    (cfgr & STM32_RTC_CFGR_OUT2_RMP) &&
++		    ((cr & calib) || (cr & tampalrm)))
++			return -EBUSY;
++		break;
++	default:
++		return -EINVAL;
++	}
++
++	if (clk_get_rate(rtc->rtc_ck) != 32768)
++		return -ERANGE;
++
++	return 0;
++}
++
++static int stm32_rtc_pinmux_action_lsco(struct pinctrl_dev *pctldev, unsigned int pin)
++{
++	struct stm32_rtc *rtc = pinctrl_dev_get_drvdata(pctldev);
++	struct stm32_rtc_registers regs = rtc->data->regs;
++	struct device *dev = rtc->rtc_dev->dev.parent;
++	u8 lscoen;
++	int ret;
++
++	if (!rtc->data->has_lsco)
++		return -EPERM;
++
++	ret = stm32_rtc_pinmux_lsco_available(pctldev, pin);
++	if (ret)
++		return ret;
++
++	lscoen = (pin == OUT1) ? STM32_RTC_CFGR_LSCOEN_OUT1 : STM32_RTC_CFGR_LSCOEN_OUT2_RMP;
++
++	rtc->clk_lsco = clk_register_gate(dev, "rtc_lsco", __clk_get_name(rtc->rtc_ck),
++					  CLK_IGNORE_UNUSED | CLK_IS_CRITICAL,
++					  rtc->base + regs.cfgr, lscoen, 0, NULL);
++	if (IS_ERR(rtc->clk_lsco))
++		return PTR_ERR(rtc->clk_lsco);
++
++	of_clk_add_provider(dev->of_node, of_clk_src_simple_get, rtc->clk_lsco);
++
++	return 0;
++}
++
+ static const struct stm32_rtc_pinmux_func stm32_rtc_pinmux_functions[] = {
++	STM32_RTC_PINMUX("lsco", &stm32_rtc_pinmux_action_lsco, "out1", "out2_rmp"),
+ };
+ 
+ static int stm32_rtc_pinmux_get_functions_count(struct pinctrl_dev *pctldev)
+@@ -664,6 +739,7 @@ static const struct stm32_rtc_data stm32
+ 	.has_pclk = false,
+ 	.need_dbp = true,
+ 	.need_accuracy = false,
++	.has_lsco = false,
+ 	.regs = {
+ 		.tr = 0x00,
+ 		.dr = 0x04,
+@@ -674,6 +750,7 @@ static const struct stm32_rtc_data stm32
+ 		.wpr = 0x24,
+ 		.sr = 0x0C, /* set to ISR offset to ease alarm management */
+ 		.scr = UNDEF_REG,
++		.cfgr = UNDEF_REG,
+ 		.verr = UNDEF_REG,
+ 	},
+ 	.events = {
+@@ -686,6 +763,7 @@ static const struct stm32_rtc_data stm32
+ 	.has_pclk = true,
+ 	.need_dbp = true,
+ 	.need_accuracy = false,
++	.has_lsco = false,
+ 	.regs = {
+ 		.tr = 0x00,
+ 		.dr = 0x04,
+@@ -696,6 +774,7 @@ static const struct stm32_rtc_data stm32
+ 		.wpr = 0x24,
+ 		.sr = 0x0C, /* set to ISR offset to ease alarm management */
+ 		.scr = UNDEF_REG,
++		.cfgr = UNDEF_REG,
+ 		.verr = UNDEF_REG,
+ 	},
+ 	.events = {
+@@ -717,6 +796,7 @@ static const struct stm32_rtc_data stm32
+ 	.has_pclk = true,
+ 	.need_dbp = false,
+ 	.need_accuracy = true,
++	.has_lsco = true,
+ 	.regs = {
+ 		.tr = 0x00,
+ 		.dr = 0x04,
+@@ -727,6 +807,7 @@ static const struct stm32_rtc_data stm32
+ 		.wpr = 0x24,
+ 		.sr = 0x50,
+ 		.scr = 0x5C,
++		.cfgr = 0x60,
+ 		.verr = 0x3F4,
+ 	},
+ 	.events = {
+@@ -743,6 +824,19 @@ static const struct of_device_id stm32_r
+ };
+ MODULE_DEVICE_TABLE(of, stm32_rtc_of_match);
+ 
++static void stm32_rtc_clean_outs(struct stm32_rtc *rtc)
++{
++	struct stm32_rtc_registers regs = rtc->data->regs;
++
++	if (regs.cfgr != UNDEF_REG) {
++		unsigned int cfgr = readl_relaxed(rtc->base + regs.cfgr);
++
++		cfgr &= ~STM32_RTC_CFGR_LSCOEN;
++		cfgr &= ~STM32_RTC_CFGR_OUT2_RMP;
++		writel_relaxed(cfgr, rtc->base + regs.cfgr);
++	}
++}
++
+ static int stm32_rtc_init(struct platform_device *pdev,
+ 			  struct stm32_rtc *rtc)
+ {
+@@ -946,6 +1040,8 @@ static int stm32_rtc_probe(struct platfo
+ 		goto err;
+ 	}
+ 
++	stm32_rtc_clean_outs(rtc);
++
+ 	ret = devm_pinctrl_register_and_init(&pdev->dev, &stm32_rtc_pdesc, rtc, &pctl);
+ 	if (ret)
+ 		return dev_err_probe(&pdev->dev, ret, "pinctrl register failed");
+@@ -992,6 +1088,9 @@ static void stm32_rtc_remove(struct plat
+ 	const struct stm32_rtc_registers *regs = &rtc->data->regs;
+ 	unsigned int cr;
+ 
++	if (!IS_ERR_OR_NULL(rtc->clk_lsco))
++		clk_unregister_gate(rtc->clk_lsco);
++
+ 	/* Disable interrupts */
+ 	stm32_rtc_wpr_unlock(rtc);
+ 	cr = readl_relaxed(rtc->base + regs->cr);
diff --git a/target/linux/stm32/patches-6.6/032-ARM-dts-stm32-rtc-add-pin-to-provide-LSCO-on-stm32mp.patch b/target/linux/stm32/patches-6.6/032-ARM-dts-stm32-rtc-add-pin-to-provide-LSCO-on-stm32mp.patch
new file mode 100644
index 0000000000..1d5bedbad3
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/032-ARM-dts-stm32-rtc-add-pin-to-provide-LSCO-on-stm32mp.patch
@@ -0,0 +1,31 @@
+From 92483a156238078562d187f527de6b358cb53a08 Mon Sep 17 00:00:00 2001
+From: Valentin Caron <valentin.caron at foss.st.com>
+Date: Tue, 27 Aug 2024 16:04:48 +0200
+Subject: [PATCH] ARM: dts: stm32: rtc, add pin to provide LSCO on
+ stm32mp13
+
+Declare pin for LSCO in stm32-pinctrl provider node to reserve this pin
+for RTC OUT2_RMP, in stm32mp13-pinctrl.dtsi.
+
+Signed-off-by: Valentin Caron <valentin.caron at foss.st.com>
+Signed-off-by: Alexandre Torgue <alexandre.torgue at foss.st.com>
+---
+ arch/arm/boot/dts/st/stm32mp13-pinctrl.dtsi | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/arch/arm/boot/dts/st/stm32mp13-pinctrl.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp13-pinctrl.dtsi
+@@ -212,6 +212,13 @@
+ 		};
+ 	};
+ 
++	/omit-if-no-ref/
++	rtc_rsvd_pins_a: rtc-rsvd-0 {
++		pins {
++			pinmux = <STM32_PINMUX('I', 1, ANALOG)>; /* RTC_OUT2_RMP */
++		};
++	};
++
+ 	sdmmc1_b4_pins_a: sdmmc1-b4-0 {
+ 		pins {
+ 			pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
diff --git a/target/linux/stm32/patches-6.6/033-ARM-dts-stm32-rtc-add-LSCO-to-WLAN-BT-module-on-stm3.patch b/target/linux/stm32/patches-6.6/033-ARM-dts-stm32-rtc-add-LSCO-to-WLAN-BT-module-on-stm3.patch
new file mode 100644
index 0000000000..ec6a086a7d
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/033-ARM-dts-stm32-rtc-add-LSCO-to-WLAN-BT-module-on-stm3.patch
@@ -0,0 +1,34 @@
+From d6e424f926397e682fc44a952d5b3a1e34b2cd73 Mon Sep 17 00:00:00 2001
+From: Valentin Caron <valentin.caron at foss.st.com>
+Date: Tue, 27 Aug 2024 16:04:50 +0200
+Subject: [PATCH] ARM: dts: stm32: rtc, add LSCO to WLAN/BT module on
+ stm32mp135f-dk
+
+On stm32mp135f-dk board, WLAN/BT module LPO_IN pin is wired to
+RTC OUT2_RMP pin.
+
+Provide a pinctrl configuration to enable LSCO on OUT2_RMP.
+
+Signed-off-by: Valentin Caron <valentin.caron at foss.st.com>
+Signed-off-by: Alexandre Torgue <alexandre.torgue at foss.st.com>
+---
+ arch/arm/boot/dts/st/stm32mp135f-dk.dts | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/arch/arm/boot/dts/st/stm32mp135f-dk.dts
++++ b/arch/arm/boot/dts/st/stm32mp135f-dk.dts
+@@ -184,7 +184,14 @@
+ };
+ 
+ &rtc {
++	pinctrl-names = "default";
++	pinctrl-0 = <&rtc_rsvd_pins_a>;
+ 	status = "okay";
++
++	rtc_lsco_pins_a: rtc-lsco-0 {
++		pins = "out2_rmp";
++		function = "lsco";
++	};
+ };
+ 
+ &scmi_regu {
diff --git a/target/linux/stm32/patches-6.6/034-ARM-dts-stm32-add-support-of-WLAN-BT-on-stm32mp135f-.patch b/target/linux/stm32/patches-6.6/034-ARM-dts-stm32-add-support-of-WLAN-BT-on-stm32mp135f-.patch
new file mode 100644
index 0000000000..e2b69ac8c7
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/034-ARM-dts-stm32-add-support-of-WLAN-BT-on-stm32mp135f-.patch
@@ -0,0 +1,84 @@
+From 6b44fdef4c7ad112e17d7cbd64d7d522a426d6e4 Mon Sep 17 00:00:00 2001
+From: Christophe Roullier <christophe.roullier at foss.st.com>
+Date: Tue, 27 Aug 2024 16:04:52 +0200
+Subject: [PATCH] ARM: dts: stm32: add support of WLAN/BT on stm32mp135f-dk
+
+Add support of WLAN/BT Murata Type 1DX module:
+- usart2 is used for Bluetooth interface
+- sdmmc2 is used for WLAN (sdio) interface
+
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Signed-off-by: Valentin Caron <valentin.caron at foss.st.com>
+Signed-off-by: Alexandre Torgue <alexandre.torgue at foss.st.com>
+---
+ arch/arm/boot/dts/st/stm32mp135f-dk.dts | 45 +++++++++++++++++++++++++
+ 1 file changed, 45 insertions(+)
+
+--- a/arch/arm/boot/dts/st/stm32mp135f-dk.dts
++++ b/arch/arm/boot/dts/st/stm32mp135f-dk.dts
+@@ -67,6 +67,19 @@
+ 			default-state = "off";
+ 		};
+ 	};
++
++	v3v3_ao: v3v3-ao {
++		compatible = "regulator-fixed";
++		regulator-name = "v3v3_ao";
++		regulator-min-microvolt = <3300000>;
++		regulator-max-microvolt = <3300000>;
++		regulator-always-on;
++	};
++
++	wifi_pwrseq: wifi-pwrseq {
++		compatible = "mmc-pwrseq-simple";
++		reset-gpios = <&mcp23017 11 GPIO_ACTIVE_LOW>;
++	};
+ };
+ 
+ &adc_1 {
+@@ -230,6 +243,30 @@
+ 	status = "okay";
+ };
+ 
++/* Wifi */
++&sdmmc2 {
++	pinctrl-names = "default", "opendrain", "sleep";
++	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_clk_pins_a>;
++	pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_clk_pins_a>;
++	pinctrl-2 = <&sdmmc2_b4_sleep_pins_a>;
++	non-removable;
++	cap-sdio-irq;
++	st,neg-edge;
++	bus-width = <4>;
++	vmmc-supply = <&v3v3_ao>;
++	mmc-pwrseq = <&wifi_pwrseq>;
++	#address-cells = <1>;
++	#size-cells = <0>;
++	status = "okay";
++
++	brcmf: bcrmf at 1 {
++		reg = <1>;
++		compatible = "brcm,bcm4329-fmac";
++		pinctrl-names = "default";
++		pinctrl-0 = <&rtc_lsco_pins_a>;
++	};
++};
++
+ &spi5 {
+ 	pinctrl-names = "default", "sleep";
+ 	pinctrl-0 = <&spi5_pins_a>;
+@@ -332,6 +369,14 @@
+ 	pinctrl-2 = <&usart2_idle_pins_a>;
+ 	uart-has-rtscts;
+ 	status = "okay";
++
++	bluetooth {
++		shutdown-gpios = <&mcp23017 13 GPIO_ACTIVE_HIGH>;
++		compatible = "brcm,bcm43438-bt";
++		max-speed = <3000000>;
++		vbat-supply = <&v3v3_ao>;
++		vddio-supply = <&v3v3_ao>;
++	};
+ };
+ 
+ &usbh_ehci {
diff --git a/target/linux/stm32/patches-6.6/700-net-stmmac-dwmac-stm32-add-support-of-phy-supply-pro.patch b/target/linux/stm32/patches-6.6/700-net-stmmac-dwmac-stm32-add-support-of-phy-supply-pro.patch
new file mode 100644
index 0000000000..57d2a26c1a
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/700-net-stmmac-dwmac-stm32-add-support-of-phy-supply-pro.patch
@@ -0,0 +1,106 @@
+From 7bfe3404a02923ca3858abf56b18a098b4be33b2 Mon Sep 17 00:00:00 2001
+From: Christophe Roullier <christophe.roullier at st.com>
+Date: Wed, 10 Nov 2021 17:39:40 +0100
+Subject: [PATCH] net: ethernet: stmmac: stm32: support the phy-supply
+ regulator binding
+
+Configure the phy regulator if defined by the "phy-supply" DT phandle.
+
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+---
+ .../net/ethernet/stmicro/stmmac/dwmac-stm32.c | 51 ++++++++++++++++++-
+ 1 file changed, 50 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
+@@ -14,6 +14,7 @@
+ #include <linux/of_net.h>
+ #include <linux/phy.h>
+ #include <linux/platform_device.h>
++#include <linux/regulator/consumer.h>
+ #include <linux/pm_wakeirq.h>
+ #include <linux/regmap.h>
+ #include <linux/slab.h>
+@@ -92,6 +93,7 @@ struct stm32_dwmac {
+ 	u32 mode_reg;		 /* MAC glue-logic mode register */
+ 	u32 mode_mask;
+ 	struct regmap *regmap;
++	struct regulator *regulator;
+ 	u32 speed;
+ 	const struct stm32_ops *ops;
+ 	struct device *dev;
+@@ -374,6 +376,16 @@ static int stm32_dwmac_parse_data(struct
+ 			dev_dbg(dev, "Warning sysconfig register mask not set\n");
+ 	}
+ 
++	dwmac->regulator = devm_regulator_get_optional(dev, "phy");
++	if (IS_ERR(dwmac->regulator)) {
++		if (PTR_ERR(dwmac->regulator) == -EPROBE_DEFER) {
++			dev_dbg(dev, "phy regulator is not available yet, deferred probing\n");
++			return -EPROBE_DEFER;
++		}
++		dev_dbg(dev, "no regulator found\n");
++		dwmac->regulator = NULL;
++	}
++
+ 	return err;
+ }
+ 
+@@ -439,6 +451,28 @@ static int stm32mp1_parse_data(struct st
+ 	return err;
+ }
+ 
++static int phy_power_on(struct stm32_dwmac *bsp_priv, bool enable)
++{
++	int ret;
++	struct device *dev = bsp_priv->dev;
++
++	if (!bsp_priv->regulator)
++		return 0;
++
++	if (enable) {
++		ret = regulator_enable(bsp_priv->regulator);
++		if (ret)
++			dev_err(dev, "fail to enable phy-supply\n");
++	} else {
++		ret = regulator_disable(bsp_priv->regulator);
++		if (ret)
++			dev_err(dev, "fail to disable phy-supply\n");
++	}
++
++	return 0;
++}
++
++
+ static int stm32_dwmac_probe(struct platform_device *pdev)
+ {
+ 	struct plat_stmmacenet_data *plat_dat;
+@@ -480,12 +514,18 @@ static int stm32_dwmac_probe(struct plat
+ 	if (ret)
+ 		return ret;
+ 
+-	ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
++	ret = phy_power_on(plat_dat->bsp_priv, true);
+ 	if (ret)
+ 		goto err_clk_disable;
+ 
++	ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
++	if (ret)
++		goto err_gmac_powerdown;
++
+ 	return 0;
+ 
++err_gmac_powerdown:
++	phy_power_on(plat_dat->bsp_priv, false);
+ err_clk_disable:
+ 	stm32_dwmac_clk_disable(dwmac, false);
+ 
+@@ -506,6 +546,8 @@ static void stm32_dwmac_remove(struct pl
+ 		dev_pm_clear_wake_irq(&pdev->dev);
+ 		device_init_wakeup(&pdev->dev, false);
+ 	}
++
++	phy_power_on(priv->plat->bsp_priv, false);
+ }
+ 
+ static int stm32mp1_suspend(struct stm32_dwmac *dwmac)
diff --git a/target/linux/stm32/patches-6.6/900-ARM-dts-stm32-add-ethernet2-for-STM32MP135F-DK-board.patch b/target/linux/stm32/patches-6.6/900-ARM-dts-stm32-add-ethernet2-for-STM32MP135F-DK-board.patch
new file mode 100644
index 0000000000..48fa446bd8
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/900-ARM-dts-stm32-add-ethernet2-for-STM32MP135F-DK-board.patch
@@ -0,0 +1,53 @@
+From 63c84f846ec5b794a6c90a1c5813cdb0ae75daf6 Mon Sep 17 00:00:00 2001
+From: Thomas Richard <thomas.richard at bootlin.com>
+Date: Thu, 26 Sep 2024 16:48:52 +0200
+Subject: [PATCH] ARM: dts: stm32: add ethernet2 for STM32MP135F-DK board
+
+This patch is based on the stm32mp135f-dk devicetree from 6.6 ST kernel.
+
+Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
+---
+ arch/arm/boot/dts/st/stm32mp135f-dk.dts | 25 +++++++++++++++++++++++++
+ 1 file changed, 25 insertions(+)
+
+--- a/arch/arm/boot/dts/st/stm32mp135f-dk.dts
++++ b/arch/arm/boot/dts/st/stm32mp135f-dk.dts
+@@ -20,6 +20,7 @@
+ 
+ 	aliases {
+ 		ethernet0 = &ethernet1;
++		ethernet1 = &ethernet2;
+ 		serial0 = &uart4;
+ 		serial1 = &usart1;
+ 		serial2 = &uart8;
+@@ -129,6 +130,30 @@
+ 	};
+ };
+ 
++&ethernet2 {
++	status = "okay";
++	pinctrl-0 = <&eth2_rmii_pins_a>;
++	pinctrl-1 = <&eth2_rmii_sleep_pins_a>;
++	pinctrl-names = "default", "sleep";
++	phy-mode = "rmii";
++	phy-handle = <&phy0_eth2>;
++	st,ext-phyclk;
++	phy-supply = <&scmi_v3v3_sw>;
++
++	mdio1 {
++		#address-cells = <1>;
++		#size-cells = <0>;
++		compatible = "snps,dwmac-mdio";
++		phy0_eth2: ethernet-phy at 0 {
++			compatible = "ethernet-phy-id0007.c131";
++			reset-gpios = <&mcp23017 10 GPIO_ACTIVE_LOW>;
++			reg = <0>;
++		};
++	};
++};
++
++
++
+ &i2c1 {
+ 	pinctrl-names = "default", "sleep";
+ 	pinctrl-0 = <&i2c1_pins_a>;
diff --git a/target/linux/stm32/stm32mp1/config-6.6 b/target/linux/stm32/stm32mp1/config-6.6
new file mode 100644
index 0000000000..946649ef9b
--- /dev/null
+++ b/target/linux/stm32/stm32mp1/config-6.6
@@ -0,0 +1,485 @@
+CONFIG_ALIGNMENT_TRAP=y
+CONFIG_ARCH_32BIT_OFF_T=y
+CONFIG_ARCH_FORCE_MAX_ORDER=12
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_KEEP_MEMBLOCK=y
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
+CONFIG_ARCH_MULTIPLATFORM=y
+CONFIG_ARCH_MULTI_V6_V7=y
+CONFIG_ARCH_MULTI_V7=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_STACKWALK=y
+CONFIG_ARCH_STM32=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARM=y
+CONFIG_ARM_AMBA=y
+CONFIG_ARM_APPENDED_DTB=y
+CONFIG_ARM_ARCH_TIMER=y
+CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
+CONFIG_ARM_ATAG_DTB_COMPAT=y
+CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y
+CONFIG_ARM_CPU_SUSPEND=y
+CONFIG_ARM_ERRATA_430973=y
+CONFIG_ARM_ERRATA_643719=y
+CONFIG_ARM_ERRATA_720789=y
+CONFIG_ARM_ERRATA_754322=y
+CONFIG_ARM_ERRATA_754327=y
+CONFIG_ARM_ERRATA_764369=y
+CONFIG_ARM_ERRATA_775420=y
+CONFIG_ARM_ERRATA_798181=y
+CONFIG_ARM_ERRATA_814220=y
+CONFIG_ARM_GIC=y
+CONFIG_ARM_HAS_GROUP_RELOCS=y
+# CONFIG_ARM_HIGHBANK_CPUIDLE is not set
+CONFIG_ARM_L1_CACHE_SHIFT=6
+CONFIG_ARM_L1_CACHE_SHIFT_6=y
+CONFIG_ARM_PATCH_IDIV=y
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+# CONFIG_ARM_PL172_MPMC is not set
+CONFIG_ARM_PSCI=y
+CONFIG_ARM_PSCI_CPUIDLE=y
+CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y
+CONFIG_ARM_PSCI_FW=y
+CONFIG_ARM_SCMI_CPUFREQ=y
+CONFIG_ARM_SCMI_HAVE_MSG=y
+CONFIG_ARM_SCMI_HAVE_SHMEM=y
+CONFIG_ARM_SCMI_HAVE_TRANSPORT=y
+# CONFIG_ARM_SCMI_POWER_CONTROL is not set
+CONFIG_ARM_SCMI_POWER_DOMAIN=y
+CONFIG_ARM_SCMI_PROTOCOL=y
+# CONFIG_ARM_SCMI_RAW_MODE_SUPPORT is not set
+CONFIG_ARM_SCMI_TRANSPORT_OPTEE=y
+CONFIG_ARM_SCMI_TRANSPORT_SMC=y
+# CONFIG_ARM_SCMI_TRANSPORT_SMC_ATOMIC_ENABLE is not set
+CONFIG_ARM_SMCCC_SOC_ID=y
+CONFIG_ARM_SMC_WATCHDOG=y
+# CONFIG_ARM_SMMU is not set
+CONFIG_ARM_THUMB=y
+CONFIG_ARM_THUMBEE=y
+CONFIG_ARM_UNWIND=y
+CONFIG_ARM_VIRT_EXT=y
+CONFIG_AUTO_ZRELADDR=y
+CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y
+# CONFIG_BLK_DEV_INITRD is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_PM=y
+CONFIG_BOUNCE=y
+CONFIG_BUFFER_HEAD=y
+# CONFIG_CACHE_L2X0 is not set
+CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
+CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
+CONFIG_CC_NO_ARRAY_BOUNDS=y
+CONFIG_CHR_DEV_SG=y
+CONFIG_CLKSRC_MMIO=y
+CONFIG_CLKSRC_STM32=y
+CONFIG_CLK_ICST=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_CMA=y
+CONFIG_CMA_ALIGNMENT=8
+CONFIG_CMA_AREAS=7
+# CONFIG_CMA_DEBUG is not set
+# CONFIG_CMA_DEBUGFS is not set
+CONFIG_CMA_SIZE_MBYTES=64
+# CONFIG_CMA_SIZE_SEL_MAX is not set
+CONFIG_CMA_SIZE_SEL_MBYTES=y
+# CONFIG_CMA_SIZE_SEL_MIN is not set
+# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
+# CONFIG_CMA_SYSFS is not set
+CONFIG_CMDLINE_PARTITION=y
+CONFIG_COMMON_CLK=y
+CONFIG_COMMON_CLK_SCMI=y
+CONFIG_COMMON_CLK_STM32MP135=y
+CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_CONTEXT_TRACKING=y
+CONFIG_CONTEXT_TRACKING_IDLE=y
+CONFIG_CONTIG_ALLOC=y
+CONFIG_COREDUMP=y
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_CPUFREQ_DT=y
+CONFIG_CPUFREQ_DT_PLATDEV=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_32v7=y
+CONFIG_CPU_ABRT_EV7=y
+CONFIG_CPU_CACHE_V7=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
+CONFIG_CPU_ISOLATION=y
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_CPU_MITIGATIONS=y
+CONFIG_CPU_PABRT_V7=y
+CONFIG_CPU_PM=y
+CONFIG_CPU_RMAP=y
+CONFIG_CPU_SPECTRE=y
+CONFIG_CPU_THUMB_CAPABLE=y
+CONFIG_CPU_TLB_V7=y
+CONFIG_CPU_V7=y
+CONFIG_CRC16=y
+CONFIG_CROSS_MEMORY_ATTACH=y
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
+CONFIG_CRYPTO_LIB_GF128MUL=y
+CONFIG_CRYPTO_LIB_SHA1=y
+CONFIG_CRYPTO_LIB_UTILS=y
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CURRENT_POINTER_IN_TPIDRURO=y
+CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_DEBUG_ALIGN_RODATA=y
+CONFIG_DEBUG_INFO=y
+CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
+CONFIG_DEVFREQ_GOV_PASSIVE=y
+# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
+# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+# CONFIG_DEVFREQ_GOV_USERSPACE is not set
+CONFIG_DMADEVICES=y
+CONFIG_DMA_CMA=y
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_OF=y
+CONFIG_DMA_OPS=y
+CONFIG_DMA_SHARED_BUFFER=y
+CONFIG_DMA_VIRTUAL_CHANNELS=y
+CONFIG_DNOTIFY=y
+CONFIG_DTC=y
+CONFIG_DT_IDLE_GENPD=y
+CONFIG_DT_IDLE_STATES=y
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DWMAC_DWC_QOS_ETH=y
+CONFIG_DWMAC_GENERIC=y
+CONFIG_DWMAC_STM32=y
+CONFIG_DW_DMAC=y
+CONFIG_DW_DMAC_CORE=y
+CONFIG_EDAC=y
+CONFIG_EDAC_ATOMIC_SCRUB=y
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_LEGACY_SYSFS=y
+CONFIG_EDAC_SUPPORT=y
+CONFIG_ELF_CORE=y
+CONFIG_EXCLUSIVE_SYSTEM_RAM=y
+CONFIG_EXT4_FS=y
+CONFIG_FIXED_PHY=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_FREEZER=y
+CONFIG_FS_IOMAP=y
+CONFIG_FS_MBCACHE=y
+CONFIG_FUNCTION_ALIGNMENT=0
+CONFIG_FWNODE_MDIO=y
+CONFIG_FW_CACHE=y
+# CONFIG_FW_LOADER_USER_HELPER is not set
+CONFIG_GCC10_NO_ARRAY_BOUNDS=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_GENERIC_CPU_VULNERABILITIES=y
+CONFIG_GENERIC_EARLY_IOREMAP=y
+CONFIG_GENERIC_GETTIMEOFDAY=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
+CONFIG_GENERIC_IRQ_MIGRATION=y
+CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
+CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_PHY=y
+CONFIG_GENERIC_PINCONF=y
+CONFIG_GENERIC_PINCTRL_GROUPS=y
+CONFIG_GENERIC_PINMUX_FUNCTIONS=y
+CONFIG_GENERIC_SCHED_CLOCK=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_VDSO_32=y
+CONFIG_GLOB=y
+CONFIG_GPIOLIB_IRQCHIP=y
+CONFIG_GPIO_CDEV=y
+CONFIG_GPIO_GENERIC=y
+CONFIG_GPIO_GENERIC_PLATFORM=y
+CONFIG_GPIO_SYSCON=y
+# CONFIG_GPIO_SYSFS is not set
+CONFIG_HARDEN_BRANCH_PREDICTOR=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_HAS_DMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAVE_SMP=y
+CONFIG_HIGHMEM=y
+CONFIG_HIGHPTE=y
+CONFIG_HOTPLUG_CORE_SYNC=y
+CONFIG_HOTPLUG_CORE_SYNC_DEAD=y
+CONFIG_HOTPLUG_CPU=y
+CONFIG_HW_CONSOLE=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_OPTEE=y
+# CONFIG_HW_RANDOM_STM32 is not set
+CONFIG_HZ_FIXED=0
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_DEMUX_PINCTRL=y
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_MUX=y
+CONFIG_I2C_MUX_GPIO=y
+CONFIG_I2C_MUX_PCA954x=y
+CONFIG_I2C_MUX_PINCTRL=y
+CONFIG_I2C_SLAVE=y
+# CONFIG_I2C_SLAVE_TESTUNIT is not set
+CONFIG_I2C_SMBUS=y
+# CONFIG_I2C_STM32F4 is not set
+CONFIG_I2C_STM32F7=y
+CONFIG_INPUT=y
+# CONFIG_IOMMUFD is not set
+# CONFIG_IOMMU_DEBUGFS is not set
+CONFIG_IOMMU_IO_PGTABLE=y
+# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
+CONFIG_IOMMU_IO_PGTABLE_LPAE=y
+# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
+CONFIG_IOMMU_SUPPORT=y
+CONFIG_IRQCHIP=y
+CONFIG_IRQSTACKS=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_IRQ_WORK=y
+CONFIG_JBD2=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_XZ is not set
+CONFIG_KMAP_LOCAL=y
+CONFIG_KMAP_LOCAL_NON_LINEAR_PTE_ARRAY=y
+# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
+# CONFIG_LEDS_CLASS_MULTICOLOR is not set
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_ONESHOT=y
+CONFIG_LEDS_TRIGGER_TRANSIENT=y
+CONFIG_LIBFDT=y
+CONFIG_LOCK_DEBUGGING_SUPPORT=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_LOG_BUF_SHIFT=16
+# CONFIG_LRU_GEN is not set
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_MACH_STM32MP13=y
+# CONFIG_MACH_STM32MP157 is not set
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MAGIC_SYSRQ_SERIAL=y
+CONFIG_MDIO_BITBANG=y
+CONFIG_MDIO_BUS=y
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_DEVRES=y
+# CONFIG_MDIO_GPIO is not set
+CONFIG_MEMORY=y
+CONFIG_MEMORY_ISOLATION=y
+# CONFIG_MFD_STM32_LPTIMER is not set
+# CONFIG_MFD_STM32_TIMERS is not set
+CONFIG_MFD_SYSCON=y
+CONFIG_MIGHT_HAVE_CACHE_L2X0=y
+CONFIG_MIGRATION=y
+CONFIG_MMC=y
+CONFIG_MMC_ARMMMCI=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=16
+CONFIG_MMC_STM32_SDMMC=y
+CONFIG_MMU_LAZY_TLB_REFCOUNT=y
+CONFIG_MODULES_USE_ELF_REL=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SRCU_NMI_SAFE=y
+CONFIG_NEON=y
+CONFIG_NET_EGRESS=y
+CONFIG_NET_FLOW_LIMIT=y
+CONFIG_NET_INGRESS=y
+CONFIG_NET_PTP_CLASSIFY=y
+CONFIG_NET_SELFTESTS=y
+CONFIG_NET_XGRESS=y
+CONFIG_NO_HZ_COMMON=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_NR_CPUS=2
+CONFIG_OF=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_DYNAMIC=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_KOBJ=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_OVERLAY=y
+CONFIG_OF_RESOLVE=y
+CONFIG_OLD_SIGACTION=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_OPTEE=y
+CONFIG_PADATA=y
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_PAGE_POOL=y
+CONFIG_PAGE_POOL_STATS=y
+CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
+CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=0
+CONFIG_PCPU_DEV_REFCNT=y
+CONFIG_PCS_XPCS=y
+CONFIG_PERF_USE_VMALLOC=y
+CONFIG_PGTABLE_LEVELS=2
+CONFIG_PHYLIB=y
+CONFIG_PHYLIB_LEDS=y
+CONFIG_PHYLINK=y
+# CONFIG_PHY_STM32_USBPHYC is not set
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_MCP23S08=y
+CONFIG_PINCTRL_MCP23S08_I2C=y
+CONFIG_PINCTRL_STM32=y
+CONFIG_PINCTRL_STM32MP135=y
+# CONFIG_PL353_SMC is not set
+CONFIG_PM=y
+CONFIG_PM_CLK=y
+CONFIG_PM_DEVFREQ=y
+CONFIG_PM_DEVFREQ_EVENT=y
+CONFIG_PM_GENERIC_DOMAINS=y
+CONFIG_PM_GENERIC_DOMAINS_OF=y
+CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
+CONFIG_PM_OPP=y
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_GPIO=y
+CONFIG_POWER_RESET_GPIO_RESTART=y
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_PPS=y
+CONFIG_PREEMPT_NONE_BUILD=y
+CONFIG_PRINTK_TIME=y
+CONFIG_PTP_1588_CLOCK=y
+CONFIG_PTP_1588_CLOCK_OPTIONAL=y
+CONFIG_RANDSTRUCT_NONE=y
+CONFIG_RAS=y
+CONFIG_RATIONAL=y
+# CONFIG_RAVE_SP_CORE is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_ARM_SCMI=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_GPIO=y
+# CONFIG_REGULATOR_STM32_BOOSTER is not set
+# CONFIG_REGULATOR_STM32_PWR is not set
+# CONFIG_REGULATOR_STM32_VREFBUF is not set
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RESET_SCMI=y
+CONFIG_RESET_SIMPLE=y
+CONFIG_RFS_ACCEL=y
+CONFIG_RPS=y
+CONFIG_RTC_CLASS=y
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_OPTEE is not set
+CONFIG_RTC_DRV_STM32=y
+CONFIG_RTC_I2C_AND_SPI=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_SCSI=y
+CONFIG_SCSI_COMMON=y
+# CONFIG_SERIAL_8250 is not set
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+CONFIG_SERIAL_MCTRL_GPIO=y
+CONFIG_SERIAL_STM32=y
+CONFIG_SERIAL_STM32_CONSOLE=y
+CONFIG_SERIO=y
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_SERPORT=y
+CONFIG_SGL_ALLOC=y
+CONFIG_SG_POOL=y
+CONFIG_SMP=y
+CONFIG_SMP_ON_UP=y
+CONFIG_SOCK_RX_QUEUE_MAPPING=y
+CONFIG_SOC_BUS=y
+CONFIG_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FILE_CACHE=y
+# CONFIG_SQUASHFS_FILE_DIRECT is not set
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_ZLIB=y
+CONFIG_STM32_DMA=y
+CONFIG_STM32_DMAMUX=y
+CONFIG_STM32_EXTI=y
+# CONFIG_STM32_FMC2_EBI is not set
+CONFIG_STM32_MDMA=y
+CONFIG_STM32_WATCHDOG=y
+CONFIG_STMMAC_ETH=y
+CONFIG_STMMAC_PLATFORM=y
+# CONFIG_STRIP_ASM_SYMS is not set
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_SWPHY=y
+CONFIG_SWP_EMULATE=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_TEE=y
+CONFIG_THREAD_INFO_IN_TASK=y
+CONFIG_TICK_CPU_ACCOUNTING=y
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_TREE_RCU=y
+CONFIG_TREE_SRCU=y
+CONFIG_TRUSTED_FOUNDATIONS=y
+# CONFIG_UCLAMP_TASK is not set
+# CONFIG_UEVENT_HELPER is not set
+CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
+CONFIG_UNWINDER_ARM=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USELIB=y
+CONFIG_USE_OF=y
+CONFIG_VFP=y
+CONFIG_VFPv3=y
+CONFIG_VMAP_STACK=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_WATCHDOG_CORE=y
+# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
+CONFIG_XPS=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_BCJ=y
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=y
diff --git a/target/linux/stm32/stm32mp1/target.mk b/target/linux/stm32/stm32mp1/target.mk
new file mode 100644
index 0000000000..c41055d5b5
--- /dev/null
+++ b/target/linux/stm32/stm32mp1/target.mk
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Copyright (C) 2024 Bootlin
+#
+
+BOARDNAME:=STM32MP1 boards
+ARCH:=arm
+CPU_TYPE:=cortex-a7
+CPU_SUBTYPE=neon-vfpv4
+FEATURES+=fpu
+KERNEL_IMAGES:=zImage
+



From lede-commits at lists.infradead.org  Sat Nov 23 07:21:04 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 10:21:04 -0500
Subject: [openwrt/openwrt]  kernel: package v4l2-async and v4l2-fwnode drivers
In-Reply-To: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
References: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
Message-ID: <mailman.4634.1732376138.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/e109831e07e398cc50839a30a1cf18c4436983f4

commit e109831e07e398cc50839a30a1cf18c4436983f4
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Tue Nov 5 11:13:34 2024 +0100

    kernel: package v4l2-async and v4l2-fwnode drivers
    
    These packages are needed for the stm32/stm32mp1 subtarget.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/kernel/linux/modules/video.mk | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/package/kernel/linux/modules/video.mk b/package/kernel/linux/modules/video.mk
index 486b9b9ab1..9bb030bf57 100644
--- a/package/kernel/linux/modules/video.mk
+++ b/package/kernel/linux/modules/video.mk
@@ -680,6 +680,25 @@ endef
 
 $(eval $(call KernelPackage,video-videobuf2))
 
+define KernelPackage/video-async
+  TITLE:=V4L2 ASYNC support
+  KCONFIG:=CONFIG_V4L2_ASYNC
+  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_DIR)/v4l2-async.ko
+  $(call AddDepends/video)
+  AUTOLOAD:=$(call AutoProbe,v4l2-async)
+endef
+
+$(eval $(call KernelPackage,video-async))
+
+define KernelPackage/video-fwnode
+  TITLE:=V4L2 FWNODE support
+  KCONFIG:=CONFIG_V4L2_FWNODE
+  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_DIR)/v4l2-fwnode.ko
+  $(call AddDepends/video,+kmod-video-async)
+  AUTOLOAD:=$(call AutoProbe,v4l2-fwnode)
+endef
+
+$(eval $(call KernelPackage,video-fwnode))
 
 define KernelPackage/video-cpia2
   TITLE:=CPIA2 video driver



From lede-commits at lists.infradead.org  Sat Nov 23 07:21:00 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 10:21:00 -0500
Subject: [openwrt/openwrt]  kernel: package crypto_engine driver
In-Reply-To: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
References: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
Message-ID: <mailman.4635.1732376177.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/7bcc68ede36dcc66ec6cdb45c3201e0af0f90708

commit 7bcc68ede36dcc66ec6cdb45c3201e0af0f90708
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Tue Nov 5 10:38:49 2024 +0100

    kernel: package crypto_engine driver
    
    It is needed for the stm32/stm32mp1 subtarget.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/kernel/linux/modules/crypto.mk | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/package/kernel/linux/modules/crypto.mk b/package/kernel/linux/modules/crypto.mk
index ce22163547..2257a36c80 100644
--- a/package/kernel/linux/modules/crypto.mk
+++ b/package/kernel/linux/modules/crypto.mk
@@ -249,6 +249,15 @@ endef
 
 $(eval $(call KernelPackage,crypto-echainiv))
 
+define KernelPackage/crypto-engine
+  TITLE:=Crypto engine
+  KCONFIG:=CONFIG_CRYPTO_ENGINE
+  FILES:=$(LINUX_DIR)/crypto/crypto_engine.ko
+  AUTOLOAD:=$(call AutoLoad,09,crypto_engine)
+  $(call AddDepends/crypto, +kmod-crypto-rsa +kmod-crypto-kpp)
+endef
+
+$(eval $(call KernelPackage,crypto-engine))
 
 define KernelPackage/crypto-essiv
   TITLE:=ESSIV support for block encryption



From lede-commits at lists.infradead.org  Sat Nov 23 07:21:02 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 10:21:02 -0500
Subject: [openwrt/openwrt]  kernel: package media controller driver
In-Reply-To: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
References: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
Message-ID: <mailman.4636.1732376180.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/bb3418f21f7b8fe0dcd335375d183dd2a81772bf

commit bb3418f21f7b8fe0dcd335375d183dd2a81772bf
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Tue Nov 5 11:10:44 2024 +0100

    kernel: package media controller driver
    
    It is needed for the stm32/stm32mp1 subtarget.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/kernel/linux/modules/video.mk | 25 +++++++++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)

diff --git a/package/kernel/linux/modules/video.mk b/package/kernel/linux/modules/video.mk
index f2fa82fd03..486b9b9ab1 100644
--- a/package/kernel/linux/modules/video.mk
+++ b/package/kernel/linux/modules/video.mk
@@ -12,6 +12,28 @@ V4L2_DIR=v4l2-core
 V4L2_USB_DIR=usb
 V4L2_MEM2MEM_DIR=platform
 
+#
+# Media
+#
+define KernelPackage/media-controller
+  SUBMENU:=$(VIDEO_MENU)
+  TITLE:=Media Controller API
+  KCONFIG:= \
+	CONFIG_MEDIA_SUPPORT \
+	CONFIG_MEDIA_CONTROLLER=y
+  FILES:= \
+	$(LINUX_DIR)/drivers/media/mc/mc.ko
+  AUTOLOAD:=$(call AutoProbe,mc)
+endef
+
+define KernelPackage/media-controller/description
+ Kernel modules for media controller API used to query media devices
+ internal topology and configure it dynamically.
+endef
+
+$(eval $(call KernelPackage,media-controller))
+
+
 #
 # Video Display
 #
@@ -601,9 +623,8 @@ $(eval $(call KernelPackage,drm-radeon))
 define KernelPackage/video-core
   SUBMENU:=$(VIDEO_MENU)
   TITLE=Video4Linux support
-  DEPENDS:=+PACKAGE_kmod-i2c-core:kmod-i2c-core
+  DEPENDS:=+PACKAGE_kmod-i2c-core:kmod-i2c-core +kmod-media-controller
   KCONFIG:= \
-	CONFIG_MEDIA_SUPPORT \
 	CONFIG_MEDIA_CAMERA_SUPPORT=y \
 	CONFIG_VIDEO_DEV \
 	CONFIG_V4L_PLATFORM_DRIVERS=y \



From lede-commits at lists.infradead.org  Sat Nov 23 07:21:03 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 10:21:03 -0500
Subject: [openwrt/openwrt]  kernel: add kmod-media-controller dependency for
 kmod-usb-audio
In-Reply-To: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
References: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
Message-ID: <mailman.4637.1732376217.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/109592524663ae8bbda47e4ad51a124153a1c903

commit 109592524663ae8bbda47e4ad51a124153a1c903
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Tue Nov 5 11:23:36 2024 +0100

    kernel: add kmod-media-controller dependency for kmod-usb-audio
    
    The snd-usb-audio drivers uses media controller if media controller is set.
    So add kmod-media-controller as dependency.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/kernel/linux/modules/usb.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/kernel/linux/modules/usb.mk b/package/kernel/linux/modules/usb.mk
index 458c8c4ba6..466c547e8a 100644
--- a/package/kernel/linux/modules/usb.mk
+++ b/package/kernel/linux/modules/usb.mk
@@ -576,6 +576,7 @@ define KernelPackage/usb-audio
 	CONFIG_SND_USB_AUDIO
   $(call AddDepends/usb)
   $(call AddDepends/sound)
+  DEPENDS+=kmod-media-controller
   FILES:= \
 	$(LINUX_DIR)/sound/usb/snd-usbmidi-lib.ko \
 	$(LINUX_DIR)/sound/usb/snd-usb-audio.ko



From lede-commits at lists.infradead.org  Sat Nov 23 07:21:01 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 10:21:01 -0500
Subject: [openwrt/openwrt]  kernel: package industrialio-buffer-cb driver
In-Reply-To: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
References: <173237525015.1656265.6191145886356890037@git-01.infra.openwrt.org>
Message-ID: <mailman.4638.1732376258.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/b0adf5e0fdc0d4b449bced9191a95bf08124c1ac

commit b0adf5e0fdc0d4b449bced9191a95bf08124c1ac
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Tue Nov 5 10:39:47 2024 +0100

    kernel: package industrialio-buffer-cb driver
    
    It is needed for the stm32/stm32mp1 subtarget.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/kernel/linux/modules/iio.mk | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/package/kernel/linux/modules/iio.mk b/package/kernel/linux/modules/iio.mk
index b9bcaad5b2..e98a6830da 100644
--- a/package/kernel/linux/modules/iio.mk
+++ b/package/kernel/linux/modules/iio.mk
@@ -63,6 +63,21 @@ endef
 $(eval $(call KernelPackage,industrialio-hw-consumer))
 
 
+define KernelPackage/industrialio-buffer-cb
+  TITLE:=Provides callback buffer used for push in-kernel interfaces
+  KCONFIG:=CONFIG_IIO_BUFFER_CB
+  FILES:=$(LINUX_DIR)/drivers/iio/buffer/industrialio-buffer-cb.ko
+  AUTOLOAD:=$(call AutoLoad,55,industrialio-triggered-buffer-cb)
+  $(call AddDepends/iio)
+endef
+
+define KernelPackage/industrialio-buffer-cb/description
+ Should be selected by any drivers that do in-kernel push usage.
+endef
+
+$(eval $(call KernelPackage,industrialio-buffer-cb))
+
+
 define KernelPackage/industrialio-triggered-buffer
   TITLE:=Provides helper functions for setting up triggered buffers.
   DEPENDS:=+kmod-iio-kfifo-buf



From lede-commits at lists.infradead.org  Sat Nov 23 07:45:56 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 10:45:56 -0500
Subject: [openwrt/openwrt]  kernel: modules: appletalk: add for Netatalk v4
In-Reply-To: <173237675694.1782323.13489473525616460686@git-01.infra.openwrt.org>
References: <173237675694.1782323.13489473525616460686@git-01.infra.openwrt.org>
Message-ID: <mailman.4639.1732376760.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/5eb25dddb17fa3cf4958e91dfc9fc868c9eb03ac

commit 5eb25dddb17fa3cf4958e91dfc9fc868c9eb03ac
Author: Antonio Pastor <antonio.pastor at gmail.com>
AuthorDate: Sat Nov 16 15:09:49 2024 -0500

    kernel: modules: appletalk: add for Netatalk v4
    
    Netatalk v4 reintroduces AppleTalk and this module is required for
    layer 3 protocol support.
    
    Module was removed in kernel 4.14 for OpenWrt 18.06 (commmit
    14a0131, 22/02/2018). At the time nothing used it as Netatalk v3
    did not support AppleTalk.
    
    Not building ipddp feature/module like it was in the past, as
    recommended by upstream Netatalk maintainers.
    
    Signed-off-by: Antonio Pastor <antonio.pastor at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16979
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/kernel/linux/modules/netsupport.mk | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/package/kernel/linux/modules/netsupport.mk b/package/kernel/linux/modules/netsupport.mk
index 9f349d34ee..3551a89a9b 100644
--- a/package/kernel/linux/modules/netsupport.mk
+++ b/package/kernel/linux/modules/netsupport.mk
@@ -42,6 +42,24 @@ endef
 $(eval $(call KernelPackage,atmtcp))
 
 
+define KernelPackage/appletalk
+  SUBMENU:=$(NETWORK_SUPPORT_MENU)
+  TITLE:=Appletalk protocol support
+  KCONFIG:= \
+        CONFIG_ATALK \
+        CONFIG_DEV_APPLETALK \
+        CONFIG_IPDDP=n
+  FILES:=$(LINUX_DIR)/net/appletalk/appletalk.ko
+  AUTOLOAD:=$(call AutoLoad,40,appletalk)
+endef
+
+define KernelPackage/appletalk/description
+  Kernel module for AppleTalk protocol.
+endef
+
+$(eval $(call KernelPackage,appletalk))
+
+
 define KernelPackage/bonding
   SUBMENU:=$(NETWORK_SUPPORT_MENU)
   TITLE:=Ethernet bonding driver



From lede-commits at lists.infradead.org  Sat Nov 23 07:48:31 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 10:48:31 -0500
Subject: [openwrt/openwrt]  mxs: run kernel_oldconfig
In-Reply-To: <173237691184.1794284.16727992061712853673@git-01.infra.openwrt.org>
References: <173237691184.1794284.16727992061712853673@git-01.infra.openwrt.org>
Message-ID: <mailman.4642.1732376915.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/55644397cd3cb3d8c77d74c9d22872502d091257

commit 55644397cd3cb3d8c77d74c9d22872502d091257
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Tue Oct 22 17:07:44 2024 -0700

    mxs: run kernel_oldconfig
    
    small change.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16913
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/mxs/config-6.6 | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/target/linux/mxs/config-6.6 b/target/linux/mxs/config-6.6
index b954ea2548..e01e266c0d 100644
--- a/target/linux/mxs/config-6.6
+++ b/target/linux/mxs/config-6.6
@@ -53,6 +53,7 @@ CONFIG_CPU_IDLE=y
 CONFIG_CPU_IDLE_GOV_LADDER=y
 CONFIG_CPU_IDLE_GOV_MENU=y
 CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_CPU_MITIGATIONS=y
 CONFIG_CPU_PABRT_LEGACY=y
 CONFIG_CPU_PM=y
 CONFIG_CPU_THUMB_CAPABLE=y
@@ -70,6 +71,7 @@ CONFIG_CRYPTO_LIB_GF128MUL=y
 CONFIG_CRYPTO_LIB_SHA1=y
 CONFIG_CRYPTO_LIB_UTILS=y
 CONFIG_DEBUG_ALIGN_RODATA=y
+CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
 CONFIG_DMADEVICES=y
 CONFIG_DMA_ENGINE=y
@@ -84,6 +86,7 @@ CONFIG_EXTCON=y
 CONFIG_FEC=y
 CONFIG_FIXED_PHY=y
 CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_FORCE_NR_CPUS=y
 CONFIG_FS_IOMAP=y
 CONFIG_FS_MBCACHE=y
 CONFIG_FUNCTION_ALIGNMENT=0
@@ -206,6 +209,7 @@ CONFIG_PPS=y
 CONFIG_PREEMPT_NONE_BUILD=y
 CONFIG_PTP_1588_CLOCK=y
 CONFIG_PTP_1588_CLOCK_OPTIONAL=y
+CONFIG_RANDSTRUCT_NONE=y
 CONFIG_RATIONAL=y
 CONFIG_REGULATOR=y
 CONFIG_REGULATOR_FIXED_VOLTAGE=y
@@ -231,6 +235,7 @@ CONFIG_SPI=y
 CONFIG_SPI_MASTER=y
 CONFIG_SPI_MXS=y
 CONFIG_SPLIT_PTLOCK_CPUS=999999
+CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
 CONFIG_STMP3XXX_RTC_WATCHDOG=y
 CONFIG_STMP_DEVICE=y
 CONFIG_SWPHY=y



From lede-commits at lists.infradead.org  Sat Nov 23 08:20:27 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 11:20:27 -0500
Subject: [openwrt/openwrt]  mvebu: devm for mutex_init
In-Reply-To: <173237882715.1958369.15896177241686333525@git-01.infra.openwrt.org>
References: <173237882715.1958369.15896177241686333525@git-01.infra.openwrt.org>
Message-ID: <mailman.4653.1732378830.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/6280b4abfbc087157bc233083a67a42bffa31010

commit 6280b4abfbc087157bc233083a67a42bffa31010
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Fri Oct 18 19:19:50 2024 -0700

    mvebu: devm for mutex_init
    
    It's common to avoid calling mutex_destroy when done. It's not correct
    strictly speaking.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16753
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 ...-drivers-mfd-Add-a-driver-for-IEI-WT61P803-PUZZLE-MCU.patch | 10 +++++++---
 ...-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch |  6 ++++--
 .../910-drivers-leds-wt61p803-puzzle-improvements.patch        |  6 ++++--
 3 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/target/linux/mvebu/patches-6.6/902-drivers-mfd-Add-a-driver-for-IEI-WT61P803-PUZZLE-MCU.patch b/target/linux/mvebu/patches-6.6/902-drivers-mfd-Add-a-driver-for-IEI-WT61P803-PUZZLE-MCU.patch
index 1046b15e4b..2aac515eb1 100644
--- a/target/linux/mvebu/patches-6.6/902-drivers-mfd-Add-a-driver-for-IEI-WT61P803-PUZZLE-MCU.patch
+++ b/target/linux/mvebu/patches-6.6/902-drivers-mfd-Add-a-driver-for-IEI-WT61P803-PUZZLE-MCU.patch
@@ -54,7 +54,7 @@ Cc: Robert Marko <robert.marko at sartura.hr>
  obj-$(CONFIG_INTEL_SOC_PMIC_BXTWC)	+= intel_soc_pmic_bxtwc.o
 --- /dev/null
 +++ b/drivers/mfd/iei-wt61p803-puzzle.c
-@@ -0,0 +1,908 @@
+@@ -0,0 +1,912 @@
 +// SPDX-License-Identifier: GPL-2.0-only
 +/* IEI WT61P803 PUZZLE MCU Driver
 + * System management microcontroller for fan control, temperature sensor reading,
@@ -894,8 +894,12 @@ Cc: Robert Marko <robert.marko at sartura.hr>
 +	mcu->serdev = serdev;
 +	mcu->dev = dev;
 +	init_completion(&mcu->reply->received);
-+	mutex_init(&mcu->reply_lock);
-+	mutex_init(&mcu->lock);
++	ret = devm_mutex_init(dev, &mcu->reply_lock);
++	if (ret)
++		return ret;
++	ret = devm_mutex_init(dev, &mcu->lock);
++	if (ret)
++		return ret;
 +
 +	/* Setup UART interface */
 +	serdev_device_set_drvdata(serdev, mcu);
diff --git a/target/linux/mvebu/patches-6.6/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch b/target/linux/mvebu/patches-6.6/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch
index 983434e666..eca2bb81e4 100644
--- a/target/linux/mvebu/patches-6.6/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch
+++ b/target/linux/mvebu/patches-6.6/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch
@@ -53,7 +53,7 @@ Cc: Robert Marko <robert.marko at sartura.hr>
  obj-$(CONFIG_SENSORS_IBMPOWERNV)+= ibmpowernv.o
 --- /dev/null
 +++ b/drivers/hwmon/iei-wt61p803-puzzle-hwmon.c
-@@ -0,0 +1,445 @@
+@@ -0,0 +1,447 @@
 +// SPDX-License-Identifier: GPL-2.0-only
 +/* IEI WT61P803 PUZZLE MCU HWMON Driver
 + *
@@ -457,7 +457,9 @@ Cc: Robert Marko <robert.marko at sartura.hr>
 +
 +	mcu_hwmon->mcu = mcu;
 +	platform_set_drvdata(pdev, mcu_hwmon);
-+	mutex_init(&mcu_hwmon->lock);
++	ret = devm_mutex_init(dev, &mcu_hwmon->lock);
++	if (ret)
++		return ret;
 +
 +	hwmon_dev = devm_hwmon_device_register_with_info(dev, "iei_wt61p803_puzzle",
 +							 mcu_hwmon,
diff --git a/target/linux/mvebu/patches-6.6/910-drivers-leds-wt61p803-puzzle-improvements.patch b/target/linux/mvebu/patches-6.6/910-drivers-leds-wt61p803-puzzle-improvements.patch
index 150a65498c..8de403773a 100644
--- a/target/linux/mvebu/patches-6.6/910-drivers-leds-wt61p803-puzzle-improvements.patch
+++ b/target/linux/mvebu/patches-6.6/910-drivers-leds-wt61p803-puzzle-improvements.patch
@@ -47,7 +47,7 @@
  
  	ret = iei_wt61p803_puzzle_write_command(priv->mcu, led_power_cmd,
  						sizeof(led_power_cmd),
-@@ -90,39 +106,166 @@ static enum led_brightness iei_wt61p803_
+@@ -90,39 +106,168 @@ static enum led_brightness iei_wt61p803_
  	return led_state;
  }
  
@@ -194,7 +194,9 @@
 +			goto put_child_node;
 +		}
 +
-+		mutex_init(&priv->lock);
++		ret = devm_mutex_init(dev, &priv->lock);
++		if (ret)
++			goto put_child_node;
 +
 +		dev_set_drvdata(dev, priv);
 +



From lede-commits at lists.infradead.org  Sat Nov 23 08:42:13 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 11:42:13 -0500
Subject: [openwrt/openwrt]  ramips: mt76x8: Add support for Zbtlink
 ZBT-WE2426-B
In-Reply-To: <173238013319.2049401.13250547570531159524@git-01.infra.openwrt.org>
References: <173238013319.2049401.13250547570531159524@git-01.infra.openwrt.org>
Message-ID: <mailman.4662.1732380142.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/3a9752ea027b8969750c0dd7f89b6afc357dcffa

commit 3a9752ea027b8969750c0dd7f89b6afc357dcffa
Author: Vaclav Svoboda <svoboda at neng.cz>
AuthorDate: Mon Nov 11 22:34:00 2024 +0100

    ramips: mt76x8: Add support for Zbtlink ZBT-WE2426-B
    
    The Zbtlink ZBT-WE2426-B is an indoor dual band WiFi router
    with 4 external non detachable antennas and 5 Fast Ethernet ports.
    
    Hardware of ZBT-WE2426-B:
    - SoC: MT7628AN
    - RAM: 64 MB (Winbond W9751G6K8-25)
    - Storage: 8 MB SPI flash (S25FL064K)
    - Ethernet: 5x 10/100 Mbps LAN1,LAN2,LAN3,LAN4 & WAN
    - Wireless: 2.4GHz: on SoC (802.11b/g/n)
    - Wireless: 5GHz: Mediatek MT7612EN (802.11n/ac)
    - LEDs: 8x
    - Buttons: 1x reset
    - USB: 1x 2.0
    - MicroSD slot: 1x
    - Power: 9 VDC, 1 A
    - Uart: GND TX RX PWR - J1 on the PCB
    - Board silkscreen: "ZBT-WE2426-C V04" "2018-02-28" "CTT" "13 18"
    
    Backup the stock firmware, settings and calibration data:
    This router comes with PandoraBox OpenWrt firmware, so it is
    possible to get all MTD partitions using scp.
    
    Installation:
    - Using the bootloader web server. Hold the reset button while turning
      the power on. Upload the sysupgrade image on http://192.168.1.1.
    - Using the sysupgrade command in PandoraBox OpenWrt.
    
    LEDs:
    - LAN1,LAN2,LAN3,LAN4,WAN,WLAN2G use GPIO pins of the MT7628AN SoC
      (GPIOs 43,42,41,40,39,44)
    - WLAN5G uses pin of MT7612EN.
    - The POWER LED is directly connected to the VCC. It can be reconnected to
      the GPIO 37 of the MT7628AN SoC by resoldering SMD resistor on the PCB.
    
    Buttons:
    - The RESET button is connected to the GPIO 38 of the MT7628AN SoC.
    
    MAC addresses as verified by OEM firmware:
    use   address   source
    2g    *:b0      factory 0x4 (label)
    5g    *:b1      factory 0x8004
    LAN   *:b2      factory 0x28
    WAN   *:b3      factory 0x2e
    
    Signed-off-by: Vaclav Svoboda <svoboda at neng.cz>
    Link: https://github.com/openwrt/openwrt/pull/16927
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 .../ramips/dts/mt7628an_zbtlink_zbt-we2426-b.dts   | 183 +++++++++++++++++++++
 target/linux/ramips/image/mt76x8.mk                |   8 +
 .../ramips/mt76x8/base-files/etc/board.d/01_leds   |   7 +
 .../mt76x8/base-files/etc/board.d/02_network       |   6 +-
 4 files changed, 202 insertions(+), 2 deletions(-)

diff --git a/target/linux/ramips/dts/mt7628an_zbtlink_zbt-we2426-b.dts b/target/linux/ramips/dts/mt7628an_zbtlink_zbt-we2426-b.dts
new file mode 100644
index 0000000000..6dfdb2617c
--- /dev/null
+++ b/target/linux/ramips/dts/mt7628an_zbtlink_zbt-we2426-b.dts
@@ -0,0 +1,183 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7628an.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+	compatible = "zbtlink,zbt-we2426-b", "mediatek,mt7628an-soc";
+	model = "Zbtlink ZBT-WE2426-B";
+
+	aliases {
+		led-boot = &led_wlan;
+		led-failsafe = &led_wlan;
+		led-upgrade = &led_wlan;
+		label-mac-device = &wmac;
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RESTART>;
+		};
+
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		lan1 {
+			gpios = <&gpio 43 GPIO_ACTIVE_LOW>;
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <1>;
+		};
+
+		lan2 {
+			gpios = <&gpio 42 GPIO_ACTIVE_LOW>;
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <2>;
+		};
+
+		lan3 {
+			gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <3>;
+		};
+
+		lan4 {
+			gpios = <&gpio 40 GPIO_ACTIVE_LOW>;
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <4>;
+		};
+
+		wan {
+			gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_WAN;
+		};
+
+		led_wlan: wlan2g {
+			gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_WLAN;
+			linux,default-trigger = "phy0tpt";
+		};
+
+	};
+};
+
+&spi0 {
+	status = "okay";
+
+	flash at 0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <10000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "u-boot";
+				reg = <0x0 0x30000>;
+				read-only;
+			};
+
+			partition at 30000 {
+				label = "u-boot-env";
+				reg = <0x30000 0x10000>;
+				read-only;
+			};
+
+			factory: partition at 40000 {
+				label = "factory";
+				reg = <0x40000 0x10000>;
+				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					eeprom_factory_0: eeprom at 0 {
+						reg = <0x0 0x400>;
+					};
+
+					eeprom_factory_8000: eeprom at 8000 {
+						reg = <0x8000 0x200>;
+					};
+
+					macaddr_factory_28: macaddr at 28 {
+						reg = <0x28 0x6>;
+					};
+				};
+			};
+
+			partition at 50000 {
+				compatible = "denx,uimage";
+				label = "firmware";
+				reg = <0x50000 0x7b0000>;
+			};
+		};
+	};
+};
+
+&state_default {
+	gpio {
+		groups = "i2s", "refclk", "wdt", "p4led_an",
+				"p3led_an", "p2led_an",
+				"p1led_an", "p0led_an",
+				"wled_an";
+		function = "gpio";
+	};
+};
+
+&pcie {
+	status = "okay";
+};
+
+&pcie0 {
+	wifi at 0,0 {
+		compatible = "mediatek,mt76";
+		reg = <0x0000 0 0 0 0>;
+		nvmem-cells = <&eeprom_factory_8000>;
+		nvmem-cell-names = "eeprom";
+		ieee80211-freq-limit = <5000000 6000000>;
+
+		led {
+			led-sources = <2>;
+			led-active-low;
+		};
+	};
+};
+
+&wmac {
+	status = "okay";
+
+	nvmem-cells = <&eeprom_factory_0>;
+	nvmem-cell-names = "eeprom";
+};
+
+&ethernet {
+	nvmem-cells = <&macaddr_factory_28>;
+	nvmem-cell-names = "mac-address";
+};
+
+&esw {
+	mediatek,portmap = <0x2f>;
+};
+
+&sdhci {
+	status = "okay";
+};
diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk
index 8ad840ddfe..7e343bf016 100644
--- a/target/linux/ramips/image/mt76x8.mk
+++ b/target/linux/ramips/image/mt76x8.mk
@@ -1158,6 +1158,14 @@ define Device/zbtlink_zbt-we1226
 endef
 TARGET_DEVICES += zbtlink_zbt-we1226
 
+define Device/zbtlink_zbt-we2426-b
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := Zbtlink
+  DEVICE_MODEL := ZBT-WE2426-B
+  DEVICE_PACKAGES := kmod-mt76x2 kmod-usb2 kmod-usb-ohci
+endef
+TARGET_DEVICES += zbtlink_zbt-we2426-b
+
 define Device/zyxel_keenetic-extra-ii
   IMAGE_SIZE := 29824k
   DEVICE_VENDOR := Zyxel
diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
index 5ea668de01..00e5086bb3 100644
--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
+++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
@@ -186,6 +186,13 @@ zbtlink,zbt-we1226)
 	ucidef_set_led_switch "lan2" "LAN2" "green:lan2" "switch0" "0x02"
 	ucidef_set_led_switch "wan" "WAN" "green:wan" "switch0" "0x10"
 	;;
+zbtlink,zbt-we2426-b)
+	ucidef_set_led_switch "wan" "wan" "green:wan" "switch0" "0x10"
+	ucidef_set_led_switch "lan1" "lan1" "green:lan-1" "switch0" "0x01"
+	ucidef_set_led_switch "lan2" "lan2" "green:lan-2" "switch0" "0x02"
+	ucidef_set_led_switch "lan3" "lan3" "green:lan-3" "switch0" "0x04"
+	ucidef_set_led_switch "lan4" "lan4" "green:lan-4" "switch0" "0x08"
+	;;
 zyxel,keenetic-extra-ii)
 	ucidef_set_led_netdev "wifi_led" "wifi" "green:wifi" "wlan0"
 	ucidef_set_led_switch "internet" "internet" "green:internet" "switch0" "0x01"
diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
index cb0983b9dc..616baa80c0 100644
--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
@@ -148,7 +148,8 @@ ramips_setup_interfaces()
 	netgear,r6020|\
 	netgear,r6080|\
 	netgear,r6120|\
-	wavlink,wl-wn531a3)
+	wavlink,wl-wn531a3|\
+	zbtlink,zbt-we2426-b)
 		ucidef_add_switch "switch0" \
 			"0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan" "6 at eth0"
 		;;
@@ -244,7 +245,8 @@ ramips_setup_macs()
 	hilink,hlk-7688a|\
 	wavlink,wl-wn531a3|\
 	wavlink,wl-wn577a2|\
-	wavlink,wl-wn578a2)
+	wavlink,wl-wn578a2|\
+	zbtlink,zbt-we2426-b)
 		wan_mac=$(mtd_get_mac_binary factory 0x2e)
 		label_mac=$(mtd_get_mac_binary factory 0x4)
 		;;



From lede-commits at lists.infradead.org  Sat Nov 23 09:44:22 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 12:44:22 -0500
Subject: [openwrt/openwrt]  ath79: add support for TP-Link CPE710-v2
In-Reply-To: <173238386127.2232194.15469123292701058542@git-01.infra.openwrt.org>
References: <173238386127.2232194.15469123292701058542@git-01.infra.openwrt.org>
Message-ID: <mailman.4665.1732383869.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/5572e0196a93604716ec36ebb8db6737fc6677aa

commit 5572e0196a93604716ec36ebb8db6737fc6677aa
Author: Tim Noack <tim at noack.id>
AuthorDate: Mon Oct 21 12:21:59 2024 +0000

    ath79: add support for TP-Link CPE710-v2
    
    TP-Link CPE710-v2 is an outdoor wireless CPE for 5 GHz with one Ethernet
    port based on the AP152 reference board. Compared to the CPE710-v1, the
    only change observed in hardware is that the mdio address of the ethernet
    physical changed from 0x4 to 0x0.
    
    Specifications:
    - SoC: QCA9563-AL3A MIPS 74kc @ 775MHz, AHB @ 258MHz
    - RAM: 128MiB DDR2 @ 650MHz
    - Flash: 16MiB SPI NOR Based on the GD25Q128
    - Wi-Fi 5Ghz: ath10k chip (802.11ac for up to 867Mbps on 5GHz wireless
      data rate), based on the QCA9896
    - Ethernet: one 1GbE port
    - 23dBi high-gain directional 2?2 MIMO parabolic antenna
    - Power, LAN, WLAN5G Blue LEDs
    
    Flashing instructions:
    Flash factory image through stock firmware WEB UI or through TFTP
    To get to TFTP recovery just hold reset button while powering on for around
    30-40 seconds and release.
    Rename factory image to recovery.bin
    Stock TFTP server IP:192.168.0.100
    Stock device TFTP address:192.168.0.254
    
    Signed-off-by: Tim Noack <tim at noack.id>
    Link: https://github.com/openwrt/openwrt/pull/16637
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/ath79/dts/qca9563_tplink_cpe710-v2.dts  | 20 ++++++++++++++++++++
 .../ath79/generic/base-files/etc/board.d/01_leds     |  3 ++-
 .../ath79/generic/base-files/etc/board.d/02_network  |  1 +
 target/linux/ath79/image/generic-tp-link.mk          | 11 +++++++++++
 4 files changed, 34 insertions(+), 1 deletion(-)

diff --git a/target/linux/ath79/dts/qca9563_tplink_cpe710-v2.dts b/target/linux/ath79/dts/qca9563_tplink_cpe710-v2.dts
new file mode 100644
index 0000000000..fe277fc549
--- /dev/null
+++ b/target/linux/ath79/dts/qca9563_tplink_cpe710-v2.dts
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qca9563_tplink_cpe710.dtsi"
+
+/ {
+	model = "TP-Link CPE710 v2";
+	compatible = "tplink,cpe710-v2", "qca,qca9563";
+};
+
+&mdio0 {
+	phy0: ethernet-phy at 0 {
+		reg = <0>;
+		reset-gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+	};
+};
+
+&eth0 {
+	phy-handle = <&phy0>;
+	phy-mode = "sgmii";
+};
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/01_leds b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
index 0e5731dd74..6409adb78a 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
@@ -222,7 +222,8 @@ openmesh,mr900-v1|\
 openmesh,mr900-v2|\
 openmesh,mr1750-v1|\
 openmesh,mr1750-v2|\
-tplink,cpe710-v1)
+tplink,cpe710-v1|\
+tplink,cpe710-v2)
 	ucidef_set_led_netdev "lan" "LAN" "blue:lan" "eth0"
 	;;
 compex,wpj344-16m|\
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network
index 8f79a3fad8..2bd97442d9 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
@@ -89,6 +89,7 @@ ath79_setup_interfaces()
 	tplink,cpe610-v1|\
 	tplink,cpe610-v2|\
 	tplink,cpe710-v1|\
+	tplink,cpe710-v2|\
 	tplink,eap225-outdoor-v1|\
 	tplink,eap225-outdoor-v3|\
 	tplink,eap225-v1|\
diff --git a/target/linux/ath79/image/generic-tp-link.mk b/target/linux/ath79/image/generic-tp-link.mk
index 643de76f7c..c42338db78 100644
--- a/target/linux/ath79/image/generic-tp-link.mk
+++ b/target/linux/ath79/image/generic-tp-link.mk
@@ -391,6 +391,17 @@ define Device/tplink_cpe710-v1
 endef
 TARGET_DEVICES += tplink_cpe710-v1
 
+define Device/tplink_cpe710-v2
+  $(Device/tplink-safeloader-uimage)
+  SOC := qca9563
+  IMAGE_SIZE := 15680k
+  DEVICE_MODEL := CPE710
+  DEVICE_VARIANT := v2
+  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
+  TPLINK_BOARD_ID := CPE710V2
+endef
+TARGET_DEVICES += tplink_cpe710-v2
+
 define Device/tplink-eap2x5
   $(Device/tplink-safeloader)
   LOADER_TYPE := elf



From lede-commits at lists.infradead.org  Sat Nov 23 09:44:21 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 12:44:21 -0500
Subject: [openwrt/openwrt]  ath79: refactor dts of TP-Link CPE710-v1
In-Reply-To: <173238386127.2232194.15469123292701058542@git-01.infra.openwrt.org>
References: <173238386127.2232194.15469123292701058542@git-01.infra.openwrt.org>
Message-ID: <mailman.4668.1732383870.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/832cc8ce04122ea726178687b5168187b2465f7f

commit 832cc8ce04122ea726178687b5168187b2465f7f
Author: Tim Noack <tim at noack.id>
AuthorDate: Mon Oct 21 12:21:41 2024 +0000

    ath79: refactor dts of TP-Link CPE710-v1
    
    This is done in preparation of adding support for the CPE710-v2,
    which uses a similiar device tree.
    
    Signed-off-by: Tim Noack <tim at noack.id>
    Link: https://github.com/openwrt/openwrt/pull/16637
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 .../linux/ath79/dts/qca9563_tplink_cpe710-v1.dts   | 151 +--------------------
 ...nk_cpe710-v1.dts => qca9563_tplink_cpe710.dtsi} |  19 +--
 2 files changed, 6 insertions(+), 164 deletions(-)

diff --git a/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts b/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts
index 6d1b58f95f..31e04232ab 100644
--- a/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts
@@ -1,151 +1,13 @@
 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 
-#include "qca956x.dtsi"
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/leds/common.h>
+#include "qca9563_tplink_cpe710.dtsi"
 
 / {
 	model = "TP-Link CPE710 v1";
 	compatible = "tplink,cpe710-v1", "qca,qca9563";
-
-	aliases {
-		label-mac-device = &eth0;
-		led-boot = &led_lan;
-		led-failsafe = &led_lan;
-		led-upgrade = &led_lan;
-	};
-
-	leds {
-		compatible = "gpio-leds";
-
-		led_lan: lan {
-			function = LED_FUNCTION_LAN;
-			color = <LED_COLOR_ID_BLUE>;
-			gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
-		};
-
-		wlan5g {
-			label = "blue:wlan5g";
-			gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
-			linux,default-trigger = "phy0tpt";
-		};
-	};
-
-	keys {
-		compatible = "gpio-keys";
-
-		reset {
-			label = "Reset button";
-			linux,code = <KEY_RESTART>;
-			gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
-			debounce-interval = <60>;
-		};
-	};
-};
-
-&pcie {
-	status = "okay";
-
-	wifi at 0,0 {
-		compatible = "qcom,ath10k";
-		reg = <0x0000 0 0 0 0>;
-		nvmem-cells = <&precal_art_5000>, <&macaddr_info_8>;
-		nvmem-cell-names = "pre-calibration", "mac-address";
-	};
-};
-
-&spi {
-	status = "okay";
-
-	flash at 0 {
-		compatible = "jedec,spi-nor";
-		reg = <0>;
-		spi-max-frequency = <40000000>;
-
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition at 0 {
-				label = "u-boot";
-				reg = <0x000000 0x040000>;
-				read-only;
-			};
-
-			partition at 40000 {
-				label = "u-boot-env";
-				reg = <0x040000 0x010000>;
-			};
-
-			partition at 50000 {
-				label = "partition-table";
-				reg = <0x050000 0x010000>;
-				read-only;
-			};
-
-			info: partition at 60000 {
-				label = "info";
-				reg = <0x060000 0x010000>;
-				read-only;
-
-				nvmem-layout {
-					compatible = "fixed-layout";
-					#address-cells = <1>;
-					#size-cells = <1>;
-
-					macaddr_info_8: macaddr at 8 {
-						reg = <0x8 0x6>;
-					};
-				};
-			};
-
-			partition at 70000 {
-				compatible = "denx,uimage";
-				label = "firmware";
-				reg = <0x070000 0xf50000>;
-			};
-
-			partition at fc0000 {
-				label = "config";
-				reg = <0xfc0000 0x030000>;
-				read-only;
-			};
-
-			partition at ff0000 {
-				label = "art";
-				reg = <0xff0000 0x010000>;
-				read-only;
-
-				nvmem-layout {
-					compatible = "fixed-layout";
-					#address-cells = <1>;
-					#size-cells = <1>;
-
-					precal_art_5000: pre-calibration at 5000 {
-						reg = <0x5000 0x2f20>;
-					};
-				};
-			};
-		};
-	};
-};
-
-&pinmux {
-	mdio_pins: mdio_pins {
-		/* GPIO 10 as MDIO(0x20), GPIO 8 as MDC(0x21) */
-		pinctrl-single,bits = <0x8 0x00200021 0x00ff00ff>;
-	};
 };
 
 &mdio0 {
-	status = "okay";
-
-	pinctrl-names = "default";
-	pinctrl-0 = <&mdio_pins>;
-
 	phy4: ethernet-phy at 4 {
 		reg = <4>;
 		reset-gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
@@ -153,17 +15,6 @@
 };
 
 &eth0 {
-	status = "okay";
-
 	phy-handle = <&phy4>;
 	phy-mode = "sgmii";
-
-	nvmem-cells = <&macaddr_info_8>;
-	nvmem-cell-names = "mac-address";
-
-	qca956x-serdes-fixup;
-
-	gmac-config {
-		device = <&gmac>;
-	};
 };
diff --git a/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts b/target/linux/ath79/dts/qca9563_tplink_cpe710.dtsi
similarity index 90%
copy from target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts
copy to target/linux/ath79/dts/qca9563_tplink_cpe710.dtsi
index 6d1b58f95f..9de36f3b66 100644
--- a/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_cpe710.dtsi
@@ -7,14 +7,11 @@
 #include <dt-bindings/leds/common.h>
 
 / {
-	model = "TP-Link CPE710 v1";
-	compatible = "tplink,cpe710-v1", "qca,qca9563";
-
 	aliases {
-		label-mac-device = &eth0;
 		led-boot = &led_lan;
 		led-failsafe = &led_lan;
 		led-upgrade = &led_lan;
+		label-mac-device = &eth0;
 	};
 
 	leds {
@@ -27,7 +24,8 @@
 		};
 
 		wlan5g {
-			label = "blue:wlan5g";
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_WLAN_5GHZ;
 			gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
 			linux,default-trigger = "phy0tpt";
 		};
@@ -78,6 +76,7 @@
 			partition at 40000 {
 				label = "u-boot-env";
 				reg = <0x040000 0x010000>;
+				read-only;
 			};
 
 			partition at 50000 {
@@ -86,7 +85,7 @@
 				read-only;
 			};
 
-			info: partition at 60000 {
+			partition at 60000 {
 				label = "info";
 				reg = <0x060000 0x010000>;
 				read-only;
@@ -145,19 +144,11 @@
 
 	pinctrl-names = "default";
 	pinctrl-0 = <&mdio_pins>;
-
-	phy4: ethernet-phy at 4 {
-		reg = <4>;
-		reset-gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
-	};
 };
 
 &eth0 {
 	status = "okay";
 
-	phy-handle = <&phy4>;
-	phy-mode = "sgmii";
-
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 



From lede-commits at lists.infradead.org  Sat Nov 23 10:06:50 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 13:06:50 -0500
Subject: [openwrt/openwrt]  linux-firmware: Add support for Intel AX411
In-Reply-To: <173238521058.2300028.759562804451886154@git-01.infra.openwrt.org>
References: <173238521058.2300028.759562804451886154@git-01.infra.openwrt.org>
Message-ID: <mailman.4669.1732385213.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/c89ed7acc897794b06b61f10d8f641ee06fbaacf

commit c89ed7acc897794b06b61f10d8f641ee06fbaacf
Author: Joerg Bayer <sg-o at live.de>
AuthorDate: Sat Apr 13 16:05:24 2024 +0200

    linux-firmware: Add support for Intel AX411
    
    Add support for Intel AX411 CNVio2 device.
    
    Signed-off-by: Joerg Bayer <sg-o at live.de>
    Link: https://github.com/openwrt/openwrt/pull/15153
    [squashed and updated commit description, update to version 89]
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/firmware/linux-firmware/intel.mk | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/package/firmware/linux-firmware/intel.mk b/package/firmware/linux-firmware/intel.mk
index 4c9e04cd3d..eb5ac29159 100644
--- a/package/firmware/linux-firmware/intel.mk
+++ b/package/firmware/linux-firmware/intel.mk
@@ -199,6 +199,14 @@ define Package/iwlwifi-firmware-ax210/install
 endef
 $(eval $(call BuildPackage,iwlwifi-firmware-ax210))
 
+Package/iwlwifi-firmware-ax411 = $(call Package/firmware-default,Intel AX411 firmware)
+define Package/iwlwifi-firmware-ax411/install
+	$(INSTALL_DIR) $(1)/lib/firmware
+	$(INSTALL_DATA) $(PKG_BUILD_DIR)/iwlwifi-so-a0-gf4-a0-89.ucode $(1)/lib/firmware
+	$(INSTALL_DATA) $(PKG_BUILD_DIR)/iwlwifi-so-a0-gf4-a0.pnvm $(1)/lib/firmware
+endef
+$(eval $(call BuildPackage,iwlwifi-firmware-ax411))
+
 Package/iwlwifi-firmware-be200 = $(call Package/firmware-default,Intel BE200 firmware)
 define Package/iwlwifi-firmware-be200/install
 	$(INSTALL_DIR) $(1)/lib/firmware



From lede-commits at lists.infradead.org  Sat Nov 23 10:47:16 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 13:47:16 -0500
Subject: [openwrt/openwrt]  mediatek: make use of Acer Predator Connect W6's
 u-boot environment
In-Reply-To: <173238763590.2431587.11961231662767988694@git-01.infra.openwrt.org>
References: <173238763590.2431587.11961231662767988694@git-01.infra.openwrt.org>
Message-ID: <mailman.4670.1732387640.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/e7aaba2587e57dbd157899f7a2215ec6b7af5f89

commit e7aaba2587e57dbd157899f7a2215ec6b7af5f89
Author: George Oldfort <openwrt at 10099.de>
AuthorDate: Mon Nov 11 10:14:55 2024 +0100

    mediatek: make use of Acer Predator Connect W6's u-boot environment
    
    In order to prepare OpenWrt support for other Acer W6 devices and to adapt
    the procedure to read and set mac addresses which other devices of the same
    target are using (instead of needing an additional script and creating an
    additional structure in the file system), this commit
    - reads device mac addresses from u-boot environment
    - avoids the detour via the file system to set the mac addresses
    - drops redundant file /lib/preinit/05_extract_factory_data.sh
    
    The idea and the implementation were thankfully taken from PR #16410.
    
    This is the second of four commits into which the original commit was split
    to make reviews easier and more targeted.
    
    Signed-off-by: George Oldfort <openwrt at 10099.de>
    Link: https://github.com/openwrt/openwrt/pull/16861
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/boot/uboot-envtools/files/mediatek_filogic | 15 +++++++------
 .../filogic/base-files/etc/board.d/02_network      |  4 ++++
 .../etc/hotplug.d/ieee80211/11_fix_wifi_mac        |  7 +++---
 .../lib/preinit/05_extract_factory_data.sh         | 25 ----------------------
 .../base-files/lib/preinit/10_fix_eth_mac.sh       | 13 +++++------
 5 files changed, 22 insertions(+), 42 deletions(-)

diff --git a/package/boot/uboot-envtools/files/mediatek_filogic b/package/boot/uboot-envtools/files/mediatek_filogic
index 9de1a4d75d..7571af0020 100644
--- a/package/boot/uboot-envtools/files/mediatek_filogic
+++ b/package/boot/uboot-envtools/files/mediatek_filogic
@@ -49,6 +49,14 @@ xiaomi,redmi-router-ax6000-ubootmod|\
 zyxel,ex5601-t0-ubootmod)
 	ubootenv_add_ubi_default
 	;;
+acer,predator-w6|\
+glinet,gl-mt2500|\
+glinet,gl-mt6000|\
+glinet,gl-x3000|\
+glinet,gl-xe3000)
+	local envdev=$(find_mmc_part "u-boot-env")
+	ubootenv_add_uci_config "$envdev" "0x0" "0x80000"
+	;;
 asus,rt-ax59u)
 	ubootenv_add_uci_config "/dev/mtd0" "0x100000" "0x20000" "0x20000"
 	;;
@@ -89,13 +97,6 @@ dlink,aquila-pro-ai-m30-a1)
 gatonetworks,gdsp)
 	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x10000"
 	;;
-glinet,gl-x3000|\
-glinet,gl-xe3000|\
-glinet,gl-mt2500|\
-glinet,gl-mt6000)
-	local envdev=$(find_mmc_part "u-boot-env")
-	ubootenv_add_uci_config "$envdev" "0x0" "0x80000"
-	;;
 glinet,gl-mt3000)
 	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x80000" "0x20000"
 	;;
diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
index fff39006da..2bcead8304 100644
--- a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
@@ -132,6 +132,10 @@ mediatek_setup_macs()
 	local label_mac=""
 
 	case $board in
+	acer,predator-w6)
+		wan_mac=$(mmc_get_mac_ascii u-boot-env WANMAC)
+		lan_mac=$(mmc_get_mac_ascii u-boot-env LANMAC)
+		;;
 	bananapi,bpi-r3|\
 	bananapi,bpi-r3-mini|\
 	bananapi,bpi-r4)
diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
index 3042858353..f7f00c9a83 100644
--- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
+++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
@@ -18,10 +18,9 @@ case "$board" in
 		[ "$PHYNBR" = "1" ] && macaddr_setbit_la $addr > /sys${DEVPATH}/macaddress
 		;;
 	acer,predator-w6)
-		key_path="/var/qcidata/data"
-		[ "$PHYNBR" = "0" ] && cat $key_path/2gMAC > /sys${DEVPATH}/macaddress
-		[ "$PHYNBR" = "1" ] && cat $key_path/6gMAC > /sys${DEVPATH}/macaddress
-		[ "$PHYNBR" = "2" ] && cat $key_path/5gMAC > /sys${DEVPATH}/macaddress
+		[ "$PHYNBR" = "0" ] && mmc_get_mac_ascii u-boot-env 2gMAC > /sys${DEVPATH}/macaddress
+		[ "$PHYNBR" = "1" ] && mmc_get_mac_ascii u-boot-env 6gMAC > /sys${DEVPATH}/macaddress
+		[ "$PHYNBR" = "2" ] && mmc_get_mac_ascii u-boot-env 5gMAC > /sys${DEVPATH}/macaddress
 		;;
 	asus,rt-ax59u)
 		CI_UBIPART="UBI_DEV"
diff --git a/target/linux/mediatek/filogic/base-files/lib/preinit/05_extract_factory_data.sh b/target/linux/mediatek/filogic/base-files/lib/preinit/05_extract_factory_data.sh
deleted file mode 100644
index 87287a7d1c..0000000000
--- a/target/linux/mediatek/filogic/base-files/lib/preinit/05_extract_factory_data.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-. /lib/functions/system.sh
-
-predator_w6_factory_extract() {
-	local mmc_part
-
-	mmc_part="$(find_mmc_part qcidata)"
-
-	mkdir -p /var/qcidata/data
-	mkdir -p /var/qcidata/mount
-
-	mount -r "$mmc_part" /var/qcidata/mount
-
-	cp /var/qcidata/mount/factory/*MAC "/var/qcidata/data/"
-	umount "/var/qcidata/mount"
-}
-
-preinit_extract_factory() {
-	case $(board_name) in
-	acer,predator-w6)
-		predator_w6_factory_extract
-		;;
-	esac
-}
-
-boot_hook_add preinit_main preinit_extract_factory
diff --git a/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh b/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh
index 0497d7dfa2..0d7da89cea 100644
--- a/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh
+++ b/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh
@@ -3,12 +3,13 @@
 preinit_set_mac_address() {
 	case $(board_name) in
 	acer,predator-w6)
-		key_path="/var/qcidata/data"
-		ip link set dev lan1 address "$(cat $key_path/LANMAC)"
-		ip link set dev lan2 address "$(cat $key_path/LANMAC)"
-		ip link set dev lan3 address "$(cat $key_path/LANMAC)"
-		ip link set dev game address "$(cat $key_path/LANMAC)"
-		ip link set dev eth1 address "$(cat $key_path/WANMAC)"
+		$(mmc_get_mac_ascii u-boot-env WANMAC)
+		$(mmc_get_mac_ascii u-boot-env LANMAC)
+		ip link set dev lan1 address "$lan_mac"
+		ip link set dev lan2 address "$lan_mac"
+		ip link set dev lan3 address "$lan_mac"
+		ip link set dev game address "$lan_mac"
+		ip link set dev eth1 address "$wan_mac"
 		;;
 	asus,tuf-ax4200|\
 	asus,tuf-ax6000)



From lede-commits at lists.infradead.org  Sat Nov 23 10:47:18 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 13:47:18 -0500
Subject: [openwrt/openwrt]  mediatek: add support for Acer Predator W6d and
 Acer Vero W6m
In-Reply-To: <173238763590.2431587.11961231662767988694@git-01.infra.openwrt.org>
References: <173238763590.2431587.11961231662767988694@git-01.infra.openwrt.org>
Message-ID: <mailman.4671.1732387640.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/2898d1d1269a841e5bb8673801bd2a04ad120031

commit 2898d1d1269a841e5bb8673801bd2a04ad120031
Author: George Oldfort <openwrt at 10099.de>
AuthorDate: Mon Nov 11 11:18:19 2024 +0100

    mediatek: add support for Acer Predator W6d and Acer Vero W6m
    
    This commit adds support for two variants of the already supported router
    Acer Predator Connect W6: The Acer Predator Connect W6d (W6 without 6 GHz
    wifi) and the Acer Connect Vero W6m (W6 without 2.5G eth1 port, usb3 port,
    and the 6 on-board gpio RGB LEDs, and with a KTD2026 RGB LED controller
    instead of the KTD2061 LED controller of the W6/W6d).
    
    The device tree for the W6m refers to the KTD202x driver suggested in
    PR #16860.
    
    Patching target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
    removes the code repetition in (old) lines 121 to 124 on the occasion.
    
    This is the last of four commits into which the original commit was split
    to make reviews easier and more targeted.
    
    Signed-off-by: George Oldfort <openwrt at 10099.de>
    Link: https://github.com/openwrt/openwrt/pull/16861
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/boot/uboot-envtools/files/mediatek_filogic |   2 +
 .../mediatek/dts/mt7986a-acer-predator-w6d.dts     | 182 +++++++++++++++++++++
 .../linux/mediatek/dts/mt7986a-acer-vero-w6m.dts   |  66 ++++++++
 .../filogic/base-files/etc/board.d/02_network      |  10 +-
 .../etc/hotplug.d/ieee80211/11_fix_wifi_mac        |   7 +-
 .../base-files/lib/preinit/10_fix_eth_mac.sh       |  11 +-
 .../filogic/base-files/lib/upgrade/platform.sh     |  16 +-
 target/linux/mediatek/image/filogic.mk             |  30 ++++
 8 files changed, 312 insertions(+), 12 deletions(-)

diff --git a/package/boot/uboot-envtools/files/mediatek_filogic b/package/boot/uboot-envtools/files/mediatek_filogic
index 7571af0020..b637f43287 100644
--- a/package/boot/uboot-envtools/files/mediatek_filogic
+++ b/package/boot/uboot-envtools/files/mediatek_filogic
@@ -50,6 +50,8 @@ zyxel,ex5601-t0-ubootmod)
 	ubootenv_add_ubi_default
 	;;
 acer,predator-w6|\
+acer,predator-w6d|\
+acer,vero-w6m|\
 glinet,gl-mt2500|\
 glinet,gl-mt6000|\
 glinet,gl-x3000|\
diff --git a/target/linux/mediatek/dts/mt7986a-acer-predator-w6d.dts b/target/linux/mediatek/dts/mt7986a-acer-predator-w6d.dts
new file mode 100644
index 0000000000..b2c35a6197
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7986a-acer-predator-w6d.dts
@@ -0,0 +1,182 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+/dts-v1/;
+#include "mt7986a-acer-w6-common.dtsi"
+
+/ {
+	model = "Acer Predator Connect W6d";
+	compatible = "acer,predator-w6d", "mediatek,mt7986a";
+
+	aliases {
+		serial0 = &uart0;
+		led-boot = &led_status_blue;
+		led-failsafe = &led_status_blue;
+		led-running = &led_status_green;
+		led-upgrade = &led_status_red;
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led_status_red: led-0 {
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <0>;
+			gpios = <&pio 1 GPIO_ACTIVE_HIGH>;
+		};
+
+		led_status_green: led-1 {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <0>;
+			gpios = <&pio 2 GPIO_ACTIVE_HIGH>;
+		};
+
+		led_status_blue: led-2 {
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <0>;
+			gpios = <&pio 36 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-3 {
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <1>;
+			gpios = <&pio 35 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-4 {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <1>;
+			gpios = <&pio 34 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-5 {
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <1>;
+			gpios = <&pio 33 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-6 {
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <2>;
+			gpios = <&pio 38 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-7 {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <2>;
+			gpios = <&pio 37 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-8 {
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <2>;
+			gpios = <&pio 26 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-9 {
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <3>;
+			gpios = <&pio 25 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-10 {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <3>;
+			gpios = <&pio 24 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-11 {
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <3>;
+			gpios = <&pio 23 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-12 {
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <4>;
+			gpios = <&pio 28 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-13 {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <4>;
+			gpios = <&pio 27 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-14 {
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <4>;
+			gpios = <&pio 32 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-15 {
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <5>;
+			gpios = <&pio 45 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-16 {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <5>;
+			gpios = <&pio 44 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-17 {
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <5>;
+			gpios = <&pio 43 GPIO_ACTIVE_HIGH>;
+		};
+	};
+};
+
+&ssusb {
+	vusb33-supply = <&reg_3p3v>;
+	vbus-supply = <&reg_5v>;
+	status = "okay";
+};
+
+&usb_phy {
+	status = "okay";
+};
+
+&eth {
+	gmac1: mac at 1 {
+		compatible = "mediatek,eth-mac";
+		reg = <1>;
+		phy-mode = "2500base-x";
+		phy-handle = <&phy6>;
+	};
+};
+
+&mdio {
+	phy6: phy at 6 {
+		compatible = "ethernet-phy-ieee802.3-c45";
+		reg = <6>;
+		reset-gpios = <&pio 6 GPIO_ACTIVE_LOW>;
+		reset-assert-us = <10000>;
+		reset-deassert-us = <10000>;
+		/* LED0: nc ; LED1: nc ; LED2: amber ; LED3: green */
+		mxl,led-config = <0x0 0x0 0x370 0x380>;
+	};
+};
+
+&swport0 {
+	label = "game";
+};
diff --git a/target/linux/mediatek/dts/mt7986a-acer-vero-w6m.dts b/target/linux/mediatek/dts/mt7986a-acer-vero-w6m.dts
new file mode 100644
index 0000000000..7927efcb00
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7986a-acer-vero-w6m.dts
@@ -0,0 +1,66 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+/dts-v1/;
+#include "mt7986a-acer-w6-common.dtsi"
+
+/ {
+	model = "Acer Connect Vero W6m";
+	compatible = "acer,vero-w6m", "mediatek,mt7986a";
+
+	aliases {
+		serial0 = &uart0;
+		led-boot = &led_status;
+		led-failsafe = &led_status;
+		led-running = &led_status;
+		led-upgrade = &led_status;
+	};
+};
+
+&i2c0 {
+	led-controller at 30 {
+		compatible = "kinetic,ktd2026";
+		reg = <0x30>;
+		vin-supply = <&reg_5v>;
+		vio-supply = <&reg_3p3v>;
+
+		led_status: multi-led {
+			color = <LED_COLOR_ID_RGB>;
+			function = LED_FUNCTION_STATUS;
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			led at 0 {
+				reg = <0>;
+				color = <LED_COLOR_ID_RED>;
+			};
+
+			led at 1 {
+				reg = <1>;
+				color = <LED_COLOR_ID_GREEN>;
+			};
+
+			led at 2 {
+				reg = <2>;
+				color = <LED_COLOR_ID_BLUE>;
+			};
+		};
+	};
+};
+
+&nvmem {
+	eeprom_factory_a0000: eeprom at a0000 {
+		reg = <0xa0000 0x1000>;
+	};
+};
+
+&slot0 {
+	radio0: mt7915 at 0,0 {
+		reg = <0x0000 0 0 0 0>;
+		nvmem-cells = <&eeprom_factory_a0000>;
+		nvmem-cell-names = "eeprom";
+	};
+};
+
+&swport0 {
+       label = "internet";
+};
diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
index 2bcead8304..7bfc61a269 100644
--- a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
@@ -18,9 +18,13 @@ mediatek_setup_interfaces()
 	acelink,ew-7886cax)
 		ucidef_set_interface_lan "eth0" "dhcp"
 		;;
-	acer,predator-w6)
+	acer,predator-w6|\
+	acer,predator-w6d)
 		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 game" eth1
 		;;
+	acer,vero-w6m)
+		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" internet
+		;;
 	arcadyan,mozart)
 		ucidef_set_interfaces_lan_wan "lan0 eth1" eth2
 		;;
@@ -132,7 +136,9 @@ mediatek_setup_macs()
 	local label_mac=""
 
 	case $board in
-	acer,predator-w6)
+	acer,predator-w6|\
+	acer,predator-w6d|\
+	acer,vero-w6m)
 		wan_mac=$(mmc_get_mac_ascii u-boot-env WANMAC)
 		lan_mac=$(mmc_get_mac_ascii u-boot-env LANMAC)
 		;;
diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
index f7f00c9a83..f87cc0646e 100644
--- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
+++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
@@ -17,11 +17,16 @@ case "$board" in
 		[ "$PHYNBR" = "0" ] && macaddr_add $addr 1 > /sys${DEVPATH}/macaddress
 		[ "$PHYNBR" = "1" ] && macaddr_setbit_la $addr > /sys${DEVPATH}/macaddress
 		;;
-	acer,predator-w6)
+	acer,predator-w6|\
+	acer,vero-w6m)
 		[ "$PHYNBR" = "0" ] && mmc_get_mac_ascii u-boot-env 2gMAC > /sys${DEVPATH}/macaddress
 		[ "$PHYNBR" = "1" ] && mmc_get_mac_ascii u-boot-env 6gMAC > /sys${DEVPATH}/macaddress
 		[ "$PHYNBR" = "2" ] && mmc_get_mac_ascii u-boot-env 5gMAC > /sys${DEVPATH}/macaddress
 		;;
+	acer,predator-w6d)
+		[ "$PHYNBR" = "0" ] && mmc_get_mac_ascii u-boot-env 2gMAC > /sys${DEVPATH}/macaddress
+		[ "$PHYNBR" = "1" ] && mmc_get_mac_ascii u-boot-env 5gMAC > /sys${DEVPATH}/macaddress
+		;;
 	asus,rt-ax59u)
 		CI_UBIPART="UBI_DEV"
 		addr=$(mtd_get_mac_binary_ubi "Factory" 0x4)
diff --git a/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh b/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh
index 0d7da89cea..9d279898ac 100644
--- a/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh
+++ b/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh
@@ -2,7 +2,8 @@
 
 preinit_set_mac_address() {
 	case $(board_name) in
-	acer,predator-w6)
+	acer,predator-w6|\
+	acer,predator-w6d)
 		$(mmc_get_mac_ascii u-boot-env WANMAC)
 		$(mmc_get_mac_ascii u-boot-env LANMAC)
 		ip link set dev lan1 address "$lan_mac"
@@ -11,6 +12,14 @@ preinit_set_mac_address() {
 		ip link set dev game address "$lan_mac"
 		ip link set dev eth1 address "$wan_mac"
 		;;
+	acer,vero-w6m)
+		wan_mac=$(mmc_get_mac_ascii u-boot-env WANMAC)
+		lan_mac=$(mmc_get_mac_ascii u-boot-env LANMAC)
+		ip link set dev lan1 address "$lan_mac"
+		ip link set dev lan2 address "$lan_mac"
+		ip link set dev lan3 address "$lan_mac"
+		ip link set dev internet address "$wan_mac"
+		;;
 	asus,tuf-ax4200|\
 	asus,tuf-ax6000)
 		CI_UBIPART="UBI_DEV"
diff --git a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
index cfd77b62d7..ce334b2c8e 100755
--- a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
@@ -91,7 +91,13 @@ platform_do_upgrade() {
 		fit_do_upgrade "$1"
 		;;
 	acer,predator-w6|\
+	acer,predator-w6d|\
+	acer,vero-w6m|\
 	arcadyan,mozart|\
+	glinet,gl-mt2500|\
+	glinet,gl-mt6000|\
+	glinet,gl-x3000|\
+	glinet,gl-xe3000|\
 	smartrg,sdg-8612|\
 	smartrg,sdg-8614|\
 	smartrg,sdg-8622|\
@@ -115,14 +121,6 @@ platform_do_upgrade() {
 	yuncore,ax835)
 		default_do_upgrade "$1"
 		;;
-	glinet,gl-mt2500|\
-	glinet,gl-mt6000|\
-	glinet,gl-x3000|\
-	glinet,gl-xe3000)
-		CI_KERNPART="kernel"
-		CI_ROOTPART="rootfs"
-		emmc_do_upgrade "$1"
-		;;
 	mercusys,mr90x-v1|\
 	tplink,re6000xd)
 		CI_UBIPART="ubi0"
@@ -204,6 +202,8 @@ platform_copy_config() {
 		fi
 		;;
 	acer,predator-w6|\
+	acer,predator-w6d|\
+	acer,vero-w6m|\
 	arcadyan,mozart|\
 	glinet,gl-mt2500|\
 	glinet,gl-mt6000|\
diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index 838a433bf4..072cae0d1f 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -165,6 +165,36 @@ define Device/acer_predator-w6
 endef
 TARGET_DEVICES += acer_predator-w6
 
+define Device/acer_predator-w6d
+  DEVICE_VENDOR := Acer
+  DEVICE_MODEL := Predator Connect W6d
+  DEVICE_DTS := mt7986a-acer-predator-w6d
+  DEVICE_DTS_DIR := ../dts
+  DEVICE_DTS_LOADADDR := 0x47000000
+  DEVICE_PACKAGES := kmod-usb3 kmod-mt7915e kmod-mt7916-firmware kmod-mt7986-firmware mt7986-wo-firmware e2fsprogs f2fsck mkf2fs
+  IMAGES := sysupgrade.bin
+  KERNEL := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
+  KERNEL_INITRAMFS := kernel-bin | lzma | \
+	fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+endef
+TARGET_DEVICES += acer_predator-w6d
+
+define Device/acer_vero-w6m
+  DEVICE_VENDOR := Acer
+  DEVICE_MODEL := Connect Vero W6m
+  DEVICE_DTS := mt7986a-acer-vero-w6m
+  DEVICE_DTS_DIR := ../dts
+  DEVICE_DTS_LOADADDR := 0x47000000
+  DEVICE_PACKAGES := kmod-leds-ktd202x kmod-mt7915e kmod-mt7916-firmware kmod-mt7986-firmware mt7986-wo-firmware e2fsprogs f2fsck mkf2fs
+  IMAGES := sysupgrade.bin
+  KERNEL := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
+  KERNEL_INITRAMFS := kernel-bin | lzma | \
+	fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+endef
+TARGET_DEVICES += acer_vero-w6m
+
 define Device/adtran_smartrg
   DEVICE_VENDOR := Adtran
   DEVICE_DTS_DIR := ../dts



From lede-commits at lists.infradead.org  Sat Nov 23 10:47:15 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 13:47:15 -0500
Subject: [openwrt/openwrt]  mediatek: split Acer/W6 dts into W6 common dtsi
 and device specific dts
In-Reply-To: <173238763590.2431587.11961231662767988694@git-01.infra.openwrt.org>
References: <173238763590.2431587.11961231662767988694@git-01.infra.openwrt.org>
Message-ID: <mailman.4674.1732387641.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/ce3b36b3d5374709b9b091390cb9053657be17fa

commit ce3b36b3d5374709b9b091390cb9053657be17fa
Author: George Oldfort <openwrt at 10099.de>
AuthorDate: Mon Nov 11 09:25:56 2024 +0100

    mediatek: split Acer/W6 dts into W6 common dtsi and device specific dts
    
    In order to prepare OpenWrt support for other Acer W6 devices, this commit
    moves all device tree components that are used by all Acer W6/W6e/W6d/W6m
    routers from mt7986a-acer-predator-w6.dts to mt7986a-acer-w6-common.dtsi
    (new file) and includes this dtsi file in mt7986a-acer-predator-w6.dts.
    
    Minor changes had to be made to the device tree in order to improve clarity
    and ? notably ? to reduce the number of dtc warnings:
    - replace (obviously wrong) led@<N> gpio led entities by led-<N>
    - remove unnecessary (default-state = "off") gpio led statements
    - rename entity ?memory? to ?memory at 0?
    - add missing #address-cells and #address-size in /soc/mmc at 11230000
    - add missing #address-cells and #address-size in /soc/pcie at 11280000
    - introduce symbols ?nvmem? and ?swport0? in dtsi (referenced in dts)
    
    The changes were checked with `diff -BEZbdtwy --suppress-common-lines ...`
    (comparing two dts files created using old and new fdt-1 blobs again), see
    https://github.com/openwrt/openwrt/pull/16861/#issuecomment-2455680020 .
    
    This is the first of four commits into which the original commit was split
    to make reviews easier and more targeted.
    
    Signed-off-by: George Oldfort <openwrt at 10099.de>
    Link: https://github.com/openwrt/openwrt/pull/16861
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 .../mediatek/dts/mt7986a-acer-predator-w6.dts      | 475 ++-------------------
 ...predator-w6.dts => mt7986a-acer-w6-common.dtsi} | 470 +++++++-------------
 2 files changed, 197 insertions(+), 748 deletions(-)

diff --git a/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts b/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts
index c27264a8d2..8c86fd31d8 100644
--- a/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts
+++ b/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts
@@ -1,11 +1,7 @@
-// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 
 /dts-v1/;
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/leds/common.h>
-
-#include "mt7986a.dtsi"
+#include "mt7986a-acer-w6-common.dtsi"
 
 / {
 	model = "Acer Predator W6";
@@ -19,531 +15,146 @@
 		led-upgrade = &led_status;
 	};
 
-	chosen {
-		stdout-path = "serial0:115200n8";
-		bootargs = "dm-mod.create=\"dm-verity,,,ro,0 31544 verity 1 PARTLABEL=rootfs PARTLABEL=rootfs 4096 4096 3943 3944 sha256 2f969fa9e9e4e20b37746f22633e85b178f5db7c143e11f92733a704299cc933 2dd56e34b15c6c84573cf26c4392028421061d2c808975217b45e9a5b49d2087\" rootfstype=squashfs,ext4 rootwait root=/dev/mmcblk0p6 fstools_ignore_partname=1";
-	};
-
-	memory {
-		reg = <0 0x40000000 0 0x20000000>;
-	};
-
-	reg_1p8v: regulator-1p8v {
-		compatible = "regulator-fixed";
-		regulator-name = "fixed-1.8V";
-		regulator-min-microvolt = <1800000>;
-		regulator-max-microvolt = <1800000>;
-		regulator-boot-on;
-		regulator-always-on;
-	};
-
-	reg_3p3v: regulator-3p3v {
-		compatible = "regulator-fixed";
-		regulator-name = "fixed-3.3V";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-		regulator-boot-on;
-		regulator-always-on;
-	};
-
-	reg_5v: regulator-5v {
-		compatible = "regulator-fixed";
-		regulator-name = "fixed-5V";
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-		regulator-boot-on;
-		regulator-always-on;
-	};
-
-	gpio-keys {
-		compatible = "gpio-keys";
-
-		factory {
-			label = "factory";
-			linux,code = <KEY_RESTART>;
-			gpios = <&pio 9 GPIO_ACTIVE_LOW>;
-		};
-
-		wps {
-			label = "wps";
-			linux,code = <KEY_WPS_BUTTON>;
-			gpios = <&pio 10 GPIO_ACTIVE_LOW>;
-		};
-	};
-
-
 	leds {
 		compatible = "gpio-leds";
 
-		led_status: led at 0 {
+		led_status: led-0 {
 			label = "ant0:red";
 			gpios = <&pio 1 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 1 {
+		led-1 {
 			label = "ant0:green";
 			gpios = <&pio 2 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 2 {
+		led-2 {
 			label = "ant0:blue";
 			gpios = <&pio 36 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 3 {
+		led-3 {
 			label = "ant1:red";
 			gpios = <&pio 35 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 4 {
+		led-4 {
 			label = "ant1:green";
 			gpios = <&pio 34 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 5 {
+		led-5 {
 			label = "ant1:blue";
 			gpios = <&pio 33 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 6 {
+		led-6 {
 			label = "ant2:red";
 			gpios = <&pio 38 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 7 {
+		led-7 {
 			label = "ant2:green";
 			gpios = <&pio 37 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 8 {
+		led-8 {
 			label = "ant2:blue";
 			gpios = <&pio 26 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 9 {
+		led-9 {
 			label = "ant3:red";
 			gpios = <&pio 25 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 10 {
+		led-10 {
 			label = "ant3:green";
 			gpios = <&pio 24 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 11 {
+		led-11 {
 			label = "ant3:blue";
 			gpios = <&pio 23 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 12 {
+		led-12 {
 			label = "ant4:red";
 			gpios = <&pio 28 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 13 {
+		led-13 {
 			label = "ant4:green";
 			gpios = <&pio 27 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 14 {
+		led-14 {
 			label = "ant4:blue";
 			gpios = <&pio 32 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 15 {
+		led-15 {
 			label = "ant5:red";
 			gpios = <&pio 45 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 16 {
+		led-16 {
 			label = "ant5:green";
 			gpios = <&pio 44 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 17 {
+		led-17 {
 			label = "ant5:blue";
 			gpios = <&pio 43 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 	};
-
 };
 
-&eth {
+&ssusb {
+	vusb33-supply = <&reg_3p3v>;
+	vbus-supply = <&reg_5v>;
 	status = "okay";
+};
 
-	gmac0: mac at 0 {
-		/* LAN */
-		compatible = "mediatek,eth-mac";
-		reg = <0>;
-		phy-mode = "2500base-x";
+&nvmem {
+	eeprom_factory_a0000: eeprom at a0000 {
+		reg = <0xa0000 0x1000>;
+	};
+};
 
-		fixed-link {
-			speed = <2500>;
-			full-duplex;
-			pause;
-		};
+&slot0 {
+	radio0: mt7915 at 0,0 {
+		reg = <0x0000 0 0 0 0>;
+		nvmem-cells = <&eeprom_factory_a0000>;
+		nvmem-cell-names = "eeprom";
 	};
+};
 
+&usb_phy {
+	status = "okay";
+};
+
+&eth {
 	gmac1: mac at 1 {
-		/* WAN */
 		compatible = "mediatek,eth-mac";
 		reg = <1>;
 		phy-mode = "2500base-x";
 		phy-handle = <&phy6>;
 	};
-
-	mdio: mdio-bus {
-		#address-cells = <1>;
-		#size-cells = <0>;
-	};
 };
 
 &mdio {
 	phy6: phy at 6 {
 		compatible = "ethernet-phy-ieee802.3-c45";
 		reg = <6>;
-
 		reset-gpios = <&pio 6 GPIO_ACTIVE_LOW>;
 		reset-assert-us = <10000>;
 		reset-deassert-us = <10000>;
-
-		/* LED0: nc ; LED1: nc ; LED2: Amber ; LED3: Green */
+		/* LED0: nc ; LED1: nc ; LED2: amber ; LED3: green */
 		mxl,led-config = <0x0 0x0 0x370 0x80>;
 	};
-
-	switch: switch at 1f {
-		compatible = "mediatek,mt7531";
-		reg = <31>;
-
-		reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
-		reset-assert-us = <10000>;
-		reset-deassert-us = <10000>;
-	};
-};
-
-&pio {
-	mmc0_pins_default: mmc0-pins {
-		mux {
-			function = "emmc";
-			groups = "emmc_51";
-		};
-		conf-cmd-dat {
-			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
-			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
-			       "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
-			input-enable;
-			drive-strength = <4>;
-			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
-		};
-		conf-clk {
-			pins = "EMMC_CK";
-			drive-strength = <6>;
-			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
-		};
-		conf-ds {
-			pins = "EMMC_DSL";
-			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
-		};
-		conf-rst {
-			pins = "EMMC_RSTB";
-			drive-strength = <4>;
-			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
-		};
-	};
-
-	mmc0_pins_uhs: mmc0-uhs-pins {
-		mux {
-			function = "emmc";
-			groups = "emmc_51";
-		};
-		conf-cmd-dat {
-			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
-			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
-			       "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
-			input-enable;
-			drive-strength = <4>;
-			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
-		};
-		conf-clk {
-			pins = "EMMC_CK";
-			drive-strength = <6>;
-			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
-		};
-		conf-ds {
-			pins = "EMMC_DSL";
-			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
-		};
-		conf-rst {
-			pins = "EMMC_RSTB";
-			drive-strength = <4>;
-			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
-		};
-	};
-
-	pcie_pins: pcie-pins {
-		mux {
-			function = "pcie";
-			groups = "pcie_pereset";
-		};
-	};
-
-	wf_2g_5g_pins: wf_2g_5g-pins {
-		mux {
-			function = "wifi";
-			groups = "wf_2g", "wf_5g";
-		};
-		conf {
-			pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
-			       "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
-			       "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
-			       "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
-			       "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
-			       "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
-			       "WF1_TOP_CLK", "WF1_TOP_DATA";
-			drive-strength = <4>;
-		};
-	};
-
-	wf_dbdc_pins: wf-dbdc-pins {
-		mux {
-			function = "wifi";
-			groups = "wf_dbdc";
-		};
-		conf {
-			pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
-				"WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
-				"WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
-				"WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
-				"WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
-				"WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
-				"WF1_TOP_CLK", "WF1_TOP_DATA";
-			drive-strength = <4>;
-		};
-	};
 };
 
-&switch {
-	ports {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		port at 0 {
-			reg = <0>;
-			label = "game";
-			phy-handle = <&swphy0>;
-		};
-
-		port at 1 {
-			reg = <1>;
-			label = "lan1";
-			phy-handle = <&swphy1>;
-		};
-
-		port at 2 {
-			reg = <2>;
-			label = "lan2";
-			phy-handle = <&swphy2>;
-		};
-
-		port at 3 {
-			reg = <3>;
-			label = "lan3";
-			phy-handle = <&swphy3>;
-		};
-
-		port at 6 {
-			reg = <6>;
-			label = "cpu";
-			ethernet = <&gmac0>;
-			phy-mode = "2500base-x";
-
-			fixed-link {
-				speed = <2500>;
-				full-duplex;
-				pause;
-			};
-		};
-	};
-
-	mdio {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		swphy0: phy at 0 {
-			reg = <0>;
-
-			mediatek,led-config = <
-				0x21 0x8009 /* BASIC_CTRL */
-				0x22 0x0c00 /* ON_DURATION */
-				0x23 0x1400 /* BLINK_DURATION */
-				0x24 0xc001 /* LED0_ON_CTRL */
-				0x25 0x0000 /* LED0_BLINK_CTRL */
-				0x26 0xc007 /* LED1_ON_CTRL */
-				0x27 0x003f /* LED1_BLINK_CTRL */
-			>;
-		};
-
-		swphy1: phy at 1 {
-			reg = <1>;
-
-			mediatek,led-config = <
-				0x21 0x8009 /* BASIC_CTRL */
-				0x22 0x0c00 /* ON_DURATION */
-				0x23 0x1400 /* BLINK_DURATION */
-				0x24 0xc001 /* LED0_ON_CTRL */
-				0x25 0x0000 /* LED0_BLINK_CTRL */
-				0x26 0xc007 /* LED1_ON_CTRL */
-				0x27 0x003f /* LED1_BLINK_CTRL */
-			>;
-		};
-
-		swphy2: phy at 2 {
-			reg = <2>;
-
-			mediatek,led-config = <
-				0x21 0x8009 /* BASIC_CTRL */
-				0x22 0x0c00 /* ON_DURATION */
-				0x23 0x1400 /* BLINK_DURATION */
-				0x24 0xc001 /* LED0_ON_CTRL */
-				0x25 0x0000 /* LED0_BLINK_CTRL */
-				0x26 0xc007 /* LED1_ON_CTRL */
-				0x27 0x003f /* LED1_BLINK_CTRL */
-			>;
-		};
-
-		swphy3: phy at 3 {
-			reg = <3>;
-
-			mediatek,led-config = <
-				0x21 0x8009 /* BASIC_CTRL */
-				0x22 0x0c00 /* ON_DURATION */
-				0x23 0x1400 /* BLINK_DURATION */
-				0x24 0xc001 /* LED0_ON_CTRL */
-				0x25 0x0000 /* LED0_BLINK_CTRL */
-				0x26 0xc007 /* LED1_ON_CTRL */
-				0x27 0x003f /* LED1_BLINK_CTRL */
-			>;
-		};
-	};
-};
-
-&wifi {
-	nvmem-cells = <&eeprom_factory_0>;
-	nvmem-cell-names = "eeprom";
-	pinctrl-names = "default", "dbdc";
-	pinctrl-0 = <&wf_2g_5g_pins>;
-	pinctrl-1 = <&wf_dbdc_pins>;
-	status = "okay";
-};
-
-&trng {
-	status = "okay";
-};
-
-&watchdog {
-	status = "okay";
-};
-
-&crypto {
-	status = "okay";
-};
-
-&uart0 {
-	status = "okay";
-};
-
-&ssusb {
-	vusb33-supply = <&reg_3p3v>;
-	vbus-supply = <&reg_5v>;
-	status = "okay";
-};
-
-&usb_phy {
-	status = "okay";
-};
-
-&mmc0 {
-	status = "okay";
-	pinctrl-names = "default", "state_uhs";
-	pinctrl-0 = <&mmc0_pins_default>;
-	pinctrl-1 = <&mmc0_pins_uhs>;
-	bus-width = <0x08>;
-	max-frequency = <200000000>;
-	cap-mmc-highspeed;
-	mmc-hs200-1_8v;
-	mmc-hs400-1_8v;
-	hs400-ds-delay = <0x14014>;
-	vmmc-supply = <&reg_3p3v>;
-	vqmmc-supply = <&reg_1p8v>;
-	non-removable;
-	no-sd;
-	no-sdio;
-
-	card at 0 {
-		compatible = "mmc-card";
-		reg = <0>;
-
-		block {
-			compatible = "block-device";
-
-			partitions {
-				block-partition-factory {
-					partname = "factory";
-
-					nvmem-layout {
-						compatible = "fixed-layout";
-						#address-cells = <1>;
-						#size-cells = <1>;
-
-						eeprom_factory_0: eeprom at 0 {
-							reg = <0x0 0x1000>;
-						};
-
-						eeprom_factory_a0000: eeprom at a0000 {
-							reg = <0xa0000 0x1000>;
-						};
-					};
-				};
-			};
-		};
-	};
-};
-
-&pcie {
-	pinctrl-names = "default";
-	pinctrl-0 = <&pcie_pins>;
-	status = "okay";
-
-	slot0: pcie at 0,0 {
-		reg = <0x0000 0 0 0 0>;
-
-		radio0: mt7915 at 0,0 {
-			reg = <0x0000 0 0 0 0>;
-
-			nvmem-cells = <&eeprom_factory_a0000>;
-			nvmem-cell-names = "eeprom";
-		};
-	};
-};
-
-&pcie_phy {
-	status = "okay";
+&swport0 {
+	label = "game";
 };
diff --git a/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts b/target/linux/mediatek/dts/mt7986a-acer-w6-common.dtsi
similarity index 51%
copy from target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts
copy to target/linux/mediatek/dts/mt7986a-acer-w6-common.dtsi
index c27264a8d2..cca03684fb 100644
--- a/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts
+++ b/target/linux/mediatek/dts/mt7986a-acer-w6-common.dtsi
@@ -1,6 +1,5 @@
-// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 
-/dts-v1/;
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/leds/common.h>
@@ -8,23 +7,12 @@
 #include "mt7986a.dtsi"
 
 / {
-	model = "Acer Predator W6";
-	compatible = "acer,predator-w6", "mediatek,mt7986a";
-
-	aliases {
-		serial0 = &uart0;
-		led-boot = &led_status;
-		led-failsafe = &led_status;
-		led-running = &led_status;
-		led-upgrade = &led_status;
-	};
-
 	chosen {
 		stdout-path = "serial0:115200n8";
 		bootargs = "dm-mod.create=\"dm-verity,,,ro,0 31544 verity 1 PARTLABEL=rootfs PARTLABEL=rootfs 4096 4096 3943 3944 sha256 2f969fa9e9e4e20b37746f22633e85b178f5db7c143e11f92733a704299cc933 2dd56e34b15c6c84573cf26c4392028421061d2c808975217b45e9a5b49d2087\" rootfstype=squashfs,ext4 rootwait root=/dev/mmcblk0p6 fstools_ignore_partname=1";
 	};
 
-	memory {
+	memory at 0 {
 		reg = <0 0x40000000 0 0x20000000>;
 	};
 
@@ -70,173 +58,10 @@
 			gpios = <&pio 10 GPIO_ACTIVE_LOW>;
 		};
 	};
-
-
-	leds {
-		compatible = "gpio-leds";
-
-		led_status: led at 0 {
-			label = "ant0:red";
-			gpios = <&pio 1 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 1 {
-			label = "ant0:green";
-			gpios = <&pio 2 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 2 {
-			label = "ant0:blue";
-			gpios = <&pio 36 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 3 {
-			label = "ant1:red";
-			gpios = <&pio 35 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 4 {
-			label = "ant1:green";
-			gpios = <&pio 34 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 5 {
-			label = "ant1:blue";
-			gpios = <&pio 33 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 6 {
-			label = "ant2:red";
-			gpios = <&pio 38 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 7 {
-			label = "ant2:green";
-			gpios = <&pio 37 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 8 {
-			label = "ant2:blue";
-			gpios = <&pio 26 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 9 {
-			label = "ant3:red";
-			gpios = <&pio 25 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 10 {
-			label = "ant3:green";
-			gpios = <&pio 24 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 11 {
-			label = "ant3:blue";
-			gpios = <&pio 23 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 12 {
-			label = "ant4:red";
-			gpios = <&pio 28 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 13 {
-			label = "ant4:green";
-			gpios = <&pio 27 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 14 {
-			label = "ant4:blue";
-			gpios = <&pio 32 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 15 {
-			label = "ant5:red";
-			gpios = <&pio 45 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 16 {
-			label = "ant5:green";
-			gpios = <&pio 44 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 17 {
-			label = "ant5:blue";
-			gpios = <&pio 43 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-	};
-
 };
 
-&eth {
+&watchdog {
 	status = "okay";
-
-	gmac0: mac at 0 {
-		/* LAN */
-		compatible = "mediatek,eth-mac";
-		reg = <0>;
-		phy-mode = "2500base-x";
-
-		fixed-link {
-			speed = <2500>;
-			full-duplex;
-			pause;
-		};
-	};
-
-	gmac1: mac at 1 {
-		/* WAN */
-		compatible = "mediatek,eth-mac";
-		reg = <1>;
-		phy-mode = "2500base-x";
-		phy-handle = <&phy6>;
-	};
-
-	mdio: mdio-bus {
-		#address-cells = <1>;
-		#size-cells = <0>;
-	};
-};
-
-&mdio {
-	phy6: phy at 6 {
-		compatible = "ethernet-phy-ieee802.3-c45";
-		reg = <6>;
-
-		reset-gpios = <&pio 6 GPIO_ACTIVE_LOW>;
-		reset-assert-us = <10000>;
-		reset-deassert-us = <10000>;
-
-		/* LED0: nc ; LED1: nc ; LED2: Amber ; LED3: Green */
-		mxl,led-config = <0x0 0x0 0x370 0x80>;
-	};
-
-	switch: switch at 1f {
-		compatible = "mediatek,mt7531";
-		reg = <31>;
-
-		reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
-		reset-assert-us = <10000>;
-		reset-deassert-us = <10000>;
-	};
 };
 
 &pio {
@@ -245,6 +70,7 @@
 			function = "emmc";
 			groups = "emmc_51";
 		};
+
 		conf-cmd-dat {
 			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
 			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
@@ -253,15 +79,18 @@
 			drive-strength = <4>;
 			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
 		};
+
 		conf-clk {
 			pins = "EMMC_CK";
 			drive-strength = <6>;
 			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
 		};
+
 		conf-ds {
 			pins = "EMMC_DSL";
 			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
 		};
+
 		conf-rst {
 			pins = "EMMC_RSTB";
 			drive-strength = <4>;
@@ -274,6 +103,7 @@
 			function = "emmc";
 			groups = "emmc_51";
 		};
+
 		conf-cmd-dat {
 			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
 			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
@@ -282,15 +112,18 @@
 			drive-strength = <4>;
 			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
 		};
+
 		conf-clk {
 			pins = "EMMC_CK";
 			drive-strength = <6>;
 			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
 		};
+
 		conf-ds {
 			pins = "EMMC_DSL";
 			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
 		};
+
 		conf-rst {
 			pins = "EMMC_RSTB";
 			drive-strength = <4>;
@@ -340,128 +173,10 @@
 	};
 };
 
-&switch {
-	ports {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		port at 0 {
-			reg = <0>;
-			label = "game";
-			phy-handle = <&swphy0>;
-		};
-
-		port at 1 {
-			reg = <1>;
-			label = "lan1";
-			phy-handle = <&swphy1>;
-		};
-
-		port at 2 {
-			reg = <2>;
-			label = "lan2";
-			phy-handle = <&swphy2>;
-		};
-
-		port at 3 {
-			reg = <3>;
-			label = "lan3";
-			phy-handle = <&swphy3>;
-		};
-
-		port at 6 {
-			reg = <6>;
-			label = "cpu";
-			ethernet = <&gmac0>;
-			phy-mode = "2500base-x";
-
-			fixed-link {
-				speed = <2500>;
-				full-duplex;
-				pause;
-			};
-		};
-	};
-
-	mdio {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		swphy0: phy at 0 {
-			reg = <0>;
-
-			mediatek,led-config = <
-				0x21 0x8009 /* BASIC_CTRL */
-				0x22 0x0c00 /* ON_DURATION */
-				0x23 0x1400 /* BLINK_DURATION */
-				0x24 0xc001 /* LED0_ON_CTRL */
-				0x25 0x0000 /* LED0_BLINK_CTRL */
-				0x26 0xc007 /* LED1_ON_CTRL */
-				0x27 0x003f /* LED1_BLINK_CTRL */
-			>;
-		};
-
-		swphy1: phy at 1 {
-			reg = <1>;
-
-			mediatek,led-config = <
-				0x21 0x8009 /* BASIC_CTRL */
-				0x22 0x0c00 /* ON_DURATION */
-				0x23 0x1400 /* BLINK_DURATION */
-				0x24 0xc001 /* LED0_ON_CTRL */
-				0x25 0x0000 /* LED0_BLINK_CTRL */
-				0x26 0xc007 /* LED1_ON_CTRL */
-				0x27 0x003f /* LED1_BLINK_CTRL */
-			>;
-		};
-
-		swphy2: phy at 2 {
-			reg = <2>;
-
-			mediatek,led-config = <
-				0x21 0x8009 /* BASIC_CTRL */
-				0x22 0x0c00 /* ON_DURATION */
-				0x23 0x1400 /* BLINK_DURATION */
-				0x24 0xc001 /* LED0_ON_CTRL */
-				0x25 0x0000 /* LED0_BLINK_CTRL */
-				0x26 0xc007 /* LED1_ON_CTRL */
-				0x27 0x003f /* LED1_BLINK_CTRL */
-			>;
-		};
-
-		swphy3: phy at 3 {
-			reg = <3>;
-
-			mediatek,led-config = <
-				0x21 0x8009 /* BASIC_CTRL */
-				0x22 0x0c00 /* ON_DURATION */
-				0x23 0x1400 /* BLINK_DURATION */
-				0x24 0xc001 /* LED0_ON_CTRL */
-				0x25 0x0000 /* LED0_BLINK_CTRL */
-				0x26 0xc007 /* LED1_ON_CTRL */
-				0x27 0x003f /* LED1_BLINK_CTRL */
-			>;
-		};
-	};
-};
-
-&wifi {
-	nvmem-cells = <&eeprom_factory_0>;
-	nvmem-cell-names = "eeprom";
-	pinctrl-names = "default", "dbdc";
-	pinctrl-0 = <&wf_2g_5g_pins>;
-	pinctrl-1 = <&wf_dbdc_pins>;
-	status = "okay";
-};
-
 &trng {
 	status = "okay";
 };
 
-&watchdog {
-	status = "okay";
-};
-
 &crypto {
 	status = "okay";
 };
@@ -470,16 +185,6 @@
 	status = "okay";
 };
 
-&ssusb {
-	vusb33-supply = <&reg_3p3v>;
-	vbus-supply = <&reg_5v>;
-	status = "okay";
-};
-
-&usb_phy {
-	status = "okay";
-};
-
 &mmc0 {
 	status = "okay";
 	pinctrl-names = "default", "state_uhs";
@@ -496,6 +201,8 @@
 	non-removable;
 	no-sd;
 	no-sdio;
+	#address-cells = <1>;
+	#size-cells = <0>;
 
 	card at 0 {
 		compatible = "mmc-card";
@@ -508,7 +215,7 @@
 				block-partition-factory {
 					partname = "factory";
 
-					nvmem-layout {
+					nvmem: nvmem-layout {
 						compatible = "fixed-layout";
 						#address-cells = <1>;
 						#size-cells = <1>;
@@ -516,10 +223,6 @@
 						eeprom_factory_0: eeprom at 0 {
 							reg = <0x0 0x1000>;
 						};
-
-						eeprom_factory_a0000: eeprom at a0000 {
-							reg = <0xa0000 0x1000>;
-						};
 					};
 				};
 			};
@@ -534,16 +237,151 @@
 
 	slot0: pcie at 0,0 {
 		reg = <0x0000 0 0 0 0>;
+		#address-cells = <0x03>; 
+		#size-cells = <0x02>;
+	};
+};
+
+&pcie_phy {
+	status = "okay";
+};
+
+&eth {
+	status = "okay";
+
+	gmac0: mac at 0 {
+		compatible = "mediatek,eth-mac";
+		reg = <0>;
+		phy-mode = "2500base-x";
+
+		fixed-link {
+			speed = <2500>;
+			full-duplex;
+			pause;
+		};
+	};
+
+	mdio: mdio-bus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		switch: switch at 1f {
+			compatible = "mediatek,mt7531";
+			reg = <31>;
+			reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
+			reset-assert-us = <10000>;
+			reset-deassert-us = <10000>;
+
+			ports {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				swport0: port at 0 {
+					reg = <0>;
+					phy-handle = <&swphy0>;
+				};
+
+				port at 1 {
+					reg = <1>;
+					label = "lan1";
+					phy-handle = <&swphy1>;
+				};
 
-		radio0: mt7915 at 0,0 {
-			reg = <0x0000 0 0 0 0>;
+				port at 2 {
+					reg = <2>;
+					label = "lan2";
+					phy-handle = <&swphy2>;
+				};
+
+				port at 3 {
+					reg = <3>;
+					label = "lan3";
+					phy-handle = <&swphy3>;
+				};
+
+				port at 6 {
+					reg = <6>;
+					label = "cpu";
+					ethernet = <&gmac0>;
+					phy-mode = "2500base-x";
+
+					fixed-link {
+						speed = <2500>;
+						full-duplex;
+						pause;
+					};
+				};
+			};
+
+			mdio {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				swphy0: phy at 0 {
+					reg = <0>;
+
+					mediatek,led-config = <
+						0x21 0x8009 /* BASIC_CTRL */
+						0x22 0x0c00 /* ON_DURATION */
+						0x23 0x1400 /* BLINK_DURATION */
+						0x24 0xc001 /* LED0_ON_CTRL */
+						0x25 0x0000 /* LED0_BLINK_CTRL */
+						0x26 0xc007 /* LED1_ON_CTRL */
+						0x27 0x003f /* LED1_BLINK_CTRL */
+					>;
+				};
+
+				swphy1: phy at 1 {
+					reg = <1>;
+
+					mediatek,led-config = <
+						0x21 0x8009 /* BASIC_CTRL */
+						0x22 0x0c00 /* ON_DURATION */
+						0x23 0x1400 /* BLINK_DURATION */
+						0x24 0xc001 /* LED0_ON_CTRL */
+						0x25 0x0000 /* LED0_BLINK_CTRL */
+						0x26 0xc007 /* LED1_ON_CTRL */
+						0x27 0x003f /* LED1_BLINK_CTRL */
+					>;
+				};
 
-			nvmem-cells = <&eeprom_factory_a0000>;
-			nvmem-cell-names = "eeprom";
+				swphy2: phy at 2 {
+					reg = <2>;
+
+					mediatek,led-config = <
+						0x21 0x8009 /* BASIC_CTRL */
+						0x22 0x0c00 /* ON_DURATION */
+						0x23 0x1400 /* BLINK_DURATION */
+						0x24 0xc001 /* LED0_ON_CTRL */
+						0x25 0x0000 /* LED0_BLINK_CTRL */
+						0x26 0xc007 /* LED1_ON_CTRL */
+						0x27 0x003f /* LED1_BLINK_CTRL */
+					>;
+				};
+
+				swphy3: phy at 3 {
+					reg = <3>;
+
+					mediatek,led-config = <
+						0x21 0x8009 /* BASIC_CTRL */
+						0x22 0x0c00 /* ON_DURATION */
+						0x23 0x1400 /* BLINK_DURATION */
+						0x24 0xc001 /* LED0_ON_CTRL */
+						0x25 0x0000 /* LED0_BLINK_CTRL */
+						0x26 0xc007 /* LED1_ON_CTRL */
+						0x27 0x003f /* LED1_BLINK_CTRL */
+					>;
+				};
+			};
 		};
 	};
 };
 
-&pcie_phy {
+&wifi {
+	nvmem-cells = <&eeprom_factory_0>;
+	nvmem-cell-names = "eeprom";
+	pinctrl-names = "default", "dbdc";
+	pinctrl-0 = <&wf_2g_5g_pins>;
+	pinctrl-1 = <&wf_dbdc_pins>;
 	status = "okay";
 };



From lede-commits at lists.infradead.org  Sat Nov 23 10:47:17 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 13:47:17 -0500
Subject: [openwrt/openwrt]  mediatek: improve device tree for Acer Predator
 Connect W6
In-Reply-To: <173238763590.2431587.11961231662767988694@git-01.infra.openwrt.org>
References: <173238763590.2431587.11961231662767988694@git-01.infra.openwrt.org>
Message-ID: <mailman.4675.1732387644.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/d42075dcefa407a03a30663879688475bb912729

commit d42075dcefa407a03a30663879688475bb912729
Author: George Oldfort <openwrt at 10099.de>
AuthorDate: Mon Nov 11 10:40:45 2024 +0100

    mediatek: improve device tree for Acer Predator Connect W6
    
    In order to prepare for OpenWrt support other Acer W6 devices and to get
    a step further to full hardware support for Acer Predator Connect W6, this
    commit
    - adjusts the product name ("Acer Predator Connect W6")
    - updates gpio LED labels to function/color scheme
    - show router status by using first rgb led instead of it's red color only
      (blue: booting/failsafe mode; red: sysupgrade; green: running ? was: red)
    - changes switch/eth1 led configuration to reflect RX/TX activity and speed
      (green: full 1Gbps/2.5Gbps speed; amber: lower speed; blink: RX/TX)
    - shortens dummy dm-mod.create string in bootargs
    - enables W6's i2c interface
    
    This is the third of four commits into which the original commit was split
    to make reviews easier and more targeted.
    
    Signed-off-by: George Oldfort <openwrt at 10099.de>
    Link: https://github.com/openwrt/openwrt/pull/16861
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 .../mediatek/dts/mt7986a-acer-predator-w6.dts      | 90 +++++++++++++++-------
 .../linux/mediatek/dts/mt7986a-acer-w6-common.dtsi | 47 +++++++----
 target/linux/mediatek/image/filogic.mk             |  2 +-
 3 files changed, 94 insertions(+), 45 deletions(-)

diff --git a/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts b/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts
index 8c86fd31d8..5002326d70 100644
--- a/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts
+++ b/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts
@@ -4,107 +4,143 @@
 #include "mt7986a-acer-w6-common.dtsi"
 
 / {
-	model = "Acer Predator W6";
+	model = "Acer Predator Connect W6";
 	compatible = "acer,predator-w6", "mediatek,mt7986a";
 
 	aliases {
 		serial0 = &uart0;
-		led-boot = &led_status;
-		led-failsafe = &led_status;
-		led-running = &led_status;
-		led-upgrade = &led_status;
+		led-boot = &led_status_blue;
+		led-failsafe = &led_status_blue;
+		led-running = &led_status_green;
+		led-upgrade = &led_status_red;
 	};
 
 	leds {
 		compatible = "gpio-leds";
 
-		led_status: led-0 {
-			label = "ant0:red";
+		led_status_red: led-0 {
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <0>;
 			gpios = <&pio 1 GPIO_ACTIVE_HIGH>;
 		};
 
-		led-1 {
-			label = "ant0:green";
+		led_status_green: led-1 {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <0>;
 			gpios = <&pio 2 GPIO_ACTIVE_HIGH>;
 		};
 
-		led-2 {
-			label = "ant0:blue";
+		led_status_blue: led-2 {
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <0>;
 			gpios = <&pio 36 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-3 {
-			label = "ant1:red";
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <1>;
 			gpios = <&pio 35 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-4 {
-			label = "ant1:green";
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <1>;
 			gpios = <&pio 34 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-5 {
-			label = "ant1:blue";
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <1>;
 			gpios = <&pio 33 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-6 {
-			label = "ant2:red";
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <2>;
 			gpios = <&pio 38 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-7 {
-			label = "ant2:green";
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <2>;
 			gpios = <&pio 37 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-8 {
-			label = "ant2:blue";
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <2>;
 			gpios = <&pio 26 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-9 {
-			label = "ant3:red";
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <3>;
 			gpios = <&pio 25 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-10 {
-			label = "ant3:green";
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <3>;
 			gpios = <&pio 24 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-11 {
-			label = "ant3:blue";
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <3>;
 			gpios = <&pio 23 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-12 {
-			label = "ant4:red";
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <4>;
 			gpios = <&pio 28 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-13 {
-			label = "ant4:green";
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <4>;
 			gpios = <&pio 27 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-14 {
-			label = "ant4:blue";
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <4>;
 			gpios = <&pio 32 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-15 {
-			label = "ant5:red";
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <5>;
 			gpios = <&pio 45 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-16 {
-			label = "ant5:green";
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <5>;
 			gpios = <&pio 44 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-17 {
-			label = "ant5:blue";
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <5>;
 			gpios = <&pio 43 GPIO_ACTIVE_HIGH>;
 		};
 	};
@@ -151,7 +187,7 @@
 		reset-assert-us = <10000>;
 		reset-deassert-us = <10000>;
 		/* LED0: nc ; LED1: nc ; LED2: amber ; LED3: green */
-		mxl,led-config = <0x0 0x0 0x370 0x80>;
+		mxl,led-config = <0x0 0x0 0x370 0x380>;
 	};
 };
 
diff --git a/target/linux/mediatek/dts/mt7986a-acer-w6-common.dtsi b/target/linux/mediatek/dts/mt7986a-acer-w6-common.dtsi
index cca03684fb..03913f04e1 100644
--- a/target/linux/mediatek/dts/mt7986a-acer-w6-common.dtsi
+++ b/target/linux/mediatek/dts/mt7986a-acer-w6-common.dtsi
@@ -9,7 +9,7 @@
 / {
 	chosen {
 		stdout-path = "serial0:115200n8";
-		bootargs = "dm-mod.create=\"dm-verity,,,ro,0 31544 verity 1 PARTLABEL=rootfs PARTLABEL=rootfs 4096 4096 3943 3944 sha256 2f969fa9e9e4e20b37746f22633e85b178f5db7c143e11f92733a704299cc933 2dd56e34b15c6c84573cf26c4392028421061d2c808975217b45e9a5b49d2087\" rootfstype=squashfs,ext4 rootwait root=/dev/mmcblk0p6 fstools_ignore_partname=1";
+		bootargs = "dm-mod.create=\"acer,,,ro,0 1 zero 1 0 0 0\" rootfstype=squashfs,ext4 rootwait root=/dev/mmcblk0p6 fstools_ignore_partname=1";
 	};
 
 	memory at 0 {
@@ -171,6 +171,13 @@
 			drive-strength = <4>;
 		};
 	};
+
+	i2c_pins: i2c-pins {
+		mux {
+			function = "i2c";
+			groups = "i2c";
+		};
+	};
 };
 
 &trng {
@@ -185,6 +192,12 @@
 	status = "okay";
 };
 
+&i2c0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c_pins>;
+	status = "okay";
+};
+
 &mmc0 {
 	status = "okay";
 	pinctrl-names = "default", "state_uhs";
@@ -321,13 +334,13 @@
 					reg = <0>;
 
 					mediatek,led-config = <
-						0x21 0x8009 /* BASIC_CTRL */
+						0x21 0x8008 /* BASIC_CTRL */
 						0x22 0x0c00 /* ON_DURATION */
 						0x23 0x1400 /* BLINK_DURATION */
 						0x24 0xc001 /* LED0_ON_CTRL */
-						0x25 0x0000 /* LED0_BLINK_CTRL */
-						0x26 0xc007 /* LED1_ON_CTRL */
-						0x27 0x003f /* LED1_BLINK_CTRL */
+						0x25 0x0003 /* LED0_BLINK_CTRL */
+						0x26 0xc006 /* LED1_ON_CTRL */
+						0x27 0x003c /* LED1_BLINK_CTRL */
 					>;
 				};
 
@@ -335,13 +348,13 @@
 					reg = <1>;
 
 					mediatek,led-config = <
-						0x21 0x8009 /* BASIC_CTRL */
+						0x21 0x8008 /* BASIC_CTRL */
 						0x22 0x0c00 /* ON_DURATION */
 						0x23 0x1400 /* BLINK_DURATION */
 						0x24 0xc001 /* LED0_ON_CTRL */
-						0x25 0x0000 /* LED0_BLINK_CTRL */
-						0x26 0xc007 /* LED1_ON_CTRL */
-						0x27 0x003f /* LED1_BLINK_CTRL */
+						0x25 0x0003 /* LED0_BLINK_CTRL */
+						0x26 0xc006 /* LED1_ON_CTRL */
+						0x27 0x003c /* LED1_BLINK_CTRL */
 					>;
 				};
 
@@ -349,13 +362,13 @@
 					reg = <2>;
 
 					mediatek,led-config = <
-						0x21 0x8009 /* BASIC_CTRL */
+						0x21 0x8008 /* BASIC_CTRL */
 						0x22 0x0c00 /* ON_DURATION */
 						0x23 0x1400 /* BLINK_DURATION */
 						0x24 0xc001 /* LED0_ON_CTRL */
-						0x25 0x0000 /* LED0_BLINK_CTRL */
-						0x26 0xc007 /* LED1_ON_CTRL */
-						0x27 0x003f /* LED1_BLINK_CTRL */
+						0x25 0x0003 /* LED0_BLINK_CTRL */
+						0x26 0xc006 /* LED1_ON_CTRL */
+						0x27 0x003c /* LED1_BLINK_CTRL */
 					>;
 				};
 
@@ -363,13 +376,13 @@
 					reg = <3>;
 
 					mediatek,led-config = <
-						0x21 0x8009 /* BASIC_CTRL */
+						0x21 0x8008 /* BASIC_CTRL */
 						0x22 0x0c00 /* ON_DURATION */
 						0x23 0x1400 /* BLINK_DURATION */
 						0x24 0xc001 /* LED0_ON_CTRL */
-						0x25 0x0000 /* LED0_BLINK_CTRL */
-						0x26 0xc007 /* LED1_ON_CTRL */
-						0x27 0x003f /* LED1_BLINK_CTRL */
+						0x25 0x0003 /* LED0_BLINK_CTRL */
+						0x26 0xc006 /* LED1_ON_CTRL */
+						0x27 0x003c /* LED1_BLINK_CTRL */
 					>;
 				};
 			};
diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index cb5c102b1e..838a433bf4 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -152,7 +152,7 @@ TARGET_DEVICES += acelink_ew-7886cax
 
 define Device/acer_predator-w6
   DEVICE_VENDOR := Acer
-  DEVICE_MODEL := Predator W6
+  DEVICE_MODEL := Predator Connect W6
   DEVICE_DTS := mt7986a-acer-predator-w6
   DEVICE_DTS_DIR := ../dts
   DEVICE_DTS_LOADADDR := 0x47000000



From lede-commits at lists.infradead.org  Sat Nov 23 11:04:16 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 14:04:16 -0500
Subject: [openwrt/openwrt]  mediatek: fix Cudy AP3000 Outdoor label-mac
In-Reply-To: <173238865639.2485733.6383187142079620954@git-01.infra.openwrt.org>
References: <173238865639.2485733.6383187142079620954@git-01.infra.openwrt.org>
Message-ID: <mailman.4678.1732388660.1089.lede-commits@lists.infradead.org>

blocktrron pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/b8b658bc0d22df31e7ac2d07cdd2af7155d12630

commit b8b658bc0d22df31e7ac2d07cdd2af7155d12630
Author: David Bauer <mail at david-bauer.net>
AuthorDate: Sat Nov 23 20:00:57 2024 +0100

    mediatek: fix Cudy AP3000 Outdoor label-mac
    
    The label-mac does not match the one assigned to the ethernet interface.
    Use the mac-address assigned to the wifi interface instead, as it
    matches the one found on the device label.
    
    Signed-off-by: David Bauer <mail at david-bauer.net>
---
 target/linux/mediatek/dts/mt7981b-cudy-ap3000outdoor-v1.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/linux/mediatek/dts/mt7981b-cudy-ap3000outdoor-v1.dts b/target/linux/mediatek/dts/mt7981b-cudy-ap3000outdoor-v1.dts
index 62e4063947..a1eb9c6e1e 100644
--- a/target/linux/mediatek/dts/mt7981b-cudy-ap3000outdoor-v1.dts
+++ b/target/linux/mediatek/dts/mt7981b-cudy-ap3000outdoor-v1.dts
@@ -11,7 +11,7 @@
 	compatible = "cudy,ap3000outdoor-v1", "mediatek,mt7981-spim-snand-rfb";
 
 	aliases {
-		label-mac-device = &gmac1;
+		label-mac-device = &wifi;
 		led-boot = &led_status_green;
 		led-failsafe = &led_status_red;
 		led-running = &led_status_green;



From lede-commits at lists.infradead.org  Sat Nov 23 11:05:07 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 14:05:07 -0500
Subject: [openwrt/openwrt]  mediatek: fix Cudy AP3000 Outdoor label-mac
In-Reply-To: <173238870735.2488815.12678737434902602155@git-01.infra.openwrt.org>
References: <173238870735.2488815.12678737434902602155@git-01.infra.openwrt.org>
Message-ID: <mailman.4679.1732388710.1089.lede-commits@lists.infradead.org>

blocktrron pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/c279ca8b799e567226df804f07fd7a6073487b5f

commit c279ca8b799e567226df804f07fd7a6073487b5f
Author: David Bauer <mail at david-bauer.net>
AuthorDate: Sat Nov 23 20:00:57 2024 +0100

    mediatek: fix Cudy AP3000 Outdoor label-mac
    
    The label-mac does not match the one assigned to the ethernet interface.
    Use the mac-address assigned to the wifi interface instead, as it
    matches the one found on the device label.
    
    Signed-off-by: David Bauer <mail at david-bauer.net>
    (cherry picked from commit b8b658bc0d22df31e7ac2d07cdd2af7155d12630)
---
 target/linux/mediatek/dts/mt7981b-cudy-ap3000outdoor-v1.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/linux/mediatek/dts/mt7981b-cudy-ap3000outdoor-v1.dts b/target/linux/mediatek/dts/mt7981b-cudy-ap3000outdoor-v1.dts
index 62e4063947..a1eb9c6e1e 100644
--- a/target/linux/mediatek/dts/mt7981b-cudy-ap3000outdoor-v1.dts
+++ b/target/linux/mediatek/dts/mt7981b-cudy-ap3000outdoor-v1.dts
@@ -11,7 +11,7 @@
 	compatible = "cudy,ap3000outdoor-v1", "mediatek,mt7981-spim-snand-rfb";
 
 	aliases {
-		label-mac-device = &gmac1;
+		label-mac-device = &wifi;
 		led-boot = &led_status_green;
 		led-failsafe = &led_status_red;
 		led-running = &led_status_green;



From lede-commits at lists.infradead.org  Sat Nov 23 11:27:45 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 14:27:45 -0500
Subject: [openwrt/openwrt]  mediatek: filogic: add support for Cudy WR3000S v1
In-Reply-To: <173239006569.2564930.14752165329530375602@git-01.infra.openwrt.org>
References: <173239006569.2564930.14752165329530375602@git-01.infra.openwrt.org>
Message-ID: <mailman.4680.1732390069.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/faf4b3e0f7a583a8fa1a65b302ac74457e48575f

commit faf4b3e0f7a583a8fa1a65b302ac74457e48575f
Author: David Ignjic <ignjic at gmail.com>
AuthorDate: Wed Nov 13 11:20:27 2024 +0100

    mediatek: filogic: add support for Cudy WR3000S v1
    
    Hardware
    --------
    MediaTek MT7981 WiSoC
    256MB DDR3 RAM
    128MB SPI-NAND (XMC XM25QH128C)
    MediaTek MT7981 2x2 DBDC 802.11ax 2T2R (2.4 / 5)
    UART: 115200 8N1 3.3V
    
    MAC:
    LAN MAC: label mac
    WAN MAC: label mac + 1
    2.4G MAC: label mac
    5G MAC: label mac + 1 with LA bit set
    
    Installation
    ------------
    
    1. Connect to the serial port as described in the "Hardware" section.
    
    2. Power on the device + press reset pin. Keep pressing reset pin to enter the U-Boot  shell.
    
    3. Download the OpenWrt initramfs image. Place it on an TFTP server
       connected to the Cudy LAN ports. Make sure the server is reachable at
       192.168.1.88. Rename the image to "cudy3000s.bin"
    
    4. Download and boot the OpenWrt initramfs image.
    
       $ tftpboot 0x46000000 cudy3000s.bin; bootm 0x46000000
    
    5. Transfer the OpenWrt sysupgrade image to the device using scp.
       Install with sysupgrade.
    
    Signed-off-by: David Ignjic <ignjic at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16939
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 .../linux/mediatek/dts/mt7981b-cudy-wr3000s-v1.dts | 283 +++++++++++++++++++++
 .../etc/hotplug.d/ieee80211/11_fix_wifi_mac        |   1 +
 target/linux/mediatek/image/filogic.mk             |  17 ++
 3 files changed, 301 insertions(+)

diff --git a/target/linux/mediatek/dts/mt7981b-cudy-wr3000s-v1.dts b/target/linux/mediatek/dts/mt7981b-cudy-wr3000s-v1.dts
new file mode 100644
index 0000000000..a643969494
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7981b-cudy-wr3000s-v1.dts
@@ -0,0 +1,283 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+
+#include "mt7981.dtsi"
+
+/ {
+	model = "Cudy WR3000S v1";
+	compatible = "cudy,wr3000s-v1", "mediatek,mt7981-spim-snand-rfb";
+
+	aliases {
+		label-mac-device = &gmac0;
+		led-boot = &led_status;
+		led-failsafe = &led_status;
+		led-running = &led_status;
+		led-upgrade = &led_status;
+		serial0 = &uart0;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&pio 1 GPIO_ACTIVE_LOW>;
+		};
+
+		wps {
+			label = "wps";
+			linux,code = <KEY_WPS_BUTTON>;
+			gpios = <&pio 0 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led_status: led at 0 {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 10 GPIO_ACTIVE_LOW>;
+		};
+
+
+		led_internet {
+			function = LED_FUNCTION_WAN_ONLINE;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 11 GPIO_ACTIVE_LOW>;
+		};
+
+		led_wps {
+			function = LED_FUNCTION_WPS;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 9 GPIO_ACTIVE_LOW>;
+		};
+
+		led_wlan2g {
+			function = LED_FUNCTION_WLAN_2GHZ;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 6 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy0tpt";
+		};
+
+		led_wlan5g {
+			function = LED_FUNCTION_WLAN_5GHZ;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 7 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy1tpt";
+		};
+	};
+};
+
+&uart0 {
+	status = "okay";
+};
+
+&watchdog {
+	status = "okay";
+};
+
+&eth {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mdio_pins>;
+
+	status = "okay";
+
+	gmac0: mac at 0 {
+		compatible = "mediatek,eth-mac";
+		reg = <0>;
+		phy-mode = "2500base-x";
+
+		nvmem-cell-names = "mac-address";
+		nvmem-cells = <&macaddr_bdinfo_de00 0>;
+
+		fixed-link {
+			speed = <2500>;
+			full-duplex;
+			pause;
+		};
+	};
+};
+
+&mdio_bus {
+	switch: switch at 1f {
+		compatible = "mediatek,mt7531";
+		reg = <31>;
+		reset-gpios = <&pio 39 GPIO_ACTIVE_HIGH>;
+		interrupt-controller;
+		#interrupt-cells = <1>;
+		interrupt-parent = <&pio>;
+		interrupts = <38 IRQ_TYPE_LEVEL_HIGH>;
+	};
+};
+
+&spi0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&spi0_flash_pins>;
+	status = "okay";
+
+	spi_nand: flash at 0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "spi-nand";
+		reg = <0>;
+		spi-max-frequency = <52000000>;
+
+		spi-cal-enable;
+		spi-cal-mode = "read-data";
+		spi-cal-datalen = <7>;
+		spi-cal-data = /bits/ 8 <0x53 0x50 0x49 0x4E 0x41 0x4E 0x44>;
+		spi-cal-addrlen = <5>;
+		spi-cal-addr = /bits/ 32 <0x0 0x0 0x0 0x0 0x0>;
+
+		spi-tx-bus-width = <4>;
+		spi-rx-bus-width = <4>;
+		mediatek,nmbm;
+		mediatek,bmt-max-ratio = <1>;
+		mediatek,bmt-max-reserved-blocks = <64>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "BL2";
+				reg = <0x00000 0x0100000>;
+				read-only;
+			};
+
+			partition at 100000 {
+				label = "u-boot-env";
+				reg = <0x0100000 0x0080000>;
+				read-only;
+			};
+
+			factory: partition at 180000 {
+				label = "Factory";
+				reg = <0x180000 0x0200000>;
+				read-only;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					eeprom_factory_0: eeprom at 0 {
+						reg = <0x0 0x1000>;
+					};
+				};
+			};
+
+			partition at 380000 {
+				label = "bdinfo";
+				reg = <0x380000 0x0040000>;
+				read-only;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_bdinfo_de00: macaddr at de00 {
+						compatible = "mac-base";
+						reg = <0xde00 0x6>;
+						#nvmem-cell-cells = <1>;
+					};
+				};
+			};
+
+			partition at 3C0000 {
+				label = "FIP";
+				reg = <0x3C0000 0x0200000>;
+				read-only;
+			};
+
+			partition at 580000 {
+				label = "ubi";
+				reg = <0x5C0000 0x4000000>;
+				compatible = "linux,ubi";
+			};
+		};
+	};
+};
+
+&pio {
+	spi0_flash_pins: spi0-pins {
+		mux {
+			function = "spi";
+			groups = "spi0", "spi0_wp_hold";
+		};
+		conf-pu {
+			pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
+			drive-strength = <MTK_DRIVE_8mA>;
+			bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
+		};
+
+		conf-pd {
+			pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
+			drive-strength = <MTK_DRIVE_8mA>;
+			bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
+		};
+	};
+};
+
+&switch {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		port at 0 {
+			reg = <0>;
+			label = "wan";
+
+			nvmem-cell-names = "mac-address";
+			nvmem-cells = <&macaddr_bdinfo_de00 1>;
+		};
+
+		port at 1 {
+			reg = <1>;
+			label = "lan1";
+		};
+
+		port at 2 {
+			reg = <2>;
+			label = "lan2";
+		};
+
+		port at 3 {
+			reg = <3>;
+			label = "lan3";
+		};
+
+		port at 4 {
+			reg = <4>;
+			label = "lan4";
+		};
+
+		port at 6 {
+			reg = <6>;
+			label = "cpu";
+			ethernet = <&gmac0>;
+			phy-mode = "2500base-x";
+
+			fixed-link {
+				speed = <2500>;
+				full-duplex;
+				pause;
+			};
+		};
+	};
+};
+
+&wifi {
+	status = "okay";
+	nvmem-cells = <&eeprom_factory_0>;
+	nvmem-cell-names = "eeprom";
+};
diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
index f87cc0646e..7402bfc71b 100644
--- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
+++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
@@ -81,6 +81,7 @@ case "$board" in
 		;;
 	cudy,ap3000outdoor-v1|\
 	cudy,m3000-v1|\
+	cudy,wr3000s-v1|\
 	cudy,wr3000-v1)
 		addr=$(mtd_get_mac_binary bdinfo 0xde00)
 		# Originally, phy0 is phy1 mac with LA bit set. However, this would conflict
diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index 072cae0d1f..f366a9b920 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -667,6 +667,23 @@ define Device/cudy_wr3000-v1
 endef
 TARGET_DEVICES += cudy_wr3000-v1
 
+define Device/cudy_wr3000s-v1
+  DEVICE_VENDOR := Cudy
+  DEVICE_MODEL := WR3000S
+  DEVICE_VARIANT := v1
+  DEVICE_DTS := mt7981b-cudy-wr3000s-v1
+  DEVICE_DTS_DIR := ../dts
+  SUPPORTED_DEVICES += R59
+  UBINIZE_OPTS := -E 5
+  BLOCKSIZE := 128k
+  PAGESIZE := 2048
+  IMAGE_SIZE := 65536k
+  KERNEL_IN_UBI := 1
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+  DEVICE_PACKAGES := kmod-mt7915e kmod-mt7981-firmware mt7981-wo-firmware
+endef
+TARGET_DEVICES += cudy_wr3000s-v1
+
 define Device/dlink_aquila-pro-ai-m30-a1
   DEVICE_VENDOR := D-Link
   DEVICE_MODEL := AQUILA PRO AI M30



From lede-commits at lists.infradead.org  Sat Nov 23 14:21:15 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 17:21:15 -0500
Subject: [openwrt/openwrt]  kernel: bump 5.15 to 5.15.172
In-Reply-To: <173240047571.3237489.2337052320530301618@git-01.infra.openwrt.org>
References: <173240047571.3237489.2337052320530301618@git-01.infra.openwrt.org>
Message-ID: <mailman.4719.1732400485.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/265d9112b3bf8ba69b5383205b1e79d12ee1aeb2

commit 265d9112b3bf8ba69b5383205b1e79d12ee1aeb2
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sun Nov 17 20:09:22 2024 +0100

    kernel: bump 5.15 to 5.15.172
    
    No manual changes needed.
    
    Link: https://github.com/openwrt/openwrt/pull/16999
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 include/kernel-5.15                                |  4 +-
 ...add-support-for-dynamically-allocated-arr.patch |  2 +-
 ...dd-device-quirks-for-A4Tech-FHD-1080p-web.patch |  2 +-
 ...mm-multi-gen-LRU-support-page-table-walks.patch |  6 +-
 ...t-stmicro-stmmac-move-queue-reset-to-dedi.patch | 10 +--
 ...t-stmicro-stmmac-first-disable-all-queues.patch |  4 +-
 ...t-stmicro-stmmac-move-dma-conf-to-dedicat.patch | 94 +++++++++++-----------
 ...t-stmicro-stmmac-generate-stmmac-dma-conf.patch | 24 +++---
 ...t-stmicro-stmmac-permit-MTU-change-with-i.patch |  4 +-
 .../780-usb-net-MeigLink_modem_support.patch       |  4 +-
 ...-net-stmmac-Use-hrtimer-for-TX-coalescing.patch | 12 +--
 11 files changed, 83 insertions(+), 83 deletions(-)

diff --git a/include/kernel-5.15 b/include/kernel-5.15
index c4127a0fed..d15daa2575 100644
--- a/include/kernel-5.15
+++ b/include/kernel-5.15
@@ -1,2 +1,2 @@
-LINUX_VERSION-5.15 = .171
-LINUX_KERNEL_HASH-5.15.171 = 2953e064d8123c4c22c4fd48011378d73c8b99a3bf3d989e33f4f5c8f82f2a3b
+LINUX_VERSION-5.15 = .172
+LINUX_KERNEL_HASH-5.15.172 = efa2245809c1b0c8d028b67b800fdd44c9bba7800b154ee492c2ba18ed33844d
diff --git a/target/linux/bcm27xx/patches-5.15/950-0465-v4l2-ctrls-add-support-for-dynamically-allocated-arr.patch b/target/linux/bcm27xx/patches-5.15/950-0465-v4l2-ctrls-add-support-for-dynamically-allocated-arr.patch
index 03074222fe..ce3ba65ee2 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0465-v4l2-ctrls-add-support-for-dynamically-allocated-arr.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0465-v4l2-ctrls-add-support-for-dynamically-allocated-arr.patch
@@ -191,7 +191,7 @@ Signed-off-by: Hans Verkuil <hverkuil-cisco at xs4all.nl>
  /* Validate controls. */
  static int validate_ctrls(struct v4l2_ext_controls *cs,
  			  struct v4l2_ctrl_helper *helpers,
-@@ -872,6 +922,9 @@ int __v4l2_ctrl_s_ctrl_compound(struct v
+@@ -877,6 +927,9 @@ int __v4l2_ctrl_s_ctrl_compound(struct v
  	/* It's a driver bug if this happens. */
  	if (WARN_ON(ctrl->type != type))
  		return -EINVAL;
diff --git a/target/linux/bcm27xx/patches-5.15/950-0470-sound-usb-add-device-quirks-for-A4Tech-FHD-1080p-web.patch b/target/linux/bcm27xx/patches-5.15/950-0470-sound-usb-add-device-quirks-for-A4Tech-FHD-1080p-web.patch
index 95eedc7c7a..bad2672aee 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0470-sound-usb-add-device-quirks-for-A4Tech-FHD-1080p-web.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0470-sound-usb-add-device-quirks-for-A4Tech-FHD-1080p-web.patch
@@ -16,7 +16,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
 
 --- a/sound/usb/quirks.c
 +++ b/sound/usb/quirks.c
-@@ -1808,6 +1808,8 @@ static const struct usb_audio_quirk_flag
+@@ -1810,6 +1810,8 @@ static const struct usb_audio_quirk_flag
  		   QUIRK_FLAG_IGNORE_CTL_ERROR),
  	DEVICE_FLG(0x0951, 0x16ad, /* Kingston HyperX */
  		   QUIRK_FLAG_CTL_MSG_DELAY_1M),
diff --git a/target/linux/generic/backport-5.15/020-v6.1-08-mm-multi-gen-LRU-support-page-table-walks.patch b/target/linux/generic/backport-5.15/020-v6.1-08-mm-multi-gen-LRU-support-page-table-walks.patch
index 31ed45b5ce..3cbfc49ce5 100644
--- a/target/linux/generic/backport-5.15/020-v6.1-08-mm-multi-gen-LRU-support-page-table-walks.patch
+++ b/target/linux/generic/backport-5.15/020-v6.1-08-mm-multi-gen-LRU-support-page-table-walks.patch
@@ -382,7 +382,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
  }
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
-@@ -1091,6 +1091,7 @@ static struct mm_struct *mm_init(struct
+@@ -1092,6 +1092,7 @@ static struct mm_struct *mm_init(struct
  		goto fail_nocontext;
  
  	mm->user_ns = get_user_ns(user_ns);
@@ -390,7 +390,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
  	return mm;
  
  fail_nocontext:
-@@ -1133,6 +1134,7 @@ static inline void __mmput(struct mm_str
+@@ -1134,6 +1135,7 @@ static inline void __mmput(struct mm_str
  	}
  	if (mm->binfmt)
  		module_put(mm->binfmt->module);
@@ -398,7 +398,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
  	mmdrop(mm);
  }
  
-@@ -2622,6 +2624,13 @@ pid_t kernel_clone(struct kernel_clone_a
+@@ -2624,6 +2626,13 @@ pid_t kernel_clone(struct kernel_clone_a
  		get_task_struct(p);
  	}
  
diff --git a/target/linux/generic/backport-5.15/775-v6.0-01-net-ethernet-stmicro-stmmac-move-queue-reset-to-dedi.patch b/target/linux/generic/backport-5.15/775-v6.0-01-net-ethernet-stmicro-stmmac-move-queue-reset-to-dedi.patch
index 25c1382695..c64354b107 100644
--- a/target/linux/generic/backport-5.15/775-v6.0-01-net-ethernet-stmicro-stmmac-move-queue-reset-to-dedi.patch
+++ b/target/linux/generic/backport-5.15/775-v6.0-01-net-ethernet-stmicro-stmmac-move-queue-reset-to-dedi.patch
@@ -62,7 +62,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
  			    tx_q->dma_tx_phy, chan);
  	stmmac_start_tx_dma(priv, chan);
-@@ -3785,6 +3776,8 @@ static int stmmac_open(struct net_device
+@@ -3786,6 +3777,8 @@ static int stmmac_open(struct net_device
  		}
  	}
  
@@ -71,7 +71,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	ret = stmmac_hw_setup(dev, true);
  	if (ret < 0) {
  		netdev_err(priv->dev, "%s: Hw setup failed\n", __func__);
-@@ -6411,6 +6404,7 @@ void stmmac_enable_rx_queue(struct stmma
+@@ -6412,6 +6405,7 @@ void stmmac_enable_rx_queue(struct stmma
  		return;
  	}
  
@@ -79,7 +79,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	stmmac_clear_rx_descriptors(priv, queue);
  
  	stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
-@@ -6472,6 +6466,7 @@ void stmmac_enable_tx_queue(struct stmma
+@@ -6473,6 +6467,7 @@ void stmmac_enable_tx_queue(struct stmma
  		return;
  	}
  
@@ -87,7 +87,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	stmmac_clear_tx_descriptors(priv, queue);
  
  	stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
-@@ -7399,6 +7394,25 @@ int stmmac_suspend(struct device *dev)
+@@ -7400,6 +7395,25 @@ int stmmac_suspend(struct device *dev)
  }
  EXPORT_SYMBOL_GPL(stmmac_suspend);
  
@@ -113,7 +113,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  /**
   * stmmac_reset_queues_param - reset queue parameters
   * @priv: device pointer
-@@ -7409,22 +7423,11 @@ static void stmmac_reset_queues_param(st
+@@ -7410,22 +7424,11 @@ static void stmmac_reset_queues_param(st
  	u32 tx_cnt = priv->plat->tx_queues_to_use;
  	u32 queue;
  
diff --git a/target/linux/generic/backport-5.15/775-v6.0-02-net-ethernet-stmicro-stmmac-first-disable-all-queues.patch b/target/linux/generic/backport-5.15/775-v6.0-02-net-ethernet-stmicro-stmmac-first-disable-all-queues.patch
index 2753b429de..b6e5ee5394 100644
--- a/target/linux/generic/backport-5.15/775-v6.0-02-net-ethernet-stmicro-stmmac-first-disable-all-queues.patch
+++ b/target/linux/generic/backport-5.15/775-v6.0-02-net-ethernet-stmicro-stmmac-first-disable-all-queues.patch
@@ -17,7 +17,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
 +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-@@ -3839,8 +3839,6 @@ static int stmmac_release(struct net_dev
+@@ -3840,8 +3840,6 @@ static int stmmac_release(struct net_dev
  	struct stmmac_priv *priv = netdev_priv(dev);
  	u32 chan;
  
@@ -26,7 +26,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	if (device_may_wakeup(priv->device))
  		phylink_speed_down(priv->phylink, false);
  	/* Stop and disconnect the PHY */
-@@ -3852,6 +3850,8 @@ static int stmmac_release(struct net_dev
+@@ -3853,6 +3851,8 @@ static int stmmac_release(struct net_dev
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
  		hrtimer_cancel(&priv->tx_queue[chan].txtimer);
  
diff --git a/target/linux/generic/backport-5.15/775-v6.0-03-net-ethernet-stmicro-stmmac-move-dma-conf-to-dedicat.patch b/target/linux/generic/backport-5.15/775-v6.0-03-net-ethernet-stmicro-stmmac-move-dma-conf-to-dedicat.patch
index e41d43f1f3..958815e052 100644
--- a/target/linux/generic/backport-5.15/775-v6.0-03-net-ethernet-stmicro-stmmac-move-dma-conf-to-dedicat.patch
+++ b/target/linux/generic/backport-5.15/775-v6.0-03-net-ethernet-stmicro-stmmac-move-dma-conf-to-dedicat.patch
@@ -737,7 +737,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		if (unlikely(ret < 0)) {
  			netdev_err(priv->dev,
  				   "%s: alloc tx-%d  MSI %d (error: %d)\n",
-@@ -3732,21 +3732,21 @@ static int stmmac_open(struct net_device
+@@ -3733,21 +3733,21 @@ static int stmmac_open(struct net_device
  		bfsize = 0;
  
  	if (bfsize < BUF_SIZE_16KiB)
@@ -766,7 +766,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		int tbs_en = priv->plat->tx_queues_cfg[chan].tbs_en;
  
  		/* Setup per-TXQ tbs flag before TX descriptor alloc */
-@@ -3804,7 +3804,7 @@ irq_error:
+@@ -3805,7 +3805,7 @@ irq_error:
  	phylink_stop(priv->phylink);
  
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -775,7 +775,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	stmmac_hw_teardown(dev);
  init_error:
-@@ -3848,7 +3848,7 @@ static int stmmac_release(struct net_dev
+@@ -3849,7 +3849,7 @@ static int stmmac_release(struct net_dev
  	stmmac_disable_all_queues(priv);
  
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -784,7 +784,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	netif_tx_disable(dev);
  
-@@ -3912,7 +3912,7 @@ static bool stmmac_vlan_insert(struct st
+@@ -3913,7 +3913,7 @@ static bool stmmac_vlan_insert(struct st
  		return false;
  
  	stmmac_set_tx_owner(priv, p);
@@ -793,7 +793,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	return true;
  }
  
-@@ -3930,7 +3930,7 @@ static bool stmmac_vlan_insert(struct st
+@@ -3931,7 +3931,7 @@ static bool stmmac_vlan_insert(struct st
  static void stmmac_tso_allocator(struct stmmac_priv *priv, dma_addr_t des,
  				 int total_len, bool last_segment, u32 queue)
  {
@@ -802,7 +802,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	struct dma_desc *desc;
  	u32 buff_size;
  	int tmp_len;
-@@ -3941,7 +3941,7 @@ static void stmmac_tso_allocator(struct
+@@ -3942,7 +3942,7 @@ static void stmmac_tso_allocator(struct
  		dma_addr_t curr_addr;
  
  		tx_q->cur_tx = STMMAC_GET_ENTRY(tx_q->cur_tx,
@@ -811,7 +811,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		WARN_ON(tx_q->tx_skbuff[tx_q->cur_tx]);
  
  		if (tx_q->tbs & STMMAC_TBS_AVAIL)
-@@ -3969,7 +3969,7 @@ static void stmmac_tso_allocator(struct
+@@ -3970,7 +3970,7 @@ static void stmmac_tso_allocator(struct
  
  static void stmmac_flush_tx_descriptors(struct stmmac_priv *priv, int queue)
  {
@@ -820,7 +820,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	int desc_size;
  
  	if (likely(priv->extend_desc))
-@@ -4031,7 +4031,7 @@ static netdev_tx_t stmmac_tso_xmit(struc
+@@ -4032,7 +4032,7 @@ static netdev_tx_t stmmac_tso_xmit(struc
  	dma_addr_t des;
  	int i;
  
@@ -829,7 +829,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	first_tx = tx_q->cur_tx;
  
  	/* Compute header lengths */
-@@ -4071,7 +4071,7 @@ static netdev_tx_t stmmac_tso_xmit(struc
+@@ -4072,7 +4072,7 @@ static netdev_tx_t stmmac_tso_xmit(struc
  		stmmac_set_mss(priv, mss_desc, mss);
  		tx_q->mss = mss;
  		tx_q->cur_tx = STMMAC_GET_ENTRY(tx_q->cur_tx,
@@ -838,7 +838,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		WARN_ON(tx_q->tx_skbuff[tx_q->cur_tx]);
  	}
  
-@@ -4195,7 +4195,7 @@ static netdev_tx_t stmmac_tso_xmit(struc
+@@ -4196,7 +4196,7 @@ static netdev_tx_t stmmac_tso_xmit(struc
  	 * ndo_start_xmit will fill this descriptor the next time it's
  	 * called and stmmac_tx_clean may clean up to this descriptor.
  	 */
@@ -847,7 +847,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	if (unlikely(stmmac_tx_avail(priv, queue) <= (MAX_SKB_FRAGS + 1))) {
  		netif_dbg(priv, hw, priv->dev, "%s: stop transmitted packets\n",
-@@ -4283,7 +4283,7 @@ static netdev_tx_t stmmac_xmit(struct sk
+@@ -4284,7 +4284,7 @@ static netdev_tx_t stmmac_xmit(struct sk
  	int entry, first_tx;
  	dma_addr_t des;
  
@@ -856,7 +856,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	first_tx = tx_q->cur_tx;
  
  	if (priv->tx_path_in_lpi_mode && priv->eee_sw_timer_en)
-@@ -4346,7 +4346,7 @@ static netdev_tx_t stmmac_xmit(struct sk
+@@ -4347,7 +4347,7 @@ static netdev_tx_t stmmac_xmit(struct sk
  		int len = skb_frag_size(frag);
  		bool last_segment = (i == (nfrags - 1));
  
@@ -865,7 +865,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		WARN_ON(tx_q->tx_skbuff[entry]);
  
  		if (likely(priv->extend_desc))
-@@ -4417,7 +4417,7 @@ static netdev_tx_t stmmac_xmit(struct sk
+@@ -4418,7 +4418,7 @@ static netdev_tx_t stmmac_xmit(struct sk
  	 * ndo_start_xmit will fill this descriptor the next time it's
  	 * called and stmmac_tx_clean may clean up to this descriptor.
  	 */
@@ -874,7 +874,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	tx_q->cur_tx = entry;
  
  	if (netif_msg_pktdata(priv)) {
-@@ -4529,7 +4529,7 @@ static void stmmac_rx_vlan(struct net_de
+@@ -4530,7 +4530,7 @@ static void stmmac_rx_vlan(struct net_de
   */
  static inline void stmmac_rx_refill(struct stmmac_priv *priv, u32 queue)
  {
@@ -883,7 +883,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	int dirty = stmmac_rx_dirty(priv, queue);
  	unsigned int entry = rx_q->dirty_rx;
  
-@@ -4579,7 +4579,7 @@ static inline void stmmac_rx_refill(stru
+@@ -4580,7 +4580,7 @@ static inline void stmmac_rx_refill(stru
  		dma_wmb();
  		stmmac_set_rx_owner(priv, p, use_rx_wd);
  
@@ -892,7 +892,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	}
  	rx_q->dirty_rx = entry;
  	rx_q->rx_tail_addr = rx_q->dma_rx_phy +
-@@ -4607,12 +4607,12 @@ static unsigned int stmmac_rx_buf1_len(s
+@@ -4608,12 +4608,12 @@ static unsigned int stmmac_rx_buf1_len(s
  
  	/* First descriptor, not last descriptor and not split header */
  	if (status & rx_not_ls)
@@ -907,7 +907,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  }
  
  static unsigned int stmmac_rx_buf2_len(struct stmmac_priv *priv,
-@@ -4628,7 +4628,7 @@ static unsigned int stmmac_rx_buf2_len(s
+@@ -4629,7 +4629,7 @@ static unsigned int stmmac_rx_buf2_len(s
  
  	/* Not last descriptor */
  	if (status & rx_not_ls)
@@ -916,7 +916,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	plen = stmmac_get_rx_frame_len(priv, p, coe);
  
-@@ -4639,7 +4639,7 @@ static unsigned int stmmac_rx_buf2_len(s
+@@ -4640,7 +4640,7 @@ static unsigned int stmmac_rx_buf2_len(s
  static int stmmac_xdp_xmit_xdpf(struct stmmac_priv *priv, int queue,
  				struct xdp_frame *xdpf, bool dma_map)
  {
@@ -925,7 +925,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	unsigned int entry = tx_q->cur_tx;
  	struct dma_desc *tx_desc;
  	dma_addr_t dma_addr;
-@@ -4702,7 +4702,7 @@ static int stmmac_xdp_xmit_xdpf(struct s
+@@ -4703,7 +4703,7 @@ static int stmmac_xdp_xmit_xdpf(struct s
  
  	stmmac_enable_dma_transmission(priv, priv->ioaddr);
  
@@ -934,7 +934,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	tx_q->cur_tx = entry;
  
  	return STMMAC_XDP_TX;
-@@ -4876,7 +4876,7 @@ static void stmmac_dispatch_skb_zc(struc
+@@ -4877,7 +4877,7 @@ static void stmmac_dispatch_skb_zc(struc
  
  static bool stmmac_rx_refill_zc(struct stmmac_priv *priv, u32 queue, u32 budget)
  {
@@ -943,7 +943,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	unsigned int entry = rx_q->dirty_rx;
  	struct dma_desc *rx_desc = NULL;
  	bool ret = true;
-@@ -4919,7 +4919,7 @@ static bool stmmac_rx_refill_zc(struct s
+@@ -4920,7 +4920,7 @@ static bool stmmac_rx_refill_zc(struct s
  		dma_wmb();
  		stmmac_set_rx_owner(priv, rx_desc, use_rx_wd);
  
@@ -952,7 +952,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	}
  
  	if (rx_desc) {
-@@ -4934,7 +4934,7 @@ static bool stmmac_rx_refill_zc(struct s
+@@ -4935,7 +4935,7 @@ static bool stmmac_rx_refill_zc(struct s
  
  static int stmmac_rx_zc(struct stmmac_priv *priv, int limit, u32 queue)
  {
@@ -961,7 +961,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	unsigned int count = 0, error = 0, len = 0;
  	int dirty = stmmac_rx_dirty(priv, queue);
  	unsigned int next_entry = rx_q->cur_rx;
-@@ -4956,7 +4956,7 @@ static int stmmac_rx_zc(struct stmmac_pr
+@@ -4957,7 +4957,7 @@ static int stmmac_rx_zc(struct stmmac_pr
  			desc_size = sizeof(struct dma_desc);
  		}
  
@@ -970,7 +970,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  				    rx_q->dma_rx_phy, desc_size);
  	}
  	while (count < limit) {
-@@ -5003,7 +5003,7 @@ read_again:
+@@ -5004,7 +5004,7 @@ read_again:
  
  		/* Prefetch the next RX descriptor */
  		rx_q->cur_rx = STMMAC_GET_ENTRY(rx_q->cur_rx,
@@ -979,7 +979,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		next_entry = rx_q->cur_rx;
  
  		if (priv->extend_desc)
-@@ -5116,7 +5116,7 @@ read_again:
+@@ -5117,7 +5117,7 @@ read_again:
   */
  static int stmmac_rx(struct stmmac_priv *priv, int limit, u32 queue)
  {
@@ -988,7 +988,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	struct stmmac_channel *ch = &priv->channel[queue];
  	unsigned int count = 0, error = 0, len = 0;
  	int status = 0, coe = priv->hw->rx_csum;
-@@ -5129,7 +5129,7 @@ static int stmmac_rx(struct stmmac_priv
+@@ -5130,7 +5130,7 @@ static int stmmac_rx(struct stmmac_priv
  	int buf_sz;
  
  	dma_dir = page_pool_get_dma_dir(rx_q->page_pool);
@@ -997,7 +997,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	if (netif_msg_rx_status(priv)) {
  		void *rx_head;
-@@ -5143,7 +5143,7 @@ static int stmmac_rx(struct stmmac_priv
+@@ -5144,7 +5144,7 @@ static int stmmac_rx(struct stmmac_priv
  			desc_size = sizeof(struct dma_desc);
  		}
  
@@ -1006,7 +1006,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  				    rx_q->dma_rx_phy, desc_size);
  	}
  	while (count < limit) {
-@@ -5187,7 +5187,7 @@ read_again:
+@@ -5188,7 +5188,7 @@ read_again:
  			break;
  
  		rx_q->cur_rx = STMMAC_GET_ENTRY(rx_q->cur_rx,
@@ -1015,7 +1015,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		next_entry = rx_q->cur_rx;
  
  		if (priv->extend_desc)
-@@ -5314,7 +5314,7 @@ read_again:
+@@ -5315,7 +5315,7 @@ read_again:
  						buf1_len, dma_dir);
  			skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags,
  					buf->page, buf->page_offset, buf1_len,
@@ -1024,7 +1024,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  			/* Data payload appended into SKB */
  			page_pool_release_page(rx_q->page_pool, buf->page);
-@@ -5326,7 +5326,7 @@ read_again:
+@@ -5327,7 +5327,7 @@ read_again:
  						buf2_len, dma_dir);
  			skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags,
  					buf->sec_page, 0, buf2_len,
@@ -1033,7 +1033,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  			/* Data payload appended into SKB */
  			page_pool_release_page(rx_q->page_pool, buf->sec_page);
-@@ -5759,11 +5759,13 @@ static irqreturn_t stmmac_safety_interru
+@@ -5760,11 +5760,13 @@ static irqreturn_t stmmac_safety_interru
  static irqreturn_t stmmac_msi_intr_tx(int irq, void *data)
  {
  	struct stmmac_tx_queue *tx_q = (struct stmmac_tx_queue *)data;
@@ -1048,7 +1048,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	/* Check if adapter is up */
  	if (test_bit(STMMAC_DOWN, &priv->state))
-@@ -5798,10 +5800,12 @@ static irqreturn_t stmmac_msi_intr_tx(in
+@@ -5799,10 +5801,12 @@ static irqreturn_t stmmac_msi_intr_tx(in
  static irqreturn_t stmmac_msi_intr_rx(int irq, void *data)
  {
  	struct stmmac_rx_queue *rx_q = (struct stmmac_rx_queue *)data;
@@ -1062,7 +1062,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	/* Check if adapter is up */
  	if (test_bit(STMMAC_DOWN, &priv->state))
-@@ -5827,10 +5831,10 @@ static void stmmac_poll_controller(struc
+@@ -5828,10 +5832,10 @@ static void stmmac_poll_controller(struc
  
  	if (priv->plat->multi_msi_en) {
  		for (i = 0; i < priv->plat->rx_queues_to_use; i++)
@@ -1075,7 +1075,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	} else {
  		disable_irq(dev->irq);
  		stmmac_interrupt(dev->irq, dev);
-@@ -6011,34 +6015,34 @@ static int stmmac_rings_status_show(stru
+@@ -6012,34 +6016,34 @@ static int stmmac_rings_status_show(stru
  		return 0;
  
  	for (queue = 0; queue < rx_count; queue++) {
@@ -1116,7 +1116,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		}
  	}
  
-@@ -6385,7 +6389,7 @@ void stmmac_disable_rx_queue(struct stmm
+@@ -6386,7 +6390,7 @@ void stmmac_disable_rx_queue(struct stmm
  
  void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue)
  {
@@ -1125,7 +1125,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	struct stmmac_channel *ch = &priv->channel[queue];
  	unsigned long flags;
  	u32 buf_size;
-@@ -6422,7 +6426,7 @@ void stmmac_enable_rx_queue(struct stmma
+@@ -6423,7 +6427,7 @@ void stmmac_enable_rx_queue(struct stmma
  				      rx_q->queue_index);
  	} else {
  		stmmac_set_dma_bfsize(priv, priv->ioaddr,
@@ -1134,7 +1134,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  				      rx_q->queue_index);
  	}
  
-@@ -6448,7 +6452,7 @@ void stmmac_disable_tx_queue(struct stmm
+@@ -6449,7 +6453,7 @@ void stmmac_disable_tx_queue(struct stmm
  
  void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue)
  {
@@ -1143,7 +1143,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	struct stmmac_channel *ch = &priv->channel[queue];
  	unsigned long flags;
  	int ret;
-@@ -6498,7 +6502,7 @@ void stmmac_xdp_release(struct net_devic
+@@ -6499,7 +6503,7 @@ void stmmac_xdp_release(struct net_devic
  	stmmac_disable_all_queues(priv);
  
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -1152,7 +1152,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	/* Free the IRQ lines */
  	stmmac_free_irq(dev, REQ_IRQ_ERR_ALL, 0);
-@@ -6557,7 +6561,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6558,7 +6562,7 @@ int stmmac_xdp_open(struct net_device *d
  
  	/* DMA RX Channel Configuration */
  	for (chan = 0; chan < rx_cnt; chan++) {
@@ -1161,7 +1161,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  		stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
  				    rx_q->dma_rx_phy, chan);
-@@ -6575,7 +6579,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6576,7 +6580,7 @@ int stmmac_xdp_open(struct net_device *d
  					      rx_q->queue_index);
  		} else {
  			stmmac_set_dma_bfsize(priv, priv->ioaddr,
@@ -1170,7 +1170,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  					      rx_q->queue_index);
  		}
  
-@@ -6584,7 +6588,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6585,7 +6589,7 @@ int stmmac_xdp_open(struct net_device *d
  
  	/* DMA TX Channel Configuration */
  	for (chan = 0; chan < tx_cnt; chan++) {
@@ -1179,7 +1179,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  		stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
  				    tx_q->dma_tx_phy, chan);
-@@ -6617,7 +6621,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6618,7 +6622,7 @@ int stmmac_xdp_open(struct net_device *d
  
  irq_error:
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -1188,7 +1188,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	stmmac_hw_teardown(dev);
  init_error:
-@@ -6644,8 +6648,8 @@ int stmmac_xsk_wakeup(struct net_device
+@@ -6645,8 +6649,8 @@ int stmmac_xsk_wakeup(struct net_device
  	    queue >= priv->plat->tx_queues_to_use)
  		return -EINVAL;
  
@@ -1199,7 +1199,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	ch = &priv->channel[queue];
  
  	if (!rx_q->xsk_pool && !tx_q->xsk_pool)
-@@ -6905,8 +6909,8 @@ int stmmac_reinit_ringparam(struct net_d
+@@ -6906,8 +6910,8 @@ int stmmac_reinit_ringparam(struct net_d
  	if (netif_running(dev))
  		stmmac_release(dev);
  
@@ -1210,7 +1210,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	if (netif_running(dev))
  		ret = stmmac_open(dev);
-@@ -7344,7 +7348,7 @@ int stmmac_suspend(struct device *dev)
+@@ -7345,7 +7349,7 @@ int stmmac_suspend(struct device *dev)
  	stmmac_disable_all_queues(priv);
  
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -1219,7 +1219,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	if (priv->eee_enabled) {
  		priv->tx_path_in_lpi_mode = false;
-@@ -7396,7 +7400,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend);
+@@ -7397,7 +7401,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend);
  
  static void stmmac_reset_rx_queue(struct stmmac_priv *priv, u32 queue)
  {
@@ -1228,7 +1228,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	rx_q->cur_rx = 0;
  	rx_q->dirty_rx = 0;
-@@ -7404,7 +7408,7 @@ static void stmmac_reset_rx_queue(struct
+@@ -7405,7 +7409,7 @@ static void stmmac_reset_rx_queue(struct
  
  static void stmmac_reset_tx_queue(struct stmmac_priv *priv, u32 queue)
  {
diff --git a/target/linux/generic/backport-5.15/775-v6.0-04-net-ethernet-stmicro-stmmac-generate-stmmac-dma-conf.patch b/target/linux/generic/backport-5.15/775-v6.0-04-net-ethernet-stmicro-stmmac-generate-stmmac-dma-conf.patch
index 986cb5bbe6..ba6c56a056 100644
--- a/target/linux/generic/backport-5.15/775-v6.0-04-net-ethernet-stmicro-stmmac-generate-stmmac-dma-conf.patch
+++ b/target/linux/generic/backport-5.15/775-v6.0-04-net-ethernet-stmicro-stmmac-generate-stmmac-dma-conf.patch
@@ -860,7 +860,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	stmmac_reset_tx_queue(priv, chan);
  	stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
  			    tx_q->dma_tx_phy, chan);
-@@ -3688,19 +3751,93 @@ static int stmmac_request_irq(struct net
+@@ -3689,19 +3752,93 @@ static int stmmac_request_irq(struct net
  }
  
  /**
@@ -957,7 +957,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	u32 chan;
  	int ret;
  
-@@ -3727,45 +3864,10 @@ static int stmmac_open(struct net_device
+@@ -3728,45 +3865,10 @@ static int stmmac_open(struct net_device
  	memset(&priv->xstats, 0, sizeof(struct stmmac_extra_stats));
  	priv->xstats.threshold = tc;
  
@@ -1005,7 +1005,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	if (priv->plat->serdes_powerup) {
  		ret = priv->plat->serdes_powerup(dev, priv->plat->bsp_priv);
-@@ -3808,14 +3910,28 @@ irq_error:
+@@ -3809,14 +3911,28 @@ irq_error:
  
  	stmmac_hw_teardown(dev);
  init_error:
@@ -1036,7 +1036,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  static void stmmac_fpe_stop_wq(struct stmmac_priv *priv)
  {
  	set_bit(__FPE_REMOVING, &priv->fpe_task_state);
-@@ -3864,7 +3980,7 @@ static int stmmac_release(struct net_dev
+@@ -3865,7 +3981,7 @@ static int stmmac_release(struct net_dev
  	stmmac_stop_all_dma(priv);
  
  	/* Release and free the Rx/Tx resources */
@@ -1045,7 +1045,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	/* Disable the MAC Rx/Tx */
  	stmmac_mac_set(priv, priv->ioaddr, false);
-@@ -6384,7 +6500,7 @@ void stmmac_disable_rx_queue(struct stmm
+@@ -6385,7 +6501,7 @@ void stmmac_disable_rx_queue(struct stmm
  	spin_unlock_irqrestore(&ch->lock, flags);
  
  	stmmac_stop_rx_dma(priv, queue);
@@ -1054,7 +1054,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  }
  
  void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue)
-@@ -6395,21 +6511,21 @@ void stmmac_enable_rx_queue(struct stmma
+@@ -6396,21 +6512,21 @@ void stmmac_enable_rx_queue(struct stmma
  	u32 buf_size;
  	int ret;
  
@@ -1080,7 +1080,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
  			    rx_q->dma_rx_phy, rx_q->queue_index);
-@@ -6447,7 +6563,7 @@ void stmmac_disable_tx_queue(struct stmm
+@@ -6448,7 +6564,7 @@ void stmmac_disable_tx_queue(struct stmm
  	spin_unlock_irqrestore(&ch->lock, flags);
  
  	stmmac_stop_tx_dma(priv, queue);
@@ -1089,7 +1089,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  }
  
  void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue)
-@@ -6457,21 +6573,21 @@ void stmmac_enable_tx_queue(struct stmma
+@@ -6458,21 +6574,21 @@ void stmmac_enable_tx_queue(struct stmma
  	unsigned long flags;
  	int ret;
  
@@ -1115,7 +1115,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
  			    tx_q->dma_tx_phy, tx_q->queue_index);
-@@ -6511,7 +6627,7 @@ void stmmac_xdp_release(struct net_devic
+@@ -6512,7 +6628,7 @@ void stmmac_xdp_release(struct net_devic
  	stmmac_stop_all_dma(priv);
  
  	/* Release and free the Rx/Tx resources */
@@ -1124,7 +1124,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	/* Disable the MAC Rx/Tx */
  	stmmac_mac_set(priv, priv->ioaddr, false);
-@@ -6536,14 +6652,14 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6537,14 +6653,14 @@ int stmmac_xdp_open(struct net_device *d
  	u32 chan;
  	int ret;
  
@@ -1141,7 +1141,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	if (ret < 0) {
  		netdev_err(dev, "%s: DMA descriptors initialization failed\n",
  			   __func__);
-@@ -6625,7 +6741,7 @@ irq_error:
+@@ -6626,7 +6742,7 @@ irq_error:
  
  	stmmac_hw_teardown(dev);
  init_error:
@@ -1150,7 +1150,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  dma_desc_error:
  	return ret;
  }
-@@ -7491,7 +7607,7 @@ int stmmac_resume(struct device *dev)
+@@ -7492,7 +7608,7 @@ int stmmac_resume(struct device *dev)
  	stmmac_reset_queues_param(priv);
  
  	stmmac_free_tx_skbufs(priv);
diff --git a/target/linux/generic/backport-5.15/775-v6.0-05-net-ethernet-stmicro-stmmac-permit-MTU-change-with-i.patch b/target/linux/generic/backport-5.15/775-v6.0-05-net-ethernet-stmicro-stmmac-permit-MTU-change-with-i.patch
index 8fccc71659..e1d46f03a9 100644
--- a/target/linux/generic/backport-5.15/775-v6.0-05-net-ethernet-stmicro-stmmac-permit-MTU-change-with-i.patch
+++ b/target/linux/generic/backport-5.15/775-v6.0-05-net-ethernet-stmicro-stmmac-permit-MTU-change-with-i.patch
@@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
 +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-@@ -5626,18 +5626,15 @@ static int stmmac_change_mtu(struct net_
+@@ -5627,18 +5627,15 @@ static int stmmac_change_mtu(struct net_
  {
  	struct stmmac_priv *priv = netdev_priv(dev);
  	int txfifosz = priv->plat->tx_fifo_size;
@@ -40,7 +40,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	if (stmmac_xdp_is_enabled(priv) && new_mtu > ETH_DATA_LEN) {
  		netdev_dbg(priv->dev, "Jumbo frames not supported for XDP\n");
  		return -EINVAL;
-@@ -5649,8 +5646,29 @@ static int stmmac_change_mtu(struct net_
+@@ -5650,8 +5647,29 @@ static int stmmac_change_mtu(struct net_
  	if ((txfifosz < new_mtu) || (new_mtu > BUF_SIZE_16KiB))
  		return -EINVAL;
  
diff --git a/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch b/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch
index 7a439ce221..6e556c67f9 100644
--- a/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch
+++ b/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch
@@ -43,7 +43,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
  
  #define QUECTEL_VENDOR_ID			0x2c7c
  /* These Quectel products use Quectel's vendor ID */
-@@ -1159,6 +1164,11 @@ static const struct usb_device_id option
+@@ -1160,6 +1165,11 @@ static const struct usb_device_id option
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
  	  .driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
@@ -55,7 +55,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
  	/* Quectel products using Qualcomm vendor ID */
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
-@@ -1200,6 +1210,11 @@ static const struct usb_device_id option
+@@ -1201,6 +1211,11 @@ static const struct usb_device_id option
  	  .driver_info = ZLP },
  	{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
  	  .driver_info = RSVD(4) },
diff --git a/target/linux/ipq806x/patches-5.15/700-Revert-net-stmmac-Use-hrtimer-for-TX-coalescing.patch b/target/linux/ipq806x/patches-5.15/700-Revert-net-stmmac-Use-hrtimer-for-TX-coalescing.patch
index ad2bafef80..1ca611b740 100644
--- a/target/linux/ipq806x/patches-5.15/700-Revert-net-stmmac-Use-hrtimer-for-TX-coalescing.patch
+++ b/target/linux/ipq806x/patches-5.15/700-Revert-net-stmmac-Use-hrtimer-for-TX-coalescing.patch
@@ -98,7 +98,7 @@ Signed-off-by: Oskari Lemmela <oskari at lemmela.net>
  	}
  
  	for (chan = 0; chan < rx_channel_count; chan++)
-@@ -3906,7 +3899,7 @@ irq_error:
+@@ -3907,7 +3900,7 @@ irq_error:
  	phylink_stop(priv->phylink);
  
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -107,7 +107,7 @@ Signed-off-by: Oskari Lemmela <oskari at lemmela.net>
  
  	stmmac_hw_teardown(dev);
  init_error:
-@@ -3964,7 +3957,7 @@ static int stmmac_release(struct net_dev
+@@ -3965,7 +3958,7 @@ static int stmmac_release(struct net_dev
  	stmmac_disable_all_queues(priv);
  
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -116,7 +116,7 @@ Signed-off-by: Oskari Lemmela <oskari at lemmela.net>
  
  	netif_tx_disable(dev);
  
-@@ -6636,7 +6629,7 @@ void stmmac_xdp_release(struct net_devic
+@@ -6637,7 +6630,7 @@ void stmmac_xdp_release(struct net_devic
  	stmmac_disable_all_queues(priv);
  
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -125,7 +125,7 @@ Signed-off-by: Oskari Lemmela <oskari at lemmela.net>
  
  	/* Free the IRQ lines */
  	stmmac_free_irq(dev, REQ_IRQ_ERR_ALL, 0);
-@@ -6731,8 +6724,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6732,8 +6725,7 @@ int stmmac_xdp_open(struct net_device *d
  		stmmac_set_tx_tail_ptr(priv, priv->ioaddr,
  				       tx_q->tx_tail_addr, chan);
  
@@ -135,7 +135,7 @@ Signed-off-by: Oskari Lemmela <oskari at lemmela.net>
  	}
  
  	/* Enable the MAC Rx/Tx */
-@@ -6755,7 +6747,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6756,7 +6748,7 @@ int stmmac_xdp_open(struct net_device *d
  
  irq_error:
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -144,7 +144,7 @@ Signed-off-by: Oskari Lemmela <oskari at lemmela.net>
  
  	stmmac_hw_teardown(dev);
  init_error:
-@@ -7482,7 +7474,7 @@ int stmmac_suspend(struct device *dev)
+@@ -7483,7 +7475,7 @@ int stmmac_suspend(struct device *dev)
  	stmmac_disable_all_queues(priv);
  
  	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)



From lede-commits at lists.infradead.org  Sat Nov 23 14:21:16 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 17:21:16 -0500
Subject: [openwrt/openwrt]  kernel: bump 5.15 to 5.15.173
In-Reply-To: <173240047571.3237489.2337052320530301618@git-01.infra.openwrt.org>
References: <173240047571.3237489.2337052320530301618@git-01.infra.openwrt.org>
Message-ID: <mailman.4722.1732400486.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/cafbecf8536a73b627cb50cd7c339ab38941aeeb

commit cafbecf8536a73b627cb50cd7c339ab38941aeeb
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sun Nov 17 22:15:21 2024 +0100

    kernel: bump 5.15 to 5.15.173
    
    Removed because they are upstream:
       generic/backport-5.15/430-v6.3-udf-Allocate-name-buffer-in-directory-iterator-on-he.patch
       https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=5ea4b73e268bf9e1d26271943f2f7c4517253395
    
       generic/backport-5.15/431-v6.3-udf-Avoid-directory-type-conversion-failure-due-to-E.patch
       https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=8b1d55e43cee631e142d46ee94c91ccd894341e9
    
    Link: https://github.com/openwrt/openwrt/pull/16999
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 include/kernel-5.15                                |  4 +-
 ...-device-quirks-for-Freeway-Airmouse-T3-an.patch |  2 +-
 ...01-mm-x86-arm64-add-arch_has_hw_pte_young.patch |  2 +-
 .../020-v6.1-05-mm-multi-gen-LRU-groundwork.patch  |  4 +-
 .../020-v6.3-19-mm-add-vma_has_recency.patch       |  4 +-
 ...e-name-buffer-in-directory-iterator-on-he.patch | 95 ----------------------
 ...irectory-type-conversion-failure-due-to-E.patch | 40 ---------
 7 files changed, 8 insertions(+), 143 deletions(-)

diff --git a/include/kernel-5.15 b/include/kernel-5.15
index d15daa2575..2949af40be 100644
--- a/include/kernel-5.15
+++ b/include/kernel-5.15
@@ -1,2 +1,2 @@
-LINUX_VERSION-5.15 = .172
-LINUX_KERNEL_HASH-5.15.172 = efa2245809c1b0c8d028b67b800fdd44c9bba7800b154ee492c2ba18ed33844d
+LINUX_VERSION-5.15 = .173
+LINUX_KERNEL_HASH-5.15.173 = 8a4b2a47ccc9b208b2b6ed9a216ea1a5eb12852c723bec1a04de9e671a1d7da8
diff --git a/target/linux/bcm27xx/patches-5.15/950-0163-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/target/linux/bcm27xx/patches-5.15/950-0163-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch
index 57f0ecfd9e..2a7b9d518a 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0163-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0163-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch
@@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.org>
  #define USB_VENDOR_ID_BELKIN		0x050d
  #define USB_DEVICE_ID_FLIP_KVM		0x3201
  
-@@ -1337,6 +1340,9 @@
+@@ -1338,6 +1341,9 @@
  #define USB_VENDOR_ID_XAT	0x2505
  #define USB_DEVICE_ID_XAT_CSR	0x0220
  
diff --git a/target/linux/generic/backport-5.15/020-v6.1-01-mm-x86-arm64-add-arch_has_hw_pte_young.patch b/target/linux/generic/backport-5.15/020-v6.1-01-mm-x86-arm64-add-arch_has_hw_pte_young.patch
index 56612012d3..62deee0410 100644
--- a/target/linux/generic/backport-5.15/020-v6.1-01-mm-x86-arm64-add-arch_has_hw_pte_young.patch
+++ b/target/linux/generic/backport-5.15/020-v6.1-01-mm-x86-arm64-add-arch_has_hw_pte_young.patch
@@ -414,7 +414,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
  #ifndef arch_wants_old_prefaulted_pte
  static inline bool arch_wants_old_prefaulted_pte(void)
  {
-@@ -2808,7 +2796,7 @@ static inline int cow_user_page(struct p
+@@ -2819,7 +2807,7 @@ static inline int cow_user_page(struct p
  	 * On architectures with software "accessed" bits, we would
  	 * take a double page fault, so mark it accessed here.
  	 */
diff --git a/target/linux/generic/backport-5.15/020-v6.1-05-mm-multi-gen-LRU-groundwork.patch b/target/linux/generic/backport-5.15/020-v6.1-05-mm-multi-gen-LRU-groundwork.patch
index ce7ab38ed9..e950e77af6 100644
--- a/target/linux/generic/backport-5.15/020-v6.1-05-mm-multi-gen-LRU-groundwork.patch
+++ b/target/linux/generic/backport-5.15/020-v6.1-05-mm-multi-gen-LRU-groundwork.patch
@@ -612,7 +612,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
  	mem_cgroup_id_remove(memcg);
 --- a/mm/memory.c
 +++ b/mm/memory.c
-@@ -4821,6 +4821,27 @@ static inline void mm_account_fault(stru
+@@ -4832,6 +4832,27 @@ static inline void mm_account_fault(stru
  		perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, 1, regs, address);
  }
  
@@ -640,7 +640,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
  /*
   * By the time we get here, we already hold the mm semaphore
   *
-@@ -4852,11 +4873,15 @@ vm_fault_t handle_mm_fault(struct vm_are
+@@ -4863,11 +4884,15 @@ vm_fault_t handle_mm_fault(struct vm_are
  	if (flags & FAULT_FLAG_USER)
  		mem_cgroup_enter_user_fault();
  
diff --git a/target/linux/generic/backport-5.15/020-v6.3-19-mm-add-vma_has_recency.patch b/target/linux/generic/backport-5.15/020-v6.3-19-mm-add-vma_has_recency.patch
index f0a0eea4b6..cc300345c8 100644
--- a/target/linux/generic/backport-5.15/020-v6.3-19-mm-add-vma_has_recency.patch
+++ b/target/linux/generic/backport-5.15/020-v6.3-19-mm-add-vma_has_recency.patch
@@ -82,7 +82,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
  #include <linux/sched/mm.h>
  #include <linux/sched/coredump.h>
  #include <linux/sched/numa_balancing.h>
-@@ -1353,8 +1354,7 @@ again:
+@@ -1364,8 +1365,7 @@ again:
  					force_flush = 1;
  					set_page_dirty(page);
  				}
@@ -92,7 +92,7 @@ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
  					mark_page_accessed(page);
  			}
  			rss[mm_counter(page)]--;
-@@ -4824,8 +4824,8 @@ static inline void mm_account_fault(stru
+@@ -4835,8 +4835,8 @@ static inline void mm_account_fault(stru
  #ifdef CONFIG_LRU_GEN
  static void lru_gen_enter_fault(struct vm_area_struct *vma)
  {
diff --git a/target/linux/generic/backport-5.15/430-v6.3-udf-Allocate-name-buffer-in-directory-iterator-on-he.patch b/target/linux/generic/backport-5.15/430-v6.3-udf-Allocate-name-buffer-in-directory-iterator-on-he.patch
deleted file mode 100644
index 53b8d85320..0000000000
--- a/target/linux/generic/backport-5.15/430-v6.3-udf-Allocate-name-buffer-in-directory-iterator-on-he.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Jan Kara <jack at suse.cz>
-Date: Tue, 20 Dec 2022 12:38:45 +0100
-Subject: udf: Allocate name buffer in directory iterator on heap
-
-commit 0aba4860b0d0216a1a300484ff536171894d49d8 upstream.
-
-Currently we allocate name buffer in directory iterators (struct
-udf_fileident_iter) on stack. These structures are relatively large
-(some 360 bytes on 64-bit architectures). For udf_rename() which needs
-to keep three of these structures in parallel the stack usage becomes
-rather heavy - 1536 bytes in total. Allocate the name buffer in the
-iterator from heap to avoid excessive stack usage.
-
-Link: https://lore.kernel.org/all/202212200558.lK9x1KW0-lkp at intel.com
-Reported-by: kernel test robot <lkp at intel.com>
-Signed-off-by: Jan Kara <jack at suse.cz>
-[Add extra include linux/slab.h]
-Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
----
- fs/udf/directory.c | 24 ++++++++++++++++--------
- fs/udf/udfdecl.h   |  2 +-
- 2 files changed, 17 insertions(+), 9 deletions(-)
-
---- a/fs/udf/directory.c
-+++ b/fs/udf/directory.c
-@@ -19,6 +19,7 @@
- #include <linux/bio.h>
- #include <linux/crc-itu-t.h>
- #include <linux/iversion.h>
-+#include <linux/slab.h>
- 
- static int udf_verify_fi(struct udf_fileident_iter *iter)
- {
-@@ -248,9 +249,14 @@ int udf_fiiter_init(struct udf_fileident
- 	iter->elen = 0;
- 	iter->epos.bh = NULL;
- 	iter->name = NULL;
-+	iter->namebuf = kmalloc(UDF_NAME_LEN_CS0, GFP_KERNEL);
-+	if (!iter->namebuf)
-+		return -ENOMEM;
- 
--	if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB)
--		return udf_copy_fi(iter);
-+	if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) {
-+		err = udf_copy_fi(iter);
-+		goto out;
-+	}
- 
- 	if (inode_bmap(dir, iter->pos >> dir->i_blkbits, &iter->epos,
- 		       &iter->eloc, &iter->elen, &iter->loffset) !=
-@@ -260,17 +266,17 @@ int udf_fiiter_init(struct udf_fileident
- 		udf_err(dir->i_sb,
- 			"position %llu not allocated in directory (ino %lu)\n",
- 			(unsigned long long)pos, dir->i_ino);
--		return -EFSCORRUPTED;
-+		err = -EFSCORRUPTED;
-+		goto out;
- 	}
- 	err = udf_fiiter_load_bhs(iter);
- 	if (err < 0)
--		return err;
-+		goto out;
- 	err = udf_copy_fi(iter);
--	if (err < 0) {
-+out:
-+	if (err < 0)
- 		udf_fiiter_release(iter);
--		return err;
--	}
--	return 0;
-+	return err;
- }
- 
- int udf_fiiter_advance(struct udf_fileident_iter *iter)
-@@ -307,6 +313,8 @@ void udf_fiiter_release(struct udf_filei
- 	brelse(iter->bh[0]);
- 	brelse(iter->bh[1]);
- 	iter->bh[0] = iter->bh[1] = NULL;
-+	kfree(iter->namebuf);
-+	iter->namebuf = NULL;
- }
- 
- static void udf_copy_to_bufs(void *buf1, int len1, void *buf2, int len2,
---- a/fs/udf/udfdecl.h
-+++ b/fs/udf/udfdecl.h
-@@ -99,7 +99,7 @@ struct udf_fileident_iter {
- 	struct extent_position epos;	/* Position after the above extent */
- 	struct fileIdentDesc fi;	/* Copied directory entry */
- 	uint8_t *name;			/* Pointer to entry name */
--	uint8_t namebuf[UDF_NAME_LEN_CS0]; /* Storage for entry name in case
-+	uint8_t *namebuf;		/* Storage for entry name in case
- 					 * the name is split between two blocks
- 					 */
- };
diff --git a/target/linux/generic/backport-5.15/431-v6.3-udf-Avoid-directory-type-conversion-failure-due-to-E.patch b/target/linux/generic/backport-5.15/431-v6.3-udf-Avoid-directory-type-conversion-failure-due-to-E.patch
deleted file mode 100644
index fa360a7ed2..0000000000
--- a/target/linux/generic/backport-5.15/431-v6.3-udf-Avoid-directory-type-conversion-failure-due-to-E.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Jan Kara <jack at suse.cz>
-Date: Thu, 9 Feb 2023 10:33:09 +0100
-Subject: udf: Avoid directory type conversion failure due to ENOMEM
-
-commit df97f64dfa317a5485daf247b6c043a584ef95f9 upstream.
-
-When converting directory from in-ICB to normal format, the last
-iteration through the directory fixing up directory enteries can fail
-due to ENOMEM. We do not expect this iteration to fail since the
-directory is already verified to be correct and it is difficult to undo
-the conversion at this point. So just use GFP_NOFAIL to make sure the
-small allocation cannot fail.
-
-Reported-by: syzbot+111eaa994ff74f8d440f at syzkaller.appspotmail.com
-Fixes: 0aba4860b0d0 ("udf: Allocate name buffer in directory iterator on heap")
-Signed-off-by: Jan Kara <jack at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/udf/directory.c | 9 ++++++---
- 1 file changed, 6 insertions(+), 3 deletions(-)
-
---- a/fs/udf/directory.c
-+++ b/fs/udf/directory.c
-@@ -249,9 +249,12 @@ int udf_fiiter_init(struct udf_fileident
- 	iter->elen = 0;
- 	iter->epos.bh = NULL;
- 	iter->name = NULL;
--	iter->namebuf = kmalloc(UDF_NAME_LEN_CS0, GFP_KERNEL);
--	if (!iter->namebuf)
--		return -ENOMEM;
-+	/*
-+	 * When directory is verified, we don't expect directory iteration to
-+	 * fail and it can be difficult to undo without corrupting filesystem.
-+	 * So just do not allow memory allocation failures here.
-+	 */
-+	iter->namebuf = kmalloc(UDF_NAME_LEN_CS0, GFP_KERNEL | __GFP_NOFAIL);
- 
- 	if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) {
- 		err = udf_copy_fi(iter);



From lede-commits at lists.infradead.org  Sat Nov 23 14:25:06 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 17:25:06 -0500
Subject: [openwrt/openwrt]  ath79: add support for Huawei AP6010DN
In-Reply-To: <173240070606.3258146.9546039362867896630@git-01.infra.openwrt.org>
References: <173240070606.3258146.9546039362867896630@git-01.infra.openwrt.org>
Message-ID: <mailman.4723.1732400709.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/769253775c6fedc7ed9e4f2ebd01a24459502530

commit 769253775c6fedc7ed9e4f2ebd01a24459502530
Author: Marco von Rosenberg <marcovr at selfnet.de>
AuthorDate: Sun Sep 15 19:05:36 2024 +0200

    ath79: add support for Huawei AP6010DN
    
    Huawei AP6010DN is a dual-band, dual-radio 802.11a/b/g/n 2x2 MIMO
    enterprise access point with one Gigabit Ethernet port and PoE
    support.
    
    Hardware highlights:
    - CPU: AR9344 SoC at 480MHz
    - RAM: 128MB DDR2
    - Flash: 32MB SPI-NOR
    - Wi-Fi 2.4GHz: AR9344-internal radio
    - Wi-Fi 5GHz: AR9580 PCIe WLAN SoC
    - Ethernet: 10/100/1000 Mbps Ethernet through Atheros AR8035 PHY
    - PoE: yes
    - Standalone 12V/2A power input
    - Serial console externally available through RJ45 port
    - External watchdog: CAT706SVI (1.6s timeout)
    
    Serial console:
      9600n8 (9600 baud, no stop bits, no parity, 8 data bits)
    
    MAC addresses:
      Each device has 32 consecutive MAC addresses allocated by
      the vendor, which don't overlap between devices.
      This was confirmed with multiple devices with consecutive
      serial numbers.
      The MAC address range starts with the address on the label.
      To be able to distinguish between the interfaces,
      the following MAC address scheme is used:
        - eth0 = label MAC
        - radio0 (Wi-Fi 2.4GHz) = label MAC + 1
        - radio1 (Wi-Fi 5GHz) = label MAC + 2
    
    Installation:
    0. Connect some sort of RJ45-to-USB adapter to "Console" port of the AP
    
    1. Power up the AP
    
    2. At prompt "Press f or F  to stop Auto-Boot in 3 seconds",
       do what they say.
       Log in with default admin password "admin at huawei.com".
    
    3. Boot the OpenWrt initramfs from TFTP using the hidden script "run ramboot".
       Replace IP address as needed:
    
       > setenv serverip 192.168.1.10
       > setenv ipaddr 192.168.1.1
       > setenv rambootfile openwrt-ath79-generic-huawei_ap6010dn-initramfs-kernel.bin
       > saveenv
       > run ramboot
    
    4. Optional but recommended as the factory firmware cannot be downloaded publicly:
       Back up contents of "firmware" partition using the web interface or ssh:
    
       $ ssh root at 192.168.1.1 cat /dev/mtd11 > huawei_ap6010dn_fw_backup.bin
    
    5. Run sysupgrade using sysupgrade image. OpenWrt
       shall boot from flash afterwards.
    
    Return to factory firmware (using firmware upgrade package downloaded from non-public Huawei website):
    1. Start a TFTP server in the directory where
       the firmware upgrade package is located
    
    2. Boot to u-boot as described above
    
    3. Install firmware upgrade package and format the config partitions:
    
       > update system FatAP6X10XN_SOMEVERSION.bin
       > format_fs
    
    Return to factory firmware (from previously created backup):
    1. Copy over the firmware partition backup to /tmp,
       for example using scp
    
    2. Use sysupgrade with force to restore the backup:
       sysupgrade -F huawei_ap6010dn_fw_backup.bin
    
    3. Boot AP to U-Boot as described above
    
    Quirks and known issues:
    - The stock firmware has a semi dual boot concept where the primary
    kernel uses a squashfs as root partition and the secondary kernel uses
    an initramfs. This dual boot concept is circumvented on purpose to gain
    more flash space and since the stock firmware's flash layout isn't
    compatible with mtdsplit.
    - The external watchdog's timeout of 1.6s is very hard to satisfy
    during bootup. This is why the GPIO15 pin connected to the watchdog input
    is configured directly in the LZMA loader to output the AHB_CLK/2 signal
    which keeps the watchdog happy until the wdt-gpio kernel driver takes
    over. Because it would also take too long to read the whole kernel image
    from flash, the uImage header only includes the loader which then reads
    the kernel image from flash after GPIO15 is configured.
    
    Signed-off-by: Marco von Rosenberg <marcovr at selfnet.de>
    (cherry picked from commit f84a9f7dc095967e41ced96e1ea5f9b2b9f40af6)
    Link: https://github.com/openwrt/openwrt/pull/16978
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/boot/uboot-envtools/files/ath79            |   3 +-
 target/linux/ath79/dts/ar9344_huawei_ap6010dn.dts  | 243 +++++++++++++++++++++
 .../generic/base-files/etc/board.d/02_network      |   4 +-
 .../generic/base-files/lib/upgrade/platform.sh     |   3 +-
 target/linux/ath79/image/generic.mk                |  15 ++
 .../ath79/image/lzma-loader/src/ar71xx_regs.h      |   1 +
 target/linux/ath79/image/lzma-loader/src/board.c   |  22 +-
 7 files changed, 280 insertions(+), 11 deletions(-)

diff --git a/package/boot/uboot-envtools/files/ath79 b/package/boot/uboot-envtools/files/ath79
index bf9adc9e5d..cdaa575fbe 100644
--- a/package/boot/uboot-envtools/files/ath79
+++ b/package/boot/uboot-envtools/files/ath79
@@ -119,7 +119,8 @@ domywifi,dw33d)
 glinet,gl-ar150)
 	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x8000" "0x10000"
 	;;
-huawei,ap5030dn)
+huawei,ap5030dn|\
+huawei,ap6010dn)
 	ubootenv_add_uci_config "/dev/mtd3" "0x0" "0x20000" "0x20000"
 	;;
 netgear,wndr3700|\
diff --git a/target/linux/ath79/dts/ar9344_huawei_ap6010dn.dts b/target/linux/ath79/dts/ar9344_huawei_ap6010dn.dts
new file mode 100644
index 0000000000..2f2e6e2331
--- /dev/null
+++ b/target/linux/ath79/dts/ar9344_huawei_ap6010dn.dts
@@ -0,0 +1,243 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "ar9344.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+	model = "Huawei AP6010DN";
+	compatible = "huawei,ap6010dn", "qca,ar9344";
+
+	chosen {
+		bootargs = "console=ttyS0,9600n8";
+	};
+
+	aliases {
+		led-boot = &led_function_green;
+		led-failsafe = &led_function_red;
+		led-running = &led_function_green;
+		led-upgrade = &led_function_red;
+		label-mac-device = &eth0;
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led_function_green: led-status-green {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_GREEN>;
+			gpios = <&gpio 13 GPIO_ACTIVE_HIGH>;
+		};
+
+		led_function_red: led-status-red {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_RED>;
+			gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
+		};
+
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		restart {
+			label = "reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
+			debounce-interval = <60>;
+		};
+	};
+
+	watchdog {
+		pinctrl-names = "default";
+		pinctrl-0 = <&wdt_gpio15>;
+
+		compatible = "linux,wdt-gpio";
+		gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
+		hw_algo = "toggle";
+		hw_margin_ms = <100>;
+		always-running;
+	};
+
+	virtual_flash {
+		compatible = "mtd-concat";
+		devices = <&fwconcat0 &fwconcat1>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "firmware";
+				reg = <0x0 0x1e00000>;
+				compatible = "openwrt,uimage", "denx,uimage";
+			};
+		};
+	};
+};
+
+&spi {
+	status = "okay";
+
+	flash at 0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <25000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "u-boot-a";
+				reg = <0x0 0x80000>;
+				read-only;
+			};
+
+			partition at 80000 {
+				label = "BootupA";
+				reg = <0x80000 0x20000>;
+			};
+
+			partition at a0000 {
+				label = "BootupB";
+				reg = <0xa0000 0x20000>;
+			};
+
+			partition at c0000 {
+				label = "u-boot-env";
+				reg = <0xc0000 0x20000>;
+				read-only;
+			};
+
+			partition at e0000 {
+				label = "BoardData";
+				reg = <0xe0000 0x20000>;
+				read-only;
+			};
+
+			// In the vendor layout, there are the "SysImageA" (12 MiB)
+			// and the "ConfigA" (3 MiB) partitions here.
+			fwconcat0: partition at 100000 {
+				label = "fwconcat0";
+				reg = <0x100000 0xf00000>;
+			};
+
+			partition at 1000000 {
+				label = "u-boot-b";
+				reg = <0x1000000 0x80000>;
+				read-only;
+			};
+
+			partition at 1080000 {
+				label = "ResultA";
+				reg = <0x1080000 0x20000>;
+				read-only;
+			};
+
+			partition at 10a0000 {
+				label = "ResultB";
+				reg = <0x10a0000 0x20000>;
+				read-only;
+			};
+
+			// In the vendor layout, there are the "SysImageB" (12 MiB)
+			// and the "ConfigB" (3 MiB) partitions here.
+			fwconcat1: partition at 10c0000 {
+				label = "fwconcat1";
+				reg = <0x10c0000 0xf00000>;
+			};
+
+			art: partition at 1fc0000 {
+				label = "art";
+				reg = <0x1fc0000 0x40000>;
+				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_2005b: macaddr at 2005b {
+						compatible = "mac-base";
+						reg = <0x2005b 0x6>;
+						#nvmem-cell-cells = <1>;
+					};
+
+					cal_art_1000: cal at 1000 {
+						reg = <0x1000 0x440>;
+					};
+
+					cal_art_5000: cal at 5000 {
+						reg = <0x5000 0x844>;
+					};
+				};
+			};
+		};
+	};
+};
+
+&wmac {
+	status = "okay";
+
+	nvmem-cells = <&macaddr_art_2005b 1>, <&cal_art_1000>;
+	nvmem-cell-names = "mac-address", "calibration";
+};
+
+&pcie {
+	status = "okay";
+
+	ath9k: wifi at 0,0 {
+		compatible = "pci168c,0033";
+		reg = <0x0000 0 0 0 0>;
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		nvmem-cells = <&macaddr_art_2005b 2>, <&cal_art_5000>;
+		nvmem-cell-names = "mac-address", "calibration";
+	};
+};
+
+&ref {
+	clock-frequency = <40000000>;
+};
+
+&eth0 {
+	status = "okay";
+
+	nvmem-cells = <&macaddr_art_2005b 0>;
+	nvmem-cell-names = "mac-address";
+
+	pll-data = <0x06000000 0x04000101 0x0c001313>;
+	phy-mode = "rgmii-id";
+	phy-handle = <&phy>;
+
+	gmac-config {
+		device = <&gmac>;
+		rgmii-gmac0 = <1>;
+		rxdv-delay = <3>;
+		rxd-delay = <3>;
+	};
+};
+
+&mdio0 {
+	status = "okay";
+
+	phy: ethernet-phy at 18 {
+		reg = <0x4>;
+	};
+};
+
+&pinmux {
+	wdt_gpio15: pinmux_wdt_gpio15 {
+		pinctrl-single,bits = <0xc 0x0 0xFF000000>;
+	};
+};
+
+&wdt {
+	status = "disabled";
+};
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network
index 191138f521..0907b630d2 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
@@ -50,6 +50,7 @@ ath79_setup_interfaces()
 	glinet,gl-ar300m-lite|\
 	glinet,gl-usb150|\
 	hak5,wifi-pineapple-nano|\
+	huawei,ap6010dn|\
 	meraki,mr16|\
 	netgear,ex7300|\
 	netgear,ex7300-v2|\
@@ -710,7 +711,8 @@ ath79_setup_macs()
 	hak5,packet-squirrel)
 		label_mac=$(mtd_get_mac_binary u-boot 0x1fc00)
 		;;
-	huawei,ap5030dn)
+	huawei,ap5030dn|\
+	huawei,ap6010dn)
 		label_mac=$(mtd_get_mac_binary art 0x2005b)
 		;;
 	iodata,etg3-r)
diff --git a/target/linux/ath79/generic/base-files/lib/upgrade/platform.sh b/target/linux/ath79/generic/base-files/lib/upgrade/platform.sh
index e845057f42..48a3fe6c62 100644
--- a/target/linux/ath79/generic/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ath79/generic/base-files/lib/upgrade/platform.sh
@@ -66,7 +66,8 @@ platform_do_upgrade() {
 		ROOTFS_FILE="root.squashfs"
 		platform_do_upgrade_failsafe_datachk "$1"
 		;;
-	huawei,ap5030dn)
+	huawei,ap5030dn|\
+	huawei,ap6010dn)
 		# Store beginning address of the "firmware" partition
 		# as KernelA address and KernelB address, each to BootupA & BootupB
 		# This is the address from which the bootloader will try to load the kernel.
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index f264c14314..637788c73e 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -1643,6 +1643,21 @@ define Device/huawei_ap5030dn
 endef
 TARGET_DEVICES += huawei_ap5030dn
 
+define Device/huawei_ap6010dn
+  SOC := ar9344
+  DEVICE_VENDOR := Huawei
+  DEVICE_MODEL := AP6010DN
+  LOADER_TYPE := bin
+  LOADER_FLASH_OFFS := 0x111DC0
+  KERNEL_SIZE := 15360k
+  IMAGE_SIZE := 30720k
+  COMPILE := loader-$(1).bin
+  COMPILE/loader-$(1).bin := loader-okli-compile | pad-to 64k | uImage none
+  KERNEL := kernel-bin | append-dtb | lzma | uImage lzma -M 0x4f4b4c49 | loader-okli $(1) 8128
+  KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | loader-kernel | uImage none
+endef
+TARGET_DEVICES += huawei_ap6010dn
+
 define Device/iodata_etg3-r
   SOC := ar9342
   DEVICE_VENDOR := I-O DATA
diff --git a/target/linux/ath79/image/lzma-loader/src/ar71xx_regs.h b/target/linux/ath79/image/lzma-loader/src/ar71xx_regs.h
index e7d7683973..9dc7c0f817 100644
--- a/target/linux/ath79/image/lzma-loader/src/ar71xx_regs.h
+++ b/target/linux/ath79/image/lzma-loader/src/ar71xx_regs.h
@@ -670,6 +670,7 @@
 #define AR934X_GPIO_FUNC_SPI_CS_0_EN	BIT(13)
 
 #define AR934X_GPIO_OUT_GPIO		0x00
+#define AR934X_GPIO_OUTSEL_CLK_OBS4 0x14
 
 #define QCA955X_GPIO_OUTSEL_CLK_OBS5		0x54
 
diff --git a/target/linux/ath79/image/lzma-loader/src/board.c b/target/linux/ath79/image/lzma-loader/src/board.c
index 13926e9b1e..04aa348b1f 100644
--- a/target/linux/ath79/image/lzma-loader/src/board.c
+++ b/target/linux/ath79/image/lzma-loader/src/board.c
@@ -182,34 +182,40 @@ static inline void mr18_init(void)
 static inline void mr18_init(void) { }
 #endif
 
-#ifdef CONFIG_BOARD_HUAWEI_AP5030DN
-static inline void ap5030dn_init(void)
+#if defined(CONFIG_BOARD_HUAWEI_AP5030DN) || defined(CONFIG_BOARD_HUAWEI_AP6010DN)
+static inline void huawei_ap_init(void)
 {
-	const unsigned int ap5030dn_watchdog_gpio = 15;
+	const unsigned int watchdog_gpio = 15;
 	unsigned int gpiobase, reg;
 
 	gpiobase = KSEG1ADDR(AR71XX_GPIO_BASE);
 
-	printf("Huawei AP5030DN\n");
+	printf("Huawei AP\n");
 
 	reg = READREG(gpiobase + AR71XX_GPIO_REG_OE);
 	WRITEREG(gpiobase + AR71XX_GPIO_REG_OE,
-			reg & ~(1 << ap5030dn_watchdog_gpio));
+			reg & ~(1 << watchdog_gpio));
 
 	/* Set GPIO15 MUX to output CLK_OBS5 (= CPU_CLK/4)
-	 * to keep the watchdog happy until wdt-gpio takes over
+	 * or CLK_OBS4 (= AHB_CLK/2) to keep the watchdog happy
+	 * until wdt-gpio takes over
 	 */
 	reg = READREG(gpiobase + AR934X_GPIO_REG_OUT_FUNC3);
+#if defined(CONFIG_BOARD_HUAWEI_AP5030DN)
 	WRITEREG(gpiobase + AR934X_GPIO_REG_OUT_FUNC3,
 			reg | (QCA955X_GPIO_OUTSEL_CLK_OBS5 << 24));
+#else if defined(CONFIG_BOARD_HUAWEI_AP6010DN)
+	WRITEREG(gpiobase + AR934X_GPIO_REG_OUT_FUNC3,
+			reg | (AR934X_GPIO_OUTSEL_CLK_OBS4 << 24));
+#endif
 }
 #else
-static inline void ap5030dn_init(void) { }
+static inline void huawei_ap_init(void) {}
 #endif
 
 void board_init(void)
 {
 	tlwr1043nd_init();
 	mr18_init();
-	ap5030dn_init();
+	huawei_ap_init();
 }



From lede-commits at lists.infradead.org  Sat Nov 23 14:25:07 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 17:25:07 -0500
Subject: [openwrt/openwrt]  ath79: lzma-loader: fix syntax error
In-Reply-To: <173240070606.3258146.9546039362867896630@git-01.infra.openwrt.org>
References: <173240070606.3258146.9546039362867896630@git-01.infra.openwrt.org>
Message-ID: <mailman.4726.1732400714.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/d557e2393236d1b2eb99008121b9e163c000ed8d

commit d557e2393236d1b2eb99008121b9e163c000ed8d
Author: Shiji Yang <yangshiji66 at qq.com>
AuthorDate: Sun Nov 17 19:30:35 2024 +0800

    ath79: lzma-loader: fix syntax error
    
    C compiler can't parse '#else if'.
    
    Fixes: f84a9f7dc095 ("ath79: add support for Huawei AP6010DN")
    Signed-off-by: Shiji Yang <yangshiji66 at qq.com>
    Link: https://github.com/openwrt/openwrt/pull/16989
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 98f26346cbbb45e5c0417f57846ce1783e884ea2)
---
 target/linux/ath79/image/lzma-loader/src/board.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/linux/ath79/image/lzma-loader/src/board.c b/target/linux/ath79/image/lzma-loader/src/board.c
index 04aa348b1f..c9840b7458 100644
--- a/target/linux/ath79/image/lzma-loader/src/board.c
+++ b/target/linux/ath79/image/lzma-loader/src/board.c
@@ -204,7 +204,7 @@ static inline void huawei_ap_init(void)
 #if defined(CONFIG_BOARD_HUAWEI_AP5030DN)
 	WRITEREG(gpiobase + AR934X_GPIO_REG_OUT_FUNC3,
 			reg | (QCA955X_GPIO_OUTSEL_CLK_OBS5 << 24));
-#else if defined(CONFIG_BOARD_HUAWEI_AP6010DN)
+#elif defined(CONFIG_BOARD_HUAWEI_AP6010DN)
 	WRITEREG(gpiobase + AR934X_GPIO_REG_OUT_FUNC3,
 			reg | (AR934X_GPIO_OUTSEL_CLK_OBS4 << 24));
 #endif



From lede-commits at lists.infradead.org  Sat Nov 23 14:55:51 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 23 Nov 2024 17:55:51 -0500
Subject: [openwrt/openwrt]  wifi-scripts: Fix parsing of Capabilities
In-Reply-To: <173240255099.3379816.960237177679576246@git-01.infra.openwrt.org>
References: <173240255099.3379816.960237177679576246@git-01.infra.openwrt.org>
Message-ID: <mailman.4731.1732402560.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/a281c022883937e6eec27b7811bcde55d5917d63

commit a281c022883937e6eec27b7811bcde55d5917d63
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sat Nov 23 00:34:30 2024 +0100

    wifi-scripts: Fix parsing of Capabilities
    
    Fixup capabilities parsing in iw output.
    
    In addition to the normal capabilities iw now also outputs HE MAC, HE
    PHY and EHT MAC and EHT PHY capabilities. Exclude them in the parsing.
    
    The grep returns this with mac80211-hwsim:
    ```
    root at OpenWrt:~# iw phy phy0 info | grep 'Capabilities:'
                    Capabilities: 0x107e
                            HE PHY Capabilities: (0x02bfce0000000000000000):
                            EHT PHY Capabilities: (0x7c0000feffff7f01):
                            HE PHY Capabilities: (0x02bfce0000000000000000):
                            EHT PHY Capabilities: (0x7c0000feffff7f01):
                            HE PHY Capabilities: (0x02bf000000000000000000):
                    Capabilities: 0x107e
                            HE PHY Capabilities: (0x1cbfce0000000000000000):
                            EHT PHY Capabilities: (0xfc1f3ffeffff7f37):
                            HE PHY Capabilities: (0x1cbfce0000000000000000):
                            EHT PHY Capabilities: (0xfc1f3ffeffff7f37):
                            HE PHY Capabilities: (0x1cbf000000000000000000):
                            HE PHY Capabilities: (0x1cbfce0000000000000000):
                            EHT PHY Capabilities: (0xfefffffeffffff7f):
                            HE PHY Capabilities: (0x1cbfce0000000000000000):
                            EHT PHY Capabilities: (0xfefffffeffffff7f):
                            HE PHY Capabilities: (0x1cbf000000000000000000):
                    Capabilities: 0x107e
    ```
    
    With busybox 1.36.1 the ht_cap_mask variable will be set to
    -72057598332895361. With busybox 1.37.0 it will be set to -1.
    Both values are wrong, after this change it will be set to 4222
    (0x107E).
    
    Link: https://github.com/openwrt/openwrt/pull/17043
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit adf958c9192d94fbeeb0ec8e16800b0071455909)
---
 package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
index a80d106afa..e14b531c59 100644
--- a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
+++ b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
@@ -203,7 +203,7 @@ mac80211_hostapd_setup_base() {
 			dsss_cck_40:1
 
 		ht_cap_mask=0
-		for cap in $(iw phy "$phy" info | grep 'Capabilities:' | cut -d: -f2); do
+		for cap in $(iw phy "$phy" info | grep -E '^\s*Capabilities:' | cut -d: -f2); do
 			ht_cap_mask="$(($ht_cap_mask | $cap))"
 		done
 



From lede-commits at lists.infradead.org  Sun Nov 24 03:18:25 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 24 Nov 2024 06:18:25 -0500
Subject: [openwrt/openwrt]  config: dont select procd-seccomp via USE_SECCOMP
In-Reply-To: <173244710436.1703552.3530274480268955326@git-01.infra.openwrt.org>
References: <173244710436.1703552.3530274480268955326@git-01.infra.openwrt.org>
Message-ID: <mailman.4830.1732447108.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/a4bd42b79015af251694a84bc2bbb7d42b34f47b

commit a4bd42b79015af251694a84bc2bbb7d42b34f47b
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Sat Nov 23 14:46:29 2024 +0100

    config: dont select procd-seccomp via USE_SECCOMP
    
    base-files is including procd-secccomp as a dependency when USE_SECCOMP
    is selected, so there is no point in selecting the package directly here
    as well.
    
    Link: https://github.com/openwrt/openwrt/pull/17048
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 config/Config-build.in | 1 -
 1 file changed, 1 deletion(-)

diff --git a/config/Config-build.in b/config/Config-build.in
index 2a95891ecf..c8739afa87 100644
--- a/config/Config-build.in
+++ b/config/Config-build.in
@@ -426,7 +426,6 @@ menu "Global build settings"
 	config USE_SECCOMP
 		bool "Enable SECCOMP"
 		select KERNEL_SECCOMP
-		select PACKAGE_procd-seccomp
 		depends on (aarch64 || arm || armeb || mips || mipsel || mips64 || mips64el || i386 || powerpc || x86_64)
 		depends on !TARGET_uml
 		default y



From lede-commits at lists.infradead.org  Sun Nov 24 03:18:24 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 24 Nov 2024 06:18:24 -0500
Subject: [openwrt/openwrt]  config: rename SECCOMP to USE_SECCOMP
In-Reply-To: <173244710436.1703552.3530274480268955326@git-01.infra.openwrt.org>
References: <173244710436.1703552.3530274480268955326@git-01.infra.openwrt.org>
Message-ID: <mailman.4831.1732447108.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/a48ec449ccab0069e84a72837bf06ba543e53aec

commit a48ec449ccab0069e84a72837bf06ba543e53aec
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Sat Nov 23 14:29:49 2024 +0100

    config: rename SECCOMP to USE_SECCOMP
    
    It seems that we have some kind of a symbol name conflict which causes
    CONFIG_SECCOMP to always be read as y.
    
    Unfortunatelly, I could not figure out what is causing this, but simply
    renaming SECCOMP to USE_SECCOMP seems to properly work and leaves the
    symbol unset unless arch dependencies are satisfied.
    
    This fixes qoriq and others that dont support seccomp from failing due
    to procd-seccomp package being selected to get included but it cannot be
    built for them:
    ERROR: unable to select packages:
      procd-seccomp (no such package):
        required by: base-files-1637~52b6c92479[procd-seccomp]
    
    Fixes: 4c65359af49b ("build: fix including busybox, procd and apk/opkg in imagebuilder")
    Link: https://github.com/openwrt/openwrt/pull/17048
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 config/Config-build.in        | 2 +-
 include/toplevel.mk           | 2 +-
 package/base-files/Makefile   | 2 +-
 package/system/procd/Makefile | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/config/Config-build.in b/config/Config-build.in
index 6db2354e88..2a95891ecf 100644
--- a/config/Config-build.in
+++ b/config/Config-build.in
@@ -423,7 +423,7 @@ menu "Global build settings"
 
 	endchoice
 
-	config SECCOMP
+	config USE_SECCOMP
 		bool "Enable SECCOMP"
 		select KERNEL_SECCOMP
 		select PACKAGE_procd-seccomp
diff --git a/include/toplevel.mk b/include/toplevel.mk
index e5f5e0fecd..a52c56832e 100644
--- a/include/toplevel.mk
+++ b/include/toplevel.mk
@@ -78,7 +78,7 @@ _ignore = $(foreach p,$(IGNORE_PACKAGES),--ignore $(p))
 # Config that will invalidate the .targetinfo as they will affect
 # DEFAULT_PACKAGES.
 # Keep DYNAMIC_DEF_PKG_CONF in sync with target.mk to reflect the same configs
-DYNAMIC_DEF_PKG_CONF := CONFIG_USE_APK CONFIG_SELINUX CONFIG_SMALL_FLASH CONFIG_SECCOMP
+DYNAMIC_DEF_PKG_CONF := CONFIG_USE_APK CONFIG_SELINUX CONFIG_SMALL_FLASH CONFIG_USE_SECCOMP
 check-dynamic-def-pkg: FORCE
 	@+DEF_PKG_CONFS=""; \
 	if [ -f $(TOPDIR)/.config ]; then \
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index a2ea3c5d00..ff7891f18c 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -42,7 +42,7 @@ define Package/base-files
   DEPENDS:= \
 	+netifd +libc +jsonfilter +SIGNED_PACKAGES:usign +SIGNED_PACKAGES:openwrt-keyring \
 	+NAND_SUPPORT:ubi-utils +fstools +fwtool \
-	+SELINUX:procd-selinux +!SELINUX:procd +SECCOMP:procd-seccomp \
+	+SELINUX:procd-selinux +!SELINUX:procd +USE_SECCOMP:procd-seccomp \
 	+SELINUX:busybox-selinux +!SELINUX:busybox +!SMALL_FLASH:procd-ujail
   TITLE:=Base filesystem for OpenWrt
   URL:=http://openwrt.org/
diff --git a/package/system/procd/Makefile b/package/system/procd/Makefile
index 81e133f55b..b9099a5ba5 100644
--- a/package/system/procd/Makefile
+++ b/package/system/procd/Makefile
@@ -71,7 +71,7 @@ endef
 define Package/procd-seccomp
   SECTION:=base
   CATEGORY:=Base system
-  DEPENDS:=@SECCOMP +libubox +libblobmsg-json
+  DEPENDS:=@USE_SECCOMP +libubox +libblobmsg-json
   TITLE:=OpenWrt process seccomp helper + utrace
 endef
 



From lede-commits at lists.infradead.org  Sun Nov 24 11:04:37 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 24 Nov 2024 14:04:37 -0500
Subject: [openwrt/openwrt]  x86: Deactivate kernel options with extra overhead
In-Reply-To: <173247507760.3188049.12329881369593625816@git-01.infra.openwrt.org>
References: <173247507760.3188049.12329881369593625816@git-01.infra.openwrt.org>
Message-ID: <mailman.4999.1732475085.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/ed523454454965da07c9c7a009ae0a3995aa7c33

commit ed523454454965da07c9c7a009ae0a3995aa7c33
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sun Nov 24 14:39:57 2024 +0100

    x86: Deactivate kernel options with extra overhead
    
    Deactivate CONFIG_CONTEXT_TRACKING_USER_FORCE: Force user context
    tracking: This is a testing feature which should not be activate in
    production environments according to the Kconfig help. It adds an extra
    overhead.
    
    Deactivate CONFIG_RCU_NOCB_CPU_DEFAULT_ALL: Offload RCU callback
    processing from all CPUs by default: This option should only be used in
    aggressive HPC or real-time workloads which we do not have in OpenWrt.
    For normal workloads it increases the number of context switches.
    
    In the default Arch Linux kernel both options are not activated.
    
    Fixes: 31111680f6fc ("x86: switch config to a tickless kernel")
    Link: https://github.com/openwrt/openwrt/pull/17057
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/x86/config-6.6 | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/target/linux/x86/config-6.6 b/target/linux/x86/config-6.6
index b3d15bc104..c416bb6a08 100644
--- a/target/linux/x86/config-6.6
+++ b/target/linux/x86/config-6.6
@@ -46,7 +46,7 @@ CONFIG_COMPAT_32=y
 CONFIG_COMPAT_32BIT_TIME=y
 # CONFIG_COMPAT_VDSO is not set
 CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_CONTEXT_TRACKING_USER_FORCE=y
+# CONFIG_CONTEXT_TRACKING_USER_FORCE is not set
 # CONFIG_CPU5_WDT is not set
 CONFIG_CPU_FREQ=y
 CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
@@ -334,7 +334,7 @@ CONFIG_PTP_1588_CLOCK_OPTIONAL=y
 CONFIG_RANDSTRUCT_NONE=y
 CONFIG_RATIONAL=y
 CONFIG_RCU_LAZY=y
-CONFIG_RCU_NOCB_CPU_DEFAULT_ALL=y
+# CONFIG_RCU_NOCB_CPU_DEFAULT_ALL is not set
 CONFIG_RD_BZIP2=y
 CONFIG_RD_GZIP=y
 CONFIG_RETHUNK=y



From lede-commits at lists.infradead.org  Sun Nov 24 11:08:54 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 24 Nov 2024 14:08:54 -0500
Subject: [openwrt/openwrt]  dropbear: bump to 2024.86
In-Reply-To: <173247533426.3202022.14245395974860563488@git-01.infra.openwrt.org>
References: <173247533426.3202022.14245395974860563488@git-01.infra.openwrt.org>
Message-ID: <mailman.5000.1732475337.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/a9d3c5b4c9bf910d4b3b42109161b1f6526b76eb

commit a9d3c5b4c9bf910d4b3b42109161b1f6526b76eb
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sat Nov 23 22:32:03 2024 +0100

    dropbear: bump to 2024.86
    
    - update dropbear to latest stable 2024.86;
      for the changes see https://matt.ucc.asn.au/dropbear/CHANGES
    
    Link: https://github.com/openwrt/openwrt/pull/17053
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/network/services/dropbear/Makefile                      | 6 +++---
 package/network/services/dropbear/patches/110-change_user.patch | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/package/network/services/dropbear/Makefile b/package/network/services/dropbear/Makefile
index 1918e7dec6..e13b6c2145 100644
--- a/package/network/services/dropbear/Makefile
+++ b/package/network/services/dropbear/Makefile
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dropbear
-PKG_VERSION:=2024.85
-PKG_RELEASE:=2
+PKG_VERSION:=2024.86
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:= \
 	https://matt.ucc.asn.au/dropbear/releases/ \
 	https://dropbear.nl/mirror/releases/
-PKG_HASH:=86b036c433a69d89ce51ebae335d65c47738ccf90d13e5eb0fea832e556da502
+PKG_HASH:=e78936dffc395f2e0db099321d6be659190966b99712b55c530dd0a1822e0a5e
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE libtomcrypt/LICENSE libtommath/LICENSE
diff --git a/package/network/services/dropbear/patches/110-change_user.patch b/package/network/services/dropbear/patches/110-change_user.patch
index 9cb073cf94..9ef8f0cfbc 100644
--- a/package/network/services/dropbear/patches/110-change_user.patch
+++ b/package/network/services/dropbear/patches/110-change_user.patch
@@ -1,6 +1,6 @@
 --- a/src/svr-chansession.c
 +++ b/src/svr-chansession.c
-@@ -987,12 +987,12 @@ static void execchild(const void *user_d
+@@ -984,12 +984,12 @@ static void execchild(const void *user_d
  	/* We can only change uid/gid as root ... */
  	if (getuid() == 0) {
  



From lede-commits at lists.infradead.org  Sun Nov 24 13:47:08 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 24 Nov 2024 16:47:08 -0500
Subject: [openwrt/openwrt]  wifi-scripts: Fix parsing of Capabilities
In-Reply-To: <173248482300.3776971.5020123807089694103@git-01.infra.openwrt.org>
References: <173248482300.3776971.5020123807089694103@git-01.infra.openwrt.org>
Message-ID: <mailman.5026.1732484827.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/a5b291116b282e9bad6ba289acb7af22c482ed0a

commit a5b291116b282e9bad6ba289acb7af22c482ed0a
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sat Nov 23 00:34:30 2024 +0100

    wifi-scripts: Fix parsing of Capabilities
    
    Fixup capabilities parsing in iw output.
    
    In addition to the normal capabilities iw now also outputs HE MAC, HE
    PHY and EHT MAC and EHT PHY capabilities. Exclude them in the parsing.
    
    The grep returns this with mac80211-hwsim:
    ```
    root at OpenWrt:~# iw phy phy0 info | grep 'Capabilities:'
                    Capabilities: 0x107e
                            HE PHY Capabilities: (0x02bfce0000000000000000):
                            EHT PHY Capabilities: (0x7c0000feffff7f01):
                            HE PHY Capabilities: (0x02bfce0000000000000000):
                            EHT PHY Capabilities: (0x7c0000feffff7f01):
                            HE PHY Capabilities: (0x02bf000000000000000000):
                    Capabilities: 0x107e
                            HE PHY Capabilities: (0x1cbfce0000000000000000):
                            EHT PHY Capabilities: (0xfc1f3ffeffff7f37):
                            HE PHY Capabilities: (0x1cbfce0000000000000000):
                            EHT PHY Capabilities: (0xfc1f3ffeffff7f37):
                            HE PHY Capabilities: (0x1cbf000000000000000000):
                            HE PHY Capabilities: (0x1cbfce0000000000000000):
                            EHT PHY Capabilities: (0xfefffffeffffff7f):
                            HE PHY Capabilities: (0x1cbfce0000000000000000):
                            EHT PHY Capabilities: (0xfefffffeffffff7f):
                            HE PHY Capabilities: (0x1cbf000000000000000000):
                    Capabilities: 0x107e
    ```
    
    With busybox 1.36.1 the ht_cap_mask variable will be set to
    -72057598332895361. With busybox 1.37.0 it will be set to -1.
    Both values are wrong, after this change it will be set to 4222
    (0x107E).
    
    Link: https://github.com/openwrt/openwrt/pull/17043
    (cherry picked from commit adf958c9192d94fbeeb0ec8e16800b0071455909)
    Link: https://github.com/openwrt/openwrt/pull/17055
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 .../network/config/wifi-scripts/files/lib/netifd/wireless/mac80211.sh   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/network/config/wifi-scripts/files/lib/netifd/wireless/mac80211.sh b/package/network/config/wifi-scripts/files/lib/netifd/wireless/mac80211.sh
index 9998e26ec1..3d953eff74 100755
--- a/package/network/config/wifi-scripts/files/lib/netifd/wireless/mac80211.sh
+++ b/package/network/config/wifi-scripts/files/lib/netifd/wireless/mac80211.sh
@@ -208,7 +208,7 @@ mac80211_hostapd_setup_base() {
 				dsss_cck_40:1
 
 			ht_cap_mask=0
-			for cap in $(iw phy "$phy" info | grep 'Capabilities:' | cut -d: -f2); do
+			for cap in $(iw phy "$phy" info | grep -E '^\s*Capabilities:' | cut -d: -f2); do
 				ht_cap_mask="$(($ht_cap_mask | $cap))"
 			done
 



From lede-commits at lists.infradead.org  Sun Nov 24 13:47:05 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 24 Nov 2024 16:47:05 -0500
Subject: [openwrt/openwrt]  debugcc: Mark it nonshared
In-Reply-To: <173248482300.3776971.5020123807089694103@git-01.infra.openwrt.org>
References: <173248482300.3776971.5020123807089694103@git-01.infra.openwrt.org>
Message-ID: <mailman.5027.1732484827.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/a2e7d8761bb752d113b0e6dd4bd19c61da4c3bda

commit a2e7d8761bb752d113b0e6dd4bd19c61da4c3bda
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sat Nov 16 18:36:45 2024 +0100

    debugcc: Mark it nonshared
    
    This tool was build in the phase 2 build, there the TARGET dependencies
    are probably not meat. Mark it as non shared to build it together with
    the targets where this option is set.
    
    Link: https://github.com/openwrt/openwrt/pull/16975
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit febe1db43d1a01f83e474bcb143dcb3997bd35a3)
    Link: https://github.com/openwrt/openwrt/pull/17055
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/utils/debugcc/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/utils/debugcc/Makefile b/package/utils/debugcc/Makefile
index 3e26cea7e5..c3821cd8c6 100644
--- a/package/utils/debugcc/Makefile
+++ b/package/utils/debugcc/Makefile
@@ -11,6 +11,7 @@ PKG_MIRROR_HASH:=4cd7a770a05db28f496a60eb9fe015a4af677bba05053b4d4be21adcf95e52e
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
+PKG_FLAGS:=nonshared
 
 PKG_MAINTAINER:=Christian Marangi <ansuelsmth at gmail.com>
 



From lede-commits at lists.infradead.org  Sun Nov 24 13:47:06 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 24 Nov 2024 16:47:06 -0500
Subject: [openwrt/openwrt]  kernel: bump 6.6 to 6.6.62
In-Reply-To: <173248482300.3776971.5020123807089694103@git-01.infra.openwrt.org>
References: <173248482300.3776971.5020123807089694103@git-01.infra.openwrt.org>
Message-ID: <mailman.5028.1732484830.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/610652090d589f1118a8d40709cef0b338f874f0

commit 610652090d589f1118a8d40709cef0b338f874f0
Author: John Audia <therealgraysky at proton.me>
AuthorDate: Sun Nov 17 14:33:47 2024 -0500

    kernel: bump 6.6 to 6.6.62
    
    Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.62
    
    All patches automatically rebased.
    
    Build system: x86/64
    Build-tested: x86/64/AMD Cezanne, flogic/glinet_gl-mt6000, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
    Run-tested: x86/64/AMD Cezanne, flogic/glinet_gl-mt6000, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
    
    Signed-off-by: John Audia <therealgraysky at proton.me>
    Link: https://github.com/openwrt/openwrt/pull/16997
    (cherry picked from commit 611bfa4d72c87e8163d7193d9557479fc7312467)
    Link: https://github.com/openwrt/openwrt/pull/17055
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 include/kernel-6.6                                             |  4 ++--
 ...-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch |  2 +-
 ...-mm-page_alloc-cma-introduce-a-customisable-threshold.patch |  2 +-
 ...-mm-numa-Allow-override-of-kernel-s-default-NUMA-poli.patch | 10 +++++-----
 4 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/include/kernel-6.6 b/include/kernel-6.6
index d870747f83..dfb1e855f8 100644
--- a/include/kernel-6.6
+++ b/include/kernel-6.6
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.6 = .61
-LINUX_KERNEL_HASH-6.6.61 = 418fc24df9190f1c3ed9906dc3b7651c2a2eae5c1cb9ab4a6348e20faf047c0b
+LINUX_VERSION-6.6 = .62
+LINUX_KERNEL_HASH-6.6.62 = e2c35611775534941b9d4dd871f3ae5b988b6594dc9033b5ca784366e07d9336
diff --git a/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch
index 5301066196..6e9ca2261b 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch
@@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.org>
  #define USB_VENDOR_ID_BELKIN		0x050d
  #define USB_DEVICE_ID_FLIP_KVM		0x3201
  
-@@ -1404,6 +1407,9 @@
+@@ -1405,6 +1408,9 @@
  #define USB_VENDOR_ID_XIAOMI		0x2717
  #define USB_DEVICE_ID_MI_SILENT_MOUSE	0x5014
  
diff --git a/target/linux/bcm27xx/patches-6.6/950-0359-mm-page_alloc-cma-introduce-a-customisable-threshold.patch b/target/linux/bcm27xx/patches-6.6/950-0359-mm-page_alloc-cma-introduce-a-customisable-threshold.patch
index 8c39ae9931..f8baf9befc 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0359-mm-page_alloc-cma-introduce-a-customisable-threshold.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0359-mm-page_alloc-cma-introduce-a-customisable-threshold.patch
@@ -48,7 +48,7 @@ Signed-off-by: David Plowman <david.plowman at raspberrypi.com>
  /*
   * A cached value of the page's pageblock's migratetype, used when the page is
   * put on a pcplist. Used to avoid the pageblock migratetype lookup when
-@@ -2095,12 +2116,13 @@ __rmqueue(struct zone *zone, unsigned in
+@@ -2094,12 +2115,13 @@ __rmqueue(struct zone *zone, unsigned in
  	if (IS_ENABLED(CONFIG_CMA)) {
  		/*
  		 * Balance movable allocations between regular and CMA areas by
diff --git a/target/linux/bcm27xx/patches-6.6/950-1340-mm-numa-Allow-override-of-kernel-s-default-NUMA-poli.patch b/target/linux/bcm27xx/patches-6.6/950-1340-mm-numa-Allow-override-of-kernel-s-default-NUMA-poli.patch
index f0de0ce9d5..dceb6df45f 100644
--- a/target/linux/bcm27xx/patches-6.6/950-1340-mm-numa-Allow-override-of-kernel-s-default-NUMA-poli.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-1340-mm-numa-Allow-override-of-kernel-s-default-NUMA-poli.patch
@@ -23,7 +23,7 @@ Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
 
 --- a/mm/mempolicy.c
 +++ b/mm/mempolicy.c
-@@ -2974,7 +2974,9 @@ void __init numa_policy_init(void)
+@@ -2963,7 +2963,9 @@ void __init numa_policy_init(void)
  /* Reset policy of current process to default */
  void numa_default_policy(void)
  {
@@ -34,7 +34,7 @@ Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
  }
  
  /*
-@@ -2992,7 +2994,6 @@ static const char * const policy_modes[]
+@@ -2981,7 +2983,6 @@ static const char * const policy_modes[]
  };
  
  
@@ -42,7 +42,7 @@ Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
  /**
   * mpol_parse_str - parse string to mempolicy, for tmpfs mpol mount option.
   * @str:  string containing mempolicy to parse
-@@ -3005,13 +3006,18 @@ static const char * const policy_modes[]
+@@ -2994,13 +2995,18 @@ static const char * const policy_modes[]
   */
  int mpol_parse_str(char *str, struct mempolicy **mpol)
  {
@@ -62,7 +62,7 @@ Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
  	if (flags)
  		*flags++ = '\0';	/* terminate mode string */
  
-@@ -3090,9 +3096,16 @@ int mpol_parse_str(char *str, struct mem
+@@ -3079,9 +3085,16 @@ int mpol_parse_str(char *str, struct mem
  			goto out;
  	}
  
@@ -82,7 +82,7 @@ Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
  
  	/*
  	 * Save nodes for mpol_to_str() to show the tmpfs mount options
-@@ -3125,7 +3138,29 @@ out:
+@@ -3114,7 +3127,29 @@ out:
  		*mpol = new;
  	return err;
  }



From lede-commits at lists.infradead.org  Sun Nov 24 13:47:04 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 24 Nov 2024 16:47:04 -0500
Subject: [openwrt/openwrt]  ath79: lzma-loader: fix syntax error
In-Reply-To: <173248482300.3776971.5020123807089694103@git-01.infra.openwrt.org>
References: <173248482300.3776971.5020123807089694103@git-01.infra.openwrt.org>
Message-ID: <mailman.5029.1732484830.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/d665be7c1e8c78d59a62431cd9cf65ef5dff99b3

commit d665be7c1e8c78d59a62431cd9cf65ef5dff99b3
Author: Shiji Yang <yangshiji66 at qq.com>
AuthorDate: Sun Nov 17 19:30:35 2024 +0800

    ath79: lzma-loader: fix syntax error
    
    C compiler can't parse '#else if'.
    
    Fixes: f84a9f7dc095 ("ath79: add support for Huawei AP6010DN")
    Signed-off-by: Shiji Yang <yangshiji66 at qq.com>
    Link: https://github.com/openwrt/openwrt/pull/16989
    (cherry picked from commit 98f26346cbbb45e5c0417f57846ce1783e884ea2)
    Link: https://github.com/openwrt/openwrt/pull/17055
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/ath79/image/lzma-loader/src/board.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/linux/ath79/image/lzma-loader/src/board.c b/target/linux/ath79/image/lzma-loader/src/board.c
index 1445108508..294ca307d5 100644
--- a/target/linux/ath79/image/lzma-loader/src/board.c
+++ b/target/linux/ath79/image/lzma-loader/src/board.c
@@ -209,7 +209,7 @@ static inline void huawei_ap_init(void)
 #if defined(CONFIG_BOARD_HUAWEI_AP5030DN)
 	WRITEREG(gpiobase + AR934X_GPIO_REG_OUT_FUNC3,
 			reg | (QCA955X_GPIO_OUTSEL_CLK_OBS5 << 24));
-#else if defined(CONFIG_BOARD_HUAWEI_AP6010DN)
+#elif defined(CONFIG_BOARD_HUAWEI_AP6010DN)
 	WRITEREG(gpiobase + AR934X_GPIO_REG_OUT_FUNC3,
 			reg | (AR934X_GPIO_OUTSEL_CLK_OBS4 << 24));
 #endif



From lede-commits at lists.infradead.org  Sun Nov 24 13:47:07 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 24 Nov 2024 16:47:07 -0500
Subject: [openwrt/openwrt]  kernel: bump 6.6 to 6.6.63
In-Reply-To: <173248482300.3776971.5020123807089694103@git-01.infra.openwrt.org>
References: <173248482300.3776971.5020123807089694103@git-01.infra.openwrt.org>
Message-ID: <mailman.5030.1732484830.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/7402e7dd866125fd7391831fe58163fbab28b38d

commit 7402e7dd866125fd7391831fe58163fbab28b38d
Author: John Audia <therealgraysky at proton.me>
AuthorDate: Fri Nov 22 10:53:37 2024 -0500

    kernel: bump 6.6 to 6.6.63
    
    Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.63
    
    Manually rebased:
            bcm27xx/patches-6.6/950-0297-staging-vchiq_arm-Add-36-bit-address-support.patch
    
    All other patches automatically rebased.
    
    Build system: x86/64
    Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
    Run-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
    
    Signed-off-by: John Audia <therealgraysky at proton.me>
    Link: https://github.com/openwrt/openwrt/pull/16997
    (cherry picked from commit eb395585ae1b7560bbcea9544f428db2a9105152)
    Link: https://github.com/openwrt/openwrt/pull/17055
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 include/kernel-6.6                                 |  4 +--
 .../patches-6.6/900-unaligned_access_hacks.patch   |  4 +--
 ...iq_arm-Register-vcsm-cma-as-a-platform-dr.patch |  4 +--
 ...iq_arm-Register-bcm2835-codec-as-a-platfo.patch |  4 +--
 ...iq_arm-Set-up-dma-ranges-on-child-devices.patch |  2 +-
 ...iq-Use-the-old-dma-controller-for-OF-conf.patch |  4 +--
 ...ng-vchiq_arm-Give-vchiq-children-DT-nodes.patch |  2 +-
 ...-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch |  4 +--
 ...ging-vchiq_arm-Add-36-bit-address-support.patch | 30 +++++++++++-----------
 ...ing-vchiq_arm-children-inherit-DMA-config.patch |  2 +-
 ...-vchiq_arm-Usa-a-DMA-pool-for-small-bulks.patch | 14 +++++-----
 11 files changed, 37 insertions(+), 37 deletions(-)

diff --git a/include/kernel-6.6 b/include/kernel-6.6
index dfb1e855f8..0cfe052e65 100644
--- a/include/kernel-6.6
+++ b/include/kernel-6.6
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.6 = .62
-LINUX_KERNEL_HASH-6.6.62 = e2c35611775534941b9d4dd871f3ae5b988b6594dc9033b5ca784366e07d9336
+LINUX_VERSION-6.6 = .63
+LINUX_KERNEL_HASH-6.6.63 = d1054ab4803413efe2850f50f1a84349c091631ec50a1cf9e891d1b1f9061835
diff --git a/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch b/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch
index c5b01b7dad..dd57c53a18 100644
--- a/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch
+++ b/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch
@@ -557,7 +557,7 @@ SVN-Revision: 35130
  static inline struct neighbour *__ipv6_neigh_lookup_noref(struct net_device *dev, const void *pkey)
 --- a/net/sched/cls_u32.c
 +++ b/net/sched/cls_u32.c
-@@ -157,7 +157,7 @@ next_knode:
+@@ -167,7 +167,7 @@ next_knode:
  			data = skb_header_pointer(skb, toff, 4, &hdata);
  			if (!data)
  				goto out;
@@ -566,7 +566,7 @@ SVN-Revision: 35130
  				n = rcu_dereference_bh(n->next);
  				goto next_knode;
  			}
-@@ -208,8 +208,8 @@ check_terminal:
+@@ -218,8 +218,8 @@ check_terminal:
  						  &hdata);
  			if (!data)
  				goto out;
diff --git a/target/linux/bcm27xx/patches-6.6/950-0184-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch b/target/linux/bcm27xx/patches-6.6/950-0184-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch
index 1029316504..741d377fc8 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0184-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0184-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch
@@ -22,7 +22,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  
  struct vchiq_drvdata {
  	const unsigned int cache_line_size;
-@@ -1838,6 +1839,7 @@ static int vchiq_probe(struct platform_d
+@@ -1825,6 +1826,7 @@ static int vchiq_probe(struct platform_d
  		goto error_exit;
  	}
  
@@ -30,7 +30,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera");
  	bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio");
  
-@@ -1853,6 +1855,7 @@ static void vchiq_remove(struct platform
+@@ -1840,6 +1842,7 @@ static void vchiq_remove(struct platform
  {
  	platform_device_unregister(bcm2835_audio);
  	platform_device_unregister(bcm2835_camera);
diff --git a/target/linux/bcm27xx/patches-6.6/950-0185-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch b/target/linux/bcm27xx/patches-6.6/950-0185-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch
index ab4fb514d6..5a3c91b780 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0185-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0185-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch
@@ -22,7 +22,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  static struct platform_device *vcsm_cma;
  
  struct vchiq_drvdata {
-@@ -1840,6 +1841,7 @@ static int vchiq_probe(struct platform_d
+@@ -1827,6 +1828,7 @@ static int vchiq_probe(struct platform_d
  	}
  
  	vcsm_cma = vchiq_register_child(pdev, "vcsm-cma");
@@ -30,7 +30,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera");
  	bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio");
  
-@@ -1855,6 +1857,7 @@ static void vchiq_remove(struct platform
+@@ -1842,6 +1844,7 @@ static void vchiq_remove(struct platform
  {
  	platform_device_unregister(bcm2835_audio);
  	platform_device_unregister(bcm2835_camera);
diff --git a/target/linux/bcm27xx/patches-6.6/950-0190-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch b/target/linux/bcm27xx/patches-6.6/950-0190-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch
index b008f90946..3abc4f19bf 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0190-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0190-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch
@@ -18,7 +18,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
 
 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
 +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -1790,6 +1790,12 @@ vchiq_register_child(struct platform_dev
+@@ -1777,6 +1777,12 @@ vchiq_register_child(struct platform_dev
  		child = NULL;
  	}
  
diff --git a/target/linux/bcm27xx/patches-6.6/950-0191-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch b/target/linux/bcm27xx/patches-6.6/950-0191-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch
index 85d1174a60..e5c5fdbc0b 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0191-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0191-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch
@@ -17,7 +17,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
 
 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
 +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -1776,6 +1776,7 @@ vchiq_register_child(struct platform_dev
+@@ -1763,6 +1763,7 @@ vchiq_register_child(struct platform_dev
  {
  	struct platform_device_info pdevinfo;
  	struct platform_device *child;
@@ -25,7 +25,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
  
  	memset(&pdevinfo, 0, sizeof(pdevinfo));
  
-@@ -1791,10 +1792,20 @@ vchiq_register_child(struct platform_dev
+@@ -1778,10 +1779,20 @@ vchiq_register_child(struct platform_dev
  	}
  
  	/*
diff --git a/target/linux/bcm27xx/patches-6.6/950-0194-staging-vchiq_arm-Give-vchiq-children-DT-nodes.patch b/target/linux/bcm27xx/patches-6.6/950-0194-staging-vchiq_arm-Give-vchiq-children-DT-nodes.patch
index eab0710367..9dba2dffca 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0194-staging-vchiq_arm-Give-vchiq-children-DT-nodes.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0194-staging-vchiq_arm-Give-vchiq-children-DT-nodes.patch
@@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 
 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
 +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -1785,12 +1785,20 @@ vchiq_register_child(struct platform_dev
+@@ -1772,12 +1772,20 @@ vchiq_register_child(struct platform_dev
  	pdevinfo.id = PLATFORM_DEVID_NONE;
  	pdevinfo.dma_mask = DMA_BIT_MASK(32);
  
diff --git a/target/linux/bcm27xx/patches-6.6/950-0209-staging-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch b/target/linux/bcm27xx/patches-6.6/950-0209-staging-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch
index a33b39967f..b5f912c85b 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0209-staging-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0209-staging-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch
@@ -21,7 +21,7 @@ Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
  
  struct vchiq_drvdata {
  	const unsigned int cache_line_size;
-@@ -1869,6 +1870,7 @@ static int vchiq_probe(struct platform_d
+@@ -1856,6 +1857,7 @@ static int vchiq_probe(struct platform_d
  	bcm2835_codec = vchiq_register_child(pdev, "bcm2835-codec");
  	bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera");
  	bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio");
@@ -29,7 +29,7 @@ Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
  
  	return 0;
  
-@@ -1880,6 +1882,7 @@ error_exit:
+@@ -1867,6 +1869,7 @@ error_exit:
  
  static void vchiq_remove(struct platform_device *pdev)
  {
diff --git a/target/linux/bcm27xx/patches-6.6/950-0297-staging-vchiq_arm-Add-36-bit-address-support.patch b/target/linux/bcm27xx/patches-6.6/950-0297-staging-vchiq_arm-Add-36-bit-address-support.patch
index 0c1ee62fab..11147d9fd9 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0297-staging-vchiq_arm-Add-36-bit-address-support.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0297-staging-vchiq_arm-Add-36-bit-address-support.patch
@@ -36,10 +36,10 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 +	.use_36bit_addrs = true,
 +};
 +
- struct vchiq_2835_state {
- 	int inited;
- 	struct vchiq_arm_state arm_state;
-@@ -147,10 +153,12 @@ static void __iomem *g_regs;
+ struct vchiq_pagelist_info {
+ 	struct pagelist *pagelist;
+ 	size_t pagelist_buffer_size;
+@@ -142,10 +148,12 @@ static void __iomem *g_regs;
   * of 32.
   */
  static unsigned int g_cache_line_size = 32;
@@ -52,7 +52,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  
  static DEFINE_SEMAPHORE(g_free_fragments_mutex, 1);
  
-@@ -180,7 +188,7 @@ static void
+@@ -175,7 +183,7 @@ static void
  cleanup_pagelistinfo(struct vchiq_instance *instance, struct vchiq_pagelist_info *pagelistinfo)
  {
  	if (pagelistinfo->scatterlist_mapped) {
@@ -61,7 +61,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  			     pagelistinfo->num_pages, pagelistinfo->dma_dir);
  	}
  
-@@ -340,7 +348,7 @@ create_pagelist(struct vchiq_instance *i
+@@ -335,7 +343,7 @@ create_pagelist(struct vchiq_instance *i
  		count -= len;
  	}
  
@@ -70,7 +70,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  				 scatterlist,
  				 num_pages,
  				 pagelistinfo->dma_dir);
-@@ -354,22 +362,61 @@ create_pagelist(struct vchiq_instance *i
+@@ -349,22 +357,61 @@ create_pagelist(struct vchiq_instance *i
  
  	/* Combine adjacent blocks for performance */
  	k = 0;
@@ -148,7 +148,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	}
  
  	/* Partial cache lines (fragments) require special measures */
-@@ -413,7 +460,7 @@ free_pagelist(struct vchiq_instance *ins
+@@ -408,7 +455,7 @@ free_pagelist(struct vchiq_instance *ins
  	 * NOTE: dma_unmap_sg must be called before the
  	 * cpu can touch any of the data/pages.
  	 */
@@ -157,7 +157,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  		     pagelistinfo->num_pages, pagelistinfo->dma_dir);
  	pagelistinfo->scatterlist_mapped = 0;
  
-@@ -468,6 +515,7 @@ free_pagelist(struct vchiq_instance *ins
+@@ -463,6 +510,7 @@ free_pagelist(struct vchiq_instance *ins
  static int vchiq_platform_init(struct platform_device *pdev, struct vchiq_state *state)
  {
  	struct device *dev = &pdev->dev;
@@ -165,7 +165,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	struct vchiq_drvdata *drvdata = platform_get_drvdata(pdev);
  	struct rpi_firmware *fw = drvdata->fw;
  	struct vchiq_slot_zero *vchiq_slot_zero;
-@@ -489,6 +537,24 @@ static int vchiq_platform_init(struct pl
+@@ -484,6 +532,24 @@ static int vchiq_platform_init(struct pl
  	g_cache_line_size = drvdata->cache_line_size;
  	g_fragments_size = 2 * g_cache_line_size;
  
@@ -190,7 +190,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	/* Allocate space for the channels in coherent memory */
  	slot_mem_size = PAGE_ALIGN(TOTAL_SLOTS * VCHIQ_SLOT_SIZE);
  	frag_mem_size = PAGE_ALIGN(g_fragments_size * MAX_FRAGMENTS);
-@@ -501,13 +567,14 @@ static int vchiq_platform_init(struct pl
+@@ -496,13 +562,14 @@ static int vchiq_platform_init(struct pl
  	}
  
  	WARN_ON(((unsigned long)slot_mem & (PAGE_SIZE - 1)) != 0);
@@ -206,7 +206,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	vchiq_slot_zero->platform_data[VCHIQ_PLATFORM_FRAGMENTS_COUNT_IDX] =
  		MAX_FRAGMENTS;
  
-@@ -541,7 +608,6 @@ static int vchiq_platform_init(struct pl
+@@ -536,7 +603,6 @@ static int vchiq_platform_init(struct pl
  	}
  
  	/* Send the base address of the slots to VideoCore */
@@ -214,7 +214,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	err = rpi_firmware_property(fw, RPI_FIRMWARE_VCHIQ_INIT,
  				    &channelbase, sizeof(channelbase));
  	if (err) {
-@@ -555,6 +621,8 @@ static int vchiq_platform_init(struct pl
+@@ -550,6 +616,8 @@ static int vchiq_platform_init(struct pl
  		return -ENXIO;
  	}
  
@@ -223,7 +223,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	vchiq_log_info(vchiq_arm_log_level, "vchiq_init - done (slots %pK, phys %pad)",
  		       vchiq_slot_zero, &slot_phys);
  
-@@ -1768,6 +1836,7 @@ void vchiq_platform_conn_state_changed(s
+@@ -1755,6 +1823,7 @@ void vchiq_platform_conn_state_changed(s
  static const struct of_device_id vchiq_of_match[] = {
  	{ .compatible = "brcm,bcm2835-vchiq", .data = &bcm2835_drvdata },
  	{ .compatible = "brcm,bcm2836-vchiq", .data = &bcm2836_drvdata },
@@ -231,7 +231,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	{},
  };
  MODULE_DEVICE_TABLE(of, vchiq_of_match);
-@@ -1800,22 +1869,8 @@ vchiq_register_child(struct platform_dev
+@@ -1787,22 +1856,8 @@ vchiq_register_child(struct platform_dev
  
  	child->dev.of_node = np;
  
diff --git a/target/linux/bcm27xx/patches-6.6/950-0298-staging-vchiq_arm-children-inherit-DMA-config.patch b/target/linux/bcm27xx/patches-6.6/950-0298-staging-vchiq_arm-children-inherit-DMA-config.patch
index b6fb2e9eda..87bea65fc7 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0298-staging-vchiq_arm-children-inherit-DMA-config.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0298-staging-vchiq_arm-children-inherit-DMA-config.patch
@@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 
 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
 +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -1869,8 +1869,18 @@ vchiq_register_child(struct platform_dev
+@@ -1856,8 +1856,18 @@ vchiq_register_child(struct platform_dev
  
  	child->dev.of_node = np;
  
diff --git a/target/linux/bcm27xx/patches-6.6/950-0299-staging-vchiq_arm-Usa-a-DMA-pool-for-small-bulks.patch b/target/linux/bcm27xx/patches-6.6/950-0299-staging-vchiq_arm-Usa-a-DMA-pool-for-small-bulks.patch
index bcd9dae853..162d333c61 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0299-staging-vchiq_arm-Usa-a-DMA-pool-for-small-bulks.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0299-staging-vchiq_arm-Usa-a-DMA-pool-for-small-bulks.patch
@@ -37,7 +37,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski at gmail.com>
  /* Override the default prefix, which would be vchiq_arm (from the filename) */
  #undef MODULE_PARAM_PREFIX
  #define MODULE_PARAM_PREFIX DEVICE_NAME "."
-@@ -133,6 +136,7 @@ struct vchiq_pagelist_info {
+@@ -128,6 +131,7 @@ struct vchiq_pagelist_info {
  	struct pagelist *pagelist;
  	size_t pagelist_buffer_size;
  	dma_addr_t dma_addr;
@@ -45,7 +45,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski at gmail.com>
  	enum dma_data_direction dma_dir;
  	unsigned int num_pages;
  	unsigned int pages_need_release;
-@@ -153,6 +157,7 @@ static void __iomem *g_regs;
+@@ -148,6 +152,7 @@ static void __iomem *g_regs;
   * of 32.
   */
  static unsigned int g_cache_line_size = 32;
@@ -53,7 +53,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski at gmail.com>
  static unsigned int g_use_36bit_addrs = 0;
  static unsigned int g_fragments_size;
  static char *g_fragments_base;
-@@ -195,8 +200,13 @@ cleanup_pagelistinfo(struct vchiq_instan
+@@ -190,8 +195,13 @@ cleanup_pagelistinfo(struct vchiq_instan
  	if (pagelistinfo->pages_need_release)
  		unpin_user_pages(pagelistinfo->pages, pagelistinfo->num_pages);
  
@@ -69,7 +69,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski at gmail.com>
  }
  
  static inline bool
-@@ -231,6 +241,7 @@ create_pagelist(struct vchiq_instance *i
+@@ -226,6 +236,7 @@ create_pagelist(struct vchiq_instance *i
  	u32 *addrs;
  	unsigned int num_pages, offset, i, k;
  	int actual_pages;
@@ -77,7 +77,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski at gmail.com>
  	size_t pagelist_size;
  	struct scatterlist *scatterlist, *sg;
  	int dma_buffers;
-@@ -260,8 +271,14 @@ create_pagelist(struct vchiq_instance *i
+@@ -255,8 +266,14 @@ create_pagelist(struct vchiq_instance *i
  	/* Allocate enough storage to hold the page pointers and the page
  	 * list
  	 */
@@ -94,7 +94,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski at gmail.com>
  
  	vchiq_log_trace(vchiq_arm_log_level, "%s - %pK", __func__, pagelist);
  
-@@ -282,6 +299,7 @@ create_pagelist(struct vchiq_instance *i
+@@ -277,6 +294,7 @@ create_pagelist(struct vchiq_instance *i
  	pagelistinfo->pagelist = pagelist;
  	pagelistinfo->pagelist_buffer_size = pagelist_size;
  	pagelistinfo->dma_addr = dma_addr;
@@ -102,7 +102,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski at gmail.com>
  	pagelistinfo->dma_dir =  (type == PAGELIST_WRITE) ?
  				  DMA_TO_DEVICE : DMA_FROM_DEVICE;
  	pagelistinfo->num_pages = num_pages;
-@@ -622,6 +640,13 @@ static int vchiq_platform_init(struct pl
+@@ -617,6 +635,13 @@ static int vchiq_platform_init(struct pl
  	}
  
  	g_dma_dev = dma_dev ?: dev;



From lede-commits at lists.infradead.org  Sun Nov 24 13:47:03 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 24 Nov 2024 16:47:03 -0500
Subject: [openwrt/openwrt]  kernel: bump 6.6 to 6.6.61
In-Reply-To: <173248482300.3776971.5020123807089694103@git-01.infra.openwrt.org>
References: <173248482300.3776971.5020123807089694103@git-01.infra.openwrt.org>
Message-ID: <mailman.5033.1732484830.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/b506c964a268dec3f7912288c77803b511213e1e

commit b506c964a268dec3f7912288c77803b511213e1e
Author: John Audia <therealgraysky at proton.me>
AuthorDate: Thu Nov 14 15:16:32 2024 -0500

    kernel: bump 6.6 to 6.6.61
    
    Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.61
    
    Manually rebased:
            bcm27xx/patches-6.6/950-0998-i2c-designware-Add-support-for-bus-clear-feature.patch
    
    All other patches automatically rebased.
    
    Build system: x86/64
    Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
    Run-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
    
    Signed-off-by: John Audia <therealgraysky at proton.me>
    Link: https://github.com/openwrt/openwrt/pull/16959
    (cherry picked from commit 487ca61f917f9308222faf481ad8be4e2cef0c90)
    Link: https://github.com/openwrt/openwrt/pull/17055
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 include/kernel-6.6                                     |  4 ++--
 ...-of-Add-devm_thermal_of_zone_register_with_pa.patch | 18 +++++++++---------
 ...port-for-all-the-downstream-rpi-sound-card-dr.patch |  2 +-
 ...2c-designware-Add-SMBUS-quick-command-support.patch |  2 +-
 ...2c-designware-Support-non-standard-bus-speeds.patch |  2 +-
 ...-designware-Add-support-for-bus-clear-feature.patch | 13 +++++++------
 ...net-stmmac-move-TX-timer-arm-after-DMA-enable.patch | 12 ++++++------
 .../hack-6.6/780-usb-net-MeigLink_modem_support.patch  |  4 ++--
 ...er-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch |  2 +-
 .../patches-6.6/901-arm-add-cmdline-override.patch     |  2 +-
 ...09-v6.10-arm64-dts-rockchip-Add-Radxa-ROCK-3C.patch |  2 +-
 ...v6.11-arm64-dts-rockchip-Add-Radxa-ZERO-3W-3E.patch |  2 +-
 ...14-v6.11-arm64-dts-rockchip-Add-Radxa-ROCK-3B.patch |  2 +-
 ...arm64-dts-rockchip-Add-support-for-NanoPi-R6S.patch |  2 +-
 ...arm64-dts-rockchip-Add-support-for-NanoPi-R6C.patch |  2 +-
 ....10-arm64-dts-rockchip-Add-ArmSom-Sige7-board.patch |  2 +-
 .../127-arm64-dts-rockchip-rk3566-Add-Nanopi-R3S.patch |  2 +-
 .../patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch    |  2 +-
 ...irmware-smccc-Export-revision-soc_id-function.patch |  2 +-
 19 files changed, 40 insertions(+), 39 deletions(-)

diff --git a/include/kernel-6.6 b/include/kernel-6.6
index 261a77428c..d870747f83 100644
--- a/include/kernel-6.6
+++ b/include/kernel-6.6
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.6 = .60
-LINUX_KERNEL_HASH-6.6.60 = 52f9e32d5082ab94253447fd66670d0c3bb765cfcb99b0bf61d1b8eae25952ef
+LINUX_VERSION-6.6 = .61
+LINUX_KERNEL_HASH-6.6.61 = 418fc24df9190f1c3ed9906dc3b7651c2a2eae5c1cb9ab4a6348e20faf047c0b
diff --git a/target/linux/airoha/patches-6.6/101-01-thermal-of-Add-devm_thermal_of_zone_register_with_pa.patch b/target/linux/airoha/patches-6.6/101-01-thermal-of-Add-devm_thermal_of_zone_register_with_pa.patch
index 889ec1123e..7836aef7dd 100644
--- a/target/linux/airoha/patches-6.6/101-01-thermal-of-Add-devm_thermal_of_zone_register_with_pa.patch
+++ b/target/linux/airoha/patches-6.6/101-01-thermal-of-Add-devm_thermal_of_zone_register_with_pa.patch
@@ -40,7 +40,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
 
 --- a/drivers/thermal/thermal_of.c
 +++ b/drivers/thermal/thermal_of.c
-@@ -249,7 +249,7 @@ static void thermal_of_parameters_init(s
+@@ -245,7 +245,7 @@ static void thermal_of_parameters_init(s
  {
  	int coef[2];
  	int ncoef = ARRAY_SIZE(coef);
@@ -49,7 +49,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  
  	tzp->no_hwmon = true;
  
-@@ -261,14 +261,11 @@ static void thermal_of_parameters_init(s
+@@ -257,14 +257,11 @@ static void thermal_of_parameters_init(s
  	 * thermal zone. Thus, we are considering only the first two
  	 * values as slope and offset.
  	 */
@@ -67,7 +67,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  }
  
  static struct device_node *thermal_of_zone_get_by_name(struct thermal_zone_device *tz)
-@@ -462,10 +459,15 @@ static void thermal_of_zone_unregister(s
+@@ -458,10 +455,15 @@ static void thermal_of_zone_unregister(s
   * zone properties and registers new thermal zone with those
   * properties.
   *
@@ -83,7 +83,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
   *
   * Return: a valid thermal zone structure pointer on success.
   * 	- EINVAL: if the device tree thermal description is malformed
-@@ -473,11 +475,11 @@ static void thermal_of_zone_unregister(s
+@@ -469,11 +471,11 @@ static void thermal_of_zone_unregister(s
   *	- Other negative errors are returned by the underlying called functions
   */
  static struct thermal_zone_device *thermal_of_zone_register(struct device_node *sensor, int id, void *data,
@@ -97,7 +97,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  	struct thermal_zone_device_ops *of_ops;
  	struct device_node *np;
  	int delay, pdelay;
-@@ -509,7 +511,7 @@ static struct thermal_zone_device *therm
+@@ -508,7 +510,7 @@ static struct thermal_zone_device *therm
  		goto out_kfree_trips;
  	}
  
@@ -106,7 +106,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  
  	of_ops->bind = thermal_of_bind;
  	of_ops->unbind = thermal_of_unbind;
-@@ -517,7 +519,7 @@ static struct thermal_zone_device *therm
+@@ -516,7 +518,7 @@ static struct thermal_zone_device *therm
  	mask = GENMASK_ULL((ntrips) - 1, 0);
  
  	tz = thermal_zone_device_register_with_trips(np->name, trips, ntrips,
@@ -115,7 +115,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  						     pdelay, delay);
  	if (IS_ERR(tz)) {
  		ret = PTR_ERR(tz);
-@@ -572,6 +574,7 @@ static int devm_thermal_of_zone_match(st
+@@ -571,6 +573,7 @@ static int devm_thermal_of_zone_match(st
  struct thermal_zone_device *devm_thermal_of_zone_register(struct device *dev, int sensor_id, void *data,
  							  const struct thermal_zone_device_ops *ops)
  {
@@ -123,7 +123,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  	struct thermal_zone_device **ptr, *tzd;
  
  	ptr = devres_alloc(devm_thermal_of_zone_release, sizeof(*ptr),
-@@ -579,7 +582,7 @@ struct thermal_zone_device *devm_thermal
+@@ -578,7 +581,7 @@ struct thermal_zone_device *devm_thermal
  	if (!ptr)
  		return ERR_PTR(-ENOMEM);
  
@@ -132,7 +132,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  	if (IS_ERR(tzd)) {
  		devres_free(ptr);
  		return tzd;
-@@ -593,6 +596,46 @@ struct thermal_zone_device *devm_thermal
+@@ -592,6 +595,46 @@ struct thermal_zone_device *devm_thermal
  EXPORT_SYMBOL_GPL(devm_thermal_of_zone_register);
  
  /**
diff --git a/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch b/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch
index 8685508ddf..395ec0797c 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch
@@ -17583,7 +17583,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	 * For devices with more than one control interface, we assume the
 --- a/sound/usb/quirks.c
 +++ b/sound/usb/quirks.c
-@@ -2195,6 +2195,8 @@ static const struct usb_audio_quirk_flag
+@@ -2197,6 +2197,8 @@ static const struct usb_audio_quirk_flag
  		   QUIRK_FLAG_ALIGN_TRANSFER),
  	DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */
  		   QUIRK_FLAG_ALIGN_TRANSFER),
diff --git a/target/linux/bcm27xx/patches-6.6/950-0535-i2c-designware-Add-SMBUS-quick-command-support.patch b/target/linux/bcm27xx/patches-6.6/950-0535-i2c-designware-Add-SMBUS-quick-command-support.patch
index ed57365598..e588003e6e 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0535-i2c-designware-Add-SMBUS-quick-command-support.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0535-i2c-designware-Add-SMBUS-quick-command-support.patch
@@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 
 --- a/drivers/i2c/busses/i2c-designware-core.h
 +++ b/drivers/i2c/busses/i2c-designware-core.h
-@@ -123,7 +123,9 @@
+@@ -124,7 +124,9 @@
  
  #define DW_IC_ERR_TX_ABRT			0x1
  
diff --git a/target/linux/bcm27xx/patches-6.6/950-0864-i2c-designware-Support-non-standard-bus-speeds.patch b/target/linux/bcm27xx/patches-6.6/950-0864-i2c-designware-Support-non-standard-bus-speeds.patch
index 0e1cd5bf2a..90a64e8f2b 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0864-i2c-designware-Support-non-standard-bus-speeds.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0864-i2c-designware-Support-non-standard-bus-speeds.patch
@@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  
 --- a/drivers/i2c/busses/i2c-designware-core.h
 +++ b/drivers/i2c/busses/i2c-designware-core.h
-@@ -292,6 +292,7 @@ struct dw_i2c_dev {
+@@ -293,6 +293,7 @@ struct dw_i2c_dev {
  	u16			fp_lcnt;
  	u16			hs_hcnt;
  	u16			hs_lcnt;
diff --git a/target/linux/bcm27xx/patches-6.6/950-0998-i2c-designware-Add-support-for-bus-clear-feature.patch b/target/linux/bcm27xx/patches-6.6/950-0998-i2c-designware-Add-support-for-bus-clear-feature.patch
index 5eb4bcc5d2..691484d46e 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0998-i2c-designware-Add-support-for-bus-clear-feature.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0998-i2c-designware-Add-support-for-bus-clear-feature.patch
@@ -33,7 +33,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  };
  
  static int dw_reg_read(void *context, unsigned int reg, unsigned int *val)
-@@ -607,8 +609,16 @@ int i2c_dw_wait_bus_not_busy(struct dw_i
+@@ -609,8 +611,16 @@ int i2c_dw_wait_bus_not_busy(struct dw_i
  int i2c_dw_handle_tx_abort(struct dw_i2c_dev *dev)
  {
  	unsigned long abort_source = dev->abort_source;
@@ -50,7 +50,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	if (abort_source & DW_IC_TX_ABRT_NOACK) {
  		for_each_set_bit(i, &abort_source, ARRAY_SIZE(abort_sources))
  			dev_dbg(dev->dev,
-@@ -623,6 +633,8 @@ int i2c_dw_handle_tx_abort(struct dw_i2c
+@@ -625,6 +635,8 @@ int i2c_dw_handle_tx_abort(struct dw_i2c
  		return -EAGAIN;
  	else if (abort_source & DW_IC_TX_ABRT_GCALL_READ)
  		return -EINVAL; /* wrong msgs[] data */
@@ -74,7 +74,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  #define DW_IC_COMP_TYPE				0xfc
  #define DW_IC_COMP_TYPE_VALUE			0x44570140 /* "DW" + 0x0140 */
  
-@@ -111,12 +114,14 @@
+@@ -111,6 +114,7 @@
  
  #define DW_IC_ENABLE_ENABLE			BIT(0)
  #define DW_IC_ENABLE_ABORT			BIT(1)
@@ -82,14 +82,15 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  
  #define DW_IC_STATUS_ACTIVITY			BIT(0)
  #define DW_IC_STATUS_TFE			BIT(2)
- #define DW_IC_STATUS_RFNE			BIT(3)
+@@ -118,6 +122,7 @@
  #define DW_IC_STATUS_MASTER_ACTIVITY		BIT(5)
  #define DW_IC_STATUS_SLAVE_ACTIVITY		BIT(6)
+ #define DW_IC_STATUS_MASTER_HOLD_TX_FIFO_EMPTY	BIT(7)
 +#define DW_IC_STATUS_SDA_STUCK_NOT_RECOVERED	BIT(11)
  
  #define DW_IC_SDA_HOLD_RX_SHIFT			16
  #define DW_IC_SDA_HOLD_RX_MASK			GENMASK(23, 16)
-@@ -164,6 +169,7 @@
+@@ -165,6 +170,7 @@
  #define ABRT_SLAVE_FLUSH_TXFIFO			13
  #define ABRT_SLAVE_ARBLOST			14
  #define ABRT_SLAVE_RD_INTX			15
@@ -97,7 +98,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  
  #define DW_IC_TX_ABRT_7B_ADDR_NOACK		BIT(ABRT_7B_ADDR_NOACK)
  #define DW_IC_TX_ABRT_10ADDR1_NOACK		BIT(ABRT_10ADDR1_NOACK)
-@@ -179,6 +185,7 @@
+@@ -180,6 +186,7 @@
  #define DW_IC_RX_ABRT_SLAVE_RD_INTX		BIT(ABRT_SLAVE_RD_INTX)
  #define DW_IC_RX_ABRT_SLAVE_ARBLOST		BIT(ABRT_SLAVE_ARBLOST)
  #define DW_IC_RX_ABRT_SLAVE_FLUSH_TXFIFO	BIT(ABRT_SLAVE_FLUSH_TXFIFO)
diff --git a/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch b/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch
index 66a9251438..bd61343e0e 100644
--- a/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch
+++ b/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch
@@ -42,7 +42,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  
  	u64_stats_update_begin(&txq_stats->napi_syncp);
  	u64_stats_add(&txq_stats->napi.tx_packets, tx_packets);
-@@ -5602,6 +5606,7 @@ static int stmmac_napi_poll_tx(struct na
+@@ -5603,6 +5607,7 @@ static int stmmac_napi_poll_tx(struct na
  		container_of(napi, struct stmmac_channel, tx_napi);
  	struct stmmac_priv *priv = ch->priv_data;
  	struct stmmac_txq_stats *txq_stats;
@@ -50,7 +50,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	u32 chan = ch->index;
  	int work_done;
  
-@@ -5610,7 +5615,7 @@ static int stmmac_napi_poll_tx(struct na
+@@ -5611,7 +5616,7 @@ static int stmmac_napi_poll_tx(struct na
  	u64_stats_inc(&txq_stats->napi.poll);
  	u64_stats_update_end(&txq_stats->napi_syncp);
  
@@ -59,7 +59,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	work_done = min(work_done, budget);
  
  	if (work_done < budget && napi_complete_done(napi, work_done)) {
-@@ -5621,6 +5626,10 @@ static int stmmac_napi_poll_tx(struct na
+@@ -5622,6 +5627,10 @@ static int stmmac_napi_poll_tx(struct na
  		spin_unlock_irqrestore(&ch->lock, flags);
  	}
  
@@ -70,7 +70,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	return work_done;
  }
  
-@@ -5629,6 +5638,7 @@ static int stmmac_napi_poll_rxtx(struct
+@@ -5630,6 +5639,7 @@ static int stmmac_napi_poll_rxtx(struct
  	struct stmmac_channel *ch =
  		container_of(napi, struct stmmac_channel, rxtx_napi);
  	struct stmmac_priv *priv = ch->priv_data;
@@ -78,7 +78,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	int rx_done, tx_done, rxtx_done;
  	struct stmmac_rxq_stats *rxq_stats;
  	struct stmmac_txq_stats *txq_stats;
-@@ -5644,7 +5654,7 @@ static int stmmac_napi_poll_rxtx(struct
+@@ -5645,7 +5655,7 @@ static int stmmac_napi_poll_rxtx(struct
  	u64_stats_inc(&txq_stats->napi.poll);
  	u64_stats_update_end(&txq_stats->napi_syncp);
  
@@ -87,7 +87,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	tx_done = min(tx_done, budget);
  
  	rx_done = stmmac_rx_zc(priv, budget, chan);
-@@ -5669,6 +5679,10 @@ static int stmmac_napi_poll_rxtx(struct
+@@ -5670,6 +5680,10 @@ static int stmmac_napi_poll_rxtx(struct
  		spin_unlock_irqrestore(&ch->lock, flags);
  	}
  
diff --git a/target/linux/generic/hack-6.6/780-usb-net-MeigLink_modem_support.patch b/target/linux/generic/hack-6.6/780-usb-net-MeigLink_modem_support.patch
index e80dfbeb0f..66c58dba64 100644
--- a/target/linux/generic/hack-6.6/780-usb-net-MeigLink_modem_support.patch
+++ b/target/linux/generic/hack-6.6/780-usb-net-MeigLink_modem_support.patch
@@ -43,7 +43,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
  
  #define QUECTEL_VENDOR_ID			0x2c7c
  /* These Quectel products use Quectel's vendor ID */
-@@ -1159,6 +1164,11 @@ static const struct usb_device_id option
+@@ -1160,6 +1165,11 @@ static const struct usb_device_id option
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
  	  .driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
@@ -55,7 +55,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
  	/* Quectel products using Qualcomm vendor ID */
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
-@@ -1200,6 +1210,11 @@ static const struct usb_device_id option
+@@ -1201,6 +1211,11 @@ static const struct usb_device_id option
  	  .driver_info = ZLP },
  	{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
  	  .driver_info = RSVD(4) },
diff --git a/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch b/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
index f27581d3e9..cfa3975c38 100644
--- a/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
+++ b/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
@@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/net/netfilter/nf_tables_api.c
 +++ b/net/netfilter/nf_tables_api.c
-@@ -8376,7 +8376,7 @@ static int nft_register_flowtable_net_ho
+@@ -8377,7 +8377,7 @@ static int nft_register_flowtable_net_ho
  		err = flowtable->data.type->setup(&flowtable->data,
  						  hook->ops.dev,
  						  FLOW_BLOCK_BIND);
diff --git a/target/linux/mediatek/patches-6.6/901-arm-add-cmdline-override.patch b/target/linux/mediatek/patches-6.6/901-arm-add-cmdline-override.patch
index 034826253d..4f4fb9f23e 100644
--- a/target/linux/mediatek/patches-6.6/901-arm-add-cmdline-override.patch
+++ b/target/linux/mediatek/patches-6.6/901-arm-add-cmdline-override.patch
@@ -37,7 +37,7 @@
  	 * CONFIG_CMDLINE is meant to be a default in case nothing else
 --- a/arch/arm64/Kconfig
 +++ b/arch/arm64/Kconfig
-@@ -2308,6 +2308,14 @@ config CMDLINE_FORCE
+@@ -2309,6 +2309,14 @@ config CMDLINE_FORCE
  
  endchoice
  
diff --git a/target/linux/rockchip/patches-6.6/009-v6.10-arm64-dts-rockchip-Add-Radxa-ROCK-3C.patch b/target/linux/rockchip/patches-6.6/009-v6.10-arm64-dts-rockchip-Add-Radxa-ROCK-3C.patch
index 9901d9fff0..164b65bdf5 100644
--- a/target/linux/rockchip/patches-6.6/009-v6.10-arm64-dts-rockchip-Add-Radxa-ROCK-3C.patch
+++ b/target/linux/rockchip/patches-6.6/009-v6.10-arm64-dts-rockchip-Add-Radxa-ROCK-3C.patch
@@ -30,7 +30,7 @@ Signed-off-by: Heiko Stuebner <heiko at sntech.de>
 
 --- a/arch/arm64/boot/dts/rockchip/Makefile
 +++ b/arch/arm64/boot/dts/rockchip/Makefile
-@@ -81,6 +81,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-qu
+@@ -82,6 +82,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-qu
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-b.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-radxa-cm3-io.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-roc-pc.dtb
diff --git a/target/linux/rockchip/patches-6.6/011-v6.11-arm64-dts-rockchip-Add-Radxa-ZERO-3W-3E.patch b/target/linux/rockchip/patches-6.6/011-v6.11-arm64-dts-rockchip-Add-Radxa-ZERO-3W-3E.patch
index 746078cf9e..19e6377ad1 100644
--- a/target/linux/rockchip/patches-6.6/011-v6.11-arm64-dts-rockchip-Add-Radxa-ZERO-3W-3E.patch
+++ b/target/linux/rockchip/patches-6.6/011-v6.11-arm64-dts-rockchip-Add-Radxa-ZERO-3W-3E.patch
@@ -32,7 +32,7 @@ Signed-off-by: Heiko Stuebner <heiko at sntech.de>
 
 --- a/arch/arm64/boot/dts/rockchip/Makefile
 +++ b/arch/arm64/boot/dts/rockchip/Makefile
-@@ -80,6 +80,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pi
+@@ -81,6 +81,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pi
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-a.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-b.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-radxa-cm3-io.dtb
diff --git a/target/linux/rockchip/patches-6.6/014-v6.11-arm64-dts-rockchip-Add-Radxa-ROCK-3B.patch b/target/linux/rockchip/patches-6.6/014-v6.11-arm64-dts-rockchip-Add-Radxa-ROCK-3B.patch
index e93a055c3e..4b2897f524 100644
--- a/target/linux/rockchip/patches-6.6/014-v6.11-arm64-dts-rockchip-Add-Radxa-ROCK-3B.patch
+++ b/target/linux/rockchip/patches-6.6/014-v6.11-arm64-dts-rockchip-Add-Radxa-ROCK-3B.patch
@@ -21,7 +21,7 @@ Signed-off-by: Heiko Stuebner <heiko at sntech.de>
 
 --- a/arch/arm64/boot/dts/rockchip/Makefile
 +++ b/arch/arm64/boot/dts/rockchip/Makefile
-@@ -100,6 +100,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-od
+@@ -101,6 +101,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-od
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-radxa-e25.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-roc-pc.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-rock-3a.dtb
diff --git a/target/linux/rockchip/patches-6.6/053-v6.9-arm64-dts-rockchip-Add-support-for-NanoPi-R6S.patch b/target/linux/rockchip/patches-6.6/053-v6.9-arm64-dts-rockchip-Add-support-for-NanoPi-R6S.patch
index d0243023fc..f31f38ac9d 100644
--- a/target/linux/rockchip/patches-6.6/053-v6.9-arm64-dts-rockchip-Add-support-for-NanoPi-R6S.patch
+++ b/target/linux/rockchip/patches-6.6/053-v6.9-arm64-dts-rockchip-Add-support-for-NanoPi-R6S.patch
@@ -17,7 +17,7 @@ Signed-off-by: Heiko Stuebner <heiko at sntech.de>
 
 --- a/arch/arm64/boot/dts/rockchip/Makefile
 +++ b/arch/arm64/boot/dts/rockchip/Makefile
-@@ -108,4 +108,5 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-na
+@@ -109,4 +109,5 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-na
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-indiedroid-nova.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-khadas-edge2.dtb
diff --git a/target/linux/rockchip/patches-6.6/054-v6.9-arm64-dts-rockchip-Add-support-for-NanoPi-R6C.patch b/target/linux/rockchip/patches-6.6/054-v6.9-arm64-dts-rockchip-Add-support-for-NanoPi-R6C.patch
index 7e2b083cf8..b63c01338f 100644
--- a/target/linux/rockchip/patches-6.6/054-v6.9-arm64-dts-rockchip-Add-support-for-NanoPi-R6C.patch
+++ b/target/linux/rockchip/patches-6.6/054-v6.9-arm64-dts-rockchip-Add-support-for-NanoPi-R6C.patch
@@ -17,7 +17,7 @@ Signed-off-by: Heiko Stuebner <heiko at sntech.de>
 
 --- a/arch/arm64/boot/dts/rockchip/Makefile
 +++ b/arch/arm64/boot/dts/rockchip/Makefile
-@@ -109,4 +109,5 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-ro
+@@ -110,4 +110,5 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-ro
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-indiedroid-nova.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-khadas-edge2.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6s.dtb
diff --git a/target/linux/rockchip/patches-6.6/056-01-v6.10-arm64-dts-rockchip-Add-ArmSom-Sige7-board.patch b/target/linux/rockchip/patches-6.6/056-01-v6.10-arm64-dts-rockchip-Add-ArmSom-Sige7-board.patch
index bc1845b0d3..c60b979109 100644
--- a/target/linux/rockchip/patches-6.6/056-01-v6.10-arm64-dts-rockchip-Add-ArmSom-Sige7-board.patch
+++ b/target/linux/rockchip/patches-6.6/056-01-v6.10-arm64-dts-rockchip-Add-ArmSom-Sige7-board.patch
@@ -44,7 +44,7 @@ Signed-off-by: Heiko Stuebner <heiko at sntech.de>
 
 --- a/arch/arm64/boot/dts/rockchip/Makefile
 +++ b/arch/arm64/boot/dts/rockchip/Makefile
-@@ -101,6 +101,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-ra
+@@ -102,6 +102,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-ra
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-roc-pc.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-rock-3a.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-rock-3b.dtb
diff --git a/target/linux/rockchip/patches-6.6/127-arm64-dts-rockchip-rk3566-Add-Nanopi-R3S.patch b/target/linux/rockchip/patches-6.6/127-arm64-dts-rockchip-rk3566-Add-Nanopi-R3S.patch
index ff2ad5bb9a..899c85e0d2 100644
--- a/target/linux/rockchip/patches-6.6/127-arm64-dts-rockchip-rk3566-Add-Nanopi-R3S.patch
+++ b/target/linux/rockchip/patches-6.6/127-arm64-dts-rockchip-rk3566-Add-Nanopi-R3S.patch
@@ -557,7 +557,7 @@
 +};
 --- a/arch/arm64/boot/dts/rockchip/Makefile
 +++ b/arch/arm64/boot/dts/rockchip/Makefile
-@@ -75,6 +75,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-an
+@@ -76,6 +76,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-an
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg353v.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg353vs.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg503.dtb
diff --git a/target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch b/target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch
index 25849e7c26..3191b1d9e3 100644
--- a/target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch
+++ b/target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch
@@ -19,7 +19,7 @@ Signed-off-by: Matteo Croce <mcroce at microsoft.com>
  
  	if (priv->dma_cap.host_dma_width <= 32)
  		gfp |= GFP_DMA32;
-@@ -4685,7 +4685,7 @@ static inline void stmmac_rx_refill(stru
+@@ -4686,7 +4686,7 @@ static inline void stmmac_rx_refill(stru
  	struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue];
  	int dirty = stmmac_rx_dirty(priv, queue);
  	unsigned int entry = rx_q->dirty_rx;
diff --git a/target/linux/sunxi/patches-6.6/017-v6.10-firmware-smccc-Export-revision-soc_id-function.patch b/target/linux/sunxi/patches-6.6/017-v6.10-firmware-smccc-Export-revision-soc_id-function.patch
index 538484dd82..aacd0ba906 100644
--- a/target/linux/sunxi/patches-6.6/017-v6.10-firmware-smccc-Export-revision-soc_id-function.patch
+++ b/target/linux/sunxi/patches-6.6/017-v6.10-firmware-smccc-Export-revision-soc_id-function.patch
@@ -22,7 +22,7 @@ Signed-off-by: Viresh Kumar <viresh.kumar at linaro.org>
 
 --- a/drivers/firmware/smccc/smccc.c
 +++ b/drivers/firmware/smccc/smccc.c
-@@ -69,6 +69,7 @@ s32 arm_smccc_get_soc_id_revision(void)
+@@ -65,6 +65,7 @@ s32 arm_smccc_get_soc_id_revision(void)
  {
  	return smccc_soc_id_revision;
  }



From lede-commits at lists.infradead.org  Sun Nov 24 13:53:03 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 24 Nov 2024 16:53:03 -0500
Subject: [openwrt/openwrt]  CI: labeler: Add stm32 target
In-Reply-To: <173248518343.3801834.7989139145229443210@git-01.infra.openwrt.org>
References: <173248518343.3801834.7989139145229443210@git-01.infra.openwrt.org>
Message-ID: <mailman.5034.1732485186.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/eb7aa07a0e23e931579de07e0dbdec735b8e35b2

commit eb7aa07a0e23e931579de07e0dbdec735b8e35b2
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sun Nov 24 14:52:22 2024 +0100

    CI: labeler: Add stm32 target
    
    Add a label for changes in the stm32 target.
    
    Fixes: 851e7f77e424 ("stm32: add new stm32 target")
    Link: https://github.com/openwrt/openwrt/pull/17058
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 .github/labeler.yml | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/.github/labeler.yml b/.github/labeler.yml
index ede4bb5a02..129357df2b 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -180,6 +180,13 @@
 - changed-files:
   - any-glob-to-any-file:
     - "target/linux/starfive/**"
+"target/stm32":
+- changed-files:
+  - any-glob-to-any-file:
+    - "target/linux/stm32/**"
+    - "package/boot/arm-trusted-firmware-stm32/**"
+    - "package/boot/optee-os-stm32/**"
+    - "package/boot/uboot-stm32/**"
 "target/sunxi":
 - changed-files:
   - any-glob-to-any-file:



From lede-commits at lists.infradead.org  Sun Nov 24 13:53:05 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 24 Nov 2024 16:53:05 -0500
Subject: [openwrt/openwrt]  kernel: usb: kmod-usb-audio: Fix dependency
In-Reply-To: <173248518343.3801834.7989139145229443210@git-01.infra.openwrt.org>
References: <173248518343.3801834.7989139145229443210@git-01.infra.openwrt.org>
Message-ID: <mailman.5037.1732485187.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/b7dd70a0d708b7f8fe9f5c95d09013245e3dcb6b

commit b7dd70a0d708b7f8fe9f5c95d09013245e3dcb6b
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sun Nov 24 14:57:19 2024 +0100

    kernel: usb: kmod-usb-audio: Fix dependency
    
    Change the dependency on the kmod-media-controller from depends to
    select.
    
    Fixes: 109592524663 ("kernel: add kmod-media-controller dependency for kmod-usb-audio")
    Link: https://github.com/openwrt/openwrt/pull/17058
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/kernel/linux/modules/usb.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/kernel/linux/modules/usb.mk b/package/kernel/linux/modules/usb.mk
index 466c547e8a..734df050cd 100644
--- a/package/kernel/linux/modules/usb.mk
+++ b/package/kernel/linux/modules/usb.mk
@@ -576,7 +576,7 @@ define KernelPackage/usb-audio
 	CONFIG_SND_USB_AUDIO
   $(call AddDepends/usb)
   $(call AddDepends/sound)
-  DEPENDS+=kmod-media-controller
+  DEPENDS+=+kmod-media-controller
   FILES:= \
 	$(LINUX_DIR)/sound/usb/snd-usbmidi-lib.ko \
 	$(LINUX_DIR)/sound/usb/snd-usb-audio.ko



From lede-commits at lists.infradead.org  Sun Nov 24 13:53:04 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 24 Nov 2024 16:53:04 -0500
Subject: [openwrt/openwrt]  stm32: Remove unnecessary kernel options
In-Reply-To: <173248518343.3801834.7989139145229443210@git-01.infra.openwrt.org>
References: <173248518343.3801834.7989139145229443210@git-01.infra.openwrt.org>
Message-ID: <mailman.5038.1732485188.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/ea2c860225b8bbda98ed0526dc670825866835b6

commit ea2c860225b8bbda98ed0526dc670825866835b6
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sun Nov 24 14:53:47 2024 +0100

    stm32: Remove unnecessary kernel options
    
    These options are filtered out since some weeks, remove them also from
    the new stm32 target.
    
    Fixes: 851e7f77e424 ("stm32: add new stm32 target")
    Link: https://github.com/openwrt/openwrt/pull/17058
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/stm32/stm32mp1/config-6.6 | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/target/linux/stm32/stm32mp1/config-6.6 b/target/linux/stm32/stm32mp1/config-6.6
index 946649ef9b..e19abcc7dc 100644
--- a/target/linux/stm32/stm32mp1/config-6.6
+++ b/target/linux/stm32/stm32mp1/config-6.6
@@ -70,8 +70,6 @@ CONFIG_BOUNCE=y
 CONFIG_BUFFER_HEAD=y
 # CONFIG_CACHE_L2X0 is not set
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLKSRC_STM32=y
@@ -189,7 +187,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 # CONFIG_FW_LOADER_USER_HELPER is not set
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
 CONFIG_GENERIC_BUG=y



From lede-commits at lists.infradead.org  Sun Nov 24 14:29:47 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 24 Nov 2024 17:29:47 -0500
Subject: [openwrt/openwrt]  ramips: mt76x8: disable unused Ralink systick
 driver
In-Reply-To: <173248738711.3860918.13920308297581015711@git-01.infra.openwrt.org>
References: <173248738711.3860918.13920308297581015711@git-01.infra.openwrt.org>
Message-ID: <mailman.5053.1732487727.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/0c57510cedeff9caf795930ff86a436aa54bcc6d

commit 0c57510cedeff9caf795930ff86a436aa54bcc6d
Author: Shiji Yang <yangshiji66 at qq.com>
AuthorDate: Sun Nov 3 12:30:21 2024 +0800

    ramips: mt76x8: disable unused Ralink systick driver
    
    The mt76x8 series SoCs use the MIPS generic systick timer. Sync the
    upstream Ralink systick driver changes and disable it for mt76x8
    target to reduce the kernel size.
    
    Signed-off-by: Shiji Yang <yangshiji66 at qq.com>
    Link: https://github.com/openwrt/openwrt/pull/16844
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/ramips/mt7620/config-6.6              |   2 +-
 target/linux/ramips/mt76x8/config-6.6              |   6 +-
 ...-drivers-ralink-Add-Ralink-System-Tick-Co.patch | 384 +++++++++++++++++++++
 ...t_mode-to-enable-disable-the-cevt-r4k-irq.patch |  36 +-
 ...312-MIPS-ralink-add-cpu-frequency-scaling.patch |  35 +-
 ...o-not-select-illegal-access-driver-by-def.patch |   4 +-
 target/linux/ramips/rt305x/config-6.6              |   2 +-
 7 files changed, 426 insertions(+), 43 deletions(-)

diff --git a/target/linux/ramips/mt7620/config-6.6 b/target/linux/ramips/mt7620/config-6.6
index edd64a642c..3e1ef761e0 100644
--- a/target/linux/ramips/mt7620/config-6.6
+++ b/target/linux/ramips/mt7620/config-6.6
@@ -8,7 +8,6 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_CEVT_R4K=y
 CONFIG_CEVT_SYSTICK_QUIRK=y
-CONFIG_CLKEVT_RT3352=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLK_MTMIPS=y
 CONFIG_CLONE_BACKWARDS=y
@@ -180,6 +179,7 @@ CONFIG_PINCTRL_MTK_MTMIPS=y
 CONFIG_PREEMPT_NONE_BUILD=y
 CONFIG_PTP_1588_CLOCK_OPTIONAL=y
 CONFIG_RALINK=y
+CONFIG_RALINK_TIMER=y
 CONFIG_RALINK_WDT=y
 CONFIG_RANDSTRUCT_NONE=y
 CONFIG_RATIONAL=y
diff --git a/target/linux/ramips/mt76x8/config-6.6 b/target/linux/ramips/mt76x8/config-6.6
index 31dc4a980f..f40d18efcc 100644
--- a/target/linux/ramips/mt76x8/config-6.6
+++ b/target/linux/ramips/mt76x8/config-6.6
@@ -6,9 +6,6 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_CEVT_R4K=y
-CONFIG_CEVT_SYSTICK_QUIRK=y
-CONFIG_CLKEVT_RT3352=y
-CONFIG_CLKSRC_MMIO=y
 CONFIG_CLK_MTMIPS=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE="rootfstype=squashfs,jffs2"
@@ -173,6 +170,7 @@ CONFIG_PINCTRL_MTK_MTMIPS=y
 CONFIG_PREEMPT_NONE_BUILD=y
 CONFIG_PTP_1588_CLOCK_OPTIONAL=y
 CONFIG_RALINK=y
+# CONFIG_RALINK_TIMER is not set
 # CONFIG_RALINK_WDT is not set
 CONFIG_RANDSTRUCT_NONE=y
 CONFIG_RATIONAL=y
@@ -215,8 +213,6 @@ CONFIG_SYS_SUPPORTS_MIPS16=y
 CONFIG_SYS_SUPPORTS_ZBOOT=y
 CONFIG_TARGET_ISA_REV=2
 CONFIG_TICK_CPU_ACCOUNTING=y
-CONFIG_TIMER_OF=y
-CONFIG_TIMER_PROBE=y
 CONFIG_TINY_SRCU=y
 CONFIG_USB_SUPPORT=y
 CONFIG_USE_OF=y
diff --git a/target/linux/ramips/patches-6.6/001-v6.13-clocksource-drivers-ralink-Add-Ralink-System-Tick-Co.patch b/target/linux/ramips/patches-6.6/001-v6.13-clocksource-drivers-ralink-Add-Ralink-System-Tick-Co.patch
new file mode 100644
index 0000000000..cd2a90826c
--- /dev/null
+++ b/target/linux/ramips/patches-6.6/001-v6.13-clocksource-drivers-ralink-Add-Ralink-System-Tick-Co.patch
@@ -0,0 +1,384 @@
+From 57cbfd333c9d65bfab1a06b49c75536ee28dc2ce Mon Sep 17 00:00:00 2001
+From: Sergio Paracuellos <sergio.paracuellos at gmail.com>
+Date: Mon, 28 Oct 2024 21:36:43 +0100
+Subject: clocksource/drivers/ralink: Add Ralink System Tick Counter driver
+
+System Tick Counter is present on Ralink SoCs RT3352 and MT7620. This
+driver has been in 'arch/mips/ralink' directory since the beggining of
+Ralink architecture support. However, it can be moved into a more proper
+place in 'drivers/clocksource'. Hence add it here adding also support for
+compile test targets and reducing LOC in architecture code folder.
+
+Signed-off-by: Sergio Paracuellos <sergio.paracuellos at gmail.com>
+Link: https://lore.kernel.org/r/20241028203643.191268-2-sergio.paracuellos at gmail.com
+Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
+---
+ arch/mips/ralink/Kconfig           |   7 --
+ arch/mips/ralink/Makefile          |   2 -
+ arch/mips/ralink/cevt-rt3352.c     | 153 -------------------------------------
+ drivers/clocksource/Kconfig        |   9 +++
+ drivers/clocksource/Makefile       |   1 +
+ drivers/clocksource/timer-ralink.c | 150 ++++++++++++++++++++++++++++++++++++
+ 6 files changed, 160 insertions(+), 162 deletions(-)
+ delete mode 100644 arch/mips/ralink/cevt-rt3352.c
+ create mode 100644 drivers/clocksource/timer-ralink.c
+
+--- a/arch/mips/ralink/Kconfig
++++ b/arch/mips/ralink/Kconfig
+@@ -1,13 +1,6 @@
+ # SPDX-License-Identifier: GPL-2.0
+ if RALINK
+ 
+-config CLKEVT_RT3352
+-	bool
+-	depends on SOC_RT305X || SOC_MT7620
+-	default y
+-	select TIMER_OF
+-	select CLKSRC_MMIO
+-
+ config RALINK_ILL_ACC
+ 	bool
+ 	depends on SOC_RT305X
+--- a/arch/mips/ralink/Makefile
++++ b/arch/mips/ralink/Makefile
+@@ -10,8 +10,6 @@ ifndef CONFIG_MIPS_GIC
+ 	obj-y += clk.o timer.o
+ endif
+ 
+-obj-$(CONFIG_CLKEVT_RT3352) += cevt-rt3352.o
+-
+ obj-$(CONFIG_RALINK_ILL_ACC) += ill_acc.o
+ 
+ obj-$(CONFIG_IRQ_INTC) += irq.o
+--- a/arch/mips/ralink/cevt-rt3352.c
++++ /dev/null
+@@ -1,153 +0,0 @@
+-/*
+- * This file is subject to the terms and conditions of the GNU General Public
+- * License.  See the file "COPYING" in the main directory of this archive
+- * for more details.
+- *
+- * Copyright (C) 2013 by John Crispin <john at phrozen.org>
+- */
+-
+-#include <linux/clockchips.h>
+-#include <linux/clocksource.h>
+-#include <linux/interrupt.h>
+-#include <linux/reset.h>
+-#include <linux/init.h>
+-#include <linux/time.h>
+-#include <linux/of.h>
+-#include <linux/of_irq.h>
+-#include <linux/of_address.h>
+-
+-#include <asm/mach-ralink/ralink_regs.h>
+-
+-#define SYSTICK_FREQ		(50 * 1000)
+-
+-#define SYSTICK_CONFIG		0x00
+-#define SYSTICK_COMPARE		0x04
+-#define SYSTICK_COUNT		0x08
+-
+-/* route systick irq to mips irq 7 instead of the r4k-timer */
+-#define CFG_EXT_STK_EN		0x2
+-/* enable the counter */
+-#define CFG_CNT_EN		0x1
+-
+-struct systick_device {
+-	void __iomem *membase;
+-	struct clock_event_device dev;
+-	int irq_requested;
+-	int freq_scale;
+-};
+-
+-static int systick_set_oneshot(struct clock_event_device *evt);
+-static int systick_shutdown(struct clock_event_device *evt);
+-
+-static int systick_next_event(unsigned long delta,
+-				struct clock_event_device *evt)
+-{
+-	struct systick_device *sdev;
+-	u32 count;
+-
+-	sdev = container_of(evt, struct systick_device, dev);
+-	count = ioread32(sdev->membase + SYSTICK_COUNT);
+-	count = (count + delta) % SYSTICK_FREQ;
+-	iowrite32(count, sdev->membase + SYSTICK_COMPARE);
+-
+-	return 0;
+-}
+-
+-static void systick_event_handler(struct clock_event_device *dev)
+-{
+-	/* noting to do here */
+-}
+-
+-static irqreturn_t systick_interrupt(int irq, void *dev_id)
+-{
+-	struct clock_event_device *dev = (struct clock_event_device *) dev_id;
+-
+-	dev->event_handler(dev);
+-
+-	return IRQ_HANDLED;
+-}
+-
+-static struct systick_device systick = {
+-	.dev = {
+-		/*
+-		 * cevt-r4k uses 300, make sure systick
+-		 * gets used if available
+-		 */
+-		.rating			= 310,
+-		.features		= CLOCK_EVT_FEAT_ONESHOT,
+-		.set_next_event		= systick_next_event,
+-		.set_state_shutdown	= systick_shutdown,
+-		.set_state_oneshot	= systick_set_oneshot,
+-		.event_handler		= systick_event_handler,
+-	},
+-};
+-
+-static int systick_shutdown(struct clock_event_device *evt)
+-{
+-	struct systick_device *sdev;
+-
+-	sdev = container_of(evt, struct systick_device, dev);
+-
+-	if (sdev->irq_requested)
+-		free_irq(systick.dev.irq, &systick.dev);
+-	sdev->irq_requested = 0;
+-	iowrite32(0, systick.membase + SYSTICK_CONFIG);
+-
+-	return 0;
+-}
+-
+-static int systick_set_oneshot(struct clock_event_device *evt)
+-{
+-	const char *name = systick.dev.name;
+-	struct systick_device *sdev;
+-	int irq = systick.dev.irq;
+-
+-	sdev = container_of(evt, struct systick_device, dev);
+-
+-	if (!sdev->irq_requested) {
+-		if (request_irq(irq, systick_interrupt,
+-				IRQF_PERCPU | IRQF_TIMER, name, &systick.dev))
+-			pr_err("Failed to request irq %d (%s)\n", irq, name);
+-	}
+-	sdev->irq_requested = 1;
+-	iowrite32(CFG_EXT_STK_EN | CFG_CNT_EN,
+-		  systick.membase + SYSTICK_CONFIG);
+-
+-	return 0;
+-}
+-
+-static int __init ralink_systick_init(struct device_node *np)
+-{
+-	int ret;
+-
+-	systick.membase = of_iomap(np, 0);
+-	if (!systick.membase)
+-		return -ENXIO;
+-
+-	systick.dev.name = np->name;
+-	clockevents_calc_mult_shift(&systick.dev, SYSTICK_FREQ, 60);
+-	systick.dev.max_delta_ns = clockevent_delta2ns(0x7fff, &systick.dev);
+-	systick.dev.max_delta_ticks = 0x7fff;
+-	systick.dev.min_delta_ns = clockevent_delta2ns(0x3, &systick.dev);
+-	systick.dev.min_delta_ticks = 0x3;
+-	systick.dev.irq = irq_of_parse_and_map(np, 0);
+-	if (!systick.dev.irq) {
+-		pr_err("%pOFn: request_irq failed", np);
+-		return -EINVAL;
+-	}
+-
+-	ret = clocksource_mmio_init(systick.membase + SYSTICK_COUNT, np->name,
+-				    SYSTICK_FREQ, 301, 16,
+-				    clocksource_mmio_readl_up);
+-	if (ret)
+-		return ret;
+-
+-	clockevents_register_device(&systick.dev);
+-
+-	pr_info("%pOFn: running - mult: %d, shift: %d\n",
+-			np, systick.dev.mult, systick.dev.shift);
+-
+-	return 0;
+-}
+-
+-TIMER_OF_DECLARE(systick, "ralink,cevt-systick", ralink_systick_init);
+--- a/drivers/clocksource/Kconfig
++++ b/drivers/clocksource/Kconfig
+@@ -732,4 +732,13 @@ config GOLDFISH_TIMER
+ 	help
+ 	  Support for the timer/counter of goldfish-rtc
+ 
++config RALINK_TIMER
++	bool "Ralink System Tick Counter"
++	depends on SOC_RT305X || SOC_MT7620 || COMPILE_TEST
++	select CLKSRC_MMIO
++	select TIMER_OF
++	help
++	  Enables support for system tick counter present on
++	  Ralink SoCs RT3352 and MT7620.
++
+ endmenu
+--- a/drivers/clocksource/Makefile
++++ b/drivers/clocksource/Makefile
+@@ -89,3 +89,4 @@ obj-$(CONFIG_MSC313E_TIMER)		+= timer-ms
+ obj-$(CONFIG_GOLDFISH_TIMER)		+= timer-goldfish.o
+ obj-$(CONFIG_GXP_TIMER)			+= timer-gxp.o
+ obj-$(CONFIG_CLKSRC_LOONGSON1_PWM)	+= timer-loongson1-pwm.o
++obj-$(CONFIG_RALINK_TIMER)		+= timer-ralink.o
+--- /dev/null
++++ b/drivers/clocksource/timer-ralink.c
+@@ -0,0 +1,150 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * Ralink System Tick Counter driver present on RT3352 and MT7620 SoCs.
++ *
++ * Copyright (C) 2013 by John Crispin <john at phrozen.org>
++ */
++
++#include <linux/clockchips.h>
++#include <linux/clocksource.h>
++#include <linux/interrupt.h>
++#include <linux/reset.h>
++#include <linux/init.h>
++#include <linux/time.h>
++#include <linux/of.h>
++#include <linux/of_irq.h>
++#include <linux/of_address.h>
++
++#define SYSTICK_FREQ		(50 * 1000)
++
++#define SYSTICK_CONFIG		0x00
++#define SYSTICK_COMPARE		0x04
++#define SYSTICK_COUNT		0x08
++
++/* route systick irq to mips irq 7 instead of the r4k-timer */
++#define CFG_EXT_STK_EN		0x2
++/* enable the counter */
++#define CFG_CNT_EN		0x1
++
++struct systick_device {
++	void __iomem *membase;
++	struct clock_event_device dev;
++	int irq_requested;
++	int freq_scale;
++};
++
++static int systick_set_oneshot(struct clock_event_device *evt);
++static int systick_shutdown(struct clock_event_device *evt);
++
++static int systick_next_event(unsigned long delta,
++			      struct clock_event_device *evt)
++{
++	struct systick_device *sdev;
++	u32 count;
++
++	sdev = container_of(evt, struct systick_device, dev);
++	count = ioread32(sdev->membase + SYSTICK_COUNT);
++	count = (count + delta) % SYSTICK_FREQ;
++	iowrite32(count, sdev->membase + SYSTICK_COMPARE);
++
++	return 0;
++}
++
++static void systick_event_handler(struct clock_event_device *dev)
++{
++	/* noting to do here */
++}
++
++static irqreturn_t systick_interrupt(int irq, void *dev_id)
++{
++	struct clock_event_device *dev = (struct clock_event_device *)dev_id;
++
++	dev->event_handler(dev);
++
++	return IRQ_HANDLED;
++}
++
++static struct systick_device systick = {
++	.dev = {
++		/*
++		 * cevt-r4k uses 300, make sure systick
++		 * gets used if available
++		 */
++		.rating			= 310,
++		.features		= CLOCK_EVT_FEAT_ONESHOT,
++		.set_next_event		= systick_next_event,
++		.set_state_shutdown	= systick_shutdown,
++		.set_state_oneshot	= systick_set_oneshot,
++		.event_handler		= systick_event_handler,
++	},
++};
++
++static int systick_shutdown(struct clock_event_device *evt)
++{
++	struct systick_device *sdev;
++
++	sdev = container_of(evt, struct systick_device, dev);
++
++	if (sdev->irq_requested)
++		free_irq(systick.dev.irq, &systick.dev);
++	sdev->irq_requested = 0;
++	iowrite32(0, systick.membase + SYSTICK_CONFIG);
++
++	return 0;
++}
++
++static int systick_set_oneshot(struct clock_event_device *evt)
++{
++	const char *name = systick.dev.name;
++	struct systick_device *sdev;
++	int irq = systick.dev.irq;
++
++	sdev = container_of(evt, struct systick_device, dev);
++
++	if (!sdev->irq_requested) {
++		if (request_irq(irq, systick_interrupt,
++				IRQF_PERCPU | IRQF_TIMER, name, &systick.dev))
++			pr_err("Failed to request irq %d (%s)\n", irq, name);
++	}
++	sdev->irq_requested = 1;
++	iowrite32(CFG_EXT_STK_EN | CFG_CNT_EN,
++		  systick.membase + SYSTICK_CONFIG);
++
++	return 0;
++}
++
++static int __init ralink_systick_init(struct device_node *np)
++{
++	int ret;
++
++	systick.membase = of_iomap(np, 0);
++	if (!systick.membase)
++		return -ENXIO;
++
++	systick.dev.name = np->name;
++	clockevents_calc_mult_shift(&systick.dev, SYSTICK_FREQ, 60);
++	systick.dev.max_delta_ns = clockevent_delta2ns(0x7fff, &systick.dev);
++	systick.dev.max_delta_ticks = 0x7fff;
++	systick.dev.min_delta_ns = clockevent_delta2ns(0x3, &systick.dev);
++	systick.dev.min_delta_ticks = 0x3;
++	systick.dev.irq = irq_of_parse_and_map(np, 0);
++	if (!systick.dev.irq) {
++		pr_err("%pOFn: request_irq failed", np);
++		return -EINVAL;
++	}
++
++	ret = clocksource_mmio_init(systick.membase + SYSTICK_COUNT, np->name,
++				    SYSTICK_FREQ, 301, 16,
++				    clocksource_mmio_readl_up);
++	if (ret)
++		return ret;
++
++	clockevents_register_device(&systick.dev);
++
++	pr_info("%pOFn: running - mult: %d, shift: %d\n",
++			np, systick.dev.mult, systick.dev.shift);
++
++	return 0;
++}
++
++TIMER_OF_DECLARE(systick, "ralink,cevt-systick", ralink_systick_init);
diff --git a/target/linux/ramips/patches-6.6/311-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch b/target/linux/ramips/patches-6.6/311-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch
index 36925b8326..d59a71af88 100644
--- a/target/linux/ramips/patches-6.6/311-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch
+++ b/target/linux/ramips/patches-6.6/311-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch
@@ -1,13 +1,11 @@
-From ce3d4a4111a5f7e6b4e74bceae5faa6ce388e8ec Mon Sep 17 00:00:00 2001
 From: John Crispin <blogic at openwrt.org>
 Date: Sun, 14 Jul 2013 23:08:11 +0200
-Subject: [PATCH 05/53] MIPS: use set_mode() to enable/disable the cevt-r4k
- irq
+Subject: [PATCH 1/2] MIPS: use set_mode() to enable/disable the cevt-r4k irq
 
 Signed-off-by: John Crispin <blogic at openwrt.org>
 ---
  arch/mips/kernel/cevt-r4k.c | 43 +++++++++++++++++++++++++++++++++++++
- arch/mips/ralink/Kconfig    |  5 +++++
+ drivers/clocksource/Kconfig |  5 +++++
  2 files changed, 48 insertions(+)
 
 --- a/arch/mips/kernel/cevt-r4k.c
@@ -96,23 +94,21 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  
  	return 0;
  }
---- a/arch/mips/ralink/Kconfig
-+++ b/arch/mips/ralink/Kconfig
-@@ -1,12 +1,17 @@
- # SPDX-License-Identifier: GPL-2.0
- if RALINK
- 
+--- a/drivers/clocksource/Kconfig
++++ b/drivers/clocksource/Kconfig
+@@ -731,10 +731,15 @@ config GOLDFISH_TIMER
+ 	depends on RTC_DRV_GOLDFISH
+ 	help
+ 	  Support for the timer/counter of goldfish-rtc
++ 
 +config CEVT_SYSTICK_QUIRK
 +	bool
 +	default n
-+
- config CLKEVT_RT3352
- 	bool
- 	depends on SOC_RT305X || SOC_MT7620
- 	default y
- 	select TIMER_OF
- 	select CLKSRC_MMIO
-+	select CEVT_SYSTICK_QUIRK
  
- config RALINK_ILL_ACC
- 	bool
+ config RALINK_TIMER
+ 	bool "Ralink System Tick Counter"
+ 	depends on SOC_RT305X || SOC_MT7620 || COMPILE_TEST
++	select CEVT_SYSTICK_QUIRK
+ 	select CLKSRC_MMIO
+ 	select TIMER_OF
+ 	help
diff --git a/target/linux/ramips/patches-6.6/312-MIPS-ralink-add-cpu-frequency-scaling.patch b/target/linux/ramips/patches-6.6/312-MIPS-ralink-add-cpu-frequency-scaling.patch
index 0d70770941..6acdfff837 100644
--- a/target/linux/ramips/patches-6.6/312-MIPS-ralink-add-cpu-frequency-scaling.patch
+++ b/target/linux/ramips/patches-6.6/312-MIPS-ralink-add-cpu-frequency-scaling.patch
@@ -1,19 +1,26 @@
-From bd30f19a006fb52bac80c6463c49dd2f4159f4ac Mon Sep 17 00:00:00 2001
 From: John Crispin <blogic at openwrt.org>
 Date: Sun, 28 Jul 2013 16:26:41 +0200
-Subject: [PATCH 06/53] MIPS: ralink: add cpu frequency scaling
+Subject: [PATCH 2/2] MIPS: ralink: add cpu frequency scaling
 
 This feature will break udelay() and cause the delay loop to have longer delays
 when the frequency is scaled causing a performance hit.
 
 Signed-off-by: John Crispin <blogic at openwrt.org>
 ---
- arch/mips/ralink/cevt-rt3352.c |   38 ++++++++++++++++++++++++++++++++++++++
- 1 file changed, 38 insertions(+)
+ drivers/clocksource/timer-ralink.c | 117 ++++++++++++++++++++++-------
+ 1 file changed, 89 insertions(+), 28 deletions(-)
 
---- a/arch/mips/ralink/cevt-rt3352.c
-+++ b/arch/mips/ralink/cevt-rt3352.c
-@@ -29,6 +29,10 @@
+--- a/drivers/clocksource/timer-ralink.c
++++ b/drivers/clocksource/timer-ralink.c
+@@ -5,6 +5,7 @@
+  * Copyright (C) 2013 by John Crispin <john at phrozen.org>
+  */
+ 
++#include <asm/mach-ralink/ralink_regs.h>
+ #include <linux/clockchips.h>
+ #include <linux/clocksource.h>
+ #include <linux/interrupt.h>
+@@ -26,6 +27,10 @@
  /* enable the counter */
  #define CFG_CNT_EN		0x1
  
@@ -24,7 +31,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  struct systick_device {
  	void __iomem *membase;
  	struct clock_event_device dev;
-@@ -36,21 +40,53 @@ struct systick_device {
+@@ -33,21 +38,53 @@ struct systick_device {
  	int freq_scale;
  };
  
@@ -64,7 +71,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +}
 +
  static int systick_next_event(unsigned long delta,
- 				struct clock_event_device *evt)
+ 			      struct clock_event_device *evt)
  {
  	struct systick_device *sdev;
 -	u32 count;
@@ -83,18 +90,18 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  }
  
  static void systick_event_handler(struct clock_event_device *dev)
-@@ -60,20 +96,25 @@ static void systick_event_handler(struct
+@@ -57,20 +94,25 @@ static void systick_event_handler(struct
  
  static irqreturn_t systick_interrupt(int irq, void *dev_id)
  {
--	struct clock_event_device *dev = (struct clock_event_device *) dev_id;
+-	struct clock_event_device *dev = (struct clock_event_device *)dev_id;
 +	int ret = 0;
 +	struct clock_event_device *cdev;
 +	struct systick_device *sdev;
  
 -	dev->event_handler(dev);
 +	if (read_c0_cause() & STATUSF_IP7) {
-+		cdev = (struct clock_event_device *) dev_id;
++		cdev = (struct clock_event_device *)dev_id;
 +		sdev = container_of(cdev, struct systick_device, dev);
 +
 +		/* Clear Count/Compare Interrupt */
@@ -117,7 +124,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  		.features		= CLOCK_EVT_FEAT_ONESHOT,
  		.set_next_event		= systick_next_event,
  		.set_state_shutdown	= systick_shutdown,
-@@ -91,7 +132,13 @@ static int systick_shutdown(struct clock
+@@ -88,7 +130,13 @@ static int systick_shutdown(struct clock
  	if (sdev->irq_requested)
  		free_irq(systick.dev.irq, &systick.dev);
  	sdev->irq_requested = 0;
@@ -132,7 +139,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  
  	return 0;
  }
-@@ -116,33 +163,46 @@ static int systick_set_oneshot(struct cl
+@@ -113,33 +161,46 @@ static int systick_set_oneshot(struct cl
  	return 0;
  }
  
diff --git a/target/linux/ramips/patches-6.6/316-arch-mips-do-not-select-illegal-access-driver-by-def.patch b/target/linux/ramips/patches-6.6/316-arch-mips-do-not-select-illegal-access-driver-by-def.patch
index 1dc54ccf23..8568041670 100644
--- a/target/linux/ramips/patches-6.6/316-arch-mips-do-not-select-illegal-access-driver-by-def.patch
+++ b/target/linux/ramips/patches-6.6/316-arch-mips-do-not-select-illegal-access-driver-by-def.patch
@@ -11,8 +11,8 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 
 --- a/arch/mips/ralink/Kconfig
 +++ b/arch/mips/ralink/Kconfig
-@@ -14,9 +14,9 @@ config CLKEVT_RT3352
- 	select CEVT_SYSTICK_QUIRK
+@@ -2,9 +2,9 @@
+ if RALINK
  
  config RALINK_ILL_ACC
 -	bool
diff --git a/target/linux/ramips/rt305x/config-6.6 b/target/linux/ramips/rt305x/config-6.6
index 6f7b7ea2a1..33efcba633 100644
--- a/target/linux/ramips/rt305x/config-6.6
+++ b/target/linux/ramips/rt305x/config-6.6
@@ -6,7 +6,6 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_CEVT_R4K=y
 CONFIG_CEVT_SYSTICK_QUIRK=y
-CONFIG_CLKEVT_RT3352=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLK_MTMIPS=y
 CONFIG_CLONE_BACKWARDS=y
@@ -160,6 +159,7 @@ CONFIG_PREEMPT_NONE_BUILD=y
 CONFIG_PTP_1588_CLOCK_OPTIONAL=y
 CONFIG_RALINK=y
 # CONFIG_RALINK_ILL_ACC is not set
+CONFIG_RALINK_TIMER=y
 CONFIG_RALINK_WDT=y
 CONFIG_RANDSTRUCT_NONE=y
 CONFIG_RATIONAL=y



From lede-commits at lists.infradead.org  Sun Nov 24 14:37:35 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 24 Nov 2024 17:37:35 -0500
Subject: [openwrt/openwrt]  ramips: dna_valokuitu-plus-ex400: clean-up image
 creation
In-Reply-To: <173248785538.3886574.8507307812785225764@git-01.infra.openwrt.org>
References: <173248785538.3886574.8507307812785225764@git-01.infra.openwrt.org>
Message-ID: <mailman.5056.1732487858.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/ec839c786ca56c6143257b89f146aeafbb6cfd3a

commit ec839c786ca56c6143257b89f146aeafbb6cfd3a
Author: Mauri Sandberg <maukka at ext.kapsi.fi>
AuthorDate: Mon Oct 28 22:13:04 2024 +0200

    ramips: dna_valokuitu-plus-ex400: clean-up image creation
    
    Code cleanup. Simplify and unify how kernel image is passed to
    Build/dna-bootfs
    
    Signed-off-by: Mauri Sandberg <maukka at ext.kapsi.fi>
    Link: https://github.com/openwrt/openwrt/pull/16811
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/ramips/image/mt7621.mk | 22 ++++++----------------
 1 file changed, 6 insertions(+), 16 deletions(-)

diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index 1dc1219d24..eb7dacefef 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -94,18 +94,9 @@ endef
 define Build/dna-bootfs
 	mkdir -p $@.ubifs-dir/boot
 
-	# populate the boot fs with the dtb and with either initramfs kernel or
-	# the normal kernel
+	# populate the boot fs with the dtb and the kernel image
 	$(CP) $(KDIR)/image-$(firstword $(DEVICE_DTS)).dtb $@.ubifs-dir/boot/dtb
-
-	$(if $(findstring with-initrd,$(word 1,$(1))),\
-		( \
-			$(CP) $@ $@.ubifs-dir/boot/uImage \
-		) , \
-		( \
-			$(CP) $(IMAGE_KERNEL) $@.ubifs-dir/boot/uImage \
-		) \
-	)
+	$(CP) $@ $@.ubifs-dir/boot/uImage
 
 	# create ubifs
 	$(STAGING_DIR_HOST)/bin/mkfs.ubifs ${MKUBIFS_OPTS} -r $@.ubifs-dir/ -o $@.new
@@ -1060,17 +1051,16 @@ define Device/dna_valokuitu-plus-ex400
   IMAGE_SIZE := 117m
   PAGESIZE := 2048
   MKUBIFS_OPTS := --min-io-size=$$(PAGESIZE) --leb-size=124KiB --max-leb-cnt=96 \
-  		  --log-lebs=2 --space-fixup --squash-uids
+	--log-lebs=2 --space-fixup --squash-uids
   DEVICE_VENDOR := DNA
   DEVICE_MODEL := Valokuitu Plus EX400
   KERNEL := kernel-bin | lzma | uImage lzma
   KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | uImage lzma
   IMAGES += factory.bin
   IMAGE/factory.bin := append-image-stage initramfs-kernel.bin | \
-                       dna-bootfs with-initrd | dna-header | \
-                       append-md5sum-ascii-salted
-  IMAGE/sysupgrade.bin := dna-bootfs | sysupgrade-tar kernel=$$$$@ | check-size | \
-  			  append-metadata
+	dna-bootfs | dna-header | append-md5sum-ascii-salted
+  IMAGE/sysupgrade.bin := append-kernel | dna-bootfs | \
+  	sysupgrade-tar kernel=$$$$@ | check-size | append-metadata
   DEVICE_IMG_NAME = $$(DEVICE_IMG_PREFIX)-$$(2)
   DEVICE_PACKAGES := kmod-mt7603 kmod-mt7615-firmware kmod-usb3
 endef



From lede-commits at lists.infradead.org  Sun Nov 24 14:43:06 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 24 Nov 2024 17:43:06 -0500
Subject: [openwrt/openwrt]  uboot-mediatek: add Routerich AX3000 support
In-Reply-To: <173248818616.3903677.5559474080731953267@git-01.infra.openwrt.org>
References: <173248818616.3903677.5559474080731953267@git-01.infra.openwrt.org>
Message-ID: <mailman.5057.1732488189.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/c0581520b1c53fe2fc4a310f916590dcc428474a

commit c0581520b1c53fe2fc4a310f916590dcc428474a
Author: Mikhail Zhilkin <csharper2005 at gmail.com>
AuthorDate: Sat Oct 26 09:34:43 2024 +0000

    uboot-mediatek: add Routerich AX3000 support
    
    Add U-Boot replacement loader for Routerich AX3000.
    
    Signed-off-by: Mikhail Zhilkin <csharper2005 at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16791
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/boot/uboot-mediatek/Makefile               |  13 +
 .../patches/460-add-routerich-ax3000.patch         | 362 +++++++++++++++++++++
 2 files changed, 375 insertions(+)

diff --git a/package/boot/uboot-mediatek/Makefile b/package/boot/uboot-mediatek/Makefile
index d2a03277d4..fa314da399 100644
--- a/package/boot/uboot-mediatek/Makefile
+++ b/package/boot/uboot-mediatek/Makefile
@@ -413,6 +413,18 @@ define U-Boot/mt7981_rfb-snfi
   DEPENDS:=+trusted-firmware-a-mt7981-snand-ddr3
 endef
 
+define U-Boot/mt7981_routerich_ax3000
+  NAME:=Routerich AX3000
+  BUILD_SUBTARGET:=filogic
+  BUILD_DEVICES:=routerich_ax3000-ubootmod
+  UBOOT_CONFIG:=mt7981_routerich_ax3000
+  UBOOT_IMAGE:=u-boot.fip
+  BL2_BOOTDEV:=spim-nand
+  BL2_SOC:=mt7981
+  BL2_DDRTYPE:=ddr3
+  DEPENDS:=+trusted-firmware-a-mt7981-spim-nand-ddr3
+endef
+
 define U-Boot/mt7981_qihoo_360t7
   NAME:=Qihoo 360T7
   BUILD_SUBTARGET:=filogic
@@ -823,6 +835,7 @@ UBOOT_TARGETS := \
 	mt7981_rfb-nor \
 	mt7981_rfb-sd \
 	mt7981_rfb-snfi \
+	mt7981_routerich_ax3000 \
 	mt7981_qihoo_360t7 \
 	mt7981_xiaomi_mi-router-ax3000t \
 	mt7981_xiaomi_mi-router-wr30u \
diff --git a/package/boot/uboot-mediatek/patches/460-add-routerich-ax3000.patch b/package/boot/uboot-mediatek/patches/460-add-routerich-ax3000.patch
new file mode 100644
index 0000000000..9aa31843de
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/460-add-routerich-ax3000.patch
@@ -0,0 +1,362 @@
+--- /dev/null
++++ b/configs/mt7981_routerich_ax3000_defconfig
+@@ -0,0 +1,107 @@
++CONFIG_ARM=y
++CONFIG_SYS_HAS_NONCACHED_MEMORY=y
++CONFIG_POSITION_INDEPENDENT=y
++CONFIG_ARCH_MEDIATEK=y
++CONFIG_TEXT_BASE=0x41e00000
++CONFIG_SYS_MALLOC_F_LEN=0x4000
++CONFIG_NR_DRAM_BANKS=1
++CONFIG_DEFAULT_DEVICE_TREE="mt7981-routerich_ax3000"
++CONFIG_OF_LIBFDT_OVERLAY=y
++CONFIG_TARGET_MT7981=y
++CONFIG_PRE_CON_BUF_ADDR=0x4007ef00
++CONFIG_DEBUG_UART_BASE=0x11002000
++CONFIG_DEBUG_UART_CLOCK=40000000
++CONFIG_SYS_LOAD_ADDR=0x46000000
++CONFIG_DEBUG_UART=y
++CONFIG_FIT=y
++CONFIG_BOOTDELAY=30
++CONFIG_AUTOBOOT_KEYED=y
++CONFIG_AUTOBOOT_MENU_SHOW=y
++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981-routerich_ax3000.dtb"
++CONFIG_LOGLEVEL=7
++CONFIG_PRE_CONSOLE_BUFFER=y
++CONFIG_LOG=y
++CONFIG_BOARD_LATE_INIT=y
++CONFIG_HUSH_PARSER=y
++CONFIG_SYS_PROMPT="MT7981> "
++CONFIG_CMD_CPU=y
++CONFIG_CMD_LICENSE=y
++CONFIG_CMD_BOOTMENU=y
++CONFIG_CMD_ASKENV=y
++CONFIG_CMD_ERASEENV=y
++CONFIG_CMD_ENV_FLAGS=y
++CONFIG_CMD_STRINGS=y
++CONFIG_CMD_DM=y
++CONFIG_CMD_GPIO=y
++CONFIG_CMD_GPT=y
++CONFIG_CMD_MTD=y
++CONFIG_CMD_PART=y
++CONFIG_CMD_DHCP=y
++CONFIG_CMD_TFTPSRV=y
++CONFIG_CMD_RARP=y
++CONFIG_CMD_PING=y
++CONFIG_CMD_CDP=y
++CONFIG_CMD_SNTP=y
++CONFIG_CMD_DNS=y
++CONFIG_CMD_LINK_LOCAL=y
++CONFIG_CMD_PXE=y
++CONFIG_CMD_CACHE=y
++CONFIG_CMD_PSTORE=y
++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
++CONFIG_CMD_UUID=y
++CONFIG_CMD_HASH=y
++CONFIG_CMD_SMC=y
++CONFIG_CMD_UBI=y
++CONFIG_CMD_UBI_RENAME=y
++CONFIG_OF_EMBED=y
++CONFIG_ENV_OVERWRITE=y
++CONFIG_ENV_IS_IN_UBI=y
++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
++CONFIG_ENV_UBI_PART="ubi"
++CONFIG_ENV_UBI_VOLUME="ubootenv"
++CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2"
++CONFIG_SYS_RELOC_GD_ENV_ADDR=y
++CONFIG_USE_DEFAULT_ENV_FILE=y
++CONFIG_DEFAULT_ENV_FILE="routerich_ax3000_env"
++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
++CONFIG_VERSION_VARIABLE=y
++CONFIG_NET_RANDOM_ETHADDR=y
++CONFIG_NETCONSOLE=y
++CONFIG_USE_IPADDR=y
++CONFIG_IPADDR="192.168.1.1"
++CONFIG_USE_SERVERIP=y
++CONFIG_SERVERIP="192.168.1.254"
++CONFIG_REGMAP=y
++CONFIG_SYSCON=y
++CONFIG_BUTTON=y
++CONFIG_BUTTON_GPIO=y
++CONFIG_CLK=y
++CONFIG_GPIO_HOG=y
++CONFIG_LED=y
++CONFIG_LED_BLINK=y
++CONFIG_LED_GPIO=y
++# CONFIG_MMC is not set
++CONFIG_MTD=y
++CONFIG_DM_MTD=y
++CONFIG_MTD_SPI_NAND=y
++CONFIG_MTD_UBI_FASTMAP=y
++CONFIG_PHY_FIXED=y
++CONFIG_MEDIATEK_ETH=y
++CONFIG_PHY=y
++CONFIG_PHY_MTK_TPHY=y
++CONFIG_PINCTRL=y
++CONFIG_PINCONF=y
++CONFIG_PINCTRL_MT7981=y
++CONFIG_POWER_DOMAIN=y
++CONFIG_MTK_POWER_DOMAIN=y
++CONFIG_DM_REGULATOR=y
++CONFIG_DM_REGULATOR_FIXED=y
++CONFIG_DM_REGULATOR_GPIO=y
++CONFIG_RAM=y
++CONFIG_DM_SERIAL=y
++CONFIG_MTK_SERIAL=y
++CONFIG_SPI=y
++CONFIG_DM_SPI=y
++CONFIG_MTK_SPIM=y
++CONFIG_ZSTD=y
++CONFIG_HEXDUMP=y
++CONFIG_LMB_MAX_REGIONS=64
+--- /dev/null
++++ b/arch/arm/dts/mt7981-routerich_ax3000.dts
+@@ -0,0 +1,187 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * Copyright (c) 2022 MediaTek Inc.
++ * Author: Sam Shih <sam.shih at mediatek.com>
++ */
++
++/dts-v1/;
++#include "mt7981.dtsi"
++#include <dt-bindings/gpio/gpio.h>
++#include <dt-bindings/input/linux-event-codes.h>
++
++/ {
++	#address-cells = <1>;
++	#size-cells = <1>;
++	model = "Routerich AX3000";
++	compatible = "routerich,ax3000", "mediatek,mt7981";
++
++	chosen {
++		stdout-path = &uart0;
++		tick-timer = &timer0;
++	};
++
++	memory at 40000000 {
++		device_type = "memory";
++		reg = <0x40000000 0x10000000>;
++	};
++
++	keys {
++		compatible = "gpio-keys";
++
++		button-0 {
++			label = "mesh";
++			linux,code = <BTN_0>;
++			gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
++		};
++
++		button-1 {
++			label = "reset";
++			linux,code = <KEY_RESTART>;
++			gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
++		};
++	};
++
++	leds {
++		compatible = "gpio-leds";
++
++		led-0 {
++			label = "red:wlan5g";
++			gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
++		};
++
++		led-1 {
++			label = "red:wan";
++			gpios = <&gpio 6 GPIO_ACTIVE_HIGH>;
++		};
++
++		led-2 {
++			label = "blue:power";
++			gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
++		};
++
++		led-3 {
++			label = "blue:lan1";
++			gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
++		};
++
++		led-4 {
++			label = "blue:lan2";
++			gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
++		};
++
++		led-5 {
++			label = "blue:lan3";
++			gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
++		};
++
++		led-6 {
++			label = "blue:wan";
++			gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
++		};
++
++		led-7 {
++			label = "blue:wlan2g";
++			gpios = <&gpio 34 GPIO_ACTIVE_LOW>;
++		};
++
++		led-8 {
++			label = "blue:mesh";
++			gpios = <&gpio 35 GPIO_ACTIVE_LOW>;
++		};
++	};
++};
++
++&uart0 {
++	mediatek,force-highspeed;
++	status = "okay";
++};
++
++&eth {
++	status = "okay";
++	mediatek,gmac-id = <0>;
++	phy-mode = "2500base-x";
++	mediatek,switch = "mt7531";
++	reset-gpios = <&gpio 39 GPIO_ACTIVE_HIGH>;
++
++	fixed-link {
++		speed = <2500>;
++		full-duplex;
++	};
++};
++
++&pinctrl {
++	spi_flash_pins: spi0-pins-func-1 {
++		mux {
++			function = "flash";
++			groups = "spi0", "spi0_wp_hold";
++		};
++
++		conf-pu {
++			pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
++			drive-strength = <MTK_DRIVE_8mA>;
++			bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
++		};
++
++		conf-pd {
++			pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
++			drive-strength = <MTK_DRIVE_8mA>;
++			bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
++		};
++	};
++};
++
++&spi0 {
++	#address-cells = <1>;
++	#size-cells = <0>;
++	pinctrl-names = "default";
++	pinctrl-0 = <&spi_flash_pins>;
++	status = "okay";
++	must_tx;
++	enhance_timing;
++	dma_ext;
++	ipm_design;
++	support_quad;
++	tick_dly = <2>;
++	sample_sel = <0>;
++
++	spi_nand at 0 {
++		compatible = "spi-nand";
++		reg = <0>;
++		spi-max-frequency = <52000000>;
++
++		partitions {
++			compatible = "fixed-partitions";
++			#address-cells = <1>;
++			#size-cells = <1>;
++
++			partition at 0 {
++				label = "bl2";
++				reg = <0x0 0x100000>;
++			};
++
++			partition at 100000 {
++				label = "uboot-env-orig";
++				reg = <0x100000 0x80000>;
++			};
++
++			partition at 160000 {
++				label = "Factory";
++				reg = <0x180000 0x200000>;
++			};
++
++			partition at 380000 {
++				label = "fip";
++				reg = <0x380000 0x200000>;
++			};
++
++			partition at 580000 {
++				label = "ubi";
++				reg = <0x580000 0x7a80000>;
++			};
++		};
++	};
++};
++
++&watchdog {
++	status = "disabled";
++};
+--- /dev/null
++++ b/routerich_ax3000_env
+@@ -0,0 +1,58 @@
++ipaddr=192.168.1.1
++serverip=192.168.1.254
++loadaddr=0x46000000
++console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0
++bootcmd=run check_buttons ; if pstore check ; then run boot_recovery ; else run boot_ubi ; fi
++bootconf=config-1
++bootdelay=0
++bootfile=openwrt-mediatek-filogic-routerich_ax3000-ubootmod-initramfs-recovery.itb
++bootfile_bl2=openwrt-mediatek-filogic-routerich_ax3000-ubootmod-preloader.bin
++bootfile_fip=openwrt-mediatek-filogic-routerich_ax3000-ubootmod-bl31-uboot.fip
++bootfile_upg=openwrt-mediatek-filogic-routerich_ax3000-ubootmod-squashfs-sysupgrade.itb
++bootled_pwr=blue:power
++bootled_rec=blue:power
++bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
++bootmenu_default=0
++bootmenu_delay=0
++bootmenu_title=      [0;34m( ( ( [1;39mOpenWrt[0;34m ) ) )
++bootmenu_0=Initialize environment.=run _firstboot
++bootmenu_0d=Run default boot command.=run boot_default
++bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return
++bootmenu_2=Boot production system from NAND.=run boot_production ; run bootmenu_confirm_return
++bootmenu_3=Boot recovery system from NAND.=run boot_recovery ; run bootmenu_confirm_return
++bootmenu_4=Load production system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_production ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
++bootmenu_5=Load recovery system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_recovery ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
++bootmenu_6=[31mLoad BL31+U-Boot FIP via TFTP then write to NAND.[0m=run boot_tftp_write_fip ; run bootmenu_confirm_return
++bootmenu_7=[31mLoad BL2 preloader via TFTP then write to NAND.[0m=run boot_tftp_write_bl2 ; run bootmenu_confirm_return
++bootmenu_8=Reboot.=reset
++bootmenu_9=Reset all settings to factory defaults.=run reset_factory ; reset
++boot_first=if button reset ; then led $bootled_rec on ; run boot_default ; fi ; bootmenu
++boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; setenv replacevol 1 ; run boot_tftp_forever
++boot_production=led $bootled_pwr on ; run ubi_read_production && bootm $loadaddr#$bootconf ; led $bootled_pwr off
++boot_recovery=led $bootled_rec on ; run ubi_read_recovery && bootm $loadaddr#$bootconf ; led $bootled_rec off
++boot_ubi=run boot_production ; run boot_recovery ; run boot_tftp_forever
++boot_tftp_forever=led $bootled_rec on ; while true ; do run boot_tftp ; sleep 1 ; done
++boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run ubi_write_production ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
++boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run ubi_write_recovery ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
++boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf
++boot_tftp_write_fip=tftpboot $loadaddr $bootfile_fip && run mtd_write_fip && run reset_factory
++boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run mtd_write_bl2
++check_buttons=if button reset ; then run boot_tftp ; fi
++ethaddr_factory=mtd read Factory 0x40080000 0x0 0x20000 && env readmem -b ethaddr 0x40080004 0x6 ; setenv ethaddr_factory
++part_default=production
++part_recovery=recovery
++reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800
++mtd_write_fip=mtd erase fip && mtd write fip $loadaddr
++mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr
++ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic || run ubi_format
++ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset
++ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi
++ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs
++ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery
++ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data
++ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize
++ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize
++_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv
++_firstboot=setenv _firstboot ; run ethaddr_factory ; run _switch_to_menu ; run _init_env ; run boot_first
++_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
++_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title       [33m$ver[0m"



From lede-commits at lists.infradead.org  Sun Nov 24 14:43:07 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 24 Nov 2024 17:43:07 -0500
Subject: [openwrt/openwrt]  mediatek: Routerich AX3000: add OpenWrt U-Boot
 layout
In-Reply-To: <173248818616.3903677.5559474080731953267@git-01.infra.openwrt.org>
References: <173248818616.3903677.5559474080731953267@git-01.infra.openwrt.org>
Message-ID: <mailman.5058.1732488190.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/d413163832df93c321eef3fce8c4f72c350d5308

commit d413163832df93c321eef3fce8c4f72c350d5308
Author: Mikhail Zhilkin <csharper2005 at gmail.com>
AuthorDate: Sat Oct 26 09:37:14 2024 +0000

    mediatek: Routerich AX3000: add OpenWrt U-Boot layout
    
    This commit adds OpenWrt U-Boot layout support for Routerich AX3000. The
    aims:
    1. Get open-source U-Boot;
    2. Get maximum available free space in OpenWrt.
    
    Install
    -------
    1. Copy OpenWrt ubootmod-bl31-uboot.fip, ubootmod-preloader.bin, to the
       /tmp folder of the router using scp.
    
    2. Make mtd partitions backups:
       http://192.168.1.1/cgi-bin/luci/admin/system/flash -> Save mtdblock
       contents
    
    3. Install kmod-mtd-rw:
    ```
    opkg update && opkg install kmod-mtd-rw
    ```
    
    4. Write FIP and preloader:
    ```
    insmod mtd-rw i_want_a_brick=1
    mtd unlock BL2
    mtd erase BL2
    mtd write /tmp/ubootmod-preloader.bin BL2
    mtd unlock FIP
    mtd erase FIP
    mtd write /tmp/ubootmod-bl31-uboot.fip FIP
    ```
    
    5. Copy OpenWrt ubootmod-initramfs-recovery.itb to the tftp server root
       with IP 192.168.1.254.
    
    6. Reboot router:
    ```
    reboot
    ```
    U-Boot will automatically download from the tftp server and boot OpenWrt
    initramfs system.
    
    7. Copy OpenWrt ubootmod-squashfs-sysupgrade.itb to the /tmp dir of the
       router using scp.
    
    8. Run sysupgrade:
    ```
    sysupgrade -n /tmp/squashfs-sysupgrade.itb
    ```
    
    Recovery
    --------
    1. Place OpenWrt initramfs-recovery.itb image (with original name) on the
       tftp server (IP: 192.168.1.254).
    2. Press "reset" button and power on the router. After ~10 sec release the
       button.
    3. Use OpenWrt initramfs system for recovery.
    
    BL2 and FIP recovery
    --------------------
    Use mtk_uartboot and UART connection if BL2 or FIP in UBI is destroyed:
    Link: https://github.com/981213/mtk_uartboot
    
    Return to stock:
    ----------------
    1. Copy partition backups (BL2.bin and FIP.bin) to the /tmp dir of the
       router using scp.
    
    2. Install kmod-mtd-rw:
    ```
    opkg update && opkg install kmod-mtd-rw
    ```
    
    3. Restore stock U-Boot and reboot:
    ```
    insmod mtd-rw i_want_a_brick=1
    mtd unlock BL2
    mtd erase BL2
    mtd write /tmp/BL2.bin BL2
    mtd unlock FIP
    mtd erase FIP
    mtd write /tmp/FIP.bin FIP
    reboot
    ```
    
    4. Open U-Boot web recovery, upload stock firmware image and start
       upgrade.
    Link: http://192.168.1.1
    
    Signed-off-by: Mikhail Zhilkin <csharper2005 at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16791
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/boot/uboot-envtools/files/mediatek_filogic |   1 +
 ...00.dts => mt7981b-routerich-ax3000-common.dtsi} |  23 +---
 .../dts/mt7981b-routerich-ax3000-ubootmod.dts      |  52 +++++++++
 .../mediatek/dts/mt7981b-routerich-ax3000.dts      | 119 +++------------------
 .../filogic/base-files/etc/board.d/01_leds         |   3 +-
 .../filogic/base-files/etc/board.d/02_network      |   3 +-
 .../etc/hotplug.d/ieee80211/11_fix_wifi_mac        |   1 +
 .../filogic/base-files/lib/upgrade/platform.sh     |   1 +
 target/linux/mediatek/image/filogic.mk             |  25 +++++
 9 files changed, 101 insertions(+), 127 deletions(-)

diff --git a/package/boot/uboot-envtools/files/mediatek_filogic b/package/boot/uboot-envtools/files/mediatek_filogic
index b637f43287..58db7dad28 100644
--- a/package/boot/uboot-envtools/files/mediatek_filogic
+++ b/package/boot/uboot-envtools/files/mediatek_filogic
@@ -39,6 +39,7 @@ jcg,q30-pro|\
 netcore,n60|\
 nokia,ea0326gmp|\
 qihoo,360t7|\
+routerich,ax3000-ubootmod|\
 tplink,tl-xdr4288|\
 tplink,tl-xdr6086|\
 tplink,tl-xdr6088|\
diff --git a/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts b/target/linux/mediatek/dts/mt7981b-routerich-ax3000-common.dtsi
similarity index 93%
copy from target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts
copy to target/linux/mediatek/dts/mt7981b-routerich-ax3000-common.dtsi
index aa6a15ee1d..f0b0b9365b 100644
--- a/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts
+++ b/target/linux/mediatek/dts/mt7981b-routerich-ax3000-common.dtsi
@@ -8,9 +8,6 @@
 #include "mt7981.dtsi"
 
 / {
-	model = "Routerich AX3000";
-	compatible = "routerich,ax3000", "mediatek,mt7981";
-
 	aliases {
 		label-mac-device = &wan;
 
@@ -22,7 +19,7 @@
 		serial0 = &uart0;
 	};
 
-	chosen {
+	chosen: chosen {
 		stdout-path = "serial0:115200n8";
 	};
 
@@ -153,7 +150,7 @@
 	status = "okay";
 
 	/* ESMT F50L1G41LB (128M) */
-	spi_nand at 0 {
+	spi: spi_nand at 0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
 		compatible = "spi-nand";
@@ -170,11 +167,7 @@
 		spi-cal-addrlen = <5>;
 		spi-cal-addr = /bits/ 32 <0x0 0x0 0x0 0x0 0x0>;
 
-		mediatek,nmbm;
-		mediatek,bmt-max-ratio = <1>;
-		mediatek,bmt-max-reserved-blocks = <64>;
-
-		partitions {
+		partitions: partitions {
 			compatible = "fixed-partitions";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -191,11 +184,6 @@
 				read-only;
 			};
 
-			partition at 100000 {
-				label = "u-boot-env";
-				reg = <0x100000 0x80000>;
-			};
-
 			partition at 180000 {
 				label = "Factory";
 				reg = <0x180000 0x200000>;
@@ -223,11 +211,6 @@
 				reg = <0x380000 0x200000>;
 				read-only;
 			};
-
-			partition at 580000 {
-				label = "ubi";
-				reg = <0x580000 0x7000000>;
-			};
 		};
 	};
 };
diff --git a/target/linux/mediatek/dts/mt7981b-routerich-ax3000-ubootmod.dts b/target/linux/mediatek/dts/mt7981b-routerich-ax3000-ubootmod.dts
new file mode 100644
index 0000000000..dfdb78936d
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7981b-routerich-ax3000-ubootmod.dts
@@ -0,0 +1,52 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+
+#include "mt7981b-routerich-ax3000-common.dtsi"
+
+/ {
+	model = "Routerich AX3000 (OpenWrt U-Boot layout)";
+	compatible = "routerich,ax3000-ubootmod", "mediatek,mt7981";
+};
+
+&chosen {
+	rootdisk = <&ubi_fit_volume>;
+};
+
+&partitions {
+	partition at 100000 {
+		label = "u-boot-env-orig";
+		reg = <0x100000 0x80000>;
+		read-only;
+	};
+
+	partition at 580000 {
+		label = "ubi";
+		reg = <0x580000 0x7a80000>;
+		compatible = "linux,ubi";
+
+		volumes {
+			ubi_fit_volume: ubi-volume-fit {
+				volname = "fit";
+			};
+
+			ubi_ubootenv: ubi-volume-ubootenv {
+				volname = "ubootenv";
+			};
+
+			ubi_ubootenv2: ubi-volume-ubootenv2 {
+				volname = "ubootenv2";
+			};
+		};
+	};
+};
+
+&ubi_ubootenv {
+	nvmem-layout {
+		compatible = "u-boot,env-redundant-bool";
+	};
+};
+
+&ubi_ubootenv2 {
+	nvmem-layout {
+		compatible = "u-boot,env-redundant-bool";
+	};
+};
diff --git a/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts b/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts
index aa6a15ee1d..c0a10b3fc8 100644
--- a/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts
+++ b/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts
@@ -1,118 +1,27 @@
 // SPDX-License-Identifier: GPL-2.0-only OR MIT
 
-/dts-v1/;
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/leds/common.h>
-
-#include "mt7981.dtsi"
+#include "mt7981b-routerich-ax3000-common.dtsi"
 
 / {
 	model = "Routerich AX3000";
 	compatible = "routerich,ax3000", "mediatek,mt7981";
+};
 
-	aliases {
-		label-mac-device = &wan;
-
-		led-boot = &led_power_blue;
-		led-failsafe = &led_power_blue;
-		led-running = &led_power_blue;
-		led-upgrade = &led_power_blue;
-
-		serial0 = &uart0;
-	};
-
-	chosen {
-		stdout-path = "serial0:115200n8";
-	};
-
-	gpio-keys {
-		compatible = "gpio-keys";
-
-		button-0 {
-			label = "mesh";
-			linux,input-type = <EV_SW>;
-			linux,code = <BTN_0>;
-			gpios = <&pio 0 GPIO_ACTIVE_LOW>;
-			debounce-interval = <60>;
-		};
-
-		button-1 {
-			label = "reset";
-			gpios = <&pio 1 GPIO_ACTIVE_LOW>;
-			linux,code = <KEY_RESTART>;
-			debounce-interval = <60>;
-		};
-	};
-
-	leds {
-		compatible = "gpio-leds";
-
-		led-0 {
-			color = <LED_COLOR_ID_RED>;
-			function = LED_FUNCTION_WLAN;
-			function-enumerator = <50>;
-			gpios = <&pio 5 GPIO_ACTIVE_LOW>;
-			linux,default-trigger = "phy1tpt";
-		};
-
-		led-1 {
-			color = <LED_COLOR_ID_RED>;
-			function = LED_FUNCTION_WAN;
-			gpios = <&pio 6 GPIO_ACTIVE_HIGH>;
-		};
-
-		led_power_blue: led-2 {
-			color = <LED_COLOR_ID_BLUE>;
-			function = LED_FUNCTION_POWER;
-			gpios = <&pio 7 GPIO_ACTIVE_LOW>;
-		};
-
-		led-3 {
-			color = <LED_COLOR_ID_BLUE>;
-			function = LED_FUNCTION_LAN;
-			function-enumerator = <1>;
-			gpios = <&pio 9 GPIO_ACTIVE_LOW>;
-		};
-
-		led-4 {
-			color = <LED_COLOR_ID_BLUE>;
-			function = LED_FUNCTION_LAN;
-			function-enumerator = <2>;
-			gpios = <&pio 10 GPIO_ACTIVE_LOW>;
-		};
-
-		led-5 {
-			color = <LED_COLOR_ID_BLUE>;
-			function = LED_FUNCTION_LAN;
-			function-enumerator = <3>;
-			gpios = <&pio 11 GPIO_ACTIVE_LOW>;
-		};
-
-		led-6 {
-			color = <LED_COLOR_ID_BLUE>;
-			function = LED_FUNCTION_WAN;
-			gpios = <&pio 12 GPIO_ACTIVE_LOW>;
-		};
-
-		led-7 {
-			color = <LED_COLOR_ID_BLUE>;
-			function = LED_FUNCTION_WLAN;
-			function-enumerator = <24>;
-			gpios = <&pio 34 GPIO_ACTIVE_LOW>;
-			linux,default-trigger = "phy0tpt";
-		};
+&spi {
+	mediatek,nmbm;
+	mediatek,bmt-max-ratio = <1>;
+	mediatek,bmt-max-reserved-blocks = <64>;
+};
 
-		led-8 {
-			color = <LED_COLOR_ID_BLUE>;
-			/* LED_FUNCTION_MESH isn't implemented yet */
-			function = "mesh";
-			gpios = <&pio 35 GPIO_ACTIVE_LOW>;
-		};
+&partitions {
+	partition at 100000 {
+		label = "u-boot-env";
+		reg = <0x100000 0x80000>;
 	};
 
-	memory {
-		reg = <0 0x40000000 0 0x10000000>;
+	partition at 580000 {
+		label = "ubi";
+		reg = <0x580000 0x7000000>;
 	};
 };
 
diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds b/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds
index dad5c293de..38c4b7525b 100644
--- a/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds
@@ -75,7 +75,8 @@ openwrt,one)
 	ucidef_set_led_netdev "lanact" "LANACT" "green:lan" "eth1" "rx tx"
 	ucidef_set_led_netdev "lanlink" "LANLINK" "amber:lan" "eth1" "link"
 	;;
-routerich,ax3000)
+routerich,ax3000|\
+routerich,ax3000-ubootmod)
 	ucidef_set_led_netdev "lan-1" "lan-1" "blue:lan-1" "lan1" "link tx rx"
 	ucidef_set_led_netdev "lan-2" "lan-2" "blue:lan-2" "lan2" "link tx rx"
 	ucidef_set_led_netdev "lan-3" "lan-3" "blue:lan-3" "lan3" "link tx rx"
diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
index 7bfc61a269..1480dbcbc7 100644
--- a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
@@ -34,7 +34,8 @@ mediatek_setup_interfaces()
 	cudy,wr3000-v1|\
 	jcg,q30-pro|\
 	qihoo,360t7|\
-	routerich,ax3000)
+	routerich,ax3000|\
+	routerich,ax3000-ubootmod)
 		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" wan
 		;;
 	asus,tuf-ax4200|\
diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
index 7402bfc71b..5e83a167de 100644
--- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
+++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
@@ -158,6 +158,7 @@ case "$board" in
 		[ "$PHYNBR" = "1" ] && macaddr_add $addr 1 > /sys${DEVPATH}/macaddress
 		;;
 	routerich,ax3000|\
+	routerich,ax3000-ubootmod|\
 	zbtlink,zbt-z8102ax|\
 	zbtlink,zbt-z8103ax|\
 	zyxel,ex5601-t0|\
diff --git a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
index ce334b2c8e..0040ffbb26 100755
--- a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
@@ -80,6 +80,7 @@ platform_do_upgrade() {
 	openwrt,one|\
 	netcore,n60|\
 	qihoo,360t7|\
+	routerich,ax3000-ubootmod|\
 	tplink,tl-xdr4288|\
 	tplink,tl-xdr6086|\
 	tplink,tl-xdr6088|\
diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index f366a9b920..672790f1a7 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -1228,6 +1228,31 @@ define Device/routerich_ax3000
 endef
 TARGET_DEVICES += routerich_ax3000
 
+define Device/routerich_ax3000-ubootmod
+  DEVICE_VENDOR := Routerich
+  DEVICE_MODEL := AX3000 (OpenWrt U-Boot layout)
+  DEVICE_DTS := mt7981b-routerich-ax3000-ubootmod
+  DEVICE_DTS_DIR := ../dts
+  UBINIZE_OPTS := -E 5
+  BLOCKSIZE := 128k
+  PAGESIZE := 2048
+  KERNEL_IN_UBI := 1
+  UBOOTENV_IN_UBI := 1
+  IMAGES := sysupgrade.itb
+  KERNEL_INITRAMFS_SUFFIX := -recovery.itb
+  KERNEL := kernel-bin | gzip
+  KERNEL_INITRAMFS := kernel-bin | lzma | \
+	fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
+  IMAGE/sysupgrade.itb := append-kernel | \
+	fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | \
+	append-metadata
+  DEVICE_PACKAGES := kmod-mt7915e kmod-mt7981-firmware kmod-usb3 mt7981-wo-firmware
+  ARTIFACTS := preloader.bin bl31-uboot.fip
+  ARTIFACT/preloader.bin := mt7981-bl2 spim-nand-ddr3
+  ARTIFACT/bl31-uboot.fip := mt7981-bl31-uboot routerich_ax3000
+endef
+TARGET_DEVICES += routerich_ax3000-ubootmod
+
 define Device/ruijie_rg-x60-pro
   DEVICE_VENDOR := Ruijie
   DEVICE_MODEL := RG-X60 Pro



From lede-commits at lists.infradead.org  Sun Nov 24 15:18:10 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sun, 24 Nov 2024 18:18:10 -0500
Subject: [openwrt/openwrt]  kernel: enable pressure interface
In-Reply-To: <173249029086.4009968.10097579949157364517@git-01.infra.openwrt.org>
References: <173249029086.4009968.10097579949157364517@git-01.infra.openwrt.org>
Message-ID: <mailman.5095.1732490295.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/eed39d45c2ff901b5327c7ab63c9131166e3140e

commit eed39d45c2ff901b5327c7ab63c9131166e3140e
Author: John Audia <therealgraysky at proton.me>
AuthorDate: Sun Oct 29 04:32:21 2023 -0400

    kernel: enable pressure interface
    
    PSI provides a canonical way to see resource pressure increases as
    they develop, with pressure metrics for three major resources:
    memory, CPU, and IO. PSI stats are like barometers that provide
    fair warning of impending resource shortages, enabling users to
    take more proactive, granular, and nuanced steps when resources
    start becoming scarce.
    
    References:
    * https://www.kernel.org/doc/html/latest/accounting/psi.html
    * https://lwn.net/Articles/759781/
    
    Build system: x86/64
    Build-tested: x86/64/AMD Cezanne, flogic/glinet_gl-mt6000
    Run-tested: x86/64/AMD Cezanne, flogic/glinet_gl-mt6000
    
    Signed-off-by: John Audia <therealgraysky at proton.me>
    Link: https://github.com/openwrt/openwrt/pull/13819
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 config/Config-kernel.in         | 19 +++++++++++++++++++
 target/linux/generic/config-6.6 |  1 +
 2 files changed, 20 insertions(+)

diff --git a/config/Config-kernel.in b/config/Config-kernel.in
index 0fa039db40..91678cf2a6 100644
--- a/config/Config-kernel.in
+++ b/config/Config-kernel.in
@@ -333,6 +333,25 @@ if KERNEL_TASKSTATS
 
 endif
 
+config KERNEL_PSI
+	bool "Compile the kernel with pressure stall information tracking"
+	help
+	  Collect metrics that indicate how overcommitted the CPU, memory,
+	  and IO capacity are in the system.
+
+	  If you say Y here, the kernel will create /proc/pressure/ with the
+	  pressure statistics files cpu, memory, and io. These will indicate
+	  the share of walltime in which some or all tasks in the system are
+	  delayed due to contention of the respective resource.
+
+	  In kernels with cgroup support, cgroups (cgroup2 only) will
+	  have cpu.pressure, memory.pressure, and io.pressure files,
+	  which aggregate pressure stalls for the grouped tasks only.
+
+	  For more details see Documentation/accounting/psi.rst.
+
+	  Say N if unsure.
+
 config KERNEL_KALLSYMS
 	bool "Compile the kernel with symbol table information"
 	default y if !SMALL_FLASH
diff --git a/target/linux/generic/config-6.6 b/target/linux/generic/config-6.6
index 9eec780b53..105dc0d344 100644
--- a/target/linux/generic/config-6.6
+++ b/target/linux/generic/config-6.6
@@ -4758,6 +4758,7 @@ CONFIG_PROC_SYSCTL=y
 # CONFIG_PSB6970_PHY is not set
 # CONFIG_PSE_CONTROLLER is not set
 # CONFIG_PSI is not set
+# CONFIG_PSI_DEFAULT_DISABLED is not set
 # CONFIG_PSTORE is not set
 # CONFIG_PSTORE_BLK is not set
 # CONFIG_PSTORE_COMPRESS is not set



From lede-commits at lists.infradead.org  Mon Nov 25 01:26:36 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 25 Nov 2024 04:26:36 -0500
Subject: [openwrt/openwrt]  qualcommax: ipq60xx: remove source-only flag
In-Reply-To: <173252679662.1527426.7030656587729131599@git-01.infra.openwrt.org>
References: <173252679662.1527426.7030656587729131599@git-01.infra.openwrt.org>
Message-ID: <mailman.5293.1732526800.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/1f53b7fb75265d182e809ef3e3cbaca0c43dd3ec

commit 1f53b7fb75265d182e809ef3e3cbaca0c43dd3ec
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Sun Nov 24 23:50:22 2024 +0100

    qualcommax: ipq60xx: remove source-only flag
    
    Its been a while since we added ipq60xx as source-only, it is now
    quite usable so lets remove the source-only flag to start building
    official images.
    
    I also plan to merge additional popular boards rather soon.
    
    Link: https://github.com/openwrt/openwrt/pull/17065
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/qualcommax/ipq60xx/target.mk | 1 -
 1 file changed, 1 deletion(-)

diff --git a/target/linux/qualcommax/ipq60xx/target.mk b/target/linux/qualcommax/ipq60xx/target.mk
index dc3a2ceff6..06a85ab5e4 100644
--- a/target/linux/qualcommax/ipq60xx/target.mk
+++ b/target/linux/qualcommax/ipq60xx/target.mk
@@ -1,5 +1,4 @@
 SUBTARGET:=ipq60xx
-FEATURES += source-only
 BOARDNAME:=Qualcomm Atheros IPQ60xx
 DEFAULT_PACKAGES += ath11k-firmware-ipq6018
 



From lede-commits at lists.infradead.org  Mon Nov 25 02:13:13 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 25 Nov 2024 05:13:13 -0500
Subject: [buildbot]  docker,worker: install python3-cryptography
In-Reply-To: <173252959395.1685812.17049887282282311541@git-01.infra.openwrt.org>
References: <173252959395.1685812.17049887282282311541@git-01.infra.openwrt.org>
Message-ID: <mailman.5435.1732529745.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to buildbot.git, branch main:
https://git.openwrt.org/7f966275500d5cd94cc4b70e0e6bb203d6f569ae

commit 7f966275500d5cd94cc4b70e0e6bb203d6f569ae
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Mon Nov 25 10:40:03 2024 +0100

    docker,worker: install python3-cryptography
    
    Addition of OPTEE support along with STM32 added a requirment on
    python3-cryptography and without it buildbots for STM32 will fail with:
    Checking 'python3-cryptography'... failed.
    Checking 'python3-pyelftools'... ok.
    optee-os: Please install the Python3 cryptography module
    make[3]: *** [/builder/shared-workdir/build/include/prereq.mk:9: prereq] Error 1
    
    So install python3-cryptography to satisfy it.
    
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    Link: https://github.com/openwrt/buildbot/pull/61
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 docker/buildworker/Dockerfile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/docker/buildworker/Dockerfile b/docker/buildworker/Dockerfile
index 0d230f1..eef2d44 100644
--- a/docker/buildworker/Dockerfile
+++ b/docker/buildworker/Dockerfile
@@ -34,6 +34,7 @@ RUN \
 		python3-venv \
 		python3-pip \
 		python3-pyelftools \
+		python3-cryptography \
 		qemu-utils \
 		rsync \
 		signify-openbsd \



From lede-commits at lists.infradead.org  Mon Nov 25 03:21:06 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 25 Nov 2024 06:21:06 -0500
Subject: [openwrt/openwrt]  openwrt-keyring: apk: use just snapshot key
 explicitly
In-Reply-To: <173253366570.2001545.14792945162098204146@git-01.infra.openwrt.org>
References: <173253366570.2001545.14792945162098204146@git-01.infra.openwrt.org>
Message-ID: <mailman.5473.1732533670.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/72dec105fb99a949d7ecf2a3d0ac29880007d602

commit 72dec105fb99a949d7ecf2a3d0ac29880007d602
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Mon Nov 4 09:04:04 2024 +0000

    openwrt-keyring: apk: use just snapshot key explicitly
    
    Currently we're going to ship all the apk keys in the keyring, but the
    preference is to ship and use single release/branch specific key so lets
    use openwrt-snapshots.pem for apk explicitly as well.
    
    Fixes: 2cea05002489 ("openwrt-keyring: add apk public key for signing of package indexes")
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
    Link: https://github.com/openwrt/openwrt/pull/16852
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/system/openwrt-keyring/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/system/openwrt-keyring/Makefile b/package/system/openwrt-keyring/Makefile
index 029463817b..7f237ed9fa 100644
--- a/package/system/openwrt-keyring/Makefile
+++ b/package/system/openwrt-keyring/Makefile
@@ -33,7 +33,7 @@ Build/Compile=
 ifneq ($(CONFIG_USE_APK),)
 define Package/openwrt-keyring/install
 	$(INSTALL_DIR) $(1)/etc/apk/keys/
-	$(INSTALL_DATA) $(PKG_BUILD_DIR)/apk/*.pem $(1)/etc/apk/keys/
+	$(INSTALL_DATA) $(PKG_BUILD_DIR)/apk/openwrt-snapshots.pem $(1)/etc/apk/keys/
 endef
 else
 define Package/openwrt-keyring/install



From lede-commits at lists.infradead.org  Mon Nov 25 03:21:05 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 25 Nov 2024 06:21:05 -0500
Subject: [openwrt/openwrt]  Revert "openwrt-keyring: fix missing 24.10 usign
 key by installing it"
In-Reply-To: <173253366570.2001545.14792945162098204146@git-01.infra.openwrt.org>
References: <173253366570.2001545.14792945162098204146@git-01.infra.openwrt.org>
Message-ID: <mailman.5474.1732533674.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/118c657bd160fb68c29cade49e726128b1c0fa8b

commit 118c657bd160fb68c29cade49e726128b1c0fa8b
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Mon Nov 4 09:02:19 2024 +0000

    Revert "openwrt-keyring: fix missing 24.10 usign key by installing it"
    
    This reverts commit 37784c48e93c663dafc99454c24bebf4e258556f as the
    preference is to have single explicit key for each release/branch.
    
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
    Link: https://github.com/openwrt/openwrt/pull/16852
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/system/openwrt-keyring/Makefile | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/package/system/openwrt-keyring/Makefile b/package/system/openwrt-keyring/Makefile
index e499fc0beb..029463817b 100644
--- a/package/system/openwrt-keyring/Makefile
+++ b/package/system/openwrt-keyring/Makefile
@@ -3,7 +3,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openwrt-keyring
-PKG_RELEASE:=2
+PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/keyring.git
@@ -40,8 +40,6 @@ define Package/openwrt-keyring/install
 	$(INSTALL_DIR) $(1)/etc/opkg/keys/
 	# Public usign key for unattended snapshot builds
 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/usign/b5043e70f9a75cde $(1)/etc/opkg/keys/
-	# Public usign key for 24.10 release builds
-	$(INSTALL_DATA) $(PKG_BUILD_DIR)/usign/d310c6f2833e97f7 $(1)/etc/opkg/keys/
 endef
 endif
 



From lede-commits at lists.infradead.org  Mon Nov 25 07:41:34 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 25 Nov 2024 10:41:34 -0500
Subject: [openwrt/openwrt]  ramips: mt7621: support openwrt,netdev-name for
 renaming interfaces
In-Reply-To: <173254929425.2773876.17062113547813771319@git-01.infra.openwrt.org>
References: <173254929425.2773876.17062113547813771319@git-01.infra.openwrt.org>
Message-ID: <mailman.5695.1732549298.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/5695267847c2fe51290fdbde6ecd7114654f7988

commit 5695267847c2fe51290fdbde6ecd7114654f7988
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Sun Nov 24 21:15:08 2024 +0100

    ramips: mt7621: support openwrt,netdev-name for renaming interfaces
    
    Edgerouter X currently has its eth1 port on the switch missing since there
    is a naming conflict currently.
    
    So, as the root cause is mixing kernel support for DSA interfaces having
    predictable names set via "label" property vs others having it assigned
    dynamically lets avoid the conflict by using our own custom property as
    suggested upstream [1].
    
    So, add support via "openwrt,netdev-name" property and use it on ERX.
    
    Fixes: 2a25c6ace8d8 ("ramips: get rid of downstream network device label patch")
    Fixes: #15643
    Link: https://github.com/openwrt/openwrt/pull/17062
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 .../linux/ramips/dts/mt7621_ubnt_edgerouter-x-sfp.dts   |  3 ++-
 target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dts    |  2 +-
 target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi   | 17 +++++++++++------
 .../mt7621/base-files/lib/preinit/04_set_netdev_label   |  8 ++++++++
 4 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x-sfp.dts b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x-sfp.dts
index 50a77c3877..9f1e0a8d20 100644
--- a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x-sfp.dts
+++ b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x-sfp.dts
@@ -69,11 +69,12 @@
 	ports {
 		port at 5 {
 			reg = <5>;
-			label = "eth5";
+			openwrt,netdev-name = "eth5";
 			phy-handle = <&ephy7>;
 			phy-mode = "rgmii-rxid";
 			nvmem-cells = <&macaddr_factory_22 5>;
 			nvmem-cell-names = "mac-address";
+			/delete-property/ label;
 		};
 	};
 };
diff --git a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dts b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dts
index 80467c88e9..c0230e13b4 100644
--- a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dts
+++ b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dts
@@ -7,7 +7,7 @@
 
 &gmac1 {
 	status = "okay";
-	label = "eth0";
+	openwrt,netdev-name = "eth0";
 	phy-handle = <&ethphy0>;
 
 	nvmem-cells = <&macaddr_factory_22 0>;
diff --git a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi
index dc9908ba34..40433c1c43 100644
--- a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi
+++ b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi
@@ -22,42 +22,47 @@
 &gmac0 {
 	nvmem-cells = <&macaddr_factory_22 0>;
 	nvmem-cell-names = "mac-address";
-	label = "dsa";
+	openwrt,netdev-name = "dsa";
 };
 
 &switch0 {
 	ports {
 		port at 0 {
 			status = "okay";
-			label = "eth0";
+			openwrt,netdev-name = "eth0";
+			/delete-property/ label;
 		};
 
 		port at 1 {
 			status = "okay";
-			label = "eth1";
+			openwrt,netdev-name = "eth1";
 			nvmem-cells = <&macaddr_factory_22 1>;
 			nvmem-cell-names = "mac-address";
+			/delete-property/ label;
 		};
 
 		port at 2 {
 			status = "okay";
-			label = "eth2";
+			openwrt,netdev-name = "eth2";
 			nvmem-cells = <&macaddr_factory_22 2>;
 			nvmem-cell-names = "mac-address";
+			/delete-property/ label;
 		};
 
 		port at 3 {
 			status = "okay";
-			label = "eth3";
+			openwrt,netdev-name = "eth3";
 			nvmem-cells = <&macaddr_factory_22 3>;
 			nvmem-cell-names = "mac-address";
+			/delete-property/ label;
 		};
 
 		port at 4 {
 			status = "okay";
-			label = "eth4";
+			openwrt,netdev-name = "eth4";
 			nvmem-cells = <&macaddr_factory_22 4>;
 			nvmem-cell-names = "mac-address";
+			/delete-property/ label;
 		};
 	};
 };
diff --git a/target/linux/ramips/mt7621/base-files/lib/preinit/04_set_netdev_label b/target/linux/ramips/mt7621/base-files/lib/preinit/04_set_netdev_label
index 110e023b96..2c5e420f93 100644
--- a/target/linux/ramips/mt7621/base-files/lib/preinit/04_set_netdev_label
+++ b/target/linux/ramips/mt7621/base-files/lib/preinit/04_set_netdev_label
@@ -10,6 +10,14 @@ set_netdev_labels() {
 		[ "$netdev" = "$label" ] && continue
 		ip link set "$netdev" name "$label"
 	done
+
+	for dir in /sys/class/net/*; do
+		[ -r "$dir/of_node/openwrt,netdev-name" ] || continue
+		read -r label < "$dir/of_node/openwrt,netdev-name"
+		netdev="${dir##*/}"
+		[ "$netdev" = "$label" ] && continue
+		ip link set "$netdev" name "$label"
+	done
 }
 
 boot_hook_add preinit_main set_netdev_labels



From lede-commits at lists.infradead.org  Mon Nov 25 07:42:08 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Mon, 25 Nov 2024 10:42:08 -0500
Subject: [openwrt/openwrt]  ramips: mt7621: support openwrt,netdev-name for
 renaming interfaces
In-Reply-To: <173254932799.2775843.12320437107848716461@git-01.infra.openwrt.org>
References: <173254932799.2775843.12320437107848716461@git-01.infra.openwrt.org>
Message-ID: <mailman.5698.1732549331.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/141ccfd5483d115beb8e81ff94b871f8516c3a18

commit 141ccfd5483d115beb8e81ff94b871f8516c3a18
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Sun Nov 24 21:15:08 2024 +0100

    ramips: mt7621: support openwrt,netdev-name for renaming interfaces
    
    Edgerouter X currently has its eth1 port on the switch missing since there
    is a naming conflict currently.
    
    So, as the root cause is mixing kernel support for DSA interfaces having
    predictable names set via "label" property vs others having it assigned
    dynamically lets avoid the conflict by using our own custom property as
    suggested upstream [1].
    
    So, add support via "openwrt,netdev-name" property and use it on ERX.
    
    Fixes: 2a25c6ace8d8 ("ramips: get rid of downstream network device label patch")
    Fixes: #15643
    Link: https://github.com/openwrt/openwrt/pull/17062
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 5695267847c2fe51290fdbde6ecd7114654f7988)
---
 .../linux/ramips/dts/mt7621_ubnt_edgerouter-x-sfp.dts   |  3 ++-
 target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dts    |  2 +-
 target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi   | 17 +++++++++++------
 .../mt7621/base-files/lib/preinit/04_set_netdev_label   |  8 ++++++++
 4 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x-sfp.dts b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x-sfp.dts
index 50a77c3877..9f1e0a8d20 100644
--- a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x-sfp.dts
+++ b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x-sfp.dts
@@ -69,11 +69,12 @@
 	ports {
 		port at 5 {
 			reg = <5>;
-			label = "eth5";
+			openwrt,netdev-name = "eth5";
 			phy-handle = <&ephy7>;
 			phy-mode = "rgmii-rxid";
 			nvmem-cells = <&macaddr_factory_22 5>;
 			nvmem-cell-names = "mac-address";
+			/delete-property/ label;
 		};
 	};
 };
diff --git a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dts b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dts
index 80467c88e9..c0230e13b4 100644
--- a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dts
+++ b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dts
@@ -7,7 +7,7 @@
 
 &gmac1 {
 	status = "okay";
-	label = "eth0";
+	openwrt,netdev-name = "eth0";
 	phy-handle = <&ethphy0>;
 
 	nvmem-cells = <&macaddr_factory_22 0>;
diff --git a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi
index 0902ad56b9..7648e42982 100644
--- a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi
+++ b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi
@@ -22,42 +22,47 @@
 &gmac0 {
 	nvmem-cells = <&macaddr_factory_22 0>;
 	nvmem-cell-names = "mac-address";
-	label = "dsa";
+	openwrt,netdev-name = "dsa";
 };
 
 &switch0 {
 	ports {
 		port at 0 {
 			status = "okay";
-			label = "eth0";
+			openwrt,netdev-name = "eth0";
+			/delete-property/ label;
 		};
 
 		port at 1 {
 			status = "okay";
-			label = "eth1";
+			openwrt,netdev-name = "eth1";
 			nvmem-cells = <&macaddr_factory_22 1>;
 			nvmem-cell-names = "mac-address";
+			/delete-property/ label;
 		};
 
 		port at 2 {
 			status = "okay";
-			label = "eth2";
+			openwrt,netdev-name = "eth2";
 			nvmem-cells = <&macaddr_factory_22 2>;
 			nvmem-cell-names = "mac-address";
+			/delete-property/ label;
 		};
 
 		port at 3 {
 			status = "okay";
-			label = "eth3";
+			openwrt,netdev-name = "eth3";
 			nvmem-cells = <&macaddr_factory_22 3>;
 			nvmem-cell-names = "mac-address";
+			/delete-property/ label;
 		};
 
 		port at 4 {
 			status = "okay";
-			label = "eth4";
+			openwrt,netdev-name = "eth4";
 			nvmem-cells = <&macaddr_factory_22 4>;
 			nvmem-cell-names = "mac-address";
+			/delete-property/ label;
 		};
 	};
 };
diff --git a/target/linux/ramips/mt7621/base-files/lib/preinit/04_set_netdev_label b/target/linux/ramips/mt7621/base-files/lib/preinit/04_set_netdev_label
index 110e023b96..2c5e420f93 100644
--- a/target/linux/ramips/mt7621/base-files/lib/preinit/04_set_netdev_label
+++ b/target/linux/ramips/mt7621/base-files/lib/preinit/04_set_netdev_label
@@ -10,6 +10,14 @@ set_netdev_labels() {
 		[ "$netdev" = "$label" ] && continue
 		ip link set "$netdev" name "$label"
 	done
+
+	for dir in /sys/class/net/*; do
+		[ -r "$dir/of_node/openwrt,netdev-name" ] || continue
+		read -r label < "$dir/of_node/openwrt,netdev-name"
+		netdev="${dir##*/}"
+		[ "$netdev" = "$label" ] && continue
+		ip link set "$netdev" name "$label"
+	done
 }
 
 boot_hook_add preinit_main set_netdev_labels



From lede-commits at lists.infradead.org  Mon Nov 25 21:07:44 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 26 Nov 2024 00:07:44 -0500
Subject: [openwrt/openwrt]  Revert "target,base-files: unify handling of
 procd-ujail"
In-Reply-To: <173259766462.923031.8240173169528585793@git-01.infra.openwrt.org>
References: <173259766462.923031.8240173169528585793@git-01.infra.openwrt.org>
Message-ID: <mailman.5944.1732597675.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/341cc047b9174280d89f1b5494a42837ccbadb12

commit 341cc047b9174280d89f1b5494a42837ccbadb12
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Mon Nov 25 21:23:54 2024 +0000

    Revert "target,base-files: unify handling of procd-ujail"
    
    This reverts commit ac640718aa0ceae55969bb9e7e45d00bb7bc228a as it
    removes base-files package when KERNEL_NAMESPACES is deselected, as
    base-files depends on procd-ujail which needs KERNEL_NAMESPACES.
    
    Fixes: #17075
    Link: https://github.com/openwrt/openwrt/pull/17081
    Link: https://github.com/openwrt/openwrt/pull/17081
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 include/target.mk           | 5 +++++
 package/base-files/Makefile | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/include/target.mk b/include/target.mk
index 1b32bf905d..02ea68b15c 100644
--- a/include/target.mk
+++ b/include/target.mk
@@ -90,6 +90,11 @@ else
   endif
 endif
 
+# include ujail on systems with enough storage
+ifeq ($(filter small_flash,$(FEATURES)),)
+  DEFAULT_PACKAGES+=procd-ujail
+endif
+
 # Add device specific packages (here below to allow device type set from subtarget)
 DEFAULT_PACKAGES += $(DEFAULT_PACKAGES.$(DEVICE_TYPE))
 
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index ff7891f18c..b90ee3a64e 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -43,7 +43,7 @@ define Package/base-files
 	+netifd +libc +jsonfilter +SIGNED_PACKAGES:usign +SIGNED_PACKAGES:openwrt-keyring \
 	+NAND_SUPPORT:ubi-utils +fstools +fwtool \
 	+SELINUX:procd-selinux +!SELINUX:procd +USE_SECCOMP:procd-seccomp \
-	+SELINUX:busybox-selinux +!SELINUX:busybox +!SMALL_FLASH:procd-ujail
+	+SELINUX:busybox-selinux +!SELINUX:busybox
   TITLE:=Base filesystem for OpenWrt
   URL:=http://openwrt.org/
   VERSION:=$(PKG_RELEASE)~$(lastword $(subst -, ,$(REVISION)))



From lede-commits at lists.infradead.org  Tue Nov 26 01:44:50 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 26 Nov 2024 04:44:50 -0500
Subject: [openwrt/openwrt]  mediatek: remove ktd-202x driver filogic image
 (Aer Vero W6m)
In-Reply-To: <173261429035.1397341.10002726273195316068@git-01.infra.openwrt.org>
References: <173261429035.1397341.10002726273195316068@git-01.infra.openwrt.org>
Message-ID: <mailman.6175.1732614759.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/1bdb6d84046ec1c47f28c57651358470ed212ec3

commit 1bdb6d84046ec1c47f28c57651358470ed212ec3
Author: George Oldfort <openwrt at 10099.de>
AuthorDate: Tue Nov 26 06:42:25 2024 +0100

    mediatek: remove ktd-202x driver filogic image (Aer Vero W6m)
    
    Image build fails with PR #16861 merged while PR #16860 not merged.
    
    Removing kmod-leds-ktd202x from filogic.mk will fix the build process.
    
    Fixes: 2898d1d1269a ("mediatek: add support for Acer Predator W6d and Acer Vero W6m")
    Signed-off-by: George Oldfort <openwrt at 10099.de>
    Link: https://github.com/openwrt/openwrt/pull/17087
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/mediatek/image/filogic.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index 672790f1a7..3a36fbc46b 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -186,7 +186,7 @@ define Device/acer_vero-w6m
   DEVICE_DTS := mt7986a-acer-vero-w6m
   DEVICE_DTS_DIR := ../dts
   DEVICE_DTS_LOADADDR := 0x47000000
-  DEVICE_PACKAGES := kmod-leds-ktd202x kmod-mt7915e kmod-mt7916-firmware kmod-mt7986-firmware mt7986-wo-firmware e2fsprogs f2fsck mkf2fs
+  DEVICE_PACKAGES := kmod-mt7915e kmod-mt7916-firmware kmod-mt7986-firmware mt7986-wo-firmware e2fsprogs f2fsck mkf2fs
   IMAGES := sysupgrade.bin
   KERNEL := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
   KERNEL_INITRAMFS := kernel-bin | lzma | \



From lede-commits at lists.infradead.org  Tue Nov 26 04:23:23 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 26 Nov 2024 07:23:23 -0500
Subject: [openwrt/openwrt]  include: cmake.mk: honor CONFIG_DEBUG
In-Reply-To: <173262380213.1633507.3679852593120088833@git-01.infra.openwrt.org>
References: <173262380213.1633507.3679852593120088833@git-01.infra.openwrt.org>
Message-ID: <mailman.6286.1732623811.1089.lede-commits@lists.infradead.org>

dangole pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/1d612c33de2a57157b3d92e6df0d03fabcbf30b9

commit 1d612c33de2a57157b3d92e6df0d03fabcbf30b9
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Sun Nov 10 00:31:18 2024 +0100

    include: cmake.mk: honor CONFIG_DEBUG
    
    Set CMAKE_BUILD_TYPE according to CONFIG_DEBUG.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
    (cherry picked from commit fc9ec5bd3d22d50654af154fc779517fa7aecb33)
---
 include/cmake.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/cmake.mk b/include/cmake.mk
index 87309dd045..f59410c2f3 100644
--- a/include/cmake.mk
+++ b/include/cmake.mk
@@ -97,7 +97,7 @@ define Build/Configure/Default
 			-DCMAKE_SYSTEM_NAME=Linux \
 			-DCMAKE_SYSTEM_VERSION=1 \
 			-DCMAKE_SYSTEM_PROCESSOR=$(ARCH) \
-			-DCMAKE_BUILD_TYPE=Release \
+			-DCMAKE_BUILD_TYPE=$(if $(CONFIG_DEBUG),Debug,Release) \
 			-DCMAKE_C_FLAGS_RELEASE="-DNDEBUG" \
 			-DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG" \
 			-DCMAKE_C_COMPILER_LAUNCHER="$(CMAKE_C_COMPILER_LAUNCHER)" \



From lede-commits at lists.infradead.org  Tue Nov 26 04:23:25 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 26 Nov 2024 07:23:25 -0500
Subject: [openwrt/openwrt]  procd: update to git HEAD
In-Reply-To: <173262380213.1633507.3679852593120088833@git-01.infra.openwrt.org>
References: <173262380213.1633507.3679852593120088833@git-01.infra.openwrt.org>
Message-ID: <mailman.6287.1732623811.1089.lede-commits@lists.infradead.org>

dangole pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/0de3c201b139979dd22b4f723846b85c4ad6f170

commit 0de3c201b139979dd22b4f723846b85c4ad6f170
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Wed Nov 13 21:58:38 2024 +0000

    procd: update to git HEAD
    
     7330fa5 initd: mount /sys and /proc with MS_RELATIME
    
    Fixes mounting /proc in unpriviledged user namespace.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
    (cherry picked from commit 1e8505ac4e88212106fe78486cfcbe9cae7660f9)
---
 package/system/procd/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/system/procd/Makefile b/package/system/procd/Makefile
index 86de4babfd..81e133f55b 100644
--- a/package/system/procd/Makefile
+++ b/package/system/procd/Makefile
@@ -12,9 +12,9 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git
-PKG_MIRROR_HASH:=0f494faf2811af6cd7332acda8049ad9713dcabc4b2885dc14acbd9f61920be1
-PKG_SOURCE_DATE:=2024-11-06
-PKG_SOURCE_VERSION:=109fa41b2321506280397e03757976c468832668
+PKG_MIRROR_HASH:=56c5f71da3f68036c63ae59d01992785e74027726da5973297895985cd27c215
+PKG_SOURCE_DATE:=2024-11-13
+PKG_SOURCE_VERSION:=7330fa55c5211eb7b3c675d1c7b8281b69b53553
 CMAKE_INSTALL:=1
 
 PKG_LICENSE:=GPL-2.0



From lede-commits at lists.infradead.org  Tue Nov 26 04:23:24 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 26 Nov 2024 07:23:24 -0500
Subject: [openwrt/openwrt]  include: meson.mk: honor CONFIG_DEBUG
In-Reply-To: <173262380213.1633507.3679852593120088833@git-01.infra.openwrt.org>
References: <173262380213.1633507.3679852593120088833@git-01.infra.openwrt.org>
Message-ID: <mailman.6288.1732623811.1089.lede-commits@lists.infradead.org>

dangole pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/634ac989e999cf0fe47f28ae7ef52b1b41b79670

commit 634ac989e999cf0fe47f28ae7ef52b1b41b79670
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Sun Nov 10 00:32:05 2024 +0100

    include: meson.mk: honor CONFIG_DEBUG
    
    Set buildtype according to CONFIG_DEBUG.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
    (cherry picked from commit be3e7a84bd37f29e14e4c6a89b8c79bc9808c36c)
---
 include/meson.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/meson.mk b/include/meson.mk
index 2a20c2bd6b..ff452d8b01 100644
--- a/include/meson.mk
+++ b/include/meson.mk
@@ -124,7 +124,7 @@ define Build/Configure/Meson
 	$(call Meson/CreateCrossFile,$(PKG_BUILD_DIR)/openwrt-cross.txt)
 	$(call Meson, \
 		setup \
-		--buildtype plain \
+		--buildtype $(if $(CONFIG_DEBUG),debug,plain) \
 		--native-file $(PKG_BUILD_DIR)/openwrt-native.txt \
 		--cross-file $(PKG_BUILD_DIR)/openwrt-cross.txt \
 		-Ddefault_library=both \



From lede-commits at lists.infradead.org  Tue Nov 26 04:23:26 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 26 Nov 2024 07:23:26 -0500
Subject: [openwrt/openwrt]  mtd-utils: add ubihealthd to nand-utils
In-Reply-To: <173262380213.1633507.3679852593120088833@git-01.infra.openwrt.org>
References: <173262380213.1633507.3679852593120088833@git-01.infra.openwrt.org>
Message-ID: <mailman.6289.1732623811.1089.lede-commits@lists.infradead.org>

dangole pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/39d6d318a6c3427ef7fc91b14bdbd316837f1446

commit 39d6d318a6c3427ef7fc91b14bdbd316837f1446
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Sat Nov 16 15:29:24 2024 +0000

    mtd-utils: add ubihealthd to nand-utils
    
    Add ubihealthd to the nand-utils package, auto-create UCI config for
    each UBI device and launch the daemon on boot.
    
    The default time interval between scrubbing a random PED is 120 seconds
    which means that a fully used 128 MiB flash chip gets scrubbed in about
    a day and a half. The interval can be adjusted in UCI using the
    'interval' option.
    
    Suggested-by: Rodrigo Balerdi <lanchon at gmail.com>
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
    Link: https://github.com/openwrt/openwrt/pull/16973
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
    (cherry picked from commit 7e287b563aa1043a1af54d5e2b0bd96326371732)
---
 package/utils/mtd-utils/Makefile                  | 12 ++++++++--
 package/utils/mtd-utils/files/ubihealthd.defaults | 18 +++++++++++++++
 package/utils/mtd-utils/files/ubihealthd.init     | 27 +++++++++++++++++++++++
 3 files changed, 55 insertions(+), 2 deletions(-)

diff --git a/package/utils/mtd-utils/Makefile b/package/utils/mtd-utils/Makefile
index 046572e83b..0dc8831251 100644
--- a/package/utils/mtd-utils/Makefile
+++ b/package/utils/mtd-utils/Makefile
@@ -65,12 +65,20 @@ CONFIGURE_ARGS += \
 	--without-lzo \
 	--without-zlib
 
+define Package/ubi-utils/conffiles
+/etc/config/ubihealthd
+endef
+
 define Package/ubi-utils/install
 	$(INSTALL_DIR) $(1)/usr/sbin
 	$(INSTALL_BIN) \
-		$(PKG_INSTALL_DIR)/usr/sbin/{ubiattach,ubicrc32,ubiblock,ubidetach,ubiformat,ubimkvol} $(1)/usr/sbin/
+		$(PKG_INSTALL_DIR)/usr/sbin/{ubiattach,ubicrc32,ubiblock,ubidetach,ubiformat,ubihealthd} $(1)/usr/sbin/
 	$(INSTALL_BIN) \
-		$(PKG_INSTALL_DIR)/usr/sbin/{ubinfo,ubinize,ubirename,ubirmvol,ubirsvol,ubiupdatevol} $(1)/usr/sbin/
+		$(PKG_INSTALL_DIR)/usr/sbin/{ubimkvol,ubinfo,ubinize,ubirename,ubirmvol,ubirsvol,ubiupdatevol} $(1)/usr/sbin/
+	$(INSTALL_DIR) $(1)/etc/init.d
+	$(INSTALL_BIN) ./files/ubihealthd.init $(1)/etc/init.d/ubihealthd
+	$(INSTALL_DIR) $(1)/etc/uci-defaults
+	$(INSTALL_DATA) ./files/ubihealthd.defaults $(1)/etc/uci-defaults/ubihealthd
 endef
 
 define Package/nand-utils/install
diff --git a/package/utils/mtd-utils/files/ubihealthd.defaults b/package/utils/mtd-utils/files/ubihealthd.defaults
new file mode 100644
index 0000000000..5222961bd4
--- /dev/null
+++ b/package/utils/mtd-utils/files/ubihealthd.defaults
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+[ -e "/etc/config/ubihealthd" ] && exit 0
+[ ! -e "/sys/class/ubi" ] && exit 0
+
+touch  "/etc/config/ubihealthd"
+
+for ubidev in /sys/class/ubi/*/total_eraseblocks; do
+	ubidev="${ubidev%/*}"
+	ubidev="${ubidev##*/}"
+	uci batch <<EOF
+set ubihealthd.$ubidev=ubi-device
+set ubihealthd.$ubidev.device="/dev/$ubidev"
+set ubihealthd.$ubidev.enable=1
+EOF
+done
+
+uci commit ubihealthd
diff --git a/package/utils/mtd-utils/files/ubihealthd.init b/package/utils/mtd-utils/files/ubihealthd.init
new file mode 100644
index 0000000000..c5ec97b22e
--- /dev/null
+++ b/package/utils/mtd-utils/files/ubihealthd.init
@@ -0,0 +1,27 @@
+#!/bin/sh /etc/rc.common
+
+START=99
+
+USE_PROCD=1
+PROG=/usr/sbin/ubihealthd
+
+ubihealthd_instance() {
+	local cfg="$1"
+	local device interval enable
+
+	config_get_bool enable "$cfg" "enable" 1
+	[ "$enable" = "1" ] || return 0
+
+	config_get device "$cfg" "device"
+	config_get interval "$cfg" "interval"
+
+	procd_open_instance
+	procd_set_param command "$PROG" -f -d "$device"
+	[ -n "$interval" ] && procd_append_param command -i "$interval"
+	procd_close_instance
+}
+
+start_service() {
+	config_load ubihealthd
+	config_foreach ubihealthd_instance ubi-device
+}



From lede-commits at lists.infradead.org  Tue Nov 26 04:23:22 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 26 Nov 2024 07:23:22 -0500
Subject: [openwrt/openwrt]  kernel: modules: package driver for generic MIPI
 DBI TFT panels
In-Reply-To: <173262380213.1633507.3679852593120088833@git-01.infra.openwrt.org>
References: <173262380213.1633507.3679852593120088833@git-01.infra.openwrt.org>
Message-ID: <mailman.6292.1732623811.1089.lede-commits@lists.infradead.org>

dangole pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/79dafe4ad1be6619fa8a13d7db02f7ba43f51853

commit 79dafe4ad1be6619fa8a13d7db02f7ba43f51853
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Sat Nov 2 20:22:35 2024 +0000

    kernel: modules: package driver for generic MIPI DBI TFT panels
    
    Package kmod-drm-panel-mipi-dbi as well as modules it depends on in
    order to support a wide range of MIPI DBI complaint SPI-connected
    TFT panels.
    
    See https://github.com/notro/panel-mipi-dbi/ for more information on
    how to use specific panels.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
    (cherry picked from commit 0a7b7ef27cfc00521a0f99de073a7168f1b79e8f)
---
 package/kernel/linux/modules/video.mk | 50 +++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/package/kernel/linux/modules/video.mk b/package/kernel/linux/modules/video.mk
index 52fc55bbad..8b4585a624 100644
--- a/package/kernel/linux/modules/video.mk
+++ b/package/kernel/linux/modules/video.mk
@@ -311,6 +311,38 @@ endef
 
 $(eval $(call KernelPackage,drm-exec))
 
+define KernelPackage/drm-dma-helper
+  SUBMENU:=$(VIDEO_MENU)
+  HIDDEN:=1
+  TITLE:=GEM DMA helper functions
+  DEPENDS:=@DISPLAY_SUPPORT +kmod-drm-kms-helper
+  KCONFIG:=CONFIG_DRM_GEM_DMA_HELPER
+  FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_dma_helper.ko
+  AUTOLOAD:=$(call AutoProbe,drm_dma_helper)
+endef
+
+define KernelPackage/drm-dma-helper/description
+  GEM DMA helper functions.
+endef
+
+$(eval $(call KernelPackage,drm-dma-helper))
+
+define KernelPackage/drm-mipi-dbi
+  SUBMENU:=$(VIDEO_MENU)
+  HIDDEN:=1
+  TITLE:=MIPI DBI helpers
+  DEPENDS:=@DISPLAY_SUPPORT +kmod-backlight +kmod-drm-kms-helper
+  KCONFIG:=CONFIG_DRM_MIPI_DBI
+  FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_mipi_dbi.ko
+  AUTOLOAD:=$(call AutoProbe,drm_mipi_dbi)
+endef
+
+define KernelPackage/drm-mipi-dbi/description
+  MIPI Display Bus Interface (DBI) LCD controller support.
+endef
+
+$(eval $(call KernelPackage,drm-mipi-dbi))
+
 define KernelPackage/drm-ttm
   SUBMENU:=$(VIDEO_MENU)
   TITLE:=GPU memory management subsystem
@@ -484,6 +516,24 @@ endef
 
 $(eval $(call KernelPackage,drm-imx-ldb))
 
+define KernelPackage/drm-panel-mipi-dbi
+  SUBMENU:=$(VIDEO_MENU)
+  TITLE:=Generic MIPI DBI LCD panel
+  DEPENDS:=+kmod-drm-mipi-dbi +kmod-drm-dma-helper
+  KCONFIG:=CONFIG_DRM_PANEL_MIPI_DBI \
+	CONFIG_DRM_FBDEV_EMULATION=y \
+	CONFIG_DRM_FBDEV_OVERALLOC=100
+  FILES:= \
+	$(LINUX_DIR)/drivers/gpu/drm/tiny/panel-mipi-dbi.ko
+  AUTOLOAD:=$(call AutoProbe,panel-mipi-dbi)
+endef
+
+define KernelPackage/drm-panel-mipi-dbi/description
+  Generic driver for MIPI Alliance Display Bus Interface
+endef
+
+$(eval $(call KernelPackage,drm-panel-mipi-dbi))
+
 define KernelPackage/drm-radeon
   SUBMENU:=$(VIDEO_MENU)
   TITLE:=Radeon DRM support



From lede-commits at lists.infradead.org  Tue Nov 26 14:47:36 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 26 Nov 2024 17:47:36 -0500
Subject: [openwrt/openwrt]  build: profiles.json: add kernel version
 information
In-Reply-To: <173266125607.2971704.2897821680361068480@git-01.infra.openwrt.org>
References: <173266125607.2971704.2897821680361068480@git-01.infra.openwrt.org>
Message-ID: <mailman.6730.1732661259.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/c857145e034f623e31ab2028049a547ecd94ce85

commit c857145e034f623e31ab2028049a547ecd94ce85
Author: Eric Fahlgren <ericfahlgren at gmail.com>
AuthorDate: Fri Nov 22 09:00:25 2024 -0800

    build: profiles.json: add kernel version information
    
    Currently downstream tools like ASU lack information about kernel
    version to find out the relevant kmod build folder on downloads server.
    
    So lets fix it by providing a new `linux_kernel` JSON array which would
    for the start provide Linux kernel version, revision and vermagic
    information.
    
      "linux_kernel": {
         "release": "1",
         "vermagic": "b57450c07d3a786158c3601fc5cee57d",
         "version": "6.6.61"
       },
    
    Fixes: openwrt/openwrt#17036
    Fixes: efahl/owut#9
    Co-developed-by: Petr ?tetiar <ynezz at true.cz>
    Signed-off-by: Eric Fahlgren <ericfahlgren at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/17042
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 scripts/json_overview_image_info.py | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/scripts/json_overview_image_info.py b/scripts/json_overview_image_info.py
index 0d2cf7f1ef..96921c2743 100755
--- a/scripts/json_overview_image_info.py
+++ b/scripts/json_overview_image_info.py
@@ -47,7 +47,13 @@ for device_id, profile in output.get("profiles", {}).items():
 
 
 if output:
-    default_packages, output["arch_packages"] = run(
+    (
+        default_packages,
+        output["arch_packages"],
+        linux_version,
+        linux_release,
+        linux_vermagic,
+    ) = run(
         [
             "make",
             "--no-print-directory",
@@ -55,6 +61,9 @@ if output:
             "target/linux/",
             "val.DEFAULT_PACKAGES",
             "val.ARCH_PACKAGES",
+            "val.LINUX_VERSION",
+            "val.LINUX_RELEASE",
+            "val.LINUX_VERMAGIC",
             "V=s",
         ],
         stdout=PIPE,
@@ -64,7 +73,11 @@ if output:
     ).stdout.splitlines()
 
     output["default_packages"] = sorted(default_packages.split())
-
+    output["linux_kernel"] = {
+        "version": linux_version,
+        "release": linux_release,
+        "vermagic": linux_vermagic,
+    }
     output_path.write_text(json.dumps(output, sort_keys=True, separators=(",", ":")))
 else:
     print("JSON info file script could not find any JSON files for target")



From lede-commits at lists.infradead.org  Tue Nov 26 14:49:33 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Tue, 26 Nov 2024 17:49:33 -0500
Subject: [openwrt/openwrt]  build: profiles.json: add kernel version
 information
In-Reply-To: <173266137380.2974680.1065135584101559875@git-01.infra.openwrt.org>
References: <173266137380.2974680.1065135584101559875@git-01.infra.openwrt.org>
Message-ID: <mailman.6731.1732661382.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/7ef734deac1a2e84061799b61bf480d00c35d180

commit 7ef734deac1a2e84061799b61bf480d00c35d180
Author: Eric Fahlgren <ericfahlgren at gmail.com>
AuthorDate: Fri Nov 22 09:00:25 2024 -0800

    build: profiles.json: add kernel version information
    
    Currently downstream tools like ASU lack information about kernel
    version to find out the relevant kmod build folder on downloads server.
    
    So lets fix it by providing a new `linux_kernel` JSON array which would
    for the start provide Linux kernel version, revision and vermagic
    information.
    
      "linux_kernel": {
         "release": "1",
         "vermagic": "b57450c07d3a786158c3601fc5cee57d",
         "version": "6.6.61"
       },
    
    Fixes: openwrt/openwrt#17036
    Fixes: efahl/owut#9
    Co-developed-by: Petr ?tetiar <ynezz at true.cz>
    Signed-off-by: Eric Fahlgren <ericfahlgren at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/17042
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
    (cherry picked from commit c857145e034f623e31ab2028049a547ecd94ce85)
---
 scripts/json_overview_image_info.py | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/scripts/json_overview_image_info.py b/scripts/json_overview_image_info.py
index 0d2cf7f1ef..96921c2743 100755
--- a/scripts/json_overview_image_info.py
+++ b/scripts/json_overview_image_info.py
@@ -47,7 +47,13 @@ for device_id, profile in output.get("profiles", {}).items():
 
 
 if output:
-    default_packages, output["arch_packages"] = run(
+    (
+        default_packages,
+        output["arch_packages"],
+        linux_version,
+        linux_release,
+        linux_vermagic,
+    ) = run(
         [
             "make",
             "--no-print-directory",
@@ -55,6 +61,9 @@ if output:
             "target/linux/",
             "val.DEFAULT_PACKAGES",
             "val.ARCH_PACKAGES",
+            "val.LINUX_VERSION",
+            "val.LINUX_RELEASE",
+            "val.LINUX_VERMAGIC",
             "V=s",
         ],
         stdout=PIPE,
@@ -64,7 +73,11 @@ if output:
     ).stdout.splitlines()
 
     output["default_packages"] = sorted(default_packages.split())
-
+    output["linux_kernel"] = {
+        "version": linux_version,
+        "release": linux_release,
+        "vermagic": linux_vermagic,
+    }
     output_path.write_text(json.dumps(output, sort_keys=True, separators=(",", ":")))
 else:
     print("JSON info file script could not find any JSON files for target")



From lede-commits at lists.infradead.org  Wed Nov 27 13:09:08 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 27 Nov 2024 16:09:08 -0500
Subject: [openwrt/openwrt]  base-files: add migration information for APK
In-Reply-To: <173274174887.1509144.14050951441374497922@git-01.infra.openwrt.org>
References: <173274174887.1509144.14050951441374497922@git-01.infra.openwrt.org>
Message-ID: <mailman.7430.1732741755.1089.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/c19c31f7aa6f9952b5d5e1b313eca79d4e7ed59c

commit c19c31f7aa6f9952b5d5e1b313eca79d4e7ed59c
Author: Paul Spooren <mail at aparcar.org>
AuthorDate: Wed Nov 27 17:09:30 2024 +0100

    base-files: add migration information for APK
    
    If the `apk` package manager is installed, show a table of common
    commands to deal with the system.
    
    Signed-off-by: Paul Spooren <mail at aparcar.org>
---
 package/base-files/files/etc/profile | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/package/base-files/files/etc/profile b/package/base-files/files/etc/profile
index 76b149b9fa..e892a5a605 100644
--- a/package/base-files/files/etc/profile
+++ b/package/base-files/files/etc/profile
@@ -38,3 +38,24 @@ in order to prevent unauthorized SSH logins.
 --------------------------------------------------
 EOF
 fi
+
+if [ -x /usr/bin/apk ]; then
+cat << EOF
+
+ OpenWrt recently switched to the "apk" package manger!
+
+ OPKG Command           APK Equivalent      Description
+ ------------------------------------------------------------------
+ opkg install <pkg>     apk add <pkg>       Install a package
+ opkg remove <pkg>      apk del <pkg>       Remove a package
+ opkg upgrade           apk upgrade         Upgrade all packages
+ opkg files <pkg>       apk info -L <pkg>   List package contents
+ opkg list-installed    apk info            List installed packages
+ opkg update            apk update          Update package lists
+ opkg search <pkg>      apk search <pkg>    Search for packages
+ ------------------------------------------------------------------
+
+For more https://openwrt.org/docs/guide-user/additional-software/opkg-to-apk-cheatsheet
+
+EOF
+fi



From lede-commits at lists.infradead.org  Wed Nov 27 13:21:17 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 27 Nov 2024 16:21:17 -0500
Subject: [openwrt/openwrt]  uci: update to Git HEAD (2024-11-26)
In-Reply-To: <173274247749.1527434.17550452174340603123@git-01.infra.openwrt.org>
References: <173274247749.1527434.17550452174340603123@git-01.infra.openwrt.org>
Message-ID: <mailman.7431.1732742480.1089.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/3929ef4c21844189d5db8d14e7e6dc6ba983d571

commit 3929ef4c21844189d5db8d14e7e6dc6ba983d571
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Wed Nov 27 22:20:54 2024 +0100

    uci: update to Git HEAD (2024-11-26)
    
    10f7996ec294 file: Ignore config file with '.' in name
    
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 package/system/uci/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/system/uci/Makefile b/package/system/uci/Makefile
index c8f661c684..6b902a9c24 100644
--- a/package/system/uci/Makefile
+++ b/package/system/uci/Makefile
@@ -13,9 +13,9 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_URL=$(PROJECT_GIT)/project/uci.git
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2023-08-10
-PKG_SOURCE_VERSION:=5781664d5087ccc4b5ab58505883231212dbedbc
-PKG_MIRROR_HASH:=0ca4a29c077e85a7cfe69916c3ceb2bee98662b6268befc3c02519939647f984
+PKG_SOURCE_DATE:=2024-11-26
+PKG_SOURCE_VERSION:=10f7996ec29449915640acca5d65b592365a4b14
+PKG_MIRROR_HASH:=8556add0dd77b85a5702faa94feb811606390c045d7f5004317a4ab3e07f773b
 
 PKG_LICENSE:=LGPL-2.1
 PKG_LICENSE_FILES:=



From lede-commits at lists.infradead.org  Wed Nov 27 13:36:04 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Wed, 27 Nov 2024 16:36:04 -0500
Subject: [openwrt/openwrt]  netifd: update to Git
 768027c5a7640137857f412f554227abd6160cdd (2024-11-27)
In-Reply-To: <173274336484.1559721.16084752025393654866@git-01.infra.openwrt.org>
References: <173274336484.1559721.16084752025393654866@git-01.infra.openwrt.org>
Message-ID: <mailman.7436.1732743368.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/f4492b6b1c5373a27c911ad675e96ccf1ce542d2

commit f4492b6b1c5373a27c911ad675e96ccf1ce542d2
Author: Paul Donald <newtwen+github at gmail.com>
AuthorDate: Mon Nov 25 15:24:54 2024 +0100

    netifd: update to Git 768027c5a7640137857f412f554227abd6160cdd (2024-11-27)
    
    86da5cbcdb9d system-linux: do not pull ifindex/flags from netlink messages on rtnl events
    cd96f61ba63e proto-shell: fix spurious interface teardowns with host deps
    a39fe3a8b150 wireless: add support for adding a list of devices for a wifi-iface
    d29cf707478c iprule: add ipproto property
    768027c5a764 system-linux: restore reading flags from netlink messages
    
    Signed-off-by: Paul Donald <newtwen+github at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/17074
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/network/config/netifd/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile
index a4400c9516..82a04adecd 100644
--- a/package/network/config/netifd/Makefile
+++ b/package/network/config/netifd/Makefile
@@ -5,9 +5,9 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
-PKG_SOURCE_DATE:=2024-11-08
-PKG_SOURCE_VERSION:=34eb11eb6f5c62de480d6192f0ca840093127fee
-PKG_MIRROR_HASH:=c4c2bc626426d2cd73c9ece54b22ada6ed6254afa992f51b8725312aca240cfd
+PKG_SOURCE_DATE:=2024-11-27
+PKG_SOURCE_VERSION:=768027c5a7640137857f412f554227abd6160cdd
+PKG_MIRROR_HASH:=5f74dc10470c64b42caa2d1fda3b80672293cf39676aa5c0b9f8c89880a15270
 PKG_MAINTAINER:=Felix Fietkau <nbd at nbd.name>
 
 PKG_LICENSE:=GPL-2.0



From lede-commits at lists.infradead.org  Thu Nov 28 00:51:10 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 03:51:10 -0500
Subject: [openwrt/openwrt]  base-files: fix manger->manager typo
In-Reply-To: <173278387090.3030119.17047993828391838903@git-01.infra.openwrt.org>
References: <173278387090.3030119.17047993828391838903@git-01.infra.openwrt.org>
Message-ID: <mailman.7657.1732784223.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/6f9384f4a495c7e19934eb842cc29c1fdd093a1c

commit 6f9384f4a495c7e19934eb842cc29c1fdd093a1c
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Thu Nov 28 08:10:44 2024 +0000

    base-files: fix manger->manager typo
    
    It was reported, that a small typo sneaked in, so lets fix it.
    
    Reported-by: @dave14305
    Fixes: c19c31f7aa6f ("base-files: add migration information for APK")
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/base-files/files/etc/profile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/base-files/files/etc/profile b/package/base-files/files/etc/profile
index e892a5a605..f9acdb439f 100644
--- a/package/base-files/files/etc/profile
+++ b/package/base-files/files/etc/profile
@@ -42,7 +42,7 @@ fi
 if [ -x /usr/bin/apk ]; then
 cat << EOF
 
- OpenWrt recently switched to the "apk" package manger!
+ OpenWrt recently switched to the "apk" package manager!
 
  OPKG Command           APK Equivalent      Description
  ------------------------------------------------------------------



From lede-commits at lists.infradead.org  Thu Nov 28 07:54:14 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 10:54:14 -0500
Subject: [openwrt/openwrt]  gmp: use same source tarball for tools/gmp and
 package/libs/gmp
In-Reply-To: <173280925491.3927233.17920342962705344982@git-01.infra.openwrt.org>
References: <173280925491.3927233.17920342962705344982@git-01.infra.openwrt.org>
Message-ID: <mailman.7912.1732809304.1089.lede-commits@lists.infradead.org>

dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/ee9eb91e0a69aa90c69cd34efef44badbc16d416

commit ee9eb91e0a69aa90c69cd34efef44badbc16d416
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Wed Nov 27 21:43:26 2024 +0100

    gmp: use same source tarball for tools/gmp and package/libs/gmp
    
    tools/gmp was using the .tar.xz while package/libs/gmp was using the
    .tar.gz archive of the GMP release. Use the .tar.gz for both of them.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 package/libs/gmp/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package/libs/gmp/Makefile b/package/libs/gmp/Makefile
index 6bcee784ed..f2cacc942c 100644
--- a/package/libs/gmp/Makefile
+++ b/package/libs/gmp/Makefile
@@ -11,9 +11,9 @@ PKG_NAME:=gmp
 PKG_VERSION:=6.3.0
 PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)$(PKG_REVISION).tar.xz
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@GNU/gmp/
-PKG_HASH:=a3c2b80201b89e68616f4ad30bc66aee4927c3ce50e33929ca819d5c43538898
+PKG_HASH:=e56fd59d76810932a0555aa15a14b61c16bed66110d3c75cc2ac49ddaa9ab24c
 
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1



From lede-commits at lists.infradead.org  Thu Nov 28 07:55:12 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 10:55:12 -0500
Subject: [openwrt/openwrt]  meson: honor MESON_ARGS and MESON_HOST_ARGS when
 calling ninja
In-Reply-To: <173280931212.3930741.12674120572618675705@git-01.infra.openwrt.org>
References: <173280931212.3930741.12674120572618675705@git-01.infra.openwrt.org>
Message-ID: <mailman.7913.1732809315.1089.lede-commits@lists.infradead.org>

dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/e48903a9ffff256817c18ebf9af8050163c28240

commit e48903a9ffff256817c18ebf9af8050163c28240
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Wed Nov 27 21:37:57 2024 +0100

    meson: honor MESON_ARGS and MESON_HOST_ARGS when calling ninja
    
    Set MESON_ARGS and MESON_HOST_ARGS when calling ninja for building.
    This is required eg. to be able to set PYTHONPATH= not just for the
    Meson (==configure) run but also for the build phase itself.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 include/meson.mk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/meson.mk b/include/meson.mk
index ff452d8b01..fdb94b6542 100644
--- a/include/meson.mk
+++ b/include/meson.mk
@@ -108,7 +108,7 @@ define Host/Configure/Meson
 endef
 
 define Host/Compile/Meson
-	+$(NINJA) -C $(MESON_HOST_BUILD_DIR) $(1)
+	+$(MESON_HOST_VARS) $(NINJA) -C $(MESON_HOST_BUILD_DIR) $(1)
 endef
 
 define Host/Install/Meson
@@ -135,7 +135,7 @@ define Build/Configure/Meson
 endef
 
 define Build/Compile/Meson
-	+$(NINJA) -C $(MESON_BUILD_DIR) $(1)
+	+$(MESON_VARS) $(NINJA) -C $(MESON_BUILD_DIR) $(1)
 endef
 
 define Build/Install/Meson



From lede-commits at lists.infradead.org  Thu Nov 28 10:35:18 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:35:18 -0500
Subject: [openwrt/openwrt]  tools: ccache update to 4.10.2
In-Reply-To: <173281891885.99196.14618375048859176165@git-01.infra.openwrt.org>
References: <173281891885.99196.14618375048859176165@git-01.infra.openwrt.org>
Message-ID: <mailman.7958.1732818923.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/08f12283c7436814cdd10d93b5cb913f49acad3e

commit 08f12283c7436814cdd10d93b5cb913f49acad3e
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Thu Nov 28 16:30:07 2024 +0000

    tools: ccache update to 4.10.2
    
    Fixes since 4.10:
    
     * Fixed detection of Fmt version 11 and newer.
     * Fixed prefix command lookup from PATH.
    
    Suggested-by: Jen Wolf <jenwolf at protonmail.com>
    Link: https://github.com/openwrt/openwrt/pull/17105
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 tools/ccache/Makefile                       | 4 ++--
 tools/ccache/patches/100-honour-copts.patch | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/ccache/Makefile b/tools/ccache/Makefile
index 47c24a5c98..447bc3ea43 100644
--- a/tools/ccache/Makefile
+++ b/tools/ccache/Makefile
@@ -7,11 +7,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ccache
-PKG_VERSION:=4.10
+PKG_VERSION:=4.10.2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/ccache/ccache/releases/download/v$(PKG_VERSION)
-PKG_HASH:=16972ba62c8499045edc3ae7d7b8a0b419a961567f5ff0f01bf5a44194204775
+PKG_HASH:=108100960bb7e64573ea925af2ee7611701241abb36ce0aae3354528403a7d87
 
 include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/cmake.mk
diff --git a/tools/ccache/patches/100-honour-copts.patch b/tools/ccache/patches/100-honour-copts.patch
index a40665ea25..c07c8ce8eb 100644
--- a/tools/ccache/patches/100-honour-copts.patch
+++ b/tools/ccache/patches/100-honour-copts.patch
@@ -1,6 +1,6 @@
 --- a/src/ccache/ccache.cpp
 +++ b/src/ccache/ccache.cpp
-@@ -1906,6 +1906,7 @@ get_manifest_key(Context& ctx, Hash& has
+@@ -1914,6 +1914,7 @@ get_manifest_key(Context& ctx, Hash& has
      "OBJCPLUS_INCLUDE_PATH",        // Clang
      "CLANG_CONFIG_FILE_SYSTEM_DIR", // Clang
      "CLANG_CONFIG_FILE_USER_DIR",   // Clang



From lede-commits at lists.infradead.org  Thu Nov 28 10:40:04 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:40:04 -0500
Subject: [openwrt/openwrt]  config: build: remove experimental warning from
 USE_APK option
In-Reply-To: <173281920462.116038.3047184305263311531@git-01.infra.openwrt.org>
References: <173281920462.116038.3047184305263311531@git-01.infra.openwrt.org>
Message-ID: <mailman.7961.1732819208.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/620a7ef47f0ba0e5d8769eed808a2875474e05d4

commit 620a7ef47f0ba0e5d8769eed808a2875474e05d4
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Thu Nov 28 18:36:06 2024 +0000

    config: build: remove experimental warning from USE_APK option
    
    apk package manager is default for some time, so lets remove the
    EXPERIMENTAL warning from the related option.
    
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 config/Config-build.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/config/Config-build.in b/config/Config-build.in
index c8739afa87..ec3a8d1f80 100644
--- a/config/Config-build.in
+++ b/config/Config-build.in
@@ -70,7 +70,7 @@ menu "Global build settings"
 
 	config USE_APK
 		imply PACKAGE_apk-mbedtls
-		bool "Use APK instead of OPKG to build distribution (EXPERIMENTAL)"
+		bool "Use APK instead of OPKG to build distribution"
 		default y
 
 	comment "General build options"



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:17 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:17 -0500
Subject: [openwrt/openwrt]  rampis: mt7621: resize Edgerouter-X kernel size to
 6MB
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7962.1732820232.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/1fd7e5124ebe06b4fab8b619d38f695828640905

commit 1fd7e5124ebe06b4fab8b619d38f695828640905
Author: Tim Lunn <tim at feathertop.org>
AuthorDate: Wed Apr 17 10:51:35 2024 +1000

    rampis: mt7621: resize Edgerouter-X kernel size to 6MB
    
    With the updated partition layout set in dts, set the KERNEL_SIZE
    parameter to 6MB allowing builds of Linux 6.1 and later to fit.
    
    Signed-off-by: Tim Lunn <tim at feathertop.org>
    Tested-by: Mauri Sandberg <maukka at ext.kapsi.fi>
    Link: https://github.com/openwrt/openwrt/pull/15194
    (cherry picked from commit 09a6bffb6e0a714f20d71043ae8382af4c5925b6)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ramips/image/mt7621.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index 9654e237a8..27adb06bf7 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -2860,7 +2860,7 @@ define Device/ubnt_edgerouter_common
   DEVICE_VENDOR := Ubiquiti
   IMAGE_SIZE := 256768k
   FILESYSTEMS := squashfs
-  KERNEL_SIZE := 3145728
+  KERNEL_SIZE := 6144k
   KERNEL_INITRAMFS := $$(KERNEL) | \
 	ubnt-erx-factory-image $(KDIR)/tmp/$$(KERNEL_INITRAMFS_PREFIX)-factory.tar
   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:16 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:16 -0500
Subject: [openwrt/openwrt]  rampis: mt7621: Edgerouter-X disable toggling of
 kernel slots
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7963.1732820232.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/c2cde63ae654185d2c117ec72c1837b683212734

commit c2cde63ae654185d2c117ec72c1837b683212734
Author: Tim Lunn <tim at feathertop.org>
AuthorDate: Wed Apr 17 12:51:22 2024 +1000

    rampis: mt7621: Edgerouter-X disable toggling of kernel slots
    
    Uboot selects which kernel slot to boot based on a flag in the factory
    mtd partition. Patch ubnt.sh to ensure always flash to kernel1 slot and
    update flag if required.
    
    Signed-off-by: Tim Lunn <tim at feathertop.org>
    Tested-by: Mauri Sandberg <maukka at ext.kapsi.fi>
    Link: https://github.com/openwrt/openwrt/pull/15194
    (cherry picked from commit 5e355f1f9084c1b6de3151fbcde948d736292d6c)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../ramips/mt7621/base-files/lib/upgrade/ubnt.sh   | 39 ++++------------------
 1 file changed, 7 insertions(+), 32 deletions(-)

diff --git a/target/linux/ramips/mt7621/base-files/lib/upgrade/ubnt.sh b/target/linux/ramips/mt7621/base-files/lib/upgrade/ubnt.sh
index 748ec8e628..7e9d937d79 100644
--- a/target/linux/ramips/mt7621/base-files/lib/upgrade/ubnt.sh
+++ b/target/linux/ramips/mt7621/base-files/lib/upgrade/ubnt.sh
@@ -8,32 +8,16 @@
 
 UBNT_ERX_KERNEL_INDEX_OFFSET=160
 
-ubnt_get_target_kernel() {
+ubnt_update_kernel_flag() {
 	local factory_mtd=$1
-	local current_kernel_index=$(hexdump -s $UBNT_ERX_KERNEL_INDEX_OFFSET -n 1 -e '/1 "%X "' ${factory_mtd})
+	local kernel_index=$(hexdump -s $UBNT_ERX_KERNEL_INDEX_OFFSET -n 1 -e '/1 "%X "' ${factory_mtd})
 
-	if [ $current_kernel_index == "0" ]; then
-		echo 'kernel2'
-	elif [ $current_kernel_index == "1" ]; then
-		echo 'kernel1'
-	fi
-}
-
-ubnt_update_target_kernel() {
-	local factory_mtd=$1
-	local kernel_part=$2
-
-	local new_kernel_index
-	if [ $kernel_part == "kernel1" ]; then
-		new_kernel_index="\x00"
-	elif [ $kernel_part == "kernel2" ]; then
-		new_kernel_index="\x01"
-	else
-		echo 'Unknown kernel image index' >&2
-		return 1
+	if [ $kernel_index = "0" ]; then
+		echo "Kernel flag already set to kernel slot 1"
+		return 0
 	fi
 
-	if ! (echo -e $new_kernel_index | dd of=${factory_mtd} bs=1 count=1 seek=$UBNT_ERX_KERNEL_INDEX_OFFSET); then
+	if ! (echo -e "\x00" | dd of=${factory_mtd} bs=1 count=1 seek=$UBNT_ERX_KERNEL_INDEX_OFFSET); then
 		echo 'Failed to update kernel bootup index' >&2
 		return 1
 	fi
@@ -46,15 +30,6 @@ platform_upgrade_ubnt_erx() {
 		exit 1
 	fi
 
-	local kernel_part="$(ubnt_get_target_kernel ${factory_mtd})"
-	if [ -z "$kernel_part" ]; then
-		echo "cannot find factory partition" >&2
-		exit 1
-	fi
-
-	# This is a global defined in nand.sh, sets partition kernel will be flashed into
-	CI_KERNPART=${kernel_part}
-
 	#Remove volume possibly left over from stock firmware
 	local ubidev="$( nand_find_ubi "$CI_UBIPART" )"
 	if [ -z "$ubidev" ]; then
@@ -72,7 +47,7 @@ platform_upgrade_ubnt_erx() {
 		[ -n "$troot_ubivol" ] && ubirmvol /dev/$ubidev -N troot || true
 	fi
 
-	ubnt_update_target_kernel ${factory_mtd} ${kernel_part} || exit 1
+	ubnt_update_kernel_flag ${factory_mtd} || exit 1
 
 	nand_do_upgrade "$1"
 }



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:08 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:08 -0500
Subject: [openwrt/openwrt]  ipq40xx: use devm for mutex_init
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7964.1732820236.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/fbe50c67c615a2df77072586fc4a5c2144bb9597

commit fbe50c67c615a2df77072586fc4a5c2144bb9597
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Fri Oct 18 18:56:30 2024 -0700

    ipq40xx: use devm for mutex_init
    
    Avoids having to call mutex_destroy in remove.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16755
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 57f2c72505f24b41fd9beaef3a8aa713b436cdb9)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../706-net-dsa-qca8k-add-IPQ4019-built-in-switch-support.patch     | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/target/linux/ipq40xx/patches-6.6/706-net-dsa-qca8k-add-IPQ4019-built-in-switch-support.patch b/target/linux/ipq40xx/patches-6.6/706-net-dsa-qca8k-add-IPQ4019-built-in-switch-support.patch
index 20dd345c69..9bd5ca515e 100644
--- a/target/linux/ipq40xx/patches-6.6/706-net-dsa-qca8k-add-IPQ4019-built-in-switch-support.patch
+++ b/target/linux/ipq40xx/patches-6.6/706-net-dsa-qca8k-add-IPQ4019-built-in-switch-support.patch
@@ -87,7 +87,7 @@ Signed-off-by: Robert Marko <robert.marko at sartura.hr>
  		if (!dsa_port_offloads_bridge(dsa_to_port(ds, i), &bridge))
 --- /dev/null
 +++ b/drivers/net/dsa/qca/qca8k-ipq4019.c
-@@ -0,0 +1,946 @@
+@@ -0,0 +1,948 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2009 Felix Fietkau <nbd at nbd.name>
@@ -989,7 +989,9 @@ Signed-off-by: Robert Marko <robert.marko at sartura.hr>
 +	priv->ds->num_ports = QCA8K_IPQ4019_NUM_PORTS;
 +	priv->ds->priv = priv;
 +	priv->ds->ops = &qca8k_ipq4019_switch_ops;
-+	mutex_init(&priv->reg_mutex);
++	ret = devm_mutex_init(dev, &priv->reg_mutex);
++	if (ret)
++		return ret;
 +	platform_set_drvdata(pdev, priv);
 +
 +	return dsa_register_switch(priv->ds);



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:09 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:09 -0500
Subject: [openwrt/openwrt]  kernel: can: package driver for Geschwister
 Schneider interface
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7965.1732820236.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/3451a7035600d06631dc05333ddeb63ebdfda16e

commit 3451a7035600d06631dc05333ddeb63ebdfda16e
Author: Chuanhong Guo <gch981213 at gmail.com>
AuthorDate: Sat Nov 2 22:24:21 2024 +0800

    kernel: can: package driver for Geschwister Schneider interface
    
    Package gs_usb CAN driver, which is for Geschwister Schneider and
    bytewerk.org candleLight compatible USB/CAN interfaces.
    
    Signed-off-by: Chuanhong Guo <gch981213 at gmail.com>
    (cherry picked from commit ef4df2b5e9d66a6461982a0a81f928abb0f6a074)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/kernel/linux/modules/can.mk | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/package/kernel/linux/modules/can.mk b/package/kernel/linux/modules/can.mk
index c86d02d8de..1a4c81cc31 100644
--- a/package/kernel/linux/modules/can.mk
+++ b/package/kernel/linux/modules/can.mk
@@ -245,6 +245,25 @@ endef
 $(eval $(call KernelPackage,can-usb-esd))
 
 
+define KernelPackage/can-usb-gs
+  TITLE:=Geschwister Schneider UG interfaces
+  KCONFIG:=CONFIG_CAN_GS_USB
+  FILES:= \
+	$(LINUX_DIR)/drivers/net/can/usb/gs_usb.ko
+  AUTOLOAD:=$(call AutoProbe,gs_usb)
+  $(call AddDepends/can,+kmod-usb-core)
+endef
+
+define KernelPackage/can-usb-gsr/description
+  This driver supports the Geschwister Schneider and
+  bytewerk.org candleLight compatible
+  (https://github.com/candle-usb/candleLight_fw) USB/CAN
+  interfaces.
+endef
+
+$(eval $(call KernelPackage,can-usb-gs))
+
+
 define KernelPackage/can-usb-kvaser
   TITLE:=Kvaser CAN/USB interface
   KCONFIG:=CONFIG_CAN_KVASER_USB



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:10 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:10 -0500
Subject: [openwrt/openwrt]  ramips: mt7621: convert usb power to regulators
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7966.1732820240.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/0cf557876ae77985f120e3fbf2b8007d08b5495d

commit 0cf557876ae77985f120e3fbf2b8007d08b5495d
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Thu Oct 24 14:51:29 2024 -0700

    ramips: mt7621: convert usb power to regulators
    
    These things are regulators. Should silence dmesg messages about using
    dummy regulators.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16804
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit e612900ae0fd6c4624fa661e004536216409107f)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../linux/ramips/dts/mt7621_d-team_newifi-d2.dts   | 20 ++++++++++---------
 target/linux/ramips/dts/mt7621_humax_e10.dts       | 23 ++++++++++++----------
 .../dts/mt7621_mikrotik_routerboard-7xx.dtsi       | 17 +++++++++++-----
 .../ramips/dts/mt7621_zbtlink_zbt-wg1602-v04.dtsi  | 19 ++++++++++++------
 .../ramips/dts/mt7621_zbtlink_zbt-wg1602.dtsi      | 19 ++++++++++++------
 .../linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts | 19 +++++++++---------
 .../linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts | 17 +++++++++++-----
 7 files changed, 84 insertions(+), 50 deletions(-)

diff --git a/target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts b/target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts
index 9d426fb17d..00ff80e3ca 100644
--- a/target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts
+++ b/target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts
@@ -80,15 +80,13 @@
 		};
 	};
 
-	gpio_export {
-		compatible = "gpio-export";
-		#size-cells = <0>;
-
-		power_usb3 {
-			gpio-export,name = "power_usb3";
-			gpio-export,output = <1>;
-			gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
-		};
+	reg_power_usb3: regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "power_usb3";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
 	};
 };
 
@@ -155,6 +153,10 @@
 	};
 };
 
+&xhci {
+	vbus-supply = <&reg_power_usb3>;
+};
+
 &pcie {
 	status = "okay";
 };
diff --git a/target/linux/ramips/dts/mt7621_humax_e10.dts b/target/linux/ramips/dts/mt7621_humax_e10.dts
index 39eac32d53..7ba772d5e5 100644
--- a/target/linux/ramips/dts/mt7621_humax_e10.dts
+++ b/target/linux/ramips/dts/mt7621_humax_e10.dts
@@ -19,16 +19,6 @@
 		label-mac-device = &gmac1;
 	};
 
-	gpio-export {
-		compatible = "gpio-export";
-
-		gpio-usb-power {
-			gpio-export,name = "power:usb";
-			gpio-export,output = <1>;
-			gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
-		};
-	};
-
 	leds {
 		compatible = "gpio-leds";
 
@@ -65,6 +55,15 @@
 			linux,code = <KEY_RESTART>;
 		};
 	};
+
+	reg_power_usb: regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "power:usb";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &spi0 {
@@ -131,6 +130,10 @@
 	};
 };
 
+&xhci {
+	vbus-supply = <&reg_power_usb>;
+};
+
 &pcie {
 	status = "okay";
 };
diff --git a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi
index cdca47f8b8..4a3de8cfba 100644
--- a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi
+++ b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi
@@ -13,15 +13,22 @@
 			gpio-export,output = <0>;
 			gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
 		};
+	};
 
-		usb_power {
-			gpio-export,name = "usb_power";
-			gpio-export,output = <1>;
-			gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
-		};
+	reg_usb_power: regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "usb_power";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
 	};
 };
 
+&xhci {
+	vbus-supply = <&reg_usb_power>;
+};
+
 &keys {
 	mode {
 		label = "mode";
diff --git a/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg1602-v04.dtsi b/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg1602-v04.dtsi
index c3712fea7b..c70b3330e9 100644
--- a/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg1602-v04.dtsi
+++ b/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg1602-v04.dtsi
@@ -48,6 +48,15 @@
 		};
 	};
 
+	reg_power_usb: regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "power_usb";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpios = <&gpio 6 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
 	watchdog {
 		compatible = "linux,wdt-gpio";
 		gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
@@ -72,15 +81,13 @@
 			gpio-export,output = <1>;
 			gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
 		};
-
-		ext-usb {
-			gpio-export,name = "ext-usb";
-			gpio-export,output = <1>;
-			gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
-		};
 	};
 };
 
+&xhci {
+	vbus-supply = <&reg_power_usb>;
+};
+
 &sdhci {
 	status = "okay";
 };
diff --git a/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg1602.dtsi b/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg1602.dtsi
index dcad7b26d2..3e2a593ae7 100644
--- a/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg1602.dtsi
+++ b/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg1602.dtsi
@@ -47,6 +47,15 @@
 		};
 	};
 
+	reg_power_usb: regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "power_usb";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpios = <&gpio 6 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
 	watchdog {
 		compatible = "linux,wdt-gpio";
 		gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
@@ -71,15 +80,13 @@
 			gpio-export,output = <1>;
 			gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
 		};
-
-		ext-usb {
-			gpio-export,name = "ext-usb";
-			gpio-export,output = <1>;
-			gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
-		};
 	};
 };
 
+&xhci {
+	vbus-supply = <&reg_power_usb>;
+};
+
 &sdhci {
 	status = "okay";
 };
diff --git a/target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts b/target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts
index 9eed123157..88894325b5 100644
--- a/target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts
+++ b/target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts
@@ -96,17 +96,18 @@
 
 	};
 
+	reg_power_usb: regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "power_usb";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
-&gpio {
-	status = "okay";
-
-	enable_usb_power {
-		gpio-hog;
-		line-name = "enable USB power";
-		gpios = <7 GPIO_ACTIVE_HIGH>;
-		output-high;
-	};
+&xhci {
+	vbus-supply = <&reg_power_usb>;
 };
 
 &nand {
diff --git a/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts b/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts
index e121077b0a..e6ff5ecf6a 100644
--- a/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts
+++ b/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts
@@ -92,15 +92,22 @@
 			gpio-export,output = <0>;
 			gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
 		};
+	};
 
-		usb_power {
-			gpio-export,name = "usb_power";
-			gpio-export,output = <1>;
-			gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
-		};
+	reg_usb_power: regulator {
+		compatible = "regulator-fixed";
+		reglator-name = "usb_power";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
 	};
 };
 
+&xhci {
+	vbus-supply = <&reg_usb_power>;
+};
+
 &nand {
 	status = "okay";
 



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:12 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:12 -0500
Subject: [openwrt/openwrt]  ath79: gpio-rb91x-key: use gpiochip_get_data
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7969.1732820240.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/ec774fafe60763376f0dd82d34c621eea48dfa5f

commit ec774fafe60763376f0dd82d34c621eea48dfa5f
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Sat Oct 19 15:51:51 2024 -0700

    ath79: gpio-rb91x-key: use gpiochip_get_data
    
    No need for a custom function that does the same thing.
    
    Oversight from devm conversion.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16748
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit e99b5832e801fdf2ec366419797360e09c2348c6)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c b/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c
index b2c8e63305..02639cf011 100644
--- a/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c
+++ b/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c
@@ -41,14 +41,9 @@ struct gpio_rb91x_key {
 	struct gpio_desc *gpio;
 };
 
-static inline struct gpio_rb91x_key *to_gpio_rb91x_key(struct gpio_chip *gc)
-{
-	return container_of(gc, struct gpio_rb91x_key, gc);
-}
-
 static int gpio_rb91x_key_get(struct gpio_chip *gc, unsigned offset)
 {
-	struct gpio_rb91x_key *drvdata = to_gpio_rb91x_key(gc);
+	struct gpio_rb91x_key *drvdata = gpiochip_get_data(gc);
 	struct gpio_desc *gpio = drvdata->gpio;
 	int val, bak_val;
 
@@ -97,7 +92,7 @@ static int gpio_rb91x_key_direction_input(struct gpio_chip *gc, unsigned offset)
 
 static void gpio_rb91x_key_set(struct gpio_chip *gc, unsigned offset, int value)
 {
-	struct gpio_rb91x_key *drvdata = to_gpio_rb91x_key(gc);
+	struct gpio_rb91x_key *drvdata = gpiochip_get_data(gc);
 	struct gpio_desc *gpio = drvdata->gpio;
 
 	mutex_lock(&drvdata->mutex);



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:11 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:11 -0500
Subject: [openwrt/openwrt]  ath79: gpio-latch-miktorik: use gpiochip_get_data
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7970.1732820240.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/e5a20b0f49070f17ac54c7d651dadc3a0a803d03

commit e5a20b0f49070f17ac54c7d651dadc3a0a803d03
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Sat Oct 19 15:49:42 2024 -0700

    ath79: gpio-latch-miktorik: use gpiochip_get_data
    
    Oversight from devm conversion. No need for a custom static inline
    function.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16747
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 6d2ed484fa2f62e355893f5e1fe3734c88201bfc)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c b/target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c
index 6e3f0f9690..4baed52e57 100644
--- a/target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c
+++ b/target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c
@@ -28,11 +28,6 @@ struct gpio_latch_chip {
 	struct gpio_desc *gpios[GPIO_LATCH_LINES];
 };
 
-static inline struct gpio_latch_chip *to_gpio_latch_chip(struct gpio_chip *gc)
-{
-	return container_of(gc, struct gpio_latch_chip, gc);
-}
-
 static void gpio_latch_lock(struct gpio_latch_chip *glc, bool enable)
 {
 	mutex_lock(&glc->mutex);
@@ -58,7 +53,7 @@ static void gpio_latch_unlock(struct gpio_latch_chip *glc, bool disable)
 static int
 gpio_latch_get(struct gpio_chip *gc, unsigned offset)
 {
-	struct gpio_latch_chip *glc = to_gpio_latch_chip(gc);
+	struct gpio_latch_chip *glc = gpiochip_get_data(gc);
 	int ret;
 
 	gpio_latch_lock(glc, false);
@@ -71,7 +66,7 @@ gpio_latch_get(struct gpio_chip *gc, unsigned offset)
 static void
 gpio_latch_set(struct gpio_chip *gc, unsigned offset, int value)
 {
-	struct gpio_latch_chip *glc = to_gpio_latch_chip(gc);
+	struct gpio_latch_chip *glc = gpiochip_get_data(gc);
 	bool enable_latch = false;
 	bool disable_latch = false;
 
@@ -88,7 +83,7 @@ gpio_latch_set(struct gpio_chip *gc, unsigned offset, int value)
 static int
 gpio_latch_direction_output(struct gpio_chip *gc, unsigned offset, int value)
 {
-	struct gpio_latch_chip *glc = to_gpio_latch_chip(gc);
+	struct gpio_latch_chip *glc = gpiochip_get_data(gc);
 	bool enable_latch = false;
 	bool disable_latch = false;
 	int ret;



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:13 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:13 -0500
Subject: [openwrt/openwrt]  packages: drop DEVICE specific dependency for
 omnia
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7971.1732820240.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/70ee25f70f58dcad301b04ab493ff40723064c51

commit 70ee25f70f58dcad301b04ab493ff40723064c51
Author: Paul Spooren <mail at aparcar.org>
AuthorDate: Mon Nov 4 22:34:52 2024 +0100

    packages: drop DEVICE specific dependency for omnia
    
    Both packages `ombnia-mcu-firmware` and `omnia-mcutool` would depend on
    a specific device. The buildbots however build all devices and therefore
    the package isn't build at all, due to unmet dependencies.
    
    While this didn't cause issues with OPKG, APK fails actively due to the
    missing packages. Drop the specific dependency, however wants to install
    unrelated firmware on any device can do that anyway.
    
    Signed-off-by: Paul Spooren <mail at aparcar.org>
    (cherry picked from commit f35a29d63f445d784f1e266eaa6d3825a249cd6c)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/firmware/omnia-mcu-firmware/Makefile | 1 -
 package/utils/omnia-mcutool/Makefile         | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/package/firmware/omnia-mcu-firmware/Makefile b/package/firmware/omnia-mcu-firmware/Makefile
index 6f7bd6ca70..9c1c8fbe6c 100644
--- a/package/firmware/omnia-mcu-firmware/Makefile
+++ b/package/firmware/omnia-mcu-firmware/Makefile
@@ -29,7 +29,6 @@ define Package/omnia-mcu-firmware
   CATEGORY:=Firmware
   URL:=https://gitlab.nic.cz/turris/hw/$(PKG_DISTNAME)/-/releases
   TITLE:=CZ.NIC Turris Omnia MCU firmware
-  DEPENDS:=@TARGET_mvebu_cortexa9_DEVICE_cznic_turris-omnia
 endef
 
 define Package/omnia-mcu-firmware/description
diff --git a/package/utils/omnia-mcutool/Makefile b/package/utils/omnia-mcutool/Makefile
index 2eca0cf190..66f8ffc6d4 100644
--- a/package/utils/omnia-mcutool/Makefile
+++ b/package/utils/omnia-mcutool/Makefile
@@ -27,7 +27,7 @@ define Package/omnia-mcutool
   CATEGORY:=Utilities
   URL:=https://gitlab.nic.cz/turris/$(PKG_NAME)
   TITLE:=CZ.NIC Turris Omnia MCU utility
-  DEPENDS:=+libopenssl +omnia-mcu-firmware @TARGET_mvebu_cortexa9_DEVICE_cznic_turris-omnia
+  DEPENDS:=+libopenssl +omnia-mcu-firmware
 endef
 
 define Package/omnia-mcutool/description



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:14 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:14 -0500
Subject: [openwrt/openwrt]  fritz-tools: fix mixed indentation
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7972.1732820242.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/c4c1bb523f1ae14de049df65c302b817445b00e3

commit c4c1bb523f1ae14de049df65c302b817445b00e3
Author: David Bauer <mail at david-bauer.net>
AuthorDate: Tue Nov 5 20:03:39 2024 +0100

    fritz-tools: fix mixed indentation
    
    Signed-off-by: David Bauer <mail at david-bauer.net>
    (cherry picked from commit 685e979d470a09361defe1612b001dfc3b7d9832)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/utils/fritz-tools/src/fritz_cal_extract.c | 140 +++++++++++-----------
 1 file changed, 70 insertions(+), 70 deletions(-)

diff --git a/package/utils/fritz-tools/src/fritz_cal_extract.c b/package/utils/fritz-tools/src/fritz_cal_extract.c
index 2978d86e0c..9899cd53c3 100644
--- a/package/utils/fritz-tools/src/fritz_cal_extract.c
+++ b/package/utils/fritz-tools/src/fritz_cal_extract.c
@@ -48,86 +48,86 @@ static inline size_t special_min(size_t a, size_t b)
    is an error reading or writing the files. */
 static int inf(FILE *source, FILE *dest, size_t limit, size_t skip)
 {
-    int ret;
-    size_t have;
-    z_stream strm;
-    unsigned char in[CHUNK];
-    unsigned char out[CHUNK];
+	int ret;
+	size_t have;
+	z_stream strm;
+	unsigned char in[CHUNK];
+	unsigned char out[CHUNK];
 
-    /* allocate inflate state */
-    strm.zalloc = Z_NULL;
-    strm.zfree = Z_NULL;
-    strm.opaque = Z_NULL;
-    strm.avail_in = 0;
-    strm.next_in = Z_NULL;
-    ret = inflateInit(&strm);
-    if (ret != Z_OK)
-        return ret;
+	/* allocate inflate state */
+	strm.zalloc = Z_NULL;
+	strm.zfree = Z_NULL;
+	strm.opaque = Z_NULL;
+	strm.avail_in = 0;
+	strm.next_in = Z_NULL;
+	ret = inflateInit(&strm);
+	if (ret != Z_OK)
+		return ret;
 
-    /* decompress until deflate stream ends or end of file */
-    do {
-        strm.avail_in = fread(in, 1, CHUNK, source);
-        if (ferror(source)) {
-            (void)inflateEnd(&strm);
-            return Z_ERRNO;
-        }
-        if (strm.avail_in == 0)
-            break;
-        strm.next_in = in;
+	/* decompress until deflate stream ends or end of file */
+	do {
+		strm.avail_in = fread(in, 1, CHUNK, source);
+		if (ferror(source)) {
+			(void)inflateEnd(&strm);
+			return Z_ERRNO;
+		}
+		if (strm.avail_in == 0)
+			break;
+		strm.next_in = in;
 
-        /* run inflate() on input until output buffer not full */
-        do {
-            strm.avail_out = CHUNK;
-            strm.next_out = out;
-            ret = inflate(&strm, Z_NO_FLUSH);
-            assert(ret != Z_STREAM_ERROR);  /* state not clobbered */
-            switch (ret) {
-            case Z_NEED_DICT:
-                ret = Z_DATA_ERROR;     /* and fall through */
-            case Z_DATA_ERROR:
-            case Z_MEM_ERROR:
-                (void)inflateEnd(&strm);
-                return ret;
-            }
-            have = special_min(limit, CHUNK - strm.avail_out) - skip;
-            if (fwrite(&out[skip], have, 1, dest) != 1 || ferror(dest)) {
-                (void)inflateEnd(&strm);
-                return Z_ERRNO;
-            }
-	    skip = 0;
-	    limit -= have;
-        } while (strm.avail_out == 0 && limit > 0);
+		/* run inflate() on input until output buffer not full */
+		do {
+			strm.avail_out = CHUNK;
+			strm.next_out = out;
+			ret = inflate(&strm, Z_NO_FLUSH);
+			assert(ret != Z_STREAM_ERROR);  /* state not clobbered */
+			switch (ret) {
+			case Z_NEED_DICT:
+				ret = Z_DATA_ERROR;     /* and fall through */
+			case Z_DATA_ERROR:
+			case Z_MEM_ERROR:
+				(void)inflateEnd(&strm);
+				return ret;
+			}
+			have = special_min(limit, CHUNK - strm.avail_out) - skip;
+			if (fwrite(&out[skip], have, 1, dest) != 1 || ferror(dest)) {
+				(void)inflateEnd(&strm);
+				return Z_ERRNO;
+			}
+		skip = 0;
+		limit -= have;
+		} while (strm.avail_out == 0 && limit > 0);
 
-        /* done when inflate() says it's done */
-    } while (ret != Z_STREAM_END && limit > 0);
+		/* done when inflate() says it's done */
+	} while (ret != Z_STREAM_END && limit > 0);
 
-    /* clean up and return */
-    (void)inflateEnd(&strm);
-    return (limit == 0 ? Z_OK : (ret == Z_STREAM_END ? Z_OK : Z_DATA_ERROR));
+	/* clean up and return */
+	(void)inflateEnd(&strm);
+	return (limit == 0 ? Z_OK : (ret == Z_STREAM_END ? Z_OK : Z_DATA_ERROR));
 }
 
 /* report a zlib or i/o error */
 static void zerr(int ret)
 {
-    switch (ret) {
-    case Z_ERRNO:
-        if (ferror(stdin))
-            fputs("error reading stdin\n", stderr);
-        if (ferror(stdout))
-            fputs("error writing stdout\n", stderr);
-        break;
-    case Z_STREAM_ERROR:
-        fputs("invalid compression level\n", stderr);
-        break;
-    case Z_DATA_ERROR:
-        fputs("invalid or incomplete deflate data\n", stderr);
-        break;
-    case Z_MEM_ERROR:
-        fputs("out of memory\n", stderr);
-        break;
-    case Z_VERSION_ERROR:
-        fputs("zlib version mismatch!\n", stderr);
-    }
+	switch (ret) {
+	case Z_ERRNO:
+		if (ferror(stdin))
+			fputs("error reading stdin\n", stderr);
+		if (ferror(stdout))
+			fputs("error writing stdout\n", stderr);
+		break;
+	case Z_STREAM_ERROR:
+		fputs("invalid compression level\n", stderr);
+		break;
+	case Z_DATA_ERROR:
+		fputs("invalid or incomplete deflate data\n", stderr);
+		break;
+	case Z_MEM_ERROR:
+		fputs("out of memory\n", stderr);
+		break;
+	case Z_VERSION_ERROR:
+		fputs("zlib version mismatch!\n", stderr);
+	}
 }
 
 static unsigned int get_num(char *str)



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:15 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:15 -0500
Subject: [openwrt/openwrt]  rampis: mt7621: Convert Edgerouter-X dts to single
 kernel config
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7973.1732820242.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/4b9e9a03108258bffef7d779cb965f5b91608dd7

commit 4b9e9a03108258bffef7d779cb965f5b91608dd7
Author: Tim Lunn <tim at feathertop.org>
AuthorDate: Wed Apr 17 10:49:49 2024 +1000

    rampis: mt7621: Convert Edgerouter-X dts to single kernel config
    
    The OEM layout for Edgerouter X provides for two 3MB kernel slots.
    As of linux 6.1 the kernel images no longer fit and as such
    Edgerouter X builds have been disabled in Main.
    
    Revise the layout to make kernel1 slot 6MB and drop kernel2 slot.
    
    This patch applies the required changes to the dts file.
    
    Signed-off-by: Tim Lunn <tim at feathertop.org>
    Tested-by: Mauri Sandberg <maukka at ext.kapsi.fi>
    Link: https://github.com/openwrt/openwrt/pull/15194
    (cherry picked from commit dc51c4355d48e91ed8fd06d70f0bf71b0b4bc4d2)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi
index 7648e42982..40433c1c43 100644
--- a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi
+++ b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x.dtsi
@@ -105,13 +105,8 @@
 		};
 
 		partition at 140000 {
-			label = "kernel1";
-			reg = <0x140000 0x300000>;
-		};
-
-		partition at 440000 {
-			label = "kernel2";
-			reg = <0x440000 0x300000>;
+			label = "kernel";
+			reg = <0x140000 0x600000>;
 		};
 
 		partition at 740000 {



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:43 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:43 -0500
Subject: [openwrt/openwrt]  x86: Deactivate kernel options with extra overhead
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7978.1732820706.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/005f0867524ff26e62167b1c71208dd05f33cfb5

commit 005f0867524ff26e62167b1c71208dd05f33cfb5
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sun Nov 24 14:39:57 2024 +0100

    x86: Deactivate kernel options with extra overhead
    
    Deactivate CONFIG_CONTEXT_TRACKING_USER_FORCE: Force user context
    tracking: This is a testing feature which should not be activate in
    production environments according to the Kconfig help. It adds an extra
    overhead.
    
    Deactivate CONFIG_RCU_NOCB_CPU_DEFAULT_ALL: Offload RCU callback
    processing from all CPUs by default: This option should only be used in
    aggressive HPC or real-time workloads which we do not have in OpenWrt.
    For normal workloads it increases the number of context switches.
    
    In the default Arch Linux kernel both options are not activated.
    
    Fixes: 31111680f6fc ("x86: switch config to a tickless kernel")
    Link: https://github.com/openwrt/openwrt/pull/17057
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit ed523454454965da07c9c7a009ae0a3995aa7c33)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/x86/config-6.6 | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/target/linux/x86/config-6.6 b/target/linux/x86/config-6.6
index b3d15bc104..c416bb6a08 100644
--- a/target/linux/x86/config-6.6
+++ b/target/linux/x86/config-6.6
@@ -46,7 +46,7 @@ CONFIG_COMPAT_32=y
 CONFIG_COMPAT_32BIT_TIME=y
 # CONFIG_COMPAT_VDSO is not set
 CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_CONTEXT_TRACKING_USER_FORCE=y
+# CONFIG_CONTEXT_TRACKING_USER_FORCE is not set
 # CONFIG_CPU5_WDT is not set
 CONFIG_CPU_FREQ=y
 CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
@@ -334,7 +334,7 @@ CONFIG_PTP_1588_CLOCK_OPTIONAL=y
 CONFIG_RANDSTRUCT_NONE=y
 CONFIG_RATIONAL=y
 CONFIG_RCU_LAZY=y
-CONFIG_RCU_NOCB_CPU_DEFAULT_ALL=y
+# CONFIG_RCU_NOCB_CPU_DEFAULT_ALL is not set
 CONFIG_RD_BZIP2=y
 CONFIG_RD_GZIP=y
 CONFIG_RETHUNK=y



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:27 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:27 -0500
Subject: [openwrt/openwrt]  kernel: package media controller driver
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7979.1732820706.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/c584683a7f3c30754e2a2462642b9d81ee570d44

commit c584683a7f3c30754e2a2462642b9d81ee570d44
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Tue Nov 5 11:10:44 2024 +0100

    kernel: package media controller driver
    
    It is needed for the stm32/stm32mp1 subtarget.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit bb3418f21f7b8fe0dcd335375d183dd2a81772bf)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/kernel/linux/modules/video.mk | 25 +++++++++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)

diff --git a/package/kernel/linux/modules/video.mk b/package/kernel/linux/modules/video.mk
index f2fa82fd03..486b9b9ab1 100644
--- a/package/kernel/linux/modules/video.mk
+++ b/package/kernel/linux/modules/video.mk
@@ -12,6 +12,28 @@ V4L2_DIR=v4l2-core
 V4L2_USB_DIR=usb
 V4L2_MEM2MEM_DIR=platform
 
+#
+# Media
+#
+define KernelPackage/media-controller
+  SUBMENU:=$(VIDEO_MENU)
+  TITLE:=Media Controller API
+  KCONFIG:= \
+	CONFIG_MEDIA_SUPPORT \
+	CONFIG_MEDIA_CONTROLLER=y
+  FILES:= \
+	$(LINUX_DIR)/drivers/media/mc/mc.ko
+  AUTOLOAD:=$(call AutoProbe,mc)
+endef
+
+define KernelPackage/media-controller/description
+ Kernel modules for media controller API used to query media devices
+ internal topology and configure it dynamically.
+endef
+
+$(eval $(call KernelPackage,media-controller))
+
+
 #
 # Video Display
 #
@@ -601,9 +623,8 @@ $(eval $(call KernelPackage,drm-radeon))
 define KernelPackage/video-core
   SUBMENU:=$(VIDEO_MENU)
   TITLE=Video4Linux support
-  DEPENDS:=+PACKAGE_kmod-i2c-core:kmod-i2c-core
+  DEPENDS:=+PACKAGE_kmod-i2c-core:kmod-i2c-core +kmod-media-controller
   KCONFIG:= \
-	CONFIG_MEDIA_SUPPORT \
 	CONFIG_MEDIA_CAMERA_SUPPORT=y \
 	CONFIG_VIDEO_DEV \
 	CONFIG_V4L_PLATFORM_DRIVERS=y \



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:29 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:29 -0500
Subject: [openwrt/openwrt]  kernel: package v4l2-async and v4l2-fwnode drivers
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7980.1732820706.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/4eb85c47bddda48aea3e6ee8dd87e5214938f0fa

commit 4eb85c47bddda48aea3e6ee8dd87e5214938f0fa
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Tue Nov 5 11:13:34 2024 +0100

    kernel: package v4l2-async and v4l2-fwnode drivers
    
    These packages are needed for the stm32/stm32mp1 subtarget.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit e109831e07e398cc50839a30a1cf18c4436983f4)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/kernel/linux/modules/video.mk | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/package/kernel/linux/modules/video.mk b/package/kernel/linux/modules/video.mk
index 486b9b9ab1..9bb030bf57 100644
--- a/package/kernel/linux/modules/video.mk
+++ b/package/kernel/linux/modules/video.mk
@@ -680,6 +680,25 @@ endef
 
 $(eval $(call KernelPackage,video-videobuf2))
 
+define KernelPackage/video-async
+  TITLE:=V4L2 ASYNC support
+  KCONFIG:=CONFIG_V4L2_ASYNC
+  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_DIR)/v4l2-async.ko
+  $(call AddDepends/video)
+  AUTOLOAD:=$(call AutoProbe,v4l2-async)
+endef
+
+$(eval $(call KernelPackage,video-async))
+
+define KernelPackage/video-fwnode
+  TITLE:=V4L2 FWNODE support
+  KCONFIG:=CONFIG_V4L2_FWNODE
+  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_DIR)/v4l2-fwnode.ko
+  $(call AddDepends/video,+kmod-video-async)
+  AUTOLOAD:=$(call AutoProbe,v4l2-fwnode)
+endef
+
+$(eval $(call KernelPackage,video-fwnode))
 
 define KernelPackage/video-cpia2
   TITLE:=CPIA2 video driver



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:51 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:51 -0500
Subject: [openwrt/openwrt]  mediatek: Routerich AX3000: add OpenWrt U-Boot
 layout
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7981.1732820706.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/c312295b5682295915109300c953c277d3fd420c

commit c312295b5682295915109300c953c277d3fd420c
Author: Mikhail Zhilkin <csharper2005 at gmail.com>
AuthorDate: Sat Oct 26 09:37:14 2024 +0000

    mediatek: Routerich AX3000: add OpenWrt U-Boot layout
    
    This commit adds OpenWrt U-Boot layout support for Routerich AX3000. The
    aims:
    1. Get open-source U-Boot;
    2. Get maximum available free space in OpenWrt.
    
    Install
    -------
    1. Copy OpenWrt ubootmod-bl31-uboot.fip, ubootmod-preloader.bin, to the
       /tmp folder of the router using scp.
    
    2. Make mtd partitions backups:
       http://192.168.1.1/cgi-bin/luci/admin/system/flash -> Save mtdblock
       contents
    
    3. Install kmod-mtd-rw:
    ```
    opkg update && opkg install kmod-mtd-rw
    ```
    
    4. Write FIP and preloader:
    ```
    insmod mtd-rw i_want_a_brick=1
    mtd unlock BL2
    mtd erase BL2
    mtd write /tmp/ubootmod-preloader.bin BL2
    mtd unlock FIP
    mtd erase FIP
    mtd write /tmp/ubootmod-bl31-uboot.fip FIP
    ```
    
    5. Copy OpenWrt ubootmod-initramfs-recovery.itb to the tftp server root
       with IP 192.168.1.254.
    
    6. Reboot router:
    ```
    reboot
    ```
    U-Boot will automatically download from the tftp server and boot OpenWrt
    initramfs system.
    
    7. Copy OpenWrt ubootmod-squashfs-sysupgrade.itb to the /tmp dir of the
       router using scp.
    
    8. Run sysupgrade:
    ```
    sysupgrade -n /tmp/squashfs-sysupgrade.itb
    ```
    
    Recovery
    --------
    1. Place OpenWrt initramfs-recovery.itb image (with original name) on the
       tftp server (IP: 192.168.1.254).
    2. Press "reset" button and power on the router. After ~10 sec release the
       button.
    3. Use OpenWrt initramfs system for recovery.
    
    BL2 and FIP recovery
    --------------------
    Use mtk_uartboot and UART connection if BL2 or FIP in UBI is destroyed:
    Link: https://github.com/981213/mtk_uartboot
    
    Return to stock:
    ----------------
    1. Copy partition backups (BL2.bin and FIP.bin) to the /tmp dir of the
       router using scp.
    
    2. Install kmod-mtd-rw:
    ```
    opkg update && opkg install kmod-mtd-rw
    ```
    
    3. Restore stock U-Boot and reboot:
    ```
    insmod mtd-rw i_want_a_brick=1
    mtd unlock BL2
    mtd erase BL2
    mtd write /tmp/BL2.bin BL2
    mtd unlock FIP
    mtd erase FIP
    mtd write /tmp/FIP.bin FIP
    reboot
    ```
    
    4. Open U-Boot web recovery, upload stock firmware image and start
       upgrade.
    Link: http://192.168.1.1
    
    Signed-off-by: Mikhail Zhilkin <csharper2005 at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16791
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit d413163832df93c321eef3fce8c4f72c350d5308)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/boot/uboot-envtools/files/mediatek_filogic |   1 +
 ...00.dts => mt7981b-routerich-ax3000-common.dtsi} |  23 +---
 .../dts/mt7981b-routerich-ax3000-ubootmod.dts      |  52 +++++++++
 .../mediatek/dts/mt7981b-routerich-ax3000.dts      | 119 +++------------------
 .../filogic/base-files/etc/board.d/01_leds         |   3 +-
 .../filogic/base-files/etc/board.d/02_network      |   3 +-
 .../etc/hotplug.d/ieee80211/11_fix_wifi_mac        |   1 +
 .../filogic/base-files/lib/upgrade/platform.sh     |   1 +
 target/linux/mediatek/image/filogic.mk             |  25 +++++
 9 files changed, 101 insertions(+), 127 deletions(-)

diff --git a/package/boot/uboot-envtools/files/mediatek_filogic b/package/boot/uboot-envtools/files/mediatek_filogic
index b637f43287..58db7dad28 100644
--- a/package/boot/uboot-envtools/files/mediatek_filogic
+++ b/package/boot/uboot-envtools/files/mediatek_filogic
@@ -39,6 +39,7 @@ jcg,q30-pro|\
 netcore,n60|\
 nokia,ea0326gmp|\
 qihoo,360t7|\
+routerich,ax3000-ubootmod|\
 tplink,tl-xdr4288|\
 tplink,tl-xdr6086|\
 tplink,tl-xdr6088|\
diff --git a/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts b/target/linux/mediatek/dts/mt7981b-routerich-ax3000-common.dtsi
similarity index 93%
copy from target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts
copy to target/linux/mediatek/dts/mt7981b-routerich-ax3000-common.dtsi
index aa6a15ee1d..f0b0b9365b 100644
--- a/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts
+++ b/target/linux/mediatek/dts/mt7981b-routerich-ax3000-common.dtsi
@@ -8,9 +8,6 @@
 #include "mt7981.dtsi"
 
 / {
-	model = "Routerich AX3000";
-	compatible = "routerich,ax3000", "mediatek,mt7981";
-
 	aliases {
 		label-mac-device = &wan;
 
@@ -22,7 +19,7 @@
 		serial0 = &uart0;
 	};
 
-	chosen {
+	chosen: chosen {
 		stdout-path = "serial0:115200n8";
 	};
 
@@ -153,7 +150,7 @@
 	status = "okay";
 
 	/* ESMT F50L1G41LB (128M) */
-	spi_nand at 0 {
+	spi: spi_nand at 0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
 		compatible = "spi-nand";
@@ -170,11 +167,7 @@
 		spi-cal-addrlen = <5>;
 		spi-cal-addr = /bits/ 32 <0x0 0x0 0x0 0x0 0x0>;
 
-		mediatek,nmbm;
-		mediatek,bmt-max-ratio = <1>;
-		mediatek,bmt-max-reserved-blocks = <64>;
-
-		partitions {
+		partitions: partitions {
 			compatible = "fixed-partitions";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -191,11 +184,6 @@
 				read-only;
 			};
 
-			partition at 100000 {
-				label = "u-boot-env";
-				reg = <0x100000 0x80000>;
-			};
-
 			partition at 180000 {
 				label = "Factory";
 				reg = <0x180000 0x200000>;
@@ -223,11 +211,6 @@
 				reg = <0x380000 0x200000>;
 				read-only;
 			};
-
-			partition at 580000 {
-				label = "ubi";
-				reg = <0x580000 0x7000000>;
-			};
 		};
 	};
 };
diff --git a/target/linux/mediatek/dts/mt7981b-routerich-ax3000-ubootmod.dts b/target/linux/mediatek/dts/mt7981b-routerich-ax3000-ubootmod.dts
new file mode 100644
index 0000000000..dfdb78936d
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7981b-routerich-ax3000-ubootmod.dts
@@ -0,0 +1,52 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+
+#include "mt7981b-routerich-ax3000-common.dtsi"
+
+/ {
+	model = "Routerich AX3000 (OpenWrt U-Boot layout)";
+	compatible = "routerich,ax3000-ubootmod", "mediatek,mt7981";
+};
+
+&chosen {
+	rootdisk = <&ubi_fit_volume>;
+};
+
+&partitions {
+	partition at 100000 {
+		label = "u-boot-env-orig";
+		reg = <0x100000 0x80000>;
+		read-only;
+	};
+
+	partition at 580000 {
+		label = "ubi";
+		reg = <0x580000 0x7a80000>;
+		compatible = "linux,ubi";
+
+		volumes {
+			ubi_fit_volume: ubi-volume-fit {
+				volname = "fit";
+			};
+
+			ubi_ubootenv: ubi-volume-ubootenv {
+				volname = "ubootenv";
+			};
+
+			ubi_ubootenv2: ubi-volume-ubootenv2 {
+				volname = "ubootenv2";
+			};
+		};
+	};
+};
+
+&ubi_ubootenv {
+	nvmem-layout {
+		compatible = "u-boot,env-redundant-bool";
+	};
+};
+
+&ubi_ubootenv2 {
+	nvmem-layout {
+		compatible = "u-boot,env-redundant-bool";
+	};
+};
diff --git a/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts b/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts
index aa6a15ee1d..c0a10b3fc8 100644
--- a/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts
+++ b/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts
@@ -1,118 +1,27 @@
 // SPDX-License-Identifier: GPL-2.0-only OR MIT
 
-/dts-v1/;
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/leds/common.h>
-
-#include "mt7981.dtsi"
+#include "mt7981b-routerich-ax3000-common.dtsi"
 
 / {
 	model = "Routerich AX3000";
 	compatible = "routerich,ax3000", "mediatek,mt7981";
+};
 
-	aliases {
-		label-mac-device = &wan;
-
-		led-boot = &led_power_blue;
-		led-failsafe = &led_power_blue;
-		led-running = &led_power_blue;
-		led-upgrade = &led_power_blue;
-
-		serial0 = &uart0;
-	};
-
-	chosen {
-		stdout-path = "serial0:115200n8";
-	};
-
-	gpio-keys {
-		compatible = "gpio-keys";
-
-		button-0 {
-			label = "mesh";
-			linux,input-type = <EV_SW>;
-			linux,code = <BTN_0>;
-			gpios = <&pio 0 GPIO_ACTIVE_LOW>;
-			debounce-interval = <60>;
-		};
-
-		button-1 {
-			label = "reset";
-			gpios = <&pio 1 GPIO_ACTIVE_LOW>;
-			linux,code = <KEY_RESTART>;
-			debounce-interval = <60>;
-		};
-	};
-
-	leds {
-		compatible = "gpio-leds";
-
-		led-0 {
-			color = <LED_COLOR_ID_RED>;
-			function = LED_FUNCTION_WLAN;
-			function-enumerator = <50>;
-			gpios = <&pio 5 GPIO_ACTIVE_LOW>;
-			linux,default-trigger = "phy1tpt";
-		};
-
-		led-1 {
-			color = <LED_COLOR_ID_RED>;
-			function = LED_FUNCTION_WAN;
-			gpios = <&pio 6 GPIO_ACTIVE_HIGH>;
-		};
-
-		led_power_blue: led-2 {
-			color = <LED_COLOR_ID_BLUE>;
-			function = LED_FUNCTION_POWER;
-			gpios = <&pio 7 GPIO_ACTIVE_LOW>;
-		};
-
-		led-3 {
-			color = <LED_COLOR_ID_BLUE>;
-			function = LED_FUNCTION_LAN;
-			function-enumerator = <1>;
-			gpios = <&pio 9 GPIO_ACTIVE_LOW>;
-		};
-
-		led-4 {
-			color = <LED_COLOR_ID_BLUE>;
-			function = LED_FUNCTION_LAN;
-			function-enumerator = <2>;
-			gpios = <&pio 10 GPIO_ACTIVE_LOW>;
-		};
-
-		led-5 {
-			color = <LED_COLOR_ID_BLUE>;
-			function = LED_FUNCTION_LAN;
-			function-enumerator = <3>;
-			gpios = <&pio 11 GPIO_ACTIVE_LOW>;
-		};
-
-		led-6 {
-			color = <LED_COLOR_ID_BLUE>;
-			function = LED_FUNCTION_WAN;
-			gpios = <&pio 12 GPIO_ACTIVE_LOW>;
-		};
-
-		led-7 {
-			color = <LED_COLOR_ID_BLUE>;
-			function = LED_FUNCTION_WLAN;
-			function-enumerator = <24>;
-			gpios = <&pio 34 GPIO_ACTIVE_LOW>;
-			linux,default-trigger = "phy0tpt";
-		};
+&spi {
+	mediatek,nmbm;
+	mediatek,bmt-max-ratio = <1>;
+	mediatek,bmt-max-reserved-blocks = <64>;
+};
 
-		led-8 {
-			color = <LED_COLOR_ID_BLUE>;
-			/* LED_FUNCTION_MESH isn't implemented yet */
-			function = "mesh";
-			gpios = <&pio 35 GPIO_ACTIVE_LOW>;
-		};
+&partitions {
+	partition at 100000 {
+		label = "u-boot-env";
+		reg = <0x100000 0x80000>;
 	};
 
-	memory {
-		reg = <0 0x40000000 0 0x10000000>;
+	partition at 580000 {
+		label = "ubi";
+		reg = <0x580000 0x7000000>;
 	};
 };
 
diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds b/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds
index dad5c293de..38c4b7525b 100644
--- a/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds
@@ -75,7 +75,8 @@ openwrt,one)
 	ucidef_set_led_netdev "lanact" "LANACT" "green:lan" "eth1" "rx tx"
 	ucidef_set_led_netdev "lanlink" "LANLINK" "amber:lan" "eth1" "link"
 	;;
-routerich,ax3000)
+routerich,ax3000|\
+routerich,ax3000-ubootmod)
 	ucidef_set_led_netdev "lan-1" "lan-1" "blue:lan-1" "lan1" "link tx rx"
 	ucidef_set_led_netdev "lan-2" "lan-2" "blue:lan-2" "lan2" "link tx rx"
 	ucidef_set_led_netdev "lan-3" "lan-3" "blue:lan-3" "lan3" "link tx rx"
diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
index 7bfc61a269..1480dbcbc7 100644
--- a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
@@ -34,7 +34,8 @@ mediatek_setup_interfaces()
 	cudy,wr3000-v1|\
 	jcg,q30-pro|\
 	qihoo,360t7|\
-	routerich,ax3000)
+	routerich,ax3000|\
+	routerich,ax3000-ubootmod)
 		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" wan
 		;;
 	asus,tuf-ax4200|\
diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
index 7402bfc71b..5e83a167de 100644
--- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
+++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
@@ -158,6 +158,7 @@ case "$board" in
 		[ "$PHYNBR" = "1" ] && macaddr_add $addr 1 > /sys${DEVPATH}/macaddress
 		;;
 	routerich,ax3000|\
+	routerich,ax3000-ubootmod|\
 	zbtlink,zbt-z8102ax|\
 	zbtlink,zbt-z8103ax|\
 	zyxel,ex5601-t0|\
diff --git a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
index ce334b2c8e..0040ffbb26 100755
--- a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
@@ -80,6 +80,7 @@ platform_do_upgrade() {
 	openwrt,one|\
 	netcore,n60|\
 	qihoo,360t7|\
+	routerich,ax3000-ubootmod|\
 	tplink,tl-xdr4288|\
 	tplink,tl-xdr6086|\
 	tplink,tl-xdr6088|\
diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index f366a9b920..672790f1a7 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -1228,6 +1228,31 @@ define Device/routerich_ax3000
 endef
 TARGET_DEVICES += routerich_ax3000
 
+define Device/routerich_ax3000-ubootmod
+  DEVICE_VENDOR := Routerich
+  DEVICE_MODEL := AX3000 (OpenWrt U-Boot layout)
+  DEVICE_DTS := mt7981b-routerich-ax3000-ubootmod
+  DEVICE_DTS_DIR := ../dts
+  UBINIZE_OPTS := -E 5
+  BLOCKSIZE := 128k
+  PAGESIZE := 2048
+  KERNEL_IN_UBI := 1
+  UBOOTENV_IN_UBI := 1
+  IMAGES := sysupgrade.itb
+  KERNEL_INITRAMFS_SUFFIX := -recovery.itb
+  KERNEL := kernel-bin | gzip
+  KERNEL_INITRAMFS := kernel-bin | lzma | \
+	fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
+  IMAGE/sysupgrade.itb := append-kernel | \
+	fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | \
+	append-metadata
+  DEVICE_PACKAGES := kmod-mt7915e kmod-mt7981-firmware kmod-usb3 mt7981-wo-firmware
+  ARTIFACTS := preloader.bin bl31-uboot.fip
+  ARTIFACT/preloader.bin := mt7981-bl2 spim-nand-ddr3
+  ARTIFACT/bl31-uboot.fip := mt7981-bl31-uboot routerich_ax3000
+endef
+TARGET_DEVICES += routerich_ax3000-ubootmod
+
 define Device/ruijie_rg-x60-pro
   DEVICE_VENDOR := Ruijie
   DEVICE_MODEL := RG-X60 Pro



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:24 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:24 -0500
Subject: [openwrt/openwrt]  kernel: unset CONFIG_DEVFREQ_THERMAL in
 kmod-thermal package
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7984.1732820706.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/0f301db3fff105887d0a373a792dbaccb9cc8593

commit 0f301db3fff105887d0a373a792dbaccb9cc8593
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Fri Oct 25 15:23:26 2024 +0200

    kernel: unset CONFIG_DEVFREQ_THERMAL in kmod-thermal package
    
    It is needed for the stm32/stm32mp1 subtarget.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 6b9df468f05fefa21a8cbce2fdb2e59692b4d246)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/kernel/linux/modules/other.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/kernel/linux/modules/other.mk b/package/kernel/linux/modules/other.mk
index bbebcf37ec..7b64985fd6 100644
--- a/package/kernel/linux/modules/other.mk
+++ b/package/kernel/linux/modules/other.mk
@@ -961,6 +961,7 @@ define KernelPackage/thermal
 	CONFIG_THERMAL=y \
 	CONFIG_THERMAL_OF=y \
 	CONFIG_CPU_THERMAL=y \
+	CONFIG_DEVFREQ_THERMAL=n \
 	CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y \
 	CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE=n \
 	CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE=n \



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:19 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:19 -0500
Subject: [openwrt/openwrt]  rampis: mt7621: Edgerouter-X update compat version
 to 2.0
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7985.1732820706.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/1c934c7dc7355cb5ff9dda5a52256d74dfd2aa83

commit 1c934c7dc7355cb5ff9dda5a52256d74dfd2aa83
Author: Tim Lunn <tim at feathertop.org>
AuthorDate: Thu Apr 18 10:57:17 2024 +1000

    rampis: mt7621: Edgerouter-X update compat version to 2.0
    
    Use compat version to indicate that the new layout for larger kernels
    is in place. This handled by the patch to ubnt.sh to always select
    the kernel1 slot for flashing and as active kernel slot.
    
    Signed-off-by: Tim Lunn <tim at feathertop.org>
    Tested-by: Mauri Sandberg <maukka at ext.kapsi.fi>
    Link: https://github.com/openwrt/openwrt/pull/15194
    (cherry picked from commit 1bdbd511b27017157e92ffe128e66853d169dcbf)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ramips/mt7621/base-files/etc/board.d/05_compat-version | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/05_compat-version b/target/linux/ramips/mt7621/base-files/etc/board.d/05_compat-version
index acc69021d0..156fb1735e 100644
--- a/target/linux/ramips/mt7621/base-files/etc/board.d/05_compat-version
+++ b/target/linux/ramips/mt7621/base-files/etc/board.d/05_compat-version
@@ -8,6 +8,8 @@
 board_config_update
 
 case "$(board_name)" in
+	ubnt,edgerouter-x|\
+	ubnt,edgerouter-x-sfp|\
 	iptime,ax2004m)
 		ucidef_set_compat_version "2.0"
 		;;



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:51 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:51 -0500
Subject: [openwrt/openwrt]  elfutils: Add mirrors.kernel.org as mirrror
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7986.1732820707.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/d5e45df9c24aecf1eefc1e3abfabf53f8d5636bc

commit d5e45df9c24aecf1eefc1e3abfabf53f8d5636bc
Author: Ryan Keane <the.ra2.ifv at gmail.com>
AuthorDate: Wed Nov 13 11:46:38 2024 -0800

    elfutils: Add mirrors.kernel.org as mirrror
    
    Add mirrors.kernel.org as mirror, listed on sourceware mirror sites
    page.
    
    Link: https://sourceware.org/mirrors.html
    Signed-off-by: Ryan Keane <the.ra2.ifv at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16886
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 63caa2b1685ef5d2b4259784085f64cb9e5574a8)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/libs/elfutils/Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/package/libs/elfutils/Makefile b/package/libs/elfutils/Makefile
index b8bb50b564..7b31331e0b 100644
--- a/package/libs/elfutils/Makefile
+++ b/package/libs/elfutils/Makefile
@@ -11,7 +11,8 @@ PKG_VERSION:=0.192
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=https://sourceware.org/$(PKG_NAME)/ftp/$(PKG_VERSION)
+PKG_SOURCE_URL:=https://sourceware.org/$(PKG_NAME)/ftp/$(PKG_VERSION) \
+                https://mirrors.kernel.org/sourceware/$(PKG_NAME)/$(PKG_VERSION)
 PKG_HASH:=616099beae24aba11f9b63d86ca6cc8d566d968b802391334c91df54eab416b4
 
 PKG_MAINTAINER:=Luiz Angelo Daros de Luca <luizluca at gmail.com>



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:42 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:42 -0500
Subject: [openwrt/openwrt]  mediatek: filogic: add support for Cudy WR3000S v1
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7987.1732820712.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/4779e954fa847c4b376623bc3bdf9651007e8a89

commit 4779e954fa847c4b376623bc3bdf9651007e8a89
Author: David Ignjic <ignjic at gmail.com>
AuthorDate: Wed Nov 13 11:20:27 2024 +0100

    mediatek: filogic: add support for Cudy WR3000S v1
    
    Hardware
    --------
    MediaTek MT7981 WiSoC
    256MB DDR3 RAM
    128MB SPI-NAND (XMC XM25QH128C)
    MediaTek MT7981 2x2 DBDC 802.11ax 2T2R (2.4 / 5)
    UART: 115200 8N1 3.3V
    
    MAC:
    LAN MAC: label mac
    WAN MAC: label mac + 1
    2.4G MAC: label mac
    5G MAC: label mac + 1 with LA bit set
    
    Installation
    ------------
    
    1. Connect to the serial port as described in the "Hardware" section.
    
    2. Power on the device + press reset pin. Keep pressing reset pin to enter the U-Boot  shell.
    
    3. Download the OpenWrt initramfs image. Place it on an TFTP server
       connected to the Cudy LAN ports. Make sure the server is reachable at
       192.168.1.88. Rename the image to "cudy3000s.bin"
    
    4. Download and boot the OpenWrt initramfs image.
    
       $ tftpboot 0x46000000 cudy3000s.bin; bootm 0x46000000
    
    5. Transfer the OpenWrt sysupgrade image to the device using scp.
       Install with sysupgrade.
    
    Signed-off-by: David Ignjic <ignjic at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16939
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit faf4b3e0f7a583a8fa1a65b302ac74457e48575f)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../linux/mediatek/dts/mt7981b-cudy-wr3000s-v1.dts | 283 +++++++++++++++++++++
 .../etc/hotplug.d/ieee80211/11_fix_wifi_mac        |   1 +
 target/linux/mediatek/image/filogic.mk             |  17 ++
 3 files changed, 301 insertions(+)

diff --git a/target/linux/mediatek/dts/mt7981b-cudy-wr3000s-v1.dts b/target/linux/mediatek/dts/mt7981b-cudy-wr3000s-v1.dts
new file mode 100644
index 0000000000..a643969494
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7981b-cudy-wr3000s-v1.dts
@@ -0,0 +1,283 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+
+#include "mt7981.dtsi"
+
+/ {
+	model = "Cudy WR3000S v1";
+	compatible = "cudy,wr3000s-v1", "mediatek,mt7981-spim-snand-rfb";
+
+	aliases {
+		label-mac-device = &gmac0;
+		led-boot = &led_status;
+		led-failsafe = &led_status;
+		led-running = &led_status;
+		led-upgrade = &led_status;
+		serial0 = &uart0;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&pio 1 GPIO_ACTIVE_LOW>;
+		};
+
+		wps {
+			label = "wps";
+			linux,code = <KEY_WPS_BUTTON>;
+			gpios = <&pio 0 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led_status: led at 0 {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 10 GPIO_ACTIVE_LOW>;
+		};
+
+
+		led_internet {
+			function = LED_FUNCTION_WAN_ONLINE;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 11 GPIO_ACTIVE_LOW>;
+		};
+
+		led_wps {
+			function = LED_FUNCTION_WPS;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 9 GPIO_ACTIVE_LOW>;
+		};
+
+		led_wlan2g {
+			function = LED_FUNCTION_WLAN_2GHZ;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 6 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy0tpt";
+		};
+
+		led_wlan5g {
+			function = LED_FUNCTION_WLAN_5GHZ;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 7 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy1tpt";
+		};
+	};
+};
+
+&uart0 {
+	status = "okay";
+};
+
+&watchdog {
+	status = "okay";
+};
+
+&eth {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mdio_pins>;
+
+	status = "okay";
+
+	gmac0: mac at 0 {
+		compatible = "mediatek,eth-mac";
+		reg = <0>;
+		phy-mode = "2500base-x";
+
+		nvmem-cell-names = "mac-address";
+		nvmem-cells = <&macaddr_bdinfo_de00 0>;
+
+		fixed-link {
+			speed = <2500>;
+			full-duplex;
+			pause;
+		};
+	};
+};
+
+&mdio_bus {
+	switch: switch at 1f {
+		compatible = "mediatek,mt7531";
+		reg = <31>;
+		reset-gpios = <&pio 39 GPIO_ACTIVE_HIGH>;
+		interrupt-controller;
+		#interrupt-cells = <1>;
+		interrupt-parent = <&pio>;
+		interrupts = <38 IRQ_TYPE_LEVEL_HIGH>;
+	};
+};
+
+&spi0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&spi0_flash_pins>;
+	status = "okay";
+
+	spi_nand: flash at 0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "spi-nand";
+		reg = <0>;
+		spi-max-frequency = <52000000>;
+
+		spi-cal-enable;
+		spi-cal-mode = "read-data";
+		spi-cal-datalen = <7>;
+		spi-cal-data = /bits/ 8 <0x53 0x50 0x49 0x4E 0x41 0x4E 0x44>;
+		spi-cal-addrlen = <5>;
+		spi-cal-addr = /bits/ 32 <0x0 0x0 0x0 0x0 0x0>;
+
+		spi-tx-bus-width = <4>;
+		spi-rx-bus-width = <4>;
+		mediatek,nmbm;
+		mediatek,bmt-max-ratio = <1>;
+		mediatek,bmt-max-reserved-blocks = <64>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "BL2";
+				reg = <0x00000 0x0100000>;
+				read-only;
+			};
+
+			partition at 100000 {
+				label = "u-boot-env";
+				reg = <0x0100000 0x0080000>;
+				read-only;
+			};
+
+			factory: partition at 180000 {
+				label = "Factory";
+				reg = <0x180000 0x0200000>;
+				read-only;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					eeprom_factory_0: eeprom at 0 {
+						reg = <0x0 0x1000>;
+					};
+				};
+			};
+
+			partition at 380000 {
+				label = "bdinfo";
+				reg = <0x380000 0x0040000>;
+				read-only;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_bdinfo_de00: macaddr at de00 {
+						compatible = "mac-base";
+						reg = <0xde00 0x6>;
+						#nvmem-cell-cells = <1>;
+					};
+				};
+			};
+
+			partition at 3C0000 {
+				label = "FIP";
+				reg = <0x3C0000 0x0200000>;
+				read-only;
+			};
+
+			partition at 580000 {
+				label = "ubi";
+				reg = <0x5C0000 0x4000000>;
+				compatible = "linux,ubi";
+			};
+		};
+	};
+};
+
+&pio {
+	spi0_flash_pins: spi0-pins {
+		mux {
+			function = "spi";
+			groups = "spi0", "spi0_wp_hold";
+		};
+		conf-pu {
+			pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
+			drive-strength = <MTK_DRIVE_8mA>;
+			bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
+		};
+
+		conf-pd {
+			pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
+			drive-strength = <MTK_DRIVE_8mA>;
+			bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
+		};
+	};
+};
+
+&switch {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		port at 0 {
+			reg = <0>;
+			label = "wan";
+
+			nvmem-cell-names = "mac-address";
+			nvmem-cells = <&macaddr_bdinfo_de00 1>;
+		};
+
+		port at 1 {
+			reg = <1>;
+			label = "lan1";
+		};
+
+		port at 2 {
+			reg = <2>;
+			label = "lan2";
+		};
+
+		port at 3 {
+			reg = <3>;
+			label = "lan3";
+		};
+
+		port at 4 {
+			reg = <4>;
+			label = "lan4";
+		};
+
+		port at 6 {
+			reg = <6>;
+			label = "cpu";
+			ethernet = <&gmac0>;
+			phy-mode = "2500base-x";
+
+			fixed-link {
+				speed = <2500>;
+				full-duplex;
+				pause;
+			};
+		};
+	};
+};
+
+&wifi {
+	status = "okay";
+	nvmem-cells = <&eeprom_factory_0>;
+	nvmem-cell-names = "eeprom";
+};
diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
index f87cc0646e..7402bfc71b 100644
--- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
+++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
@@ -81,6 +81,7 @@ case "$board" in
 		;;
 	cudy,ap3000outdoor-v1|\
 	cudy,m3000-v1|\
+	cudy,wr3000s-v1|\
 	cudy,wr3000-v1)
 		addr=$(mtd_get_mac_binary bdinfo 0xde00)
 		# Originally, phy0 is phy1 mac with LA bit set. However, this would conflict
diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index 072cae0d1f..f366a9b920 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -667,6 +667,23 @@ define Device/cudy_wr3000-v1
 endef
 TARGET_DEVICES += cudy_wr3000-v1
 
+define Device/cudy_wr3000s-v1
+  DEVICE_VENDOR := Cudy
+  DEVICE_MODEL := WR3000S
+  DEVICE_VARIANT := v1
+  DEVICE_DTS := mt7981b-cudy-wr3000s-v1
+  DEVICE_DTS_DIR := ../dts
+  SUPPORTED_DEVICES += R59
+  UBINIZE_OPTS := -E 5
+  BLOCKSIZE := 128k
+  PAGESIZE := 2048
+  IMAGE_SIZE := 65536k
+  KERNEL_IN_UBI := 1
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+  DEVICE_PACKAGES := kmod-mt7915e kmod-mt7981-firmware mt7981-wo-firmware
+endef
+TARGET_DEVICES += cudy_wr3000s-v1
+
 define Device/dlink_aquila-pro-ai-m30-a1
   DEVICE_VENDOR := D-Link
   DEVICE_MODEL := AQUILA PRO AI M30



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:25 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:25 -0500
Subject: [openwrt/openwrt]  kernel: package crypto_engine driver
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7988.1732820718.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/2f99171de308c53d99a01ac35078f506633a2979

commit 2f99171de308c53d99a01ac35078f506633a2979
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Tue Nov 5 10:38:49 2024 +0100

    kernel: package crypto_engine driver
    
    It is needed for the stm32/stm32mp1 subtarget.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 7bcc68ede36dcc66ec6cdb45c3201e0af0f90708)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/kernel/linux/modules/crypto.mk | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/package/kernel/linux/modules/crypto.mk b/package/kernel/linux/modules/crypto.mk
index ce22163547..2257a36c80 100644
--- a/package/kernel/linux/modules/crypto.mk
+++ b/package/kernel/linux/modules/crypto.mk
@@ -249,6 +249,15 @@ endef
 
 $(eval $(call KernelPackage,crypto-echainiv))
 
+define KernelPackage/crypto-engine
+  TITLE:=Crypto engine
+  KCONFIG:=CONFIG_CRYPTO_ENGINE
+  FILES:=$(LINUX_DIR)/crypto/crypto_engine.ko
+  AUTOLOAD:=$(call AutoLoad,09,crypto_engine)
+  $(call AddDepends/crypto, +kmod-crypto-rsa +kmod-crypto-kpp)
+endef
+
+$(eval $(call KernelPackage,crypto-engine))
 
 define KernelPackage/crypto-essiv
   TITLE:=ESSIV support for block encryption



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:44 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:44 -0500
Subject: [openwrt/openwrt]  base-files: Create /run and /run/lock folder
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7991.1732820732.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/71d60c69836de7543e86fddb60e8c3eba05ef50e

commit 71d60c69836de7543e86fddb60e8c3eba05ef50e
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Thu Nov 14 21:47:47 2024 +0100

    base-files: Create /run and /run/lock folder
    
    Create the folder /run and /run/lock using symlinks. Other Linux
    distributions also have these folders and some applications might already
    depend on them. Just create symlinks pointing to the older folder.
    
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    Link: https://github.com/openwrt/openwrt/pull/16961
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
    (cherry picked from commit 3b710375dd97af1e0416904c4174d11c51e3f09c)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/base-files/files/etc/init.d/boot | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/package/base-files/files/etc/init.d/boot b/package/base-files/files/etc/init.d/boot
index c7d1d4af3a..332a5c96f3 100755
--- a/package/base-files/files/etc/init.d/boot
+++ b/package/base-files/files/etc/init.d/boot
@@ -24,6 +24,8 @@ boot() {
 	chmod 1777 /var/lock
 	mkdir -p /var/log
 	mkdir -p /var/run
+	ln -s /var/run /run
+	ln -s /var/lock /run/lock
 	mkdir -p /var/state
 	mkdir -p /var/tmp
 	mkdir -p /tmp/.uci



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:35 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:35 -0500
Subject: [openwrt/openwrt]  build: add comments to makefiles
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7992.1732820735.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/11d36818b99463cb8709586011958b8fc9d36ca3

commit 11d36818b99463cb8709586011958b8fc9d36ca3
Author: Sergey Matsievskiy <matsievskiysv at gmail.com>
AuthorDate: Fri Nov 8 14:43:52 2024 +0300

    build: add comments to makefiles
    
    Add comments to build system makefile functions and variables to help
    developers in understanding build system internals and ease the
    development process.
    
    This patch adds some documentation examples with proposed doxygen-like
    syntax. Hopefully, this would start the discussion and result in
    generation of the makefile documentation guidelines.
    
    Signed-off-by: Sergey Matsievskiy <matsievskiysv at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16888
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
    (cherry picked from commit a72c8c770584075782959f2aa5c1487d68517edd)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 include/image.mk  | 56 ++++++++++++++++++++++++++++++++
 include/target.mk | 34 ++++++++++++++++---
 rules.mk          | 97 +++++++++++++++++++++++++++++++++++++++++++++++--------
 3 files changed, 169 insertions(+), 18 deletions(-)

diff --git a/include/image.mk b/include/image.mk
index a4ac1b49cf..9a4dff2167 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -21,6 +21,11 @@ include $(INCLUDE_DIR)/rootfs.mk
 override MAKE:=$(_SINGLE)$(SUBMAKE)
 override NO_TRACE_MAKE:=$(_SINGLE)$(NO_TRACE_MAKE)
 
+##@
+# @brief Convert size with unit postfix to unitless expression in bytes.
+#
+# @param 1: Size with unit. Possible unit postfix are `g`, `m`, `k`.
+##
 exp_units = $(subst k, * 1024,$(subst m, * 1024k,$(subst g, * 1024m,$(1))))
 
 target_params = $(subst +,$(space),$*)
@@ -111,6 +116,12 @@ endef
 
 PROFILE_SANITIZED := $(call tolower,$(subst DEVICE_,,$(subst $(space),-,$(PROFILE))))
 
+##@
+# @brief Call function for each group of arguments.
+#
+# @param 1: List of lists of arguments. Lists are separated by `|`.
+# @param 2: Function to call for list of arguments.
+##
 define split_args
 $(foreach data, \
 	$(subst |,$(space),\
@@ -118,12 +129,24 @@ $(foreach data, \
 	$(call $(2),$(strip $(subst ^,$(space),$(data)))))
 endef
 
+##@
+# @brief Call build function with arguments.
+#
+# @param 1: Function to call. Function name is prepended with `Build/`.
+# @param 2...: Function arguments.
+##
 define build_cmd
 $(if $(Build/$(word 1,$(1))),,$(error Missing Build/$(word 1,$(1))))
 $(call Build/$(word 1,$(1)),$(wordlist 2,$(words $(1)),$(1)))
 
 endef
 
+##@
+# @brief Call build functions from the list.
+#
+# @param 1: List of build functions with arguments, separated by `|`.
+#           First word in each group is a build command without `Build/` prefix.
+##
 define concat_cmd
 $(call split_args,$(1),build_cmd)
 endef
@@ -163,6 +186,12 @@ DTC_WARN_FLAGS := \
 DTC_FLAGS += $(DTC_WARN_FLAGS)
 DTCO_FLAGS += $(DTC_WARN_FLAGS)
 
+##@
+# @brief Pad file to specified size.
+#
+# @param 1: File.
+# @param 2: Padding.
+##
 define Image/pad-to
 	dd if=$(1) of=$(1).new bs=$(2) conv=sync
 	mv $(1).new $(1)
@@ -403,26 +432,53 @@ define Device/InitProfile
   DEVICE_DESCRIPTION = Build firmware images for $$(DEVICE_TITLE)
 endef
 
+##@
+# @brief Image configuration variables.
+#
+# @param 1: Device name.
+##
 define Device/Init
+  ##@ Device name.
   DEVICE_NAME := $(1)
+  ##@ Commands to build kernel.
+  # Commands with arguments are separated by `|`.
+  ##
   KERNEL:=
+  ##@ Commands to build initramfs.
+  # Commands with arguments are separated by `|`.
+  ##
   KERNEL_INITRAMFS = $$(KERNEL)
+  ##@ Kernel command line.
   CMDLINE:=
 
+  ##@ Images to build.
   IMAGES :=
+  ##@ Artifacts to build.
   ARTIFACTS :=
+  ##@ Device image prefix.
   DEVICE_IMG_PREFIX := $(IMG_PREFIX)-$(1)
+  ##@ Device image name.
   DEVICE_IMG_NAME = $$(DEVICE_IMG_PREFIX)-$$(1)-$$(2)
+  ##@ Factory image name.
   FACTORY_IMG_NAME :=
+  ##@ Maximum image size. Optional.
   IMAGE_SIZE :=
+  ##@ Maximum image size. Optional.
   NAND_SIZE :=
+  ##@ Kernel image prefix.
   KERNEL_PREFIX = $$(DEVICE_IMG_PREFIX)
+  ##@ Kernel image suffix.
   KERNEL_SUFFIX := -kernel.bin
+  ##@ Initramfs image suffix.
   KERNEL_INITRAMFS_SUFFIX = $$(KERNEL_SUFFIX)
+  ##@ Kernel image name.
   KERNEL_IMAGE = $$(KERNEL_PREFIX)$$(KERNEL_SUFFIX)
+  ##@ Initramfs image prefix.
   KERNEL_INITRAMFS_PREFIX = $$(DEVICE_IMG_PREFIX)-initramfs
   KERNEL_INITRAMFS_IMAGE = $$(KERNEL_INITRAMFS_PREFIX)$$(KERNEL_INITRAMFS_SUFFIX)
+  ##@ Initramfs image name.
   KERNEL_INITRAMFS_NAME = $$(KERNEL_NAME)-initramfs
+  ##@ Kernel install flag.
   KERNEL_INSTALL :=
   KERNEL_NAME := vmlinux
   KERNEL_DEPENDS :=
diff --git a/include/target.mk b/include/target.mk
index d13902ad6e..0108bced99 100644
--- a/include/target.mk
+++ b/include/target.mk
@@ -7,10 +7,17 @@ ifneq ($(__target_inc),1)
 __target_inc=1
 
 
-# default device type
+##@
+# @brief Default device type ( basic | nas | router ).
+##
 DEVICE_TYPE?=router
 
-# Default packages - the really basic set
+##@
+# @brief Default packages.
+#
+# The really basic set. Additional packages are added based on @DEVICE_TYPE and
+# @CONFIG_* values.
+##
 DEFAULT_PACKAGES:=\
 	base-files \
 	ca-bundle \
@@ -27,15 +34,21 @@ DEFAULT_PACKAGES:=\
 	urandom-seed \
 	urngd
 
-# For the basic set
+##@
+# @brief Default packages for @DEVICE_TYPE basic.
+##
 DEFAULT_PACKAGES.basic:=
-# For nas targets
+##@
+# @brief Default packages for @DEVICE_TYPE nas.
+##
 DEFAULT_PACKAGES.nas:=\
 	block-mount \
 	fdisk \
 	lsblk \
 	mdadm
-# For router targets
+##@
+# @brief Default packages for @DEVICE_TYPE router.
+##
 DEFAULT_PACKAGES.router:=\
 	dnsmasq \
 	firewall4 \
@@ -121,7 +134,18 @@ endif
 # Add device specific packages (here below to allow device type set from subtarget)
 DEFAULT_PACKAGES += $(DEFAULT_PACKAGES.$(DEVICE_TYPE))
 
+##@
+# @brief Filter out packages, prepended with `-`.
+#
+# @param 1: Package list.
+##
 filter_packages = $(filter-out -% $(patsubst -%,%,$(filter -%,$(1))),$(1))
+
+##@
+# @brief Append extra package dependencies.
+#
+# @param 1: Package list.
+##
 extra_packages = $(if $(filter wpad wpad-% nas,$(1)),iwinfo)
 
 define ProfileDefault
diff --git a/rules.mk b/rules.mk
index 973fd1cbb9..54df407fca 100644
--- a/rules.mk
+++ b/rules.mk
@@ -20,6 +20,11 @@ endif
 export TMP_DIR:=$(TOPDIR)/tmp
 export TMPDIR:=$(TMP_DIR)
 
+##@
+# @brief Strip quotes `"` and pounds `#` from string.
+#
+# @param 1: String.
+##
 qstrip=$(strip $(subst ",,$(1)))
 #"))
 
@@ -27,8 +32,23 @@ empty:=
 space:= $(empty) $(empty)
 comma:=,
 pound:=\#
+##@
+# @brief Merge strings by removing spaces.
+#
+# @param 1: String.
+##
 merge=$(subst $(space),,$(1))
+##@
+# @brief Get hash sum of variable list.
+#
+# @param 1: List of variable names.
+##
 confvar=$(shell echo '$(foreach v,$(1),$(v)=$(subst ','\'',$($(v))))' | $(MKHASH) md5)
+##@
+# @brief Strip last extension from file name.
+#
+# @param 1: File name.
+##
 strip_last=$(patsubst %.$(lastword $(subst .,$(space),$(1))),%,$(1))
 
 paren_left = (
@@ -51,9 +71,18 @@ __tr_head = $(subst $(paren_left)subst,$(paren_left)subst$(space),$(__tr_head_st
 __tr_tail = $(subst $(space),,$(foreach cv,$(1),$(paren_right)))
 __tr_template = $(__tr_head)$$(1)$(__tr_tail)
 
+##@
+# @brief Convert string characters to upper.
+##
 $(eval toupper = $(call __tr_template,$(chars_lower),$(chars_upper)))
+##@
+# @brief Convert string characters to lower.
+##
 $(eval tolower = $(call __tr_template,$(chars_upper),$(chars_lower)))
 
+##@
+# @brief Abbreviate version. Truncate to 8 characters.
+##
 version_abbrev = $(if $(if $(CHECK),,$(DUMP)),$(1),$(shell printf '%.8s' $(1)))
 
 _SINGLE=export MAKEFLAGS=$(space);
@@ -102,6 +131,13 @@ endif
 
 DEFAULT_SUBDIR_TARGETS:=clean download prepare compile update refresh prereq dist distcheck configure check check-depends
 
+##@
+# @brief Create default targets.
+#
+# Targets are created from @DEFAULT_SUBDIR_TARGETS and input argument lists.
+#
+# @param 1: Additional targets list.
+##
 define DefaultTargets
 $(foreach t,$(DEFAULT_SUBDIR_TARGETS) $(1),
   .$(t):
@@ -371,16 +407,28 @@ export BISON_PKGDATADIR:=$(STAGING_DIR_HOST)/share/bison
 export HOST_GNULIB_SRCDIR:=$(STAGING_DIR_HOST)/share/gnulib
 export M4:=$(STAGING_DIR_HOST)/bin/m4
 
+##@
+# @brief Slugify variable name and prepend suffix.
+##
 define shvar
 V_$(subst .,_,$(subst -,_,$(subst /,_,$(1))))
 endef
 
+##@
+# @brief Create and export variable, set to function result.
+#
+# @param 1: Function name. Used as variable name, prepended with `V_`.
+##
 define shexport
 export $(call shvar,$(1))=$$(call $(1))
 endef
 
+##@
+# @brief Support 64 bit tine in C code.
+#
 # Test support for 64-bit time with C code from largefile.m4 provided by GNU Gnulib
-# the value is 'y' when successful and '' otherwise
+# the value is `y` when successful and `` otherwise
+##
 define YEAR_2038
 $(shell \
   mkdir -p $(TMP_DIR); \
@@ -392,9 +440,12 @@ $(shell \
 )
 endef
 
-# Execute commands under flock
-# $(1) => The shell expression.
-# $(2) => The lock name. If not given, the global lock will be used.
+##@
+# @brief Execute commands under flock
+#
+# @param 1: The shell expression.
+# @param 2: The lock name. If not given, the global lock will be used.
+##
 ifneq ($(wildcard $(STAGING_DIR_HOST)/bin/flock),)
   define locked
 	SHELL= \
@@ -406,10 +457,14 @@ else
   locked=$(1)
 endif
 
-# Recursively copy paths into another directory, purge dangling
+
+##@
+# @brief Recursively copy paths into another directory, purge dangling
 # symlinks before.
-# $(1) => File glob expression
-# $(2) => Destination directory
+#
+# @param 1: File glob expression.
+# @param 1: Destination directory.
+##
 define file_copy
 	for src_dir in $(sort $(foreach d,$(wildcard $(1)),$(dir $(d)))); do \
 		( cd $$src_dir; find -type f -or -type d ) | \
@@ -424,19 +479,30 @@ define file_copy
 	$(CP) $(1) $(2)
 endef
 
-# Calculate sha256sum of any plain file within a given directory
-# $(1) => Input directory
-# $(2) => If set, recurse into subdirectories
+##@
+# @brief Calculate sha256sum of any plain file within a given directory.
+#
+# @param 1: Input directory.
+# @param 2: If set, recurse into subdirectories.
+##
 define sha256sums
 	(cd $(1); find . $(if $(2),,-maxdepth 1) -type f -not -name 'sha256sums' -printf "%P\n" | sort | \
 		xargs -r $(MKHASH) -n sha256 | sed -ne 's!^\(.*\) \(.*\)$$!\1 *\2!p' > sha256sums)
 endef
 
-# file extension
+##@
+# @brief Retrieve file extension.
+#
+# @param 1: File name.
+##
 ext=$(word $(words $(subst ., ,$(1))),$(subst ., ,$(1)))
 
-# Count Git commits of a package
-# $(1) => if non-empty: count commits since last ": [uU]pdate to " or ": [bB]ump to " in commit message
+##@
+# @brief Count Git commits of a package.
+#
+# @param 1: if non-empty: count commits since last ": [uU]pdate to "
+#           or ": [bB]ump to " in commit message.
+##
 define commitcount
 $(shell \
   if git log -1 >/dev/null 2>/dev/null; then \
@@ -458,6 +524,11 @@ $(shell \
 )
 endef
 
+##@
+# @brief Get ABI version string, stripping `-`, `_` and `.`.
+#
+# @param 1: Version string.
+##
 abi_version_str = $(subst -,,$(subst _,,$(subst .,,$(1))))
 
 COMMITCOUNT = $(if $(DUMP),0,$(call commitcount))



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:20 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:20 -0500
Subject: [openwrt/openwrt]  murata-firmware: add new package
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7993.1732820757.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/c3db0cca0f66d2edb721cf72adb92125abc4a001

commit c3db0cca0f66d2edb721cf72adb92125abc4a001
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Thu Oct 10 17:19:38 2024 +0200

    murata-firmware: add new package
    
    This package contains firmwares provided by Murata.
    See https://community.murata.com/.
    
    Murata firmwares are used by wifi chip on stm32 boards.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 960f5f94d7cefe89abd41347124fd3f0fbb945ae)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/firmware/murata-firmware/Makefile | 57 +++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/package/firmware/murata-firmware/Makefile b/package/firmware/murata-firmware/Makefile
new file mode 100644
index 0000000000..1d9efda576
--- /dev/null
+++ b/package/firmware/murata-firmware/Makefile
@@ -0,0 +1,57 @@
+#
+# Copyright (C) 2024 Bootlin
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=murata-firmware
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_DATE:=2024-09-12
+PKG_SOURCE_URL:=https://github.com/murata-wireless/cyw-fmac-fw.git
+PKG_MIRROR_HASH:=26f8a2df800666daab183b2842e5b3d591b1e5b31769d5429f9d70527f43d152
+PKG_SOURCE_VERSION:=50ac17bb65b2342cd954d49d9bc492709d431c3c
+
+PKG_MAINTAINER:=Thomas Richard <thomas.richard at bootlin.com>
+PKG_LICENSE_FILES:=LICENCE
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/murata-firmware-default
+  SECTION:=firmware
+  CATEGORY:=Firmware
+  URL:=https://community.murata.com/
+endef
+
+define Build/Compile
+endef
+
+define Package/murata-firmware-43430-sdio
+  $(Package/murata-firmware-default)
+  TITLE:=BCM43430 FullMac SDIO firmware
+  CONFLICTS:=cypress-firmware-43430-sdio
+endef
+
+define Package/murata-firmware-43430-sdio/install
+	$(INSTALL_DIR) $(1)/lib/firmware/murata
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/cyfmac43430-sdio.bin \
+		$(1)/lib/firmware/murata/
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/cyfmac43430-sdio.1DX.clm_blob \
+		$(1)/lib/firmware/murata/
+	$(INSTALL_DIR) $(1)/lib/firmware/brcm
+	$(LN) \
+		../murata/cyfmac43430-sdio.bin \
+		$(1)/lib/firmware/brcm/brcmfmac43430-sdio.bin
+	$(LN) \
+		../murata/cyfmac43430-sdio.1DX.clm_blob \
+		$(1)/lib/firmware/brcm/brcmfmac43430-sdio.clm_blob
+endef
+
+$(eval $(call BuildPackage,murata-firmware-43430-sdio))
+



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:31 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:31 -0500
Subject: [openwrt/openwrt]  kernel: modules: appletalk: add for Netatalk v4
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7994.1732820760.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/b2f3713801c22d496791949877e6466864eaaa41

commit b2f3713801c22d496791949877e6466864eaaa41
Author: Antonio Pastor <antonio.pastor at gmail.com>
AuthorDate: Sat Nov 16 15:09:49 2024 -0500

    kernel: modules: appletalk: add for Netatalk v4
    
    Netatalk v4 reintroduces AppleTalk and this module is required for
    layer 3 protocol support.
    
    Module was removed in kernel 4.14 for OpenWrt 18.06 (commmit
    14a0131, 22/02/2018). At the time nothing used it as Netatalk v3
    did not support AppleTalk.
    
    Not building ipddp feature/module like it was in the past, as
    recommended by upstream Netatalk maintainers.
    
    Signed-off-by: Antonio Pastor <antonio.pastor at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16979
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 5eb25dddb17fa3cf4958e91dfc9fc868c9eb03ac)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/kernel/linux/modules/netsupport.mk | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/package/kernel/linux/modules/netsupport.mk b/package/kernel/linux/modules/netsupport.mk
index 9f349d34ee..3551a89a9b 100644
--- a/package/kernel/linux/modules/netsupport.mk
+++ b/package/kernel/linux/modules/netsupport.mk
@@ -42,6 +42,24 @@ endef
 $(eval $(call KernelPackage,atmtcp))
 
 
+define KernelPackage/appletalk
+  SUBMENU:=$(NETWORK_SUPPORT_MENU)
+  TITLE:=Appletalk protocol support
+  KCONFIG:= \
+        CONFIG_ATALK \
+        CONFIG_DEV_APPLETALK \
+        CONFIG_IPDDP=n
+  FILES:=$(LINUX_DIR)/net/appletalk/appletalk.ko
+  AUTOLOAD:=$(call AutoLoad,40,appletalk)
+endef
+
+define KernelPackage/appletalk/description
+  Kernel module for AppleTalk protocol.
+endef
+
+$(eval $(call KernelPackage,appletalk))
+
+
 define KernelPackage/bonding
   SUBMENU:=$(NETWORK_SUPPORT_MENU)
   TITLE:=Ethernet bonding driver



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:11 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:11 -0500
Subject: [openwrt/openwrt]  Revert "mediatek: fix pwn fan settings for
 sinovoip bpi-r3"
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7997.1732820768.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/7a945bf88b99f304a7214e3036aeb52d8bc3cfee

commit 7a945bf88b99f304a7214e3036aeb52d8bc3cfee
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Thu Nov 21 22:04:41 2024 +0100

    Revert "mediatek: fix pwn fan settings for sinovoip bpi-r3"
    
    This reverts commit 3467ea905b40f0df87700a15b716b1f5a4efc955.
    
    I merged it by accident.
    
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 52b6c9247997e51a97f13bb9e94749bc34e2d52e)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../196-dts-mt7986a-bpi-r3-pwm-fan-cooling-levels.patch       | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/target/linux/mediatek/patches-5.15/196-dts-mt7986a-bpi-r3-pwm-fan-cooling-levels.patch b/target/linux/mediatek/patches-5.15/196-dts-mt7986a-bpi-r3-pwm-fan-cooling-levels.patch
deleted file mode 100644
index 267c654f35..0000000000
--- a/target/linux/mediatek/patches-5.15/196-dts-mt7986a-bpi-r3-pwm-fan-cooling-levels.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts
-+++ b/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts
-@@ -46,7 +46,7 @@
- 		compatible = "pwm-fan";
- 		#cooling-cells = <2>;
- 		/* cooling level (0, 1, 2) - pwm inverted */
--		cooling-levels = <255 96 0>;
-+		cooling-levels = <255 40 0>;
- 		pwms = <&pwm 0 10000>;
- 		status = "okay";
- 	};



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:15 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:15 -0500
Subject: [openwrt/openwrt]  build: add generic build template for optee-os
 packages
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7998.1732820781.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/480aed0c729f063e089e186b728fcbd0c69138d7

commit 480aed0c729f063e089e186b728fcbd0c69138d7
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Thu Sep 26 16:10:26 2024 +0200

    build: add generic build template for optee-os packages
    
    Add a generic template include/optee-os.mk to build OP-TEE.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit dedb90e8f82a179ad67b6eac3b6f8862b9183077)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 include/optee-os.mk | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 113 insertions(+)

diff --git a/include/optee-os.mk b/include/optee-os.mk
new file mode 100644
index 0000000000..396d2406bf
--- /dev/null
+++ b/include/optee-os.mk
@@ -0,0 +1,113 @@
+include $(INCLUDE_DIR)/prereq.mk
+
+PKG_NAME ?= optee-os
+
+ifndef PKG_SOURCE_PROTO
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL_FILE:=$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL = https://github.com/OP-TEE/optee_os/archive/refs/tags/
+TAR_OPTIONS+= --transform 's/optee_os/$(PKG_NAME)/'
+endif
+
+PKG_BUILD_DIR = $(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+
+PKG_TARGETS := bin
+PKG_FLAGS:=nonshared
+
+PKG_LICENSE:=BSD 2-Clause
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_BUILD_PARALLEL ?= 1
+
+$(eval $(call TestHostCommand,python3-cryptography, \
+  Please install the Python3 cryptography module, \
+  $(STAGING_DIR_HOST)/bin/python3 -c 'import cryptography'))
+
+$(eval $(call TestHostCommand,python3-pyelftools, \
+    Please install the Python3 pyelftools module, \
+    $(STAGING_DIR_HOST)/bin/python3 -c 'import elftools'))
+
+export GCC_HONOUR_COPTS=s
+
+define Package/optee-os/install/default
+	$(CP) $(patsubst %,$(PKG_BUILD_DIR)/out/arm-plat-$(PLAT)/core/%,$(OPTEE_IMAGE)) $(1)/
+endef
+
+Package/optee-os/install = $(Package/optee-os/install/default)
+
+define Optee-os/Init
+  BUILD_TARGET:=
+  BUILD_SUBTARGET:=
+  BUILD_DEVICES:=
+  NAME:=
+  DEPENDS:=
+  HIDDEN:=
+  DEFAULT:=
+  VARIANT:=$(1)
+  PLAT:=$(1)
+  PLAT_FLAVOR:=
+  OPTEE_IMAGE:=tee-header_v2.bin tee-pager_v2.bin tee-pageable_v2.bin
+endef
+
+TARGET_DEP = TARGET_$(BUILD_TARGET)$(if $(BUILD_SUBTARGET),_$(BUILD_SUBTARGET))
+
+define Build/Optee-os/Target
+  $(eval $(call Optee-os/Init,$(1)))
+  $(eval $(call Optee-os/Default,$(1)))
+  $(eval $(call Optee-os/$(1),$(1)))
+
+  define Package/optee-os-$(1)
+    SECTION:=boot
+    CATEGORY:=Boot Loaders
+    TITLE:=OPTEE-OS for $(NAME)
+    VARIANT:=$(VARIANT)
+    DEPENDS:=@!IN_SDK $(DEPENDS)
+    HIDDEN:=$(HIDDEN)
+    ifneq ($(BUILD_TARGET),)
+      DEPENDS += @$(TARGET_DEP)
+      ifneq ($(BUILD_DEVICES),)
+        DEFAULT := y if ($(TARGET_DEP)_Default \
+		$(patsubst %,|| $(TARGET_DEP)_DEVICE_%,$(BUILD_DEVICES)) \
+		$(patsubst %,|| $(patsubst TARGET_%,TARGET_DEVICE_%,$(TARGET_DEP))_DEVICE_%,$(BUILD_DEVICES)))
+      endif
+    endif
+    $(if $(DEFAULT),DEFAULT:=$(DEFAULT))
+    URL:=https://optee.readthedocs.io
+  endef
+
+  define Package/optee-os-$(1)/install
+	$$(Package/optee-os/install)
+  endef
+endef
+
+define Build/Configure/Optee-os
+endef
+
+define Build/Compile/Optee-os
+	+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
+		PATH=$(LINUX_DIR)/scripts/dtc/:$(PATH) \
+		CROSS_COMPILE=$(TARGET_CROSS) \
+		CROSS_COMPILE_core="$(TARGET_CROSS)" \
+		CROSS_COMPILE_ta_arm64="$(TARGET_CROSS)" \
+		CROSS_COMPILE_ta_arm32="$(TARGET_CROSS)" \
+		$(if $(CONFIG_ARCH_64BIT), CFG_ARM64_core=y CFG_USER_TA_TARGETS=ta_arm64, CFG_ARM32_core=y) \
+		PLATFORM="$(PLAT)" \
+		PLATFORM_FLAVOR="$(call qstrip,$(PLAT_FLAVOR))" \
+		$(OPTEE_MAKE_FLAGS)
+endef
+
+define BuildPackage/Optee-os/Defaults
+  Build/Configure/Default = $$$$(Build/Configure/Optee-os)
+  Build/Compile/Default = $$$$(Build/Compile/Optee-os)
+endef
+
+define BuildPackage/Optee-os
+  $(eval $(call BuildPackage/Optee-os/Defaults))
+  $(foreach type,$(if $(DUMP),$(OPTEE_TARGETS),$(BUILD_VARIANT)), \
+    $(eval $(call Build/Optee-os/Target,$(type)))
+  )
+  $(eval $(call Build/DefaultTargets))
+  $(foreach type,$(if $(DUMP),$(OPTEE_TARGETS),$(BUILD_VARIANT)), \
+    $(call BuildPackage,optee-os-$(type))
+  )
+endef



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:21 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:21 -0500
Subject: [openwrt/openwrt]  ramips: mt7621: Edgerouter-X drop factory image
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.7999.1732820794.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/d582b369c3e6d7d4c103066bc82b00055a4a27a9

commit d582b369c3e6d7d4c103066bc82b00055a4a27a9
Author: Tim Lunn <tim at feathertop.org>
AuthorDate: Fri Apr 19 22:16:11 2024 +1000

    ramips: mt7621: Edgerouter-X drop factory image
    
    Edgerouter-X factory images have not built automatically since 19.x due
    to images being over 3MB. While it was possible to build custom images
    with very stripped down config, this is no longer possible with the size
    increases of linux 6.1 and 6.6.
    
    Drop code for generation of factory images, if some dev later wishes to
    try custom images they can revert this commit.
    
    Signed-off-by: Tim Lunn <tim at feathertop.org>
    Link: https://github.com/openwrt/openwrt/pull/15194
    (cherry picked from commit 4d90b79704efba57ab158c47ae6936ce4c1ef185)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ramips/image/mt7621.mk | 26 --------------------------
 1 file changed, 26 deletions(-)

diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index b9692c5f3a..bebe40c216 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -229,30 +229,6 @@ define Build/belkin-header
 	mv $@.new $@
 endef
 
-define Build/ubnt-erx-factory-image
-	if [ -e $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) -a "$$(stat -c%s $@)" -lt "$(KERNEL_SIZE)" ]; then \
-		echo '21001:7' > $(1).compat; \
-		$(TAR) -cf $(1) --transform='s/^.*/compat/' $(1).compat; \
-		\
-		$(TAR) -rf $(1) --transform='s/^.*/vmlinux.tmp/' $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE); \
-		$(MKHASH) md5 $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) > $(1).md5; \
-		$(TAR) -rf $(1) --transform='s/^.*/vmlinux.tmp.md5/' $(1).md5; \
-		\
-		echo "dummy" > $(1).rootfs; \
-		$(TAR) -rf $(1) --transform='s/^.*/squashfs.tmp/' $(1).rootfs; \
-		\
-		$(MKHASH) md5 $(1).rootfs > $(1).md5; \
-		$(TAR) -rf $(1) --transform='s/^.*/squashfs.tmp.md5/' $(1).md5; \
-		\
-		echo '$(BOARD) $(VERSION_CODE) $(VERSION_NUMBER)' > $(1).version; \
-		$(TAR) -rf $(1) --transform='s/^.*/version.tmp/' $(1).version; \
-		\
-		$(CP) $(1) $(BIN_DIR)/; \
-	else \
-		echo "WARNING: initramfs kernel image too big, cannot generate factory image (actual $$(stat -c%s $@); max $(KERNEL_SIZE))" >&2; \
-	fi
-endef
-
 define Build/zytrx-header
 	$(eval board=$(word 1,$(1)))
 	$(eval version=$(word 2,$(1)))
@@ -2861,8 +2837,6 @@ define Device/ubnt_edgerouter_common
   IMAGE_SIZE := 256768k
   FILESYSTEMS := squashfs
   KERNEL_SIZE := 6144k
-  KERNEL_INITRAMFS := $$(KERNEL) | \
-	ubnt-erx-factory-image $(KDIR)/tmp/$$(KERNEL_INITRAMFS_PREFIX)-factory.tar
   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
   DEVICE_PACKAGES += -wpad-basic-mbedtls -uboot-envtools
   DEVICE_COMPAT_VERSION := 2.0



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:41 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:41 -0500
Subject: [openwrt/openwrt]  mediatek: add support for Acer Predator W6d and
 Acer Vero W6m
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8000.1732820797.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/60e21548e500cf7c70879073f8ef8d5dbb381f2c

commit 60e21548e500cf7c70879073f8ef8d5dbb381f2c
Author: George Oldfort <openwrt at 10099.de>
AuthorDate: Mon Nov 11 11:18:19 2024 +0100

    mediatek: add support for Acer Predator W6d and Acer Vero W6m
    
    This commit adds support for two variants of the already supported router
    Acer Predator Connect W6: The Acer Predator Connect W6d (W6 without 6 GHz
    wifi) and the Acer Connect Vero W6m (W6 without 2.5G eth1 port, usb3 port,
    and the 6 on-board gpio RGB LEDs, and with a KTD2026 RGB LED controller
    instead of the KTD2061 LED controller of the W6/W6d).
    
    The device tree for the W6m refers to the KTD202x driver suggested in
    PR #16860.
    
    Patching target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
    removes the code repetition in (old) lines 121 to 124 on the occasion.
    
    This is the last of four commits into which the original commit was split
    to make reviews easier and more targeted.
    
    Signed-off-by: George Oldfort <openwrt at 10099.de>
    Link: https://github.com/openwrt/openwrt/pull/16861
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 2898d1d1269a841e5bb8673801bd2a04ad120031)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/boot/uboot-envtools/files/mediatek_filogic |   2 +
 .../mediatek/dts/mt7986a-acer-predator-w6d.dts     | 182 +++++++++++++++++++++
 .../linux/mediatek/dts/mt7986a-acer-vero-w6m.dts   |  66 ++++++++
 .../filogic/base-files/etc/board.d/02_network      |  10 +-
 .../etc/hotplug.d/ieee80211/11_fix_wifi_mac        |   7 +-
 .../base-files/lib/preinit/10_fix_eth_mac.sh       |  11 +-
 .../filogic/base-files/lib/upgrade/platform.sh     |  16 +-
 target/linux/mediatek/image/filogic.mk             |  30 ++++
 8 files changed, 312 insertions(+), 12 deletions(-)

diff --git a/package/boot/uboot-envtools/files/mediatek_filogic b/package/boot/uboot-envtools/files/mediatek_filogic
index 7571af0020..b637f43287 100644
--- a/package/boot/uboot-envtools/files/mediatek_filogic
+++ b/package/boot/uboot-envtools/files/mediatek_filogic
@@ -50,6 +50,8 @@ zyxel,ex5601-t0-ubootmod)
 	ubootenv_add_ubi_default
 	;;
 acer,predator-w6|\
+acer,predator-w6d|\
+acer,vero-w6m|\
 glinet,gl-mt2500|\
 glinet,gl-mt6000|\
 glinet,gl-x3000|\
diff --git a/target/linux/mediatek/dts/mt7986a-acer-predator-w6d.dts b/target/linux/mediatek/dts/mt7986a-acer-predator-w6d.dts
new file mode 100644
index 0000000000..b2c35a6197
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7986a-acer-predator-w6d.dts
@@ -0,0 +1,182 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+/dts-v1/;
+#include "mt7986a-acer-w6-common.dtsi"
+
+/ {
+	model = "Acer Predator Connect W6d";
+	compatible = "acer,predator-w6d", "mediatek,mt7986a";
+
+	aliases {
+		serial0 = &uart0;
+		led-boot = &led_status_blue;
+		led-failsafe = &led_status_blue;
+		led-running = &led_status_green;
+		led-upgrade = &led_status_red;
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led_status_red: led-0 {
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <0>;
+			gpios = <&pio 1 GPIO_ACTIVE_HIGH>;
+		};
+
+		led_status_green: led-1 {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <0>;
+			gpios = <&pio 2 GPIO_ACTIVE_HIGH>;
+		};
+
+		led_status_blue: led-2 {
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <0>;
+			gpios = <&pio 36 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-3 {
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <1>;
+			gpios = <&pio 35 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-4 {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <1>;
+			gpios = <&pio 34 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-5 {
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <1>;
+			gpios = <&pio 33 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-6 {
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <2>;
+			gpios = <&pio 38 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-7 {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <2>;
+			gpios = <&pio 37 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-8 {
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <2>;
+			gpios = <&pio 26 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-9 {
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <3>;
+			gpios = <&pio 25 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-10 {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <3>;
+			gpios = <&pio 24 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-11 {
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <3>;
+			gpios = <&pio 23 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-12 {
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <4>;
+			gpios = <&pio 28 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-13 {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <4>;
+			gpios = <&pio 27 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-14 {
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <4>;
+			gpios = <&pio 32 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-15 {
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <5>;
+			gpios = <&pio 45 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-16 {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <5>;
+			gpios = <&pio 44 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-17 {
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <5>;
+			gpios = <&pio 43 GPIO_ACTIVE_HIGH>;
+		};
+	};
+};
+
+&ssusb {
+	vusb33-supply = <&reg_3p3v>;
+	vbus-supply = <&reg_5v>;
+	status = "okay";
+};
+
+&usb_phy {
+	status = "okay";
+};
+
+&eth {
+	gmac1: mac at 1 {
+		compatible = "mediatek,eth-mac";
+		reg = <1>;
+		phy-mode = "2500base-x";
+		phy-handle = <&phy6>;
+	};
+};
+
+&mdio {
+	phy6: phy at 6 {
+		compatible = "ethernet-phy-ieee802.3-c45";
+		reg = <6>;
+		reset-gpios = <&pio 6 GPIO_ACTIVE_LOW>;
+		reset-assert-us = <10000>;
+		reset-deassert-us = <10000>;
+		/* LED0: nc ; LED1: nc ; LED2: amber ; LED3: green */
+		mxl,led-config = <0x0 0x0 0x370 0x380>;
+	};
+};
+
+&swport0 {
+	label = "game";
+};
diff --git a/target/linux/mediatek/dts/mt7986a-acer-vero-w6m.dts b/target/linux/mediatek/dts/mt7986a-acer-vero-w6m.dts
new file mode 100644
index 0000000000..7927efcb00
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7986a-acer-vero-w6m.dts
@@ -0,0 +1,66 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+/dts-v1/;
+#include "mt7986a-acer-w6-common.dtsi"
+
+/ {
+	model = "Acer Connect Vero W6m";
+	compatible = "acer,vero-w6m", "mediatek,mt7986a";
+
+	aliases {
+		serial0 = &uart0;
+		led-boot = &led_status;
+		led-failsafe = &led_status;
+		led-running = &led_status;
+		led-upgrade = &led_status;
+	};
+};
+
+&i2c0 {
+	led-controller at 30 {
+		compatible = "kinetic,ktd2026";
+		reg = <0x30>;
+		vin-supply = <&reg_5v>;
+		vio-supply = <&reg_3p3v>;
+
+		led_status: multi-led {
+			color = <LED_COLOR_ID_RGB>;
+			function = LED_FUNCTION_STATUS;
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			led at 0 {
+				reg = <0>;
+				color = <LED_COLOR_ID_RED>;
+			};
+
+			led at 1 {
+				reg = <1>;
+				color = <LED_COLOR_ID_GREEN>;
+			};
+
+			led at 2 {
+				reg = <2>;
+				color = <LED_COLOR_ID_BLUE>;
+			};
+		};
+	};
+};
+
+&nvmem {
+	eeprom_factory_a0000: eeprom at a0000 {
+		reg = <0xa0000 0x1000>;
+	};
+};
+
+&slot0 {
+	radio0: mt7915 at 0,0 {
+		reg = <0x0000 0 0 0 0>;
+		nvmem-cells = <&eeprom_factory_a0000>;
+		nvmem-cell-names = "eeprom";
+	};
+};
+
+&swport0 {
+       label = "internet";
+};
diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
index 2bcead8304..7bfc61a269 100644
--- a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
@@ -18,9 +18,13 @@ mediatek_setup_interfaces()
 	acelink,ew-7886cax)
 		ucidef_set_interface_lan "eth0" "dhcp"
 		;;
-	acer,predator-w6)
+	acer,predator-w6|\
+	acer,predator-w6d)
 		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 game" eth1
 		;;
+	acer,vero-w6m)
+		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" internet
+		;;
 	arcadyan,mozart)
 		ucidef_set_interfaces_lan_wan "lan0 eth1" eth2
 		;;
@@ -132,7 +136,9 @@ mediatek_setup_macs()
 	local label_mac=""
 
 	case $board in
-	acer,predator-w6)
+	acer,predator-w6|\
+	acer,predator-w6d|\
+	acer,vero-w6m)
 		wan_mac=$(mmc_get_mac_ascii u-boot-env WANMAC)
 		lan_mac=$(mmc_get_mac_ascii u-boot-env LANMAC)
 		;;
diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
index f7f00c9a83..f87cc0646e 100644
--- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
+++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
@@ -17,11 +17,16 @@ case "$board" in
 		[ "$PHYNBR" = "0" ] && macaddr_add $addr 1 > /sys${DEVPATH}/macaddress
 		[ "$PHYNBR" = "1" ] && macaddr_setbit_la $addr > /sys${DEVPATH}/macaddress
 		;;
-	acer,predator-w6)
+	acer,predator-w6|\
+	acer,vero-w6m)
 		[ "$PHYNBR" = "0" ] && mmc_get_mac_ascii u-boot-env 2gMAC > /sys${DEVPATH}/macaddress
 		[ "$PHYNBR" = "1" ] && mmc_get_mac_ascii u-boot-env 6gMAC > /sys${DEVPATH}/macaddress
 		[ "$PHYNBR" = "2" ] && mmc_get_mac_ascii u-boot-env 5gMAC > /sys${DEVPATH}/macaddress
 		;;
+	acer,predator-w6d)
+		[ "$PHYNBR" = "0" ] && mmc_get_mac_ascii u-boot-env 2gMAC > /sys${DEVPATH}/macaddress
+		[ "$PHYNBR" = "1" ] && mmc_get_mac_ascii u-boot-env 5gMAC > /sys${DEVPATH}/macaddress
+		;;
 	asus,rt-ax59u)
 		CI_UBIPART="UBI_DEV"
 		addr=$(mtd_get_mac_binary_ubi "Factory" 0x4)
diff --git a/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh b/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh
index 0d7da89cea..9d279898ac 100644
--- a/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh
+++ b/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh
@@ -2,7 +2,8 @@
 
 preinit_set_mac_address() {
 	case $(board_name) in
-	acer,predator-w6)
+	acer,predator-w6|\
+	acer,predator-w6d)
 		$(mmc_get_mac_ascii u-boot-env WANMAC)
 		$(mmc_get_mac_ascii u-boot-env LANMAC)
 		ip link set dev lan1 address "$lan_mac"
@@ -11,6 +12,14 @@ preinit_set_mac_address() {
 		ip link set dev game address "$lan_mac"
 		ip link set dev eth1 address "$wan_mac"
 		;;
+	acer,vero-w6m)
+		wan_mac=$(mmc_get_mac_ascii u-boot-env WANMAC)
+		lan_mac=$(mmc_get_mac_ascii u-boot-env LANMAC)
+		ip link set dev lan1 address "$lan_mac"
+		ip link set dev lan2 address "$lan_mac"
+		ip link set dev lan3 address "$lan_mac"
+		ip link set dev internet address "$wan_mac"
+		;;
 	asus,tuf-ax4200|\
 	asus,tuf-ax6000)
 		CI_UBIPART="UBI_DEV"
diff --git a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
index cfd77b62d7..ce334b2c8e 100755
--- a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
@@ -91,7 +91,13 @@ platform_do_upgrade() {
 		fit_do_upgrade "$1"
 		;;
 	acer,predator-w6|\
+	acer,predator-w6d|\
+	acer,vero-w6m|\
 	arcadyan,mozart|\
+	glinet,gl-mt2500|\
+	glinet,gl-mt6000|\
+	glinet,gl-x3000|\
+	glinet,gl-xe3000|\
 	smartrg,sdg-8612|\
 	smartrg,sdg-8614|\
 	smartrg,sdg-8622|\
@@ -115,14 +121,6 @@ platform_do_upgrade() {
 	yuncore,ax835)
 		default_do_upgrade "$1"
 		;;
-	glinet,gl-mt2500|\
-	glinet,gl-mt6000|\
-	glinet,gl-x3000|\
-	glinet,gl-xe3000)
-		CI_KERNPART="kernel"
-		CI_ROOTPART="rootfs"
-		emmc_do_upgrade "$1"
-		;;
 	mercusys,mr90x-v1|\
 	tplink,re6000xd)
 		CI_UBIPART="ubi0"
@@ -204,6 +202,8 @@ platform_copy_config() {
 		fi
 		;;
 	acer,predator-w6|\
+	acer,predator-w6d|\
+	acer,vero-w6m|\
 	arcadyan,mozart|\
 	glinet,gl-mt2500|\
 	glinet,gl-mt6000|\
diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index 838a433bf4..072cae0d1f 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -165,6 +165,36 @@ define Device/acer_predator-w6
 endef
 TARGET_DEVICES += acer_predator-w6
 
+define Device/acer_predator-w6d
+  DEVICE_VENDOR := Acer
+  DEVICE_MODEL := Predator Connect W6d
+  DEVICE_DTS := mt7986a-acer-predator-w6d
+  DEVICE_DTS_DIR := ../dts
+  DEVICE_DTS_LOADADDR := 0x47000000
+  DEVICE_PACKAGES := kmod-usb3 kmod-mt7915e kmod-mt7916-firmware kmod-mt7986-firmware mt7986-wo-firmware e2fsprogs f2fsck mkf2fs
+  IMAGES := sysupgrade.bin
+  KERNEL := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
+  KERNEL_INITRAMFS := kernel-bin | lzma | \
+	fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+endef
+TARGET_DEVICES += acer_predator-w6d
+
+define Device/acer_vero-w6m
+  DEVICE_VENDOR := Acer
+  DEVICE_MODEL := Connect Vero W6m
+  DEVICE_DTS := mt7986a-acer-vero-w6m
+  DEVICE_DTS_DIR := ../dts
+  DEVICE_DTS_LOADADDR := 0x47000000
+  DEVICE_PACKAGES := kmod-leds-ktd202x kmod-mt7915e kmod-mt7916-firmware kmod-mt7986-firmware mt7986-wo-firmware e2fsprogs f2fsck mkf2fs
+  IMAGES := sysupgrade.bin
+  KERNEL := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
+  KERNEL_INITRAMFS := kernel-bin | lzma | \
+	fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+endef
+TARGET_DEVICES += acer_vero-w6m
+
 define Device/adtran_smartrg
   DEVICE_VENDOR := Adtran
   DEVICE_DTS_DIR := ../dts



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:49 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:49 -0500
Subject: [openwrt/openwrt]  ramips: dna_valokuitu-plus-ex400: clean-up image
 creation
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8003.1732820800.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/fd7b1f60ea8d6a5c9da1dce70fd86231f5599aa6

commit fd7b1f60ea8d6a5c9da1dce70fd86231f5599aa6
Author: Mauri Sandberg <maukka at ext.kapsi.fi>
AuthorDate: Mon Oct 28 22:13:04 2024 +0200

    ramips: dna_valokuitu-plus-ex400: clean-up image creation
    
    Code cleanup. Simplify and unify how kernel image is passed to
    Build/dna-bootfs
    
    Signed-off-by: Mauri Sandberg <maukka at ext.kapsi.fi>
    Link: https://github.com/openwrt/openwrt/pull/16811
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit ec839c786ca56c6143257b89f146aeafbb6cfd3a)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ramips/image/mt7621.mk | 22 ++++++----------------
 1 file changed, 6 insertions(+), 16 deletions(-)

diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index 1dc1219d24..eb7dacefef 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -94,18 +94,9 @@ endef
 define Build/dna-bootfs
 	mkdir -p $@.ubifs-dir/boot
 
-	# populate the boot fs with the dtb and with either initramfs kernel or
-	# the normal kernel
+	# populate the boot fs with the dtb and the kernel image
 	$(CP) $(KDIR)/image-$(firstword $(DEVICE_DTS)).dtb $@.ubifs-dir/boot/dtb
-
-	$(if $(findstring with-initrd,$(word 1,$(1))),\
-		( \
-			$(CP) $@ $@.ubifs-dir/boot/uImage \
-		) , \
-		( \
-			$(CP) $(IMAGE_KERNEL) $@.ubifs-dir/boot/uImage \
-		) \
-	)
+	$(CP) $@ $@.ubifs-dir/boot/uImage
 
 	# create ubifs
 	$(STAGING_DIR_HOST)/bin/mkfs.ubifs ${MKUBIFS_OPTS} -r $@.ubifs-dir/ -o $@.new
@@ -1060,17 +1051,16 @@ define Device/dna_valokuitu-plus-ex400
   IMAGE_SIZE := 117m
   PAGESIZE := 2048
   MKUBIFS_OPTS := --min-io-size=$$(PAGESIZE) --leb-size=124KiB --max-leb-cnt=96 \
-  		  --log-lebs=2 --space-fixup --squash-uids
+	--log-lebs=2 --space-fixup --squash-uids
   DEVICE_VENDOR := DNA
   DEVICE_MODEL := Valokuitu Plus EX400
   KERNEL := kernel-bin | lzma | uImage lzma
   KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | uImage lzma
   IMAGES += factory.bin
   IMAGE/factory.bin := append-image-stage initramfs-kernel.bin | \
-                       dna-bootfs with-initrd | dna-header | \
-                       append-md5sum-ascii-salted
-  IMAGE/sysupgrade.bin := dna-bootfs | sysupgrade-tar kernel=$$$$@ | check-size | \
-  			  append-metadata
+	dna-bootfs | dna-header | append-md5sum-ascii-salted
+  IMAGE/sysupgrade.bin := append-kernel | dna-bootfs | \
+  	sysupgrade-tar kernel=$$$$@ | check-size | append-metadata
   DEVICE_IMG_NAME = $$(DEVICE_IMG_PREFIX)-$$(2)
   DEVICE_PACKAGES := kmod-mt7603 kmod-mt7615-firmware kmod-usb3
 endef



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:50 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:50 -0500
Subject: [openwrt/openwrt]  elfutils: Update to 0.192
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8004.1732820803.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/4166aaf98abc848496fbe3b8be3f4ec59bbb5cac

commit 4166aaf98abc848496fbe3b8be3f4ec59bbb5cac
Author: Ryan Keane <the.ra2.ifv at gmail.com>
AuthorDate: Thu Nov 7 21:50:58 2024 -0800

    elfutils: Update to 0.192
    
    Add a patch still under review to fix some errors.
    
    Refresh patch:
    - 003-libintl-compatibility.patch
    - 005-build_only_libs.patch
    - 006-Fix-build-on-aarch64-musl.patch
    
    Add patch:
    - 102-fix-potential-deref-of-null-error.patch
    
    Release notes are in the link below.
    
    Link: https://inbox.sourceware.org/elfutils-devel/CAJDtP-T3+gXqHWp3T0mejWWbPr0_1tHetEXwfB67-o+zz7ShiA at mail.gmail.com/T/#u
    Signed-off-by: Ryan Keane <the.ra2.ifv at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16886
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit f5132df69db50a99e556e6fbd165002aac0e3e38)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/libs/elfutils/Makefile                     |  4 +-
 .../patches/003-libintl-compatibility.patch        |  2 +-
 .../elfutils/patches/005-build_only_libs.patch     |  2 +-
 .../patches/006-Fix-build-on-aarch64-musl.patch    |  4 +-
 .../102-fix-potential-deref-of-null-error.patch    | 55 ++++++++++++++++++++++
 5 files changed, 61 insertions(+), 6 deletions(-)

diff --git a/package/libs/elfutils/Makefile b/package/libs/elfutils/Makefile
index ac5841c604..b8bb50b564 100644
--- a/package/libs/elfutils/Makefile
+++ b/package/libs/elfutils/Makefile
@@ -7,12 +7,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=elfutils
-PKG_VERSION:=0.191
+PKG_VERSION:=0.192
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://sourceware.org/$(PKG_NAME)/ftp/$(PKG_VERSION)
-PKG_HASH:=df76db71366d1d708365fc7a6c60ca48398f14367eb2b8954efc8897147ad871
+PKG_HASH:=616099beae24aba11f9b63d86ca6cc8d566d968b802391334c91df54eab416b4
 
 PKG_MAINTAINER:=Luiz Angelo Daros de Luca <luizluca at gmail.com>
 PKG_LICENSE:=GPL-3.0-or-later
diff --git a/package/libs/elfutils/patches/003-libintl-compatibility.patch b/package/libs/elfutils/patches/003-libintl-compatibility.patch
index 1271796af5..eda9f2204a 100644
--- a/package/libs/elfutils/patches/003-libintl-compatibility.patch
+++ b/package/libs/elfutils/patches/003-libintl-compatibility.patch
@@ -11,7 +11,7 @@
  Requires.private: zlib @LIBZSTD@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -717,6 +717,9 @@ dnl AM_GNU_GETTEXT_REQUIRE_VERSION suppo
+@@ -728,6 +728,9 @@ dnl AM_GNU_GETTEXT_REQUIRE_VERSION suppo
  AM_GNU_GETTEXT_VERSION([0.19.6])
  AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.6])
  
diff --git a/package/libs/elfutils/patches/005-build_only_libs.patch b/package/libs/elfutils/patches/005-build_only_libs.patch
index 598b734874..177ac659e6 100644
--- a/package/libs/elfutils/patches/005-build_only_libs.patch
+++ b/package/libs/elfutils/patches/005-build_only_libs.patch
@@ -8,4 +8,4 @@
 +	  libasm
  
  EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING SECURITY \
- 	     COPYING COPYING-GPLV2 COPYING-LGPLV3
+ 	     COPYING COPYING-GPLV2 COPYING-LGPLV3 CONDUCT
diff --git a/package/libs/elfutils/patches/006-Fix-build-on-aarch64-musl.patch b/package/libs/elfutils/patches/006-Fix-build-on-aarch64-musl.patch
index d8066c5ca7..a7786ed2c0 100644
--- a/package/libs/elfutils/patches/006-Fix-build-on-aarch64-musl.patch
+++ b/package/libs/elfutils/patches/006-Fix-build-on-aarch64-musl.patch
@@ -32,8 +32,8 @@ Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
 +# include <sys/uio.h>
  # include <sys/user.h>
  # include <sys/ptrace.h>
- /* Deal with old glibc defining user_pt_regs instead of user_regs_struct.  */
-@@ -82,7 +82,7 @@ aarch64_set_initial_registers_tid (pid_t
+ # include <asm/ptrace.h>
+@@ -94,7 +94,7 @@ aarch64_set_initial_registers_tid (pid_t
  
    Dwarf_Word dwarf_fregs[32];
    for (int r = 0; r < 32; r++)
diff --git a/package/libs/elfutils/patches/102-fix-potential-deref-of-null-error.patch b/package/libs/elfutils/patches/102-fix-potential-deref-of-null-error.patch
new file mode 100644
index 0000000000..6710e4ef9c
--- /dev/null
+++ b/package/libs/elfutils/patches/102-fix-potential-deref-of-null-error.patch
@@ -0,0 +1,55 @@
+strip.c: Pointer `arhdr` created at strip.c:2741 and then dereferenced without NULL-check.
+The same situation for the `arhdr` pointer at the objdump.c:313 and
+the `h` pointer at the readelf.c:13545.
+
+Triggers found by static analyzer Svace.
+
+Signed-off-by: Maks Mishin <maks.mishinFZ at gmail.com>
+---
+ src/objdump.c | 5 +++++
+ src/readelf.c | 5 +++++
+ src/strip.c   | 5 +++++
+ 3 files changed, 15 insertions(+)
+
+--- a/src/objdump.c
++++ b/src/objdump.c
+@@ -311,6 +311,11 @@ handle_ar (int fd, Elf *elf, const char
+     {
+       /* The the header for this element.  */
+       Elf_Arhdr *arhdr = elf_getarhdr (subelf);
++      if (arhdr == NULL)
++	{
++	  printf ("cannot get arhdr: %s\n", elf_errmsg (-1));
++	  exit (1);
++	}
+ 
+       /* Skip over the index entries.  */
+       if (strcmp (arhdr->ar_name, "/") != 0
+--- a/src/readelf.c
++++ b/src/readelf.c
+@@ -13543,6 +13543,11 @@ dump_archive_index (Elf *elf, const char
+ 			  as_off, fname, elf_errmsg (-1));
+ 
+ 	  const Elf_Arhdr *h = elf_getarhdr (subelf);
++	  if (h == NULL)
++	{
++	  printf ("cannot get arhdr: %s\n", elf_errmsg (-1));
++	  exit (1);
++	}
+ 
+ 	  printf (_("Archive member '%s' contains:\n"), h->ar_name);
+ 
+--- a/src/strip.c
++++ b/src/strip.c
+@@ -2739,6 +2739,11 @@ handle_ar (int fd, Elf *elf, const char
+     {
+       /* The the header for this element.  */
+       Elf_Arhdr *arhdr = elf_getarhdr (subelf);
++	  if (arhdr == NULL)
++	{
++	  printf ("cannot get arhdr: %s\n", elf_errmsg (-1));
++	  exit (1);
++	}
+ 
+       if (elf_kind (subelf) == ELF_K_ELF)
+ 	result |= handle_elf (fd, subelf, new_prefix, arhdr->ar_name, 0, NULL);



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:39 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:39 -0500
Subject: [openwrt/openwrt]  mediatek: make use of Acer Predator Connect W6's
 u-boot environment
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8005.1732820822.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/fd0f608d66b30be1eef5a1dc4bb61e3540736be3

commit fd0f608d66b30be1eef5a1dc4bb61e3540736be3
Author: George Oldfort <openwrt at 10099.de>
AuthorDate: Mon Nov 11 10:14:55 2024 +0100

    mediatek: make use of Acer Predator Connect W6's u-boot environment
    
    In order to prepare OpenWrt support for other Acer W6 devices and to adapt
    the procedure to read and set mac addresses which other devices of the same
    target are using (instead of needing an additional script and creating an
    additional structure in the file system), this commit
    - reads device mac addresses from u-boot environment
    - avoids the detour via the file system to set the mac addresses
    - drops redundant file /lib/preinit/05_extract_factory_data.sh
    
    The idea and the implementation were thankfully taken from PR #16410.
    
    This is the second of four commits into which the original commit was split
    to make reviews easier and more targeted.
    
    Signed-off-by: George Oldfort <openwrt at 10099.de>
    Link: https://github.com/openwrt/openwrt/pull/16861
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit e7aaba2587e57dbd157899f7a2215ec6b7af5f89)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/boot/uboot-envtools/files/mediatek_filogic | 15 +++++++------
 .../filogic/base-files/etc/board.d/02_network      |  4 ++++
 .../etc/hotplug.d/ieee80211/11_fix_wifi_mac        |  7 +++---
 .../lib/preinit/05_extract_factory_data.sh         | 25 ----------------------
 .../base-files/lib/preinit/10_fix_eth_mac.sh       | 13 +++++------
 5 files changed, 22 insertions(+), 42 deletions(-)

diff --git a/package/boot/uboot-envtools/files/mediatek_filogic b/package/boot/uboot-envtools/files/mediatek_filogic
index 9de1a4d75d..7571af0020 100644
--- a/package/boot/uboot-envtools/files/mediatek_filogic
+++ b/package/boot/uboot-envtools/files/mediatek_filogic
@@ -49,6 +49,14 @@ xiaomi,redmi-router-ax6000-ubootmod|\
 zyxel,ex5601-t0-ubootmod)
 	ubootenv_add_ubi_default
 	;;
+acer,predator-w6|\
+glinet,gl-mt2500|\
+glinet,gl-mt6000|\
+glinet,gl-x3000|\
+glinet,gl-xe3000)
+	local envdev=$(find_mmc_part "u-boot-env")
+	ubootenv_add_uci_config "$envdev" "0x0" "0x80000"
+	;;
 asus,rt-ax59u)
 	ubootenv_add_uci_config "/dev/mtd0" "0x100000" "0x20000" "0x20000"
 	;;
@@ -89,13 +97,6 @@ dlink,aquila-pro-ai-m30-a1)
 gatonetworks,gdsp)
 	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x10000"
 	;;
-glinet,gl-x3000|\
-glinet,gl-xe3000|\
-glinet,gl-mt2500|\
-glinet,gl-mt6000)
-	local envdev=$(find_mmc_part "u-boot-env")
-	ubootenv_add_uci_config "$envdev" "0x0" "0x80000"
-	;;
 glinet,gl-mt3000)
 	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x80000" "0x20000"
 	;;
diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
index fff39006da..2bcead8304 100644
--- a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
@@ -132,6 +132,10 @@ mediatek_setup_macs()
 	local label_mac=""
 
 	case $board in
+	acer,predator-w6)
+		wan_mac=$(mmc_get_mac_ascii u-boot-env WANMAC)
+		lan_mac=$(mmc_get_mac_ascii u-boot-env LANMAC)
+		;;
 	bananapi,bpi-r3|\
 	bananapi,bpi-r3-mini|\
 	bananapi,bpi-r4)
diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
index 3042858353..f7f00c9a83 100644
--- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
+++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
@@ -18,10 +18,9 @@ case "$board" in
 		[ "$PHYNBR" = "1" ] && macaddr_setbit_la $addr > /sys${DEVPATH}/macaddress
 		;;
 	acer,predator-w6)
-		key_path="/var/qcidata/data"
-		[ "$PHYNBR" = "0" ] && cat $key_path/2gMAC > /sys${DEVPATH}/macaddress
-		[ "$PHYNBR" = "1" ] && cat $key_path/6gMAC > /sys${DEVPATH}/macaddress
-		[ "$PHYNBR" = "2" ] && cat $key_path/5gMAC > /sys${DEVPATH}/macaddress
+		[ "$PHYNBR" = "0" ] && mmc_get_mac_ascii u-boot-env 2gMAC > /sys${DEVPATH}/macaddress
+		[ "$PHYNBR" = "1" ] && mmc_get_mac_ascii u-boot-env 6gMAC > /sys${DEVPATH}/macaddress
+		[ "$PHYNBR" = "2" ] && mmc_get_mac_ascii u-boot-env 5gMAC > /sys${DEVPATH}/macaddress
 		;;
 	asus,rt-ax59u)
 		CI_UBIPART="UBI_DEV"
diff --git a/target/linux/mediatek/filogic/base-files/lib/preinit/05_extract_factory_data.sh b/target/linux/mediatek/filogic/base-files/lib/preinit/05_extract_factory_data.sh
deleted file mode 100644
index 87287a7d1c..0000000000
--- a/target/linux/mediatek/filogic/base-files/lib/preinit/05_extract_factory_data.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-. /lib/functions/system.sh
-
-predator_w6_factory_extract() {
-	local mmc_part
-
-	mmc_part="$(find_mmc_part qcidata)"
-
-	mkdir -p /var/qcidata/data
-	mkdir -p /var/qcidata/mount
-
-	mount -r "$mmc_part" /var/qcidata/mount
-
-	cp /var/qcidata/mount/factory/*MAC "/var/qcidata/data/"
-	umount "/var/qcidata/mount"
-}
-
-preinit_extract_factory() {
-	case $(board_name) in
-	acer,predator-w6)
-		predator_w6_factory_extract
-		;;
-	esac
-}
-
-boot_hook_add preinit_main preinit_extract_factory
diff --git a/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh b/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh
index 0497d7dfa2..0d7da89cea 100644
--- a/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh
+++ b/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh
@@ -3,12 +3,13 @@
 preinit_set_mac_address() {
 	case $(board_name) in
 	acer,predator-w6)
-		key_path="/var/qcidata/data"
-		ip link set dev lan1 address "$(cat $key_path/LANMAC)"
-		ip link set dev lan2 address "$(cat $key_path/LANMAC)"
-		ip link set dev lan3 address "$(cat $key_path/LANMAC)"
-		ip link set dev game address "$(cat $key_path/LANMAC)"
-		ip link set dev eth1 address "$(cat $key_path/WANMAC)"
+		$(mmc_get_mac_ascii u-boot-env WANMAC)
+		$(mmc_get_mac_ascii u-boot-env LANMAC)
+		ip link set dev lan1 address "$lan_mac"
+		ip link set dev lan2 address "$lan_mac"
+		ip link set dev lan3 address "$lan_mac"
+		ip link set dev game address "$lan_mac"
+		ip link set dev eth1 address "$wan_mac"
 		;;
 	asus,tuf-ax4200|\
 	asus,tuf-ax6000)



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:53 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:53 -0500
Subject: [openwrt/openwrt]  mediatek: remove ktd-202x driver filogic image
 (Aer Vero W6m)
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8006.1732820825.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/8c616ccf241e934174a83aa9f4efb9c46186a0c4

commit 8c616ccf241e934174a83aa9f4efb9c46186a0c4
Author: George Oldfort <openwrt at 10099.de>
AuthorDate: Tue Nov 26 06:42:25 2024 +0100

    mediatek: remove ktd-202x driver filogic image (Aer Vero W6m)
    
    Image build fails with PR #16861 merged while PR #16860 not merged.
    
    Removing kmod-leds-ktd202x from filogic.mk will fix the build process.
    
    Fixes: 2898d1d1269a ("mediatek: add support for Acer Predator W6d and Acer Vero W6m")
    Signed-off-by: George Oldfort <openwrt at 10099.de>
    Link: https://github.com/openwrt/openwrt/pull/17087
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 1bdb6d84046ec1c47f28c57651358470ed212ec3)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/mediatek/image/filogic.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index 672790f1a7..3a36fbc46b 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -186,7 +186,7 @@ define Device/acer_vero-w6m
   DEVICE_DTS := mt7986a-acer-vero-w6m
   DEVICE_DTS_DIR := ../dts
   DEVICE_DTS_LOADADDR := 0x47000000
-  DEVICE_PACKAGES := kmod-leds-ktd202x kmod-mt7915e kmod-mt7916-firmware kmod-mt7986-firmware mt7986-wo-firmware e2fsprogs f2fsck mkf2fs
+  DEVICE_PACKAGES := kmod-mt7915e kmod-mt7916-firmware kmod-mt7986-firmware mt7986-wo-firmware e2fsprogs f2fsck mkf2fs
   IMAGES := sysupgrade.bin
   KERNEL := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
   KERNEL_INITRAMFS := kernel-bin | lzma | \



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:33 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:33 -0500
Subject: [openwrt/openwrt]  cryptodev-linux: change home-page URL
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8009.1732820827.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/7424f58eb6cee31e8a34180c945c1037dc748980

commit 7424f58eb6cee31e8a34180c945c1037dc748980
Author: Paul Donald <newtwen+github at gmail.com>
AuthorDate: Sun Nov 10 19:47:34 2024 +0100

    cryptodev-linux: change home-page URL
    
    Most links and info on the org page are broken or defunct, and all new
    versions are available on the github based repo anyway.
    
    Signed-off-by: Paul Donald <newtwen+github at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16910
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
    (cherry picked from commit ce0b843ac7d27e124cb9ca13e9a1aeb115fcaf23)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/kernel/cryptodev-linux/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/kernel/cryptodev-linux/Makefile b/package/kernel/cryptodev-linux/Makefile
index 611d4ae27a..165cc60487 100644
--- a/package/kernel/cryptodev-linux/Makefile
+++ b/package/kernel/cryptodev-linux/Makefile
@@ -28,7 +28,7 @@ include $(INCLUDE_DIR)/package.mk
 define KernelPackage/cryptodev
   SUBMENU:=Cryptographic API modules
   TITLE:=Driver for cryptographic acceleration
-  URL:=http://cryptodev-linux.org/
+  URL:=https://github.com/cryptodev-linux/cryptodev-linux
   DEPENDS:=+kmod-crypto-authenc +kmod-crypto-hash
   FILES:=$(PKG_BUILD_DIR)/cryptodev.$(LINUX_KMOD_SUFFIX)
   AUTOLOAD:=$(call AutoLoad,50,cryptodev)



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:37 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:37 -0500
Subject: [openwrt/openwrt]  scripts: download-check-artifact.sh: fix
 shellcheck and improve
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8010.1732820830.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/8f0d52d8c42234ffd6292e6e2d6490987c92e624

commit 8f0d52d8c42234ffd6292e6e2d6490987c92e624
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Wed Nov 6 10:40:37 2024 +0000

    scripts: download-check-artifact.sh: fix shellcheck and improve
    
    Fixes following shellcheck's recommendations:
    
     In scripts/download-check-artifact.sh line 24:
            exit $1
                 ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
    
     In scripts/download-check-artifact.sh line 53:
                    local sum="$(shasum -a 256 "$image_file")";
                          ^-^ SC2155 (warning): Declare and assign separately to avoid masking return values.
    
     In scripts/download-check-artifact.sh line 72:
     cd "/tmp/verify.$$"
     ^-----------------^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
    
     In scripts/download-check-artifact.sh line 114:
                    printf "Keyserver to use? [$keyserver_url] > "
                           ^-- SC2059 (info): Don't use variables in the printf format string. Use printf '..%s..' "$foo".
    
     In scripts/download-check-artifact.sh line 115:
                    read url; case "${url:-$keyserver_url}" in
                    ^--^ SC2162 (info): read without -r will mangle backslashes.
    
    While at it make it clear, that it is possible to download/check any
    build artifacts like even SDK or ImageBuilder.
    
    Link: https://github.com/openwrt/openwrt/pull/16871
    (cherry picked from commit 27c2c140b16cb490f20c1c2259b3decf50ae5762)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 scripts/download-check-artifact.sh | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/scripts/download-check-artifact.sh b/scripts/download-check-artifact.sh
index 31868da5cd..bc0918b214 100755
--- a/scripts/download-check-artifact.sh
+++ b/scripts/download-check-artifact.sh
@@ -12,6 +12,7 @@
 #  255 - A suitable download or checksum utility is missing
 
 [ -n "$1" ] || {
+	echo "$0 - Download and verify build artifacts"
 	echo "Usage: $0 <url>" >&2
 	exit 1
 }
@@ -21,7 +22,7 @@ finish() {
 		echo "Cleaning up."
 		rm -r "/tmp/verify.$$"
 	}
-	exit $1
+	exit "$1"
 }
 
 trap "finish 254" INT TERM
@@ -50,7 +51,8 @@ if which sha256sum >/dev/null; then
 	checksum() { sha256sum -c --ignore-missing "sha256sums"; }
 elif which shasum >/dev/null; then
 	checksum() {
-		local sum="$(shasum -a 256 "$image_file")";
+		local sum
+		sum="$(shasum -a 256 "$image_file")";
 		grep -xF "${sum%% *} *$image_file" "sha256sums";
 	}
 else
@@ -68,11 +70,14 @@ else
 	}
 fi
 
-mkdir -p "/tmp/verify.$$"
-cd "/tmp/verify.$$"
+tmpdir="$(mktemp -d)"
+cd "$tmpdir" || {
+	echo "Failed to create temporary directory!" >&2
+	finish 255
+}
 
 echo ""
-echo "1) Downloading image file"
+echo "1) Downloading artifact file"
 echo "========================="
 download "$image_file" "$image_url" || {
 	echo "Failed to download image file!" >&2
@@ -111,8 +116,8 @@ if [ -n "$missing_key" ]; then
 	echo ""                                                                  >&2
 
 	while true; do
-		printf "Keyserver to use? [$keyserver_url] > "
-		read url; case "${url:-$keyserver_url}" in
+		printf 'Keyserver to use? [%s] > ' "$keyserver_url"
+		read -r url; case "${url:-$keyserver_url}" in
 			hkp://*)
 				gpg --keyserver "${url:-$keyserver_url}" --recv-keys "$missing_key" || {
 					echo "Failed to download public key." >&2
@@ -148,7 +153,7 @@ cp "$image_file" "$destdir/$image_file" || {
 echo ""
 echo "Verification done!"
 echo "=================="
-echo "Firmware image placed in '$destdir/$image_file'."
+echo "Downloaded artifact placed in '$destdir/$image_file'."
 echo ""
 
 finish 0



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:50 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:50 -0500
Subject: [openwrt/openwrt]  uboot-mediatek: add Routerich AX3000 support
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8011.1732820833.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/ba95a01cbfd67a7c89c2d95fb2ef21b2e9bdf265

commit ba95a01cbfd67a7c89c2d95fb2ef21b2e9bdf265
Author: Mikhail Zhilkin <csharper2005 at gmail.com>
AuthorDate: Sat Oct 26 09:34:43 2024 +0000

    uboot-mediatek: add Routerich AX3000 support
    
    Add U-Boot replacement loader for Routerich AX3000.
    
    Signed-off-by: Mikhail Zhilkin <csharper2005 at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16791
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit c0581520b1c53fe2fc4a310f916590dcc428474a)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/boot/uboot-mediatek/Makefile               |  13 +
 .../patches/460-add-routerich-ax3000.patch         | 362 +++++++++++++++++++++
 2 files changed, 375 insertions(+)

diff --git a/package/boot/uboot-mediatek/Makefile b/package/boot/uboot-mediatek/Makefile
index d2a03277d4..fa314da399 100644
--- a/package/boot/uboot-mediatek/Makefile
+++ b/package/boot/uboot-mediatek/Makefile
@@ -413,6 +413,18 @@ define U-Boot/mt7981_rfb-snfi
   DEPENDS:=+trusted-firmware-a-mt7981-snand-ddr3
 endef
 
+define U-Boot/mt7981_routerich_ax3000
+  NAME:=Routerich AX3000
+  BUILD_SUBTARGET:=filogic
+  BUILD_DEVICES:=routerich_ax3000-ubootmod
+  UBOOT_CONFIG:=mt7981_routerich_ax3000
+  UBOOT_IMAGE:=u-boot.fip
+  BL2_BOOTDEV:=spim-nand
+  BL2_SOC:=mt7981
+  BL2_DDRTYPE:=ddr3
+  DEPENDS:=+trusted-firmware-a-mt7981-spim-nand-ddr3
+endef
+
 define U-Boot/mt7981_qihoo_360t7
   NAME:=Qihoo 360T7
   BUILD_SUBTARGET:=filogic
@@ -823,6 +835,7 @@ UBOOT_TARGETS := \
 	mt7981_rfb-nor \
 	mt7981_rfb-sd \
 	mt7981_rfb-snfi \
+	mt7981_routerich_ax3000 \
 	mt7981_qihoo_360t7 \
 	mt7981_xiaomi_mi-router-ax3000t \
 	mt7981_xiaomi_mi-router-wr30u \
diff --git a/package/boot/uboot-mediatek/patches/460-add-routerich-ax3000.patch b/package/boot/uboot-mediatek/patches/460-add-routerich-ax3000.patch
new file mode 100644
index 0000000000..9aa31843de
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/460-add-routerich-ax3000.patch
@@ -0,0 +1,362 @@
+--- /dev/null
++++ b/configs/mt7981_routerich_ax3000_defconfig
+@@ -0,0 +1,107 @@
++CONFIG_ARM=y
++CONFIG_SYS_HAS_NONCACHED_MEMORY=y
++CONFIG_POSITION_INDEPENDENT=y
++CONFIG_ARCH_MEDIATEK=y
++CONFIG_TEXT_BASE=0x41e00000
++CONFIG_SYS_MALLOC_F_LEN=0x4000
++CONFIG_NR_DRAM_BANKS=1
++CONFIG_DEFAULT_DEVICE_TREE="mt7981-routerich_ax3000"
++CONFIG_OF_LIBFDT_OVERLAY=y
++CONFIG_TARGET_MT7981=y
++CONFIG_PRE_CON_BUF_ADDR=0x4007ef00
++CONFIG_DEBUG_UART_BASE=0x11002000
++CONFIG_DEBUG_UART_CLOCK=40000000
++CONFIG_SYS_LOAD_ADDR=0x46000000
++CONFIG_DEBUG_UART=y
++CONFIG_FIT=y
++CONFIG_BOOTDELAY=30
++CONFIG_AUTOBOOT_KEYED=y
++CONFIG_AUTOBOOT_MENU_SHOW=y
++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981-routerich_ax3000.dtb"
++CONFIG_LOGLEVEL=7
++CONFIG_PRE_CONSOLE_BUFFER=y
++CONFIG_LOG=y
++CONFIG_BOARD_LATE_INIT=y
++CONFIG_HUSH_PARSER=y
++CONFIG_SYS_PROMPT="MT7981> "
++CONFIG_CMD_CPU=y
++CONFIG_CMD_LICENSE=y
++CONFIG_CMD_BOOTMENU=y
++CONFIG_CMD_ASKENV=y
++CONFIG_CMD_ERASEENV=y
++CONFIG_CMD_ENV_FLAGS=y
++CONFIG_CMD_STRINGS=y
++CONFIG_CMD_DM=y
++CONFIG_CMD_GPIO=y
++CONFIG_CMD_GPT=y
++CONFIG_CMD_MTD=y
++CONFIG_CMD_PART=y
++CONFIG_CMD_DHCP=y
++CONFIG_CMD_TFTPSRV=y
++CONFIG_CMD_RARP=y
++CONFIG_CMD_PING=y
++CONFIG_CMD_CDP=y
++CONFIG_CMD_SNTP=y
++CONFIG_CMD_DNS=y
++CONFIG_CMD_LINK_LOCAL=y
++CONFIG_CMD_PXE=y
++CONFIG_CMD_CACHE=y
++CONFIG_CMD_PSTORE=y
++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
++CONFIG_CMD_UUID=y
++CONFIG_CMD_HASH=y
++CONFIG_CMD_SMC=y
++CONFIG_CMD_UBI=y
++CONFIG_CMD_UBI_RENAME=y
++CONFIG_OF_EMBED=y
++CONFIG_ENV_OVERWRITE=y
++CONFIG_ENV_IS_IN_UBI=y
++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
++CONFIG_ENV_UBI_PART="ubi"
++CONFIG_ENV_UBI_VOLUME="ubootenv"
++CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2"
++CONFIG_SYS_RELOC_GD_ENV_ADDR=y
++CONFIG_USE_DEFAULT_ENV_FILE=y
++CONFIG_DEFAULT_ENV_FILE="routerich_ax3000_env"
++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
++CONFIG_VERSION_VARIABLE=y
++CONFIG_NET_RANDOM_ETHADDR=y
++CONFIG_NETCONSOLE=y
++CONFIG_USE_IPADDR=y
++CONFIG_IPADDR="192.168.1.1"
++CONFIG_USE_SERVERIP=y
++CONFIG_SERVERIP="192.168.1.254"
++CONFIG_REGMAP=y
++CONFIG_SYSCON=y
++CONFIG_BUTTON=y
++CONFIG_BUTTON_GPIO=y
++CONFIG_CLK=y
++CONFIG_GPIO_HOG=y
++CONFIG_LED=y
++CONFIG_LED_BLINK=y
++CONFIG_LED_GPIO=y
++# CONFIG_MMC is not set
++CONFIG_MTD=y
++CONFIG_DM_MTD=y
++CONFIG_MTD_SPI_NAND=y
++CONFIG_MTD_UBI_FASTMAP=y
++CONFIG_PHY_FIXED=y
++CONFIG_MEDIATEK_ETH=y
++CONFIG_PHY=y
++CONFIG_PHY_MTK_TPHY=y
++CONFIG_PINCTRL=y
++CONFIG_PINCONF=y
++CONFIG_PINCTRL_MT7981=y
++CONFIG_POWER_DOMAIN=y
++CONFIG_MTK_POWER_DOMAIN=y
++CONFIG_DM_REGULATOR=y
++CONFIG_DM_REGULATOR_FIXED=y
++CONFIG_DM_REGULATOR_GPIO=y
++CONFIG_RAM=y
++CONFIG_DM_SERIAL=y
++CONFIG_MTK_SERIAL=y
++CONFIG_SPI=y
++CONFIG_DM_SPI=y
++CONFIG_MTK_SPIM=y
++CONFIG_ZSTD=y
++CONFIG_HEXDUMP=y
++CONFIG_LMB_MAX_REGIONS=64
+--- /dev/null
++++ b/arch/arm/dts/mt7981-routerich_ax3000.dts
+@@ -0,0 +1,187 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * Copyright (c) 2022 MediaTek Inc.
++ * Author: Sam Shih <sam.shih at mediatek.com>
++ */
++
++/dts-v1/;
++#include "mt7981.dtsi"
++#include <dt-bindings/gpio/gpio.h>
++#include <dt-bindings/input/linux-event-codes.h>
++
++/ {
++	#address-cells = <1>;
++	#size-cells = <1>;
++	model = "Routerich AX3000";
++	compatible = "routerich,ax3000", "mediatek,mt7981";
++
++	chosen {
++		stdout-path = &uart0;
++		tick-timer = &timer0;
++	};
++
++	memory at 40000000 {
++		device_type = "memory";
++		reg = <0x40000000 0x10000000>;
++	};
++
++	keys {
++		compatible = "gpio-keys";
++
++		button-0 {
++			label = "mesh";
++			linux,code = <BTN_0>;
++			gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
++		};
++
++		button-1 {
++			label = "reset";
++			linux,code = <KEY_RESTART>;
++			gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
++		};
++	};
++
++	leds {
++		compatible = "gpio-leds";
++
++		led-0 {
++			label = "red:wlan5g";
++			gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
++		};
++
++		led-1 {
++			label = "red:wan";
++			gpios = <&gpio 6 GPIO_ACTIVE_HIGH>;
++		};
++
++		led-2 {
++			label = "blue:power";
++			gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
++		};
++
++		led-3 {
++			label = "blue:lan1";
++			gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
++		};
++
++		led-4 {
++			label = "blue:lan2";
++			gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
++		};
++
++		led-5 {
++			label = "blue:lan3";
++			gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
++		};
++
++		led-6 {
++			label = "blue:wan";
++			gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
++		};
++
++		led-7 {
++			label = "blue:wlan2g";
++			gpios = <&gpio 34 GPIO_ACTIVE_LOW>;
++		};
++
++		led-8 {
++			label = "blue:mesh";
++			gpios = <&gpio 35 GPIO_ACTIVE_LOW>;
++		};
++	};
++};
++
++&uart0 {
++	mediatek,force-highspeed;
++	status = "okay";
++};
++
++&eth {
++	status = "okay";
++	mediatek,gmac-id = <0>;
++	phy-mode = "2500base-x";
++	mediatek,switch = "mt7531";
++	reset-gpios = <&gpio 39 GPIO_ACTIVE_HIGH>;
++
++	fixed-link {
++		speed = <2500>;
++		full-duplex;
++	};
++};
++
++&pinctrl {
++	spi_flash_pins: spi0-pins-func-1 {
++		mux {
++			function = "flash";
++			groups = "spi0", "spi0_wp_hold";
++		};
++
++		conf-pu {
++			pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
++			drive-strength = <MTK_DRIVE_8mA>;
++			bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
++		};
++
++		conf-pd {
++			pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
++			drive-strength = <MTK_DRIVE_8mA>;
++			bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
++		};
++	};
++};
++
++&spi0 {
++	#address-cells = <1>;
++	#size-cells = <0>;
++	pinctrl-names = "default";
++	pinctrl-0 = <&spi_flash_pins>;
++	status = "okay";
++	must_tx;
++	enhance_timing;
++	dma_ext;
++	ipm_design;
++	support_quad;
++	tick_dly = <2>;
++	sample_sel = <0>;
++
++	spi_nand at 0 {
++		compatible = "spi-nand";
++		reg = <0>;
++		spi-max-frequency = <52000000>;
++
++		partitions {
++			compatible = "fixed-partitions";
++			#address-cells = <1>;
++			#size-cells = <1>;
++
++			partition at 0 {
++				label = "bl2";
++				reg = <0x0 0x100000>;
++			};
++
++			partition at 100000 {
++				label = "uboot-env-orig";
++				reg = <0x100000 0x80000>;
++			};
++
++			partition at 160000 {
++				label = "Factory";
++				reg = <0x180000 0x200000>;
++			};
++
++			partition at 380000 {
++				label = "fip";
++				reg = <0x380000 0x200000>;
++			};
++
++			partition at 580000 {
++				label = "ubi";
++				reg = <0x580000 0x7a80000>;
++			};
++		};
++	};
++};
++
++&watchdog {
++	status = "disabled";
++};
+--- /dev/null
++++ b/routerich_ax3000_env
+@@ -0,0 +1,58 @@
++ipaddr=192.168.1.1
++serverip=192.168.1.254
++loadaddr=0x46000000
++console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0
++bootcmd=run check_buttons ; if pstore check ; then run boot_recovery ; else run boot_ubi ; fi
++bootconf=config-1
++bootdelay=0
++bootfile=openwrt-mediatek-filogic-routerich_ax3000-ubootmod-initramfs-recovery.itb
++bootfile_bl2=openwrt-mediatek-filogic-routerich_ax3000-ubootmod-preloader.bin
++bootfile_fip=openwrt-mediatek-filogic-routerich_ax3000-ubootmod-bl31-uboot.fip
++bootfile_upg=openwrt-mediatek-filogic-routerich_ax3000-ubootmod-squashfs-sysupgrade.itb
++bootled_pwr=blue:power
++bootled_rec=blue:power
++bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
++bootmenu_default=0
++bootmenu_delay=0
++bootmenu_title=      [0;34m( ( ( [1;39mOpenWrt[0;34m ) ) )
++bootmenu_0=Initialize environment.=run _firstboot
++bootmenu_0d=Run default boot command.=run boot_default
++bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return
++bootmenu_2=Boot production system from NAND.=run boot_production ; run bootmenu_confirm_return
++bootmenu_3=Boot recovery system from NAND.=run boot_recovery ; run bootmenu_confirm_return
++bootmenu_4=Load production system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_production ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
++bootmenu_5=Load recovery system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_recovery ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
++bootmenu_6=[31mLoad BL31+U-Boot FIP via TFTP then write to NAND.[0m=run boot_tftp_write_fip ; run bootmenu_confirm_return
++bootmenu_7=[31mLoad BL2 preloader via TFTP then write to NAND.[0m=run boot_tftp_write_bl2 ; run bootmenu_confirm_return
++bootmenu_8=Reboot.=reset
++bootmenu_9=Reset all settings to factory defaults.=run reset_factory ; reset
++boot_first=if button reset ; then led $bootled_rec on ; run boot_default ; fi ; bootmenu
++boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; setenv replacevol 1 ; run boot_tftp_forever
++boot_production=led $bootled_pwr on ; run ubi_read_production && bootm $loadaddr#$bootconf ; led $bootled_pwr off
++boot_recovery=led $bootled_rec on ; run ubi_read_recovery && bootm $loadaddr#$bootconf ; led $bootled_rec off
++boot_ubi=run boot_production ; run boot_recovery ; run boot_tftp_forever
++boot_tftp_forever=led $bootled_rec on ; while true ; do run boot_tftp ; sleep 1 ; done
++boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run ubi_write_production ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
++boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run ubi_write_recovery ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
++boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf
++boot_tftp_write_fip=tftpboot $loadaddr $bootfile_fip && run mtd_write_fip && run reset_factory
++boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run mtd_write_bl2
++check_buttons=if button reset ; then run boot_tftp ; fi
++ethaddr_factory=mtd read Factory 0x40080000 0x0 0x20000 && env readmem -b ethaddr 0x40080004 0x6 ; setenv ethaddr_factory
++part_default=production
++part_recovery=recovery
++reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800
++mtd_write_fip=mtd erase fip && mtd write fip $loadaddr
++mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr
++ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic || run ubi_format
++ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset
++ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi
++ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs
++ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery
++ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data
++ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize
++ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize
++_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv
++_firstboot=setenv _firstboot ; run ethaddr_factory ; run _switch_to_menu ; run _init_env ; run boot_first
++_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
++_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title       [33m$ver[0m"



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:59 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:59 -0500
Subject: [openwrt/openwrt]  kernel: move CONFIG_INTEL_MEI settings to target
 generic
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8012.1732820848.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/2884aded40c946aa1fc721dd2e4e5633afe5c256

commit 2884aded40c946aa1fc721dd2e4e5633afe5c256
Author: Mieczyslaw Nalewaj <namiltd at yahoo.com>
AuthorDate: Sat Nov 16 17:26:52 2024 +0100

    kernel: move CONFIG_INTEL_MEI settings to target generic
    
    Move settings CONFIG_INTEL_MEI_GSC_PROXY, CONFIG_INTEL_MEI_HDCP
    and CONFIG_INTEL_MEI_PXP to target generic.
    
    Signed-off-by: Mieczyslaw Nalewaj <namiltd at yahoo.com>
    Link: https://github.com/openwrt/openwrt/pull/16971
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 84665993d6beed8ac2b557f8d3e005a29e3fd09c)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/generic/config-6.6     | 3 +++
 target/linux/x86/64/config-6.6      | 3 ---
 target/linux/x86/generic/config-6.6 | 3 ---
 target/linux/x86/legacy/config-6.6  | 3 ---
 4 files changed, 3 insertions(+), 9 deletions(-)

diff --git a/target/linux/generic/config-6.6 b/target/linux/generic/config-6.6
index 8b22cc4035..d887381414 100644
--- a/target/linux/generic/config-6.6
+++ b/target/linux/generic/config-6.6
@@ -2715,7 +2715,10 @@ CONFIG_INPUT_MISC=y
 # CONFIG_INTEL_IOATDMA is not set
 # CONFIG_INTEL_ISH_HID is not set
 # CONFIG_INTEL_MEI is not set
+# CONFIG_INTEL_MEI_GSC_PROXY is not set
+# CONFIG_INTEL_MEI_HDCP is not set
 # CONFIG_INTEL_MEI_ME is not set
+# CONFIG_INTEL_MEI_PXP is not set
 # CONFIG_INTEL_MEI_TXE is not set
 # CONFIG_INTEL_OAKTRAIL is not set
 # CONFIG_INTEL_PMC_CORE is not set
diff --git a/target/linux/x86/64/config-6.6 b/target/linux/x86/64/config-6.6
index 3475e65287..1d08d31daa 100644
--- a/target/linux/x86/64/config-6.6
+++ b/target/linux/x86/64/config-6.6
@@ -292,9 +292,6 @@ CONFIG_INTEL_IOMMU_PERF_EVENTS=y
 # CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
 # CONFIG_INTEL_IOMMU_SVM is not set
 # CONFIG_INTEL_IPS is not set
-# CONFIG_INTEL_MEI_GSC_PROXY is not set
-# CONFIG_INTEL_MEI_HDCP is not set
-# CONFIG_INTEL_MEI_PXP is not set
 CONFIG_INTEL_PCH_THERMAL=y
 # CONFIG_INTEL_SAR_INT1092 is not set
 # CONFIG_INTEL_SCU_PLATFORM is not set
diff --git a/target/linux/x86/generic/config-6.6 b/target/linux/x86/generic/config-6.6
index ecbd0aa93e..404e3ac330 100644
--- a/target/linux/x86/generic/config-6.6
+++ b/target/linux/x86/generic/config-6.6
@@ -211,9 +211,6 @@ CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
 CONFIG_INTEL_GTT=y
 CONFIG_INTEL_IDLE=y
 # CONFIG_INTEL_IPS is not set
-# CONFIG_INTEL_MEI_GSC_PROXY is not set
-# CONFIG_INTEL_MEI_HDCP is not set
-# CONFIG_INTEL_MEI_PXP is not set
 CONFIG_INTEL_PCH_THERMAL=y
 # CONFIG_INTEL_SAR_INT1092 is not set
 # CONFIG_INTEL_SCU_PLATFORM is not set
diff --git a/target/linux/x86/legacy/config-6.6 b/target/linux/x86/legacy/config-6.6
index 10511ff08b..bc7e74ac3f 100644
--- a/target/linux/x86/legacy/config-6.6
+++ b/target/linux/x86/legacy/config-6.6
@@ -129,9 +129,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
 CONFIG_INTEL_GTT=y
 CONFIG_INTEL_IDLE=y
 # CONFIG_INTEL_IPS is not set
-# CONFIG_INTEL_MEI_GSC_PROXY is not set
-# CONFIG_INTEL_MEI_HDCP is not set
-# CONFIG_INTEL_MEI_PXP is not set
 # CONFIG_INTEL_SAR_INT1092 is not set
 # CONFIG_INTEL_SCU_PLATFORM is not set
 # CONFIG_INTEL_SOC_DTS_THERMAL is not set



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:30 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:30 -0500
Subject: [openwrt/openwrt]  ramips: mt7621: fix typo
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8015.1732820851.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/96ab90a9aa75c06fd85cb94babe12b8cb49e32ce

commit 96ab90a9aa75c06fd85cb94babe12b8cb49e32ce
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Mon Nov 11 12:23:01 2024 -0800

    ramips: mt7621: fix typo
    
    Missing u caused the regulator to fail probe.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16925
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 3e42526404f021094ae3fa41524c396d753f4c6c)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts b/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts
index 2d06b949f2..41173dd129 100644
--- a/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts
+++ b/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts
@@ -96,7 +96,7 @@
 
 	reg_usb_power: regulator {
 		compatible = "regulator-fixed";
-		reglator-name = "usb_power";
+		regulator-name = "usb_power";
 		regulator-min-microvolt = <5000000>;
 		regulator-max-microvolt = <5000000>;
 		gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:40 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:40 -0500
Subject: [openwrt/openwrt]  mediatek: improve device tree for Acer Predator
 Connect W6
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8016.1732820873.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/d491100f01aea270557b151a8ead3a82b785eea7

commit d491100f01aea270557b151a8ead3a82b785eea7
Author: George Oldfort <openwrt at 10099.de>
AuthorDate: Mon Nov 11 10:40:45 2024 +0100

    mediatek: improve device tree for Acer Predator Connect W6
    
    In order to prepare for OpenWrt support other Acer W6 devices and to get
    a step further to full hardware support for Acer Predator Connect W6, this
    commit
    - adjusts the product name ("Acer Predator Connect W6")
    - updates gpio LED labels to function/color scheme
    - show router status by using first rgb led instead of it's red color only
      (blue: booting/failsafe mode; red: sysupgrade; green: running ? was: red)
    - changes switch/eth1 led configuration to reflect RX/TX activity and speed
      (green: full 1Gbps/2.5Gbps speed; amber: lower speed; blink: RX/TX)
    - shortens dummy dm-mod.create string in bootargs
    - enables W6's i2c interface
    
    This is the third of four commits into which the original commit was split
    to make reviews easier and more targeted.
    
    Signed-off-by: George Oldfort <openwrt at 10099.de>
    Link: https://github.com/openwrt/openwrt/pull/16861
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit d42075dcefa407a03a30663879688475bb912729)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../mediatek/dts/mt7986a-acer-predator-w6.dts      | 90 +++++++++++++++-------
 .../linux/mediatek/dts/mt7986a-acer-w6-common.dtsi | 47 +++++++----
 target/linux/mediatek/image/filogic.mk             |  2 +-
 3 files changed, 94 insertions(+), 45 deletions(-)

diff --git a/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts b/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts
index 8c86fd31d8..5002326d70 100644
--- a/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts
+++ b/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts
@@ -4,107 +4,143 @@
 #include "mt7986a-acer-w6-common.dtsi"
 
 / {
-	model = "Acer Predator W6";
+	model = "Acer Predator Connect W6";
 	compatible = "acer,predator-w6", "mediatek,mt7986a";
 
 	aliases {
 		serial0 = &uart0;
-		led-boot = &led_status;
-		led-failsafe = &led_status;
-		led-running = &led_status;
-		led-upgrade = &led_status;
+		led-boot = &led_status_blue;
+		led-failsafe = &led_status_blue;
+		led-running = &led_status_green;
+		led-upgrade = &led_status_red;
 	};
 
 	leds {
 		compatible = "gpio-leds";
 
-		led_status: led-0 {
-			label = "ant0:red";
+		led_status_red: led-0 {
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <0>;
 			gpios = <&pio 1 GPIO_ACTIVE_HIGH>;
 		};
 
-		led-1 {
-			label = "ant0:green";
+		led_status_green: led-1 {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <0>;
 			gpios = <&pio 2 GPIO_ACTIVE_HIGH>;
 		};
 
-		led-2 {
-			label = "ant0:blue";
+		led_status_blue: led-2 {
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <0>;
 			gpios = <&pio 36 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-3 {
-			label = "ant1:red";
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <1>;
 			gpios = <&pio 35 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-4 {
-			label = "ant1:green";
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <1>;
 			gpios = <&pio 34 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-5 {
-			label = "ant1:blue";
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <1>;
 			gpios = <&pio 33 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-6 {
-			label = "ant2:red";
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <2>;
 			gpios = <&pio 38 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-7 {
-			label = "ant2:green";
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <2>;
 			gpios = <&pio 37 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-8 {
-			label = "ant2:blue";
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <2>;
 			gpios = <&pio 26 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-9 {
-			label = "ant3:red";
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <3>;
 			gpios = <&pio 25 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-10 {
-			label = "ant3:green";
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <3>;
 			gpios = <&pio 24 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-11 {
-			label = "ant3:blue";
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <3>;
 			gpios = <&pio 23 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-12 {
-			label = "ant4:red";
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <4>;
 			gpios = <&pio 28 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-13 {
-			label = "ant4:green";
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <4>;
 			gpios = <&pio 27 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-14 {
-			label = "ant4:blue";
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <4>;
 			gpios = <&pio 32 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-15 {
-			label = "ant5:red";
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <5>;
 			gpios = <&pio 45 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-16 {
-			label = "ant5:green";
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <5>;
 			gpios = <&pio 44 GPIO_ACTIVE_HIGH>;
 		};
 
 		led-17 {
-			label = "ant5:blue";
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_STATUS;
+			function-enumerator = <5>;
 			gpios = <&pio 43 GPIO_ACTIVE_HIGH>;
 		};
 	};
@@ -151,7 +187,7 @@
 		reset-assert-us = <10000>;
 		reset-deassert-us = <10000>;
 		/* LED0: nc ; LED1: nc ; LED2: amber ; LED3: green */
-		mxl,led-config = <0x0 0x0 0x370 0x80>;
+		mxl,led-config = <0x0 0x0 0x370 0x380>;
 	};
 };
 
diff --git a/target/linux/mediatek/dts/mt7986a-acer-w6-common.dtsi b/target/linux/mediatek/dts/mt7986a-acer-w6-common.dtsi
index cca03684fb..03913f04e1 100644
--- a/target/linux/mediatek/dts/mt7986a-acer-w6-common.dtsi
+++ b/target/linux/mediatek/dts/mt7986a-acer-w6-common.dtsi
@@ -9,7 +9,7 @@
 / {
 	chosen {
 		stdout-path = "serial0:115200n8";
-		bootargs = "dm-mod.create=\"dm-verity,,,ro,0 31544 verity 1 PARTLABEL=rootfs PARTLABEL=rootfs 4096 4096 3943 3944 sha256 2f969fa9e9e4e20b37746f22633e85b178f5db7c143e11f92733a704299cc933 2dd56e34b15c6c84573cf26c4392028421061d2c808975217b45e9a5b49d2087\" rootfstype=squashfs,ext4 rootwait root=/dev/mmcblk0p6 fstools_ignore_partname=1";
+		bootargs = "dm-mod.create=\"acer,,,ro,0 1 zero 1 0 0 0\" rootfstype=squashfs,ext4 rootwait root=/dev/mmcblk0p6 fstools_ignore_partname=1";
 	};
 
 	memory at 0 {
@@ -171,6 +171,13 @@
 			drive-strength = <4>;
 		};
 	};
+
+	i2c_pins: i2c-pins {
+		mux {
+			function = "i2c";
+			groups = "i2c";
+		};
+	};
 };
 
 &trng {
@@ -185,6 +192,12 @@
 	status = "okay";
 };
 
+&i2c0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c_pins>;
+	status = "okay";
+};
+
 &mmc0 {
 	status = "okay";
 	pinctrl-names = "default", "state_uhs";
@@ -321,13 +334,13 @@
 					reg = <0>;
 
 					mediatek,led-config = <
-						0x21 0x8009 /* BASIC_CTRL */
+						0x21 0x8008 /* BASIC_CTRL */
 						0x22 0x0c00 /* ON_DURATION */
 						0x23 0x1400 /* BLINK_DURATION */
 						0x24 0xc001 /* LED0_ON_CTRL */
-						0x25 0x0000 /* LED0_BLINK_CTRL */
-						0x26 0xc007 /* LED1_ON_CTRL */
-						0x27 0x003f /* LED1_BLINK_CTRL */
+						0x25 0x0003 /* LED0_BLINK_CTRL */
+						0x26 0xc006 /* LED1_ON_CTRL */
+						0x27 0x003c /* LED1_BLINK_CTRL */
 					>;
 				};
 
@@ -335,13 +348,13 @@
 					reg = <1>;
 
 					mediatek,led-config = <
-						0x21 0x8009 /* BASIC_CTRL */
+						0x21 0x8008 /* BASIC_CTRL */
 						0x22 0x0c00 /* ON_DURATION */
 						0x23 0x1400 /* BLINK_DURATION */
 						0x24 0xc001 /* LED0_ON_CTRL */
-						0x25 0x0000 /* LED0_BLINK_CTRL */
-						0x26 0xc007 /* LED1_ON_CTRL */
-						0x27 0x003f /* LED1_BLINK_CTRL */
+						0x25 0x0003 /* LED0_BLINK_CTRL */
+						0x26 0xc006 /* LED1_ON_CTRL */
+						0x27 0x003c /* LED1_BLINK_CTRL */
 					>;
 				};
 
@@ -349,13 +362,13 @@
 					reg = <2>;
 
 					mediatek,led-config = <
-						0x21 0x8009 /* BASIC_CTRL */
+						0x21 0x8008 /* BASIC_CTRL */
 						0x22 0x0c00 /* ON_DURATION */
 						0x23 0x1400 /* BLINK_DURATION */
 						0x24 0xc001 /* LED0_ON_CTRL */
-						0x25 0x0000 /* LED0_BLINK_CTRL */
-						0x26 0xc007 /* LED1_ON_CTRL */
-						0x27 0x003f /* LED1_BLINK_CTRL */
+						0x25 0x0003 /* LED0_BLINK_CTRL */
+						0x26 0xc006 /* LED1_ON_CTRL */
+						0x27 0x003c /* LED1_BLINK_CTRL */
 					>;
 				};
 
@@ -363,13 +376,13 @@
 					reg = <3>;
 
 					mediatek,led-config = <
-						0x21 0x8009 /* BASIC_CTRL */
+						0x21 0x8008 /* BASIC_CTRL */
 						0x22 0x0c00 /* ON_DURATION */
 						0x23 0x1400 /* BLINK_DURATION */
 						0x24 0xc001 /* LED0_ON_CTRL */
-						0x25 0x0000 /* LED0_BLINK_CTRL */
-						0x26 0xc007 /* LED1_ON_CTRL */
-						0x27 0x003f /* LED1_BLINK_CTRL */
+						0x25 0x0003 /* LED0_BLINK_CTRL */
+						0x26 0xc006 /* LED1_ON_CTRL */
+						0x27 0x003c /* LED1_BLINK_CTRL */
 					>;
 				};
 			};
diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index cb5c102b1e..838a433bf4 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -152,7 +152,7 @@ TARGET_DEVICES += acelink_ew-7886cax
 
 define Device/acer_predator-w6
   DEVICE_VENDOR := Acer
-  DEVICE_MODEL := Predator W6
+  DEVICE_MODEL := Predator Connect W6
   DEVICE_DTS := mt7986a-acer-predator-w6
   DEVICE_DTS_DIR := ../dts
   DEVICE_DTS_LOADADDR := 0x47000000



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:53 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:53 -0500
Subject: [openwrt/openwrt]  ipq807x: nbg7815: use the standard eMMC sysupgrade
 code
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8017.1732820886.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/1eade612f91587eece6deb350948644975cf8a00

commit 1eade612f91587eece6deb350948644975cf8a00
Author: Rodrigo Balerdi <lanchon at gmail.com>
AuthorDate: Tue Sep 24 17:43:49 2024 -0300

    ipq807x: nbg7815: use the standard eMMC sysupgrade code
    
    Note that the old ad-hoc method did not explicitly align backup data
    to 64 KiB boundaries.
    
    Signed-off-by: Rodrigo Balerdi <lanchon at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16505
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 5583d2318966d5d5dcdbdec2e34b8815d3f6419a)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/qualcommax/image/ipq807x.mk                   |  2 +-
 .../qualcommax/ipq807x/base-files/lib/upgrade/platform.sh  | 14 +++++++-------
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/target/linux/qualcommax/image/ipq807x.mk b/target/linux/qualcommax/image/ipq807x.mk
index faefb479c2..401f455585 100644
--- a/target/linux/qualcommax/image/ipq807x.mk
+++ b/target/linux/qualcommax/image/ipq807x.mk
@@ -446,7 +446,7 @@ define Device/zyxel_nbg7815
 	DEVICE_MODEL := NBG7815
 	DEVICE_DTS_CONFIG := config at nbg7815
 	SOC := ipq8074
-	DEVICE_PACKAGES := ipq-wifi-zyxel_nbg7815 kmod-ath11k-pci \
+	DEVICE_PACKAGES := kmod-fs-f2fs f2fs-tools ipq-wifi-zyxel_nbg7815 kmod-ath11k-pci \
 		kmod-bluetooth kmod-hwmon-tmp103
 endef
 TARGET_DEVICES += zyxel_nbg7815
diff --git a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh b/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
index 808acac684..f822f6291d 100644
--- a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
+++ b/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
@@ -251,14 +251,13 @@ platform_do_upgrade() {
 		[ -z "$config_mtdnum" ] && reboot
 		part_num="$(hexdump -e '1/1 "%01x|"' -n 1 -s 168 -C /dev/mtd$config_mtdnum | cut -f 1 -d "|" | head -n1)"
 		if [ "$part_num" -eq "0" ]; then
-			kernelname="0:HLOS"
-			rootfsname="rootfs"
-			mmc_do_upgrade "$1"
+			CI_KERNPART="0:HLOS"
+			CI_ROOTPART="rootfs"
 		else
-			kernelname="0:HLOS_1"
-			rootfsname="rootfs_1"
-			mmc_do_upgrade "$1"
+			CI_KERNPART="0:HLOS_1"
+			CI_ROOTPART="rootfs_1"
 		fi
+		emmc_do_upgrade "$1"
 		;;
 	*)
 		default_do_upgrade "$1"
@@ -268,7 +267,8 @@ platform_do_upgrade() {
 
 platform_copy_config() {
 	case "$(board_name)" in
-	spectrum,sax1v1k)
+	spectrum,sax1v1k|\
+	zyxel,nbg7815)
 		emmc_copy_config
 		;;
 	esac



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:52 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:52 -0500
Subject: [openwrt/openwrt]  kernel: enable pressure interface
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8018.1732820900.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/9e73f794adc8fae59c8ff45aed2d99e4b43cc2d5

commit 9e73f794adc8fae59c8ff45aed2d99e4b43cc2d5
Author: John Audia <therealgraysky at proton.me>
AuthorDate: Sun Oct 29 04:32:21 2023 -0400

    kernel: enable pressure interface
    
    PSI provides a canonical way to see resource pressure increases as
    they develop, with pressure metrics for three major resources:
    memory, CPU, and IO. PSI stats are like barometers that provide
    fair warning of impending resource shortages, enabling users to
    take more proactive, granular, and nuanced steps when resources
    start becoming scarce.
    
    References:
    * https://www.kernel.org/doc/html/latest/accounting/psi.html
    * https://lwn.net/Articles/759781/
    
    Build system: x86/64
    Build-tested: x86/64/AMD Cezanne, flogic/glinet_gl-mt6000
    Run-tested: x86/64/AMD Cezanne, flogic/glinet_gl-mt6000
    
    Signed-off-by: John Audia <therealgraysky at proton.me>
    Link: https://github.com/openwrt/openwrt/pull/13819
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit eed39d45c2ff901b5327c7ab63c9131166e3140e)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 config/Config-kernel.in         | 19 +++++++++++++++++++
 target/linux/generic/config-6.6 |  1 +
 2 files changed, 20 insertions(+)

diff --git a/config/Config-kernel.in b/config/Config-kernel.in
index 0fa039db40..91678cf2a6 100644
--- a/config/Config-kernel.in
+++ b/config/Config-kernel.in
@@ -333,6 +333,25 @@ if KERNEL_TASKSTATS
 
 endif
 
+config KERNEL_PSI
+	bool "Compile the kernel with pressure stall information tracking"
+	help
+	  Collect metrics that indicate how overcommitted the CPU, memory,
+	  and IO capacity are in the system.
+
+	  If you say Y here, the kernel will create /proc/pressure/ with the
+	  pressure statistics files cpu, memory, and io. These will indicate
+	  the share of walltime in which some or all tasks in the system are
+	  delayed due to contention of the respective resource.
+
+	  In kernels with cgroup support, cgroups (cgroup2 only) will
+	  have cpu.pressure, memory.pressure, and io.pressure files,
+	  which aggregate pressure stalls for the grouped tasks only.
+
+	  For more details see Documentation/accounting/psi.rst.
+
+	  Say N if unsure.
+
 config KERNEL_KALLSYMS
 	bool "Compile the kernel with symbol table information"
 	default y if !SMALL_FLASH
diff --git a/target/linux/generic/config-6.6 b/target/linux/generic/config-6.6
index 9eec780b53..105dc0d344 100644
--- a/target/linux/generic/config-6.6
+++ b/target/linux/generic/config-6.6
@@ -4758,6 +4758,7 @@ CONFIG_PROC_SYSCTL=y
 # CONFIG_PSB6970_PHY is not set
 # CONFIG_PSE_CONTROLLER is not set
 # CONFIG_PSI is not set
+# CONFIG_PSI_DEFAULT_DISABLED is not set
 # CONFIG_PSTORE is not set
 # CONFIG_PSTORE_BLK is not set
 # CONFIG_PSTORE_COMPRESS is not set



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:30 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:30 -0500
Subject: [openwrt/openwrt]  stm32: add new stm32 target
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8021.1732820904.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/58f4667a37fe0056e844e3baca4accf2b19ab4a2

commit 58f4667a37fe0056e844e3baca4accf2b19ab4a2
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Thu Sep 26 16:55:22 2024 +0200

    stm32: add new stm32 target
    
    New stm32 target introduces support for stm32mp1 based devices.
    For now it includes an initial support of the STM32MP135F-DK device.
    The specifications bellow only list supported features.
    
    Specifications
    --------------
    
    SOC: STM32MP135FAF7
    RAM: 512 MiB
    Storage: SD Card
    Ethernet: 2x 100 Mbps
    Wireless: 2.4GHz Cypress CYW43455 (802.11b/g/n)
    LEDs: Heartbeat (Blue)
    Buttons: 1x Reset, 1x User (USER2)
    USB: 4x 2.0 Type-A
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 851e7f77e424f24cda8531330f2d82ebc942c0a4)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/stm32/Makefile                        |   24 +
 .../linux/stm32/base-files/etc/board.d/02_network  |   18 +
 .../stm32/base-files/lib/preinit/79_move_config    |   15 +
 .../linux/stm32/base-files/lib/upgrade/platform.sh |  181 +++
 target/linux/stm32/image/Makefile                  |   63 ++
 target/linux/stm32/image/extlinux.conf             |    4 +
 target/linux/stm32/image/gen_stm32_sdcard_img.sh   |   35 +
 target/linux/stm32/modules.mk                      |  256 +++++
 ...dwmac-stm32-use-devm_stmmac_probe_config_.patch |   69 ++
 ...-stmmac-dwmac-stm32-refactor-clock-config.patch |  241 ++++
 ...dwmac-stm32-Separate-out-external-clock-r.patch |  125 ++
 ...dwmac-stm32-Separate-out-external-clock-s.patch |  132 +++
 ...ac-dwmac-stm32-Extract-PMCR-configuration.patch |   71 ++
 ...mac-dwmac-stm32-Clean-up-the-debug-prints.patch |   83 ++
 ...dwmac-stm32-Mask-support-for-PMCR-configu.patch |  101 ++
 ...dwmac-stm32-add-management-of-stm32mp13-f.patch |   94 ++
 ...32-add-ETZPC-as-a-system-bus-for-STM32MP1.patch | 1192 ++++++++++++++++++++
 ...32-put-ETZPC-as-an-access-controller-for-.patch |  265 +++++
 ...32-add-ethernet1-2-RMII-pins-for-STM32MP1.patch |  126 +++
 ...32-add-ethernet1-and-ethernet2-support-on.patch |  108 ++
 ...32-add-ethernet1-for-STM32MP135F-DK-board.patch |   58 +
 ...mci-stm32-add-SDIO-in-band-interrupt-mode.patch |  166 +++
 ...c-stm32-add-pinctrl-and-pinmux-interfaces.patch |  189 ++++
 ...2-add-Low-Speed-Clock-Output-LSCO-support.patch |  253 +++++
 ...32-rtc-add-pin-to-provide-LSCO-on-stm32mp.patch |   31 +
 ...32-rtc-add-LSCO-to-WLAN-BT-module-on-stm3.patch |   34 +
 ...32-add-support-of-WLAN-BT-on-stm32mp135f-.patch |   84 ++
 ...dwmac-stm32-add-support-of-phy-supply-pro.patch |  106 ++
 ...32-add-ethernet2-for-STM32MP135F-DK-board.patch |   53 +
 target/linux/stm32/stm32mp1/config-6.6             |  485 ++++++++
 target/linux/stm32/stm32mp1/target.mk              |   12 +
 31 files changed, 4674 insertions(+)

diff --git a/target/linux/stm32/Makefile b/target/linux/stm32/Makefile
new file mode 100644
index 0000000000..3020d0b2b8
--- /dev/null
+++ b/target/linux/stm32/Makefile
@@ -0,0 +1,24 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Copyright (C) 2024 Bootlin
+#
+
+include $(TOPDIR)/rules.mk
+
+BOARD:=stm32
+BOARDNAME:=STMicroelectronics STM32
+FEATURES:=boot-part emmc ext4 gpio rtc usb
+SUBTARGETS:=stm32mp1
+CPU_TYPE:=
+
+KERNEL_PATCHVER:=6.6
+
+include $(INCLUDE_DIR)/target.mk
+
+DEFAULT_PACKAGES += blockdev kmod-gpio-button-hotplug
+
+define Target/Description
+	Build firmware image for STM32 devices
+endef
+
+$(eval $(call BuildTarget))
diff --git a/target/linux/stm32/base-files/etc/board.d/02_network b/target/linux/stm32/base-files/etc/board.d/02_network
new file mode 100644
index 0000000000..a96fada9a4
--- /dev/null
+++ b/target/linux/stm32/base-files/etc/board.d/02_network
@@ -0,0 +1,18 @@
+
+. /lib/functions/uci-defaults.sh
+. /lib/functions.sh
+. /lib/functions/system.sh
+
+board_config_update
+
+board=$(board_name)
+
+case "$board" in
+st,stm32mp135f-dk)
+	ucidef_set_interfaces_lan_wan "eth0" "eth1"
+	;;
+esac
+
+board_config_flush
+
+exit 0
diff --git a/target/linux/stm32/base-files/lib/preinit/79_move_config b/target/linux/stm32/base-files/lib/preinit/79_move_config
new file mode 100644
index 0000000000..bc7db4c782
--- /dev/null
+++ b/target/linux/stm32/base-files/lib/preinit/79_move_config
@@ -0,0 +1,15 @@
+
+move_config() {
+	. /lib/upgrade/common.sh
+	. /lib/upgrade/platform.sh
+
+	if export_bootdevice && export_partdevice partdev 4; then
+		mount -t ext4 -o rw,noatime "/dev/$partdev" /mnt
+		if [ -f "/mnt/$BACKUP_FILE" ]; then
+			mv -f "/mnt/$BACKUP_FILE" /
+		fi
+		umount /mnt
+	fi
+}
+
+boot_hook_add preinit_mount_root move_config
diff --git a/target/linux/stm32/base-files/lib/upgrade/platform.sh b/target/linux/stm32/base-files/lib/upgrade/platform.sh
new file mode 100644
index 0000000000..4cd88ab6bd
--- /dev/null
+++ b/target/linux/stm32/base-files/lib/upgrade/platform.sh
@@ -0,0 +1,181 @@
+REQUIRE_IMAGE_METADATA=1
+
+UBOOT_ENV_PART=3
+BOOT_PART=4
+ROOTFS_PART=5
+
+RAMFS_COPY_BIN='blockdev'
+
+export_bootdevice() {
+	local cmdline uuid blockdev uevent line class
+	local MAJOR MINOR DEVNAME DEVTYPE
+	local rootpart="$(cmdline_get_var root)"
+
+	case "$rootpart" in
+		PARTUUID=????????-????-????-????-??????????0?/PARTNROFF=1 | \
+		PARTUUID=????????-????-????-????-??????????05)
+			uuid="${rootpart#PARTUUID=}"
+			uuid="${uuid%/PARTNROFF=1}"
+			uuid="${uuid%0?}00"
+			for disk in $(find /dev -type b); do
+				set -- $(dd if=$disk bs=1 skip=568 count=16 2>/dev/null | hexdump -v -e '8/1 "%02x "" "2/1 "%02x""-"6/1 "%02x"')
+				if [ "$4$3$2$1-$6$5-$8$7-$9" = "$uuid" ]; then
+					uevent="/sys/class/block/${disk##*/}/uevent"
+					break
+				fi
+			done
+		;;
+	esac
+
+	if [ -e "$uevent" ]; then
+		while read line; do
+			export -n "$line"
+		done < "$uevent"
+		export BOOTDEV_MAJOR=$MAJOR
+		export BOOTDEV_MINOR=$MINOR
+		return 0
+	fi
+
+	return 1
+}
+
+platform_check_image() {
+	local diskdev partdev diff
+
+        [ "$#" -gt 1 ] && return 1
+
+	export_bootdevice && export_partdevice diskdev 0 || {
+		v "platform_check_image: Unable to determine upgrade device"
+		return 1
+	}
+
+	get_partitions "/dev/$diskdev" bootdisk
+
+	v "Extract the boot sector from the image"
+	get_image_dd "$1" of=/tmp/image.bs count=63 bs=512b
+
+	get_partitions /tmp/image.bs image
+
+	#compare tables
+	diff="$(grep -F -x -v -f /tmp/partmap.bootdisk /tmp/partmap.image)"
+
+	rm -f /tmp/image.bs /tmp/partmap.bootdisk /tmp/partmap.image
+
+	if [ -n "$diff" ]; then
+		echo "Partition layout has changed. Full image will be written."
+		ask_bool 0 "Abort" && exit 1
+		return 0
+	fi
+}
+
+platform_do_upgrade() {
+	local diskdev partdev diff partlabel
+
+	export_bootdevice && export_partdevice diskdev 0 || {
+		v "platform_do_upgrade: Unable to determine upgrade device"
+		return 1
+	}
+
+	sync
+
+	if [ "$UPGRADE_OPT_SAVE_PARTITIONS" = "1" ]; then
+		get_partitions "/dev/$diskdev" bootdisk
+
+		v "Extract boot sector from the image"
+		get_image_dd "$1" of=/tmp/image.bs count=63 bs=512b
+
+		get_partitions /tmp/image.bs image
+
+		#compare tables
+		diff="$(grep -F -x -v -f /tmp/partmap.bootdisk /tmp/partmap.image)"
+	else
+		diff=1
+	fi
+
+	if [ -n "$diff" ]; then
+		rm -rf /tmp/ubootenv
+
+		if export_partdevice partdev $UBOOT_ENV_PART; then
+			v "Saving u-boot env (/dev/$partdev) before to write image"
+			get_image_dd "/dev/$partdev" of=/tmp/ubootenv
+		fi
+
+		v "Writing image to /dev/$diskdev..."
+		get_image_dd "$1" of="/dev/$diskdev" conv=fsync
+
+		blockdev --rereadpt "/dev/$diskdev"
+
+		[ -f /tmp/ubootenv ] && {
+			# iterate over each partition from the image to find the
+			# u-boot-env partition and restore u-boot env.
+			while read part start size; do
+				if export_partdevice partdev $part; then
+					while read line; do
+						eval "local l$line"
+					done < "/sys/class/block/$partdev/uevent"
+
+					[ "$lPARTNAME" = "u-boot-env" ] || continue
+
+					v "Writting u-boot env to /dev/$partdev"
+					get_image_dd /tmp/ubootenv of="/dev/$partdev" conv=fsync
+
+					return 0
+				fi
+			done < /tmp/partmap.image
+		}
+		return 0
+	fi
+
+	#iterate over each partition from the image and write it to the boot disk
+	while read part start size; do
+		if export_partdevice partdev $part; then
+			# do not erase u-boot env
+			[ "$part" = "$UBOOT_ENV_PART" ] && continue
+
+			v "Writing image to /dev/$partdev..."
+			v "Normal partition, doing DD"
+			get_image_dd "$1" of="/dev/$partdev" ibs=512 obs=1M skip="$start" \
+				count="$size" conv=fsync
+		else
+			v "Unable to find partition $part device, skipped."
+		fi
+	done < /tmp/partmap.image
+
+	if export_partdevice partdev "$BOOT_PART"; then
+		mount -t ext4 -o rw,noatime "/dev/$partdev" /mnt
+		local partuuid="$(cmdline_get_var root)"
+		v "Setting rootfs ${partuuid}"
+		sed -i "s/PARTUUID=[a-f0-9-]\+/${partuuid}/ig" \
+			/mnt/extlinux/extlinux.conf
+		umount /mnt
+	fi
+}
+
+platform_copy_config() {
+	local partdev
+
+	# Iterate over each partition from the image to find the boot partition
+	# and copy the config tarball.
+	# The partlabel is used to find the partition.
+	# An hardcoded partition number cannot be used, as it could be wrong if
+	# the partition table changed, and the full image was written.
+	while read part start size; do
+		# config is copied in the boot partition, as for squashfs image, the
+		# rootfs partition is not writable.
+		if export_partdevice partdev "$part"; then
+			while read line; do
+				eval "local l$line"
+			done < "/sys/class/block/$partdev/uevent"
+
+			[ "$lPARTNAME" = "boot" ] || continue
+
+			mount -t ext4 -o rw,noatime "/dev/$partdev" /mnt
+			cp -af "$UPGRADE_BACKUP" "/mnt/$BACKUP_FILE"
+			umount /mnt
+			return 0
+		else
+			v "ERROR: Unable to find partition to copy config data to"
+		fi
+	done < /tmp/partmap.image
+}
+
diff --git a/target/linux/stm32/image/Makefile b/target/linux/stm32/image/Makefile
new file mode 100644
index 0000000000..77c25edaf8
--- /dev/null
+++ b/target/linux/stm32/image/Makefile
@@ -0,0 +1,63 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Copyright (C) 2024 Bootlin
+#
+
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/image.mk
+
+define Build/boot-img-ext4
+	rm -fR $@.boot
+	mkdir -p $@.boot
+	$(foreach dts,$(DEVICE_DTS), $(CP) $(KDIR)/image-$(dts).dtb $@.boot/$(dts).dtb;)
+	$(CP) $(IMAGE_KERNEL) $@.boot/$(KERNEL_IMG)
+	$(INSTALL_DIR) $@.boot/extlinux
+	$(CP) ./extlinux.conf $@.boot/extlinux/
+	$(SED) 's/@KERNEL@/$(KERNEL_IMG)/' $@.boot/extlinux/extlinux.conf
+	$(SED) 's/@DEVICE@/$(DEVICE_NAME)/' $@.boot/extlinux/extlinux.conf
+	$(SED) 's/@DTS@/$(DEVICE_DTS)/' $@.boot/extlinux/extlinux.conf
+	$(SED) 's/@ROOT@/PARTUUID=$(shell echo $(IMG_PART_DISKGUID) | sed 's/00$$/05/')/' $@.boot/extlinux/extlinux.conf
+
+	make_ext4fs -J -L kernel -l $(CONFIG_TARGET_KERNEL_PARTSIZE)M \
+		$(if $(SOURCE_DATE_EPOCH),-T $(SOURCE_DATE_EPOCH)) \
+		$@.bootimg $@.boot
+endef
+
+define Build/sdcard-img
+	GUID=$(IMG_PART_DISKGUID) ./gen_stm32_sdcard_img.sh \
+	     $@ $(STAGING_DIR_IMAGE)/tf-a-$(DEVICE_NAME).stm32 \
+	     $(STAGING_DIR_IMAGE)/fip-$(DEVICE_NAME).bin $@.bootimg $(IMAGE_ROOTFS) \
+	     $(ENV_SIZE) $(CONFIG_TARGET_KERNEL_PARTSIZE) $(CONFIG_TARGET_ROOTFS_PARTSIZE)
+endef
+
+define Device/Default
+  PROFILES := Default
+  DEVICE_VENDOR := STMicroelectronics
+  IMAGES := factory.img.gz sysupgrade.img.gz
+  IMAGE/factory.img.gz := boot-img-ext4 | sdcard-img | gzip
+  IMAGE/sysupgrade.img.gz := boot-img-ext4 | sdcard-img | gzip | append-metadata
+  KERNEL := kernel-bin
+  KERNEL_NAME := zImage
+  KERNEL_IMG := zImage
+  DEVICE_DTS_DIR := $(DTS_DIR)/st
+  ENV_SIZE := 0x200000
+  DEVICE_PACKAGES := kmod-brcmfmac \
+		     murata-firmware-43430-sdio \
+		     murata-nvram-43430-sdio \
+		     wpad-basic-mbedtls \
+		     kmod-phy-stm32-usbphyc \
+		     kmod-usb2 \
+		     kmod-usb-storage \
+		     kmod-usb-ledtrig-usbport \
+		     -mtd
+endef
+
+define Device/stm32mp135f-dk
+  DEVICE_MODEL := STM32MP135F-DK
+  DEVICE_DTS := stm32mp135f-dk
+  SUPPORTED_DEVICES := st,stm32mp135f-dk
+endef
+
+TARGET_DEVICES += stm32mp135f-dk
+
+$(eval $(call BuildImage))
diff --git a/target/linux/stm32/image/extlinux.conf b/target/linux/stm32/image/extlinux.conf
new file mode 100644
index 0000000000..5c7773c2a8
--- /dev/null
+++ b/target/linux/stm32/image/extlinux.conf
@@ -0,0 +1,4 @@
+label @DEVICE at -openwrt
+  kernel /@KERNEL@
+  devicetree /@DTS at .dtb
+  append root=@ROOT@ rootwait
diff --git a/target/linux/stm32/image/gen_stm32_sdcard_img.sh b/target/linux/stm32/image/gen_stm32_sdcard_img.sh
new file mode 100755
index 0000000000..9af891694a
--- /dev/null
+++ b/target/linux/stm32/image/gen_stm32_sdcard_img.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+# Copyright (C) 2024 Bootlin
+
+set -ex
+[ $# -eq 8 ] || {
+    echo "SYNTAX: $0 <file> <fsbl> <fip> <bootfs image> <rootfs image> <env size> <bootfs size> <rootfs size>"
+    exit 1
+}
+
+OUTPUT="${1}"
+FSBL="${2}"
+FIP="${3}"
+BOOTFS="${4}"
+ROOTFS="${5}"
+ENVSIZE="$((${6} / 1024))"
+BOOTFSSIZE="${7}"
+ROOTFSSIZE="${8}"
+
+set $(ptgen -o "${OUTPUT}" -g -a 4 -l 2048 -G ${GUID} -N fsbla -p 2M -N fip -p 3M -N u-boot-env -p "${ENVSIZE}" -N boot -p${BOOTFSSIZE}M -N rootfs -p ${ROOTFSSIZE}M)
+FSBLAOFFSET="$((${1} / 512))"
+FSBLASIZE="$((${2} / 512))"
+FIPOFFSET="$((${3} / 512))"
+FIPSIZE="$((${4} / 512))"
+ENVOFFSET="$((${5} / 512))"
+ENVSIZE="$((${6} / 512))"
+BOOTFSOFFSET="$((${7} / 512))"
+BOOTFSSIZE="$((${8} / 512))"
+ROOTFSOFFSET="$((${9} / 512))"
+ROOTFSSIZE="$((${10} / 512))"
+
+dd bs=512 if="${FSBL}" of="${OUTPUT}" seek="${FSBLAOFFSET}" conv=notrunc
+dd bs=512 if="${FIP}"  of="${OUTPUT}" seek="${FIPOFFSET}" conv=notrunc
+dd bs=512 if=/dev/zero of="${OUTPUT}" seek="${ENVOFFSET}" count="${ENVSIZE}" conv=notrunc
+dd bs=512 if="${BOOTFS}" of="${OUTPUT}" seek="${BOOTFSOFFSET}" conv=notrunc
+dd bs=512 if="${ROOTFS}" of="${OUTPUT}" seek="${ROOTFSOFFSET}" conv=notrunc
diff --git a/target/linux/stm32/modules.mk b/target/linux/stm32/modules.mk
new file mode 100644
index 0000000000..baba80baba
--- /dev/null
+++ b/target/linux/stm32/modules.mk
@@ -0,0 +1,256 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Copyright (C) 2024 Bootlin
+
+define KernelPackage/phy-stm32-usbphyc
+  TITLE:=STM32 USB HS PHY Controller driver
+  DEPENDS:=@TARGET_stm32
+  KCONFIG:=CONFIG_PHY_STM32_USBPHYC
+  FILES:=$(LINUX_DIR)/drivers/phy/st/phy-stm32-usbphyc.ko
+  AUTOLOAD:=$(call AutoProbe,phy-stm32-usbphyc,)
+endef
+
+define KernelPackage/phy-stm32-usbphyc/description
+  Kernel module for STM32 USB HS PHY Controller
+endef
+
+$(eval $(call KernelPackage,phy-stm32-usbphyc))
+
+
+define KernelPackage/bxcan
+  TITLE:=STM32 Basic Extended CAN (bxCAN) devices
+  KCONFIG:=CONFIG_CAN_BXCAN
+  FILES=$(LINUX_DIR)/drivers/net/can/bxcan.ko
+  AUTOLOAD:=$(call AutoProbe,bxcan)
+  $(call AddDepends/can, at TARGET_stm32)
+endef
+
+$(eval $(call KernelPackage,bxcan))
+
+
+define KernelPackage/spi-stm32
+  SUBMENU=$(SPI_MENU)
+  TITLE:=STM32 SPI controller
+  DEPENDS:=@TARGET_stm32
+  KCONFIG:=CONFIG_SPI_STM32 \
+	   CONFIG_SPI=y \
+	   CONFIG_SPI_MASTER=y \
+	   CONFIG_SPI_SLAVE_TIME=n \
+	   CONFIG_SPI_SLAVE_SYSTEM_CONTROL=n
+  FILES=$(LINUX_DIR)/drivers/spi/spi-stm32.ko
+  AUTOLOAD:=$(call AutoProbe,spi-stm32)
+endef
+
+define KernelPackage/spi-stm32/description
+  SPI driver for STMicroelectronics STM32 SoCs.
+endef
+
+$(eval $(call KernelPackage,spi-stm32))
+
+
+define KernelPackage/scmi-hwmon
+  TITLE:=ARM SCMI Sensors
+  KCONFIG:=CONFIG_SENSORS_ARM_SCMI
+  FILES:=$(LINUX_DIR)/drivers/hwmon/scmi-hwmon.ko
+  AUTOLOAD:=$(call AutoProbe,scmi-hwmon)
+  $(call AddDepends/hwmon, at TARGET_stm32 +kmod-thermal)
+endef
+
+$(eval $(call KernelPackage,scmi-hwmon))
+
+
+define KernelPackage/stm32-dcmi
+  TITLE:=STM32 Digital Camera Memory Interface support
+  KCONFIG:=CONFIG_VIDEO_STM32_DCMI
+  FILES:=$(LINUX_DIR)/drivers/media/platform/st/stm32/stm32-dcmi.ko
+  AUTOLOAD:=$(call AutoProbe,stm32-dcmi)
+  $(call AddDepends/video, at TARGET_stm32 +kmod-video-videobuf2 +kmod-video-dma-contig +kmod-video-async +kmod-video-fwnode)
+endef
+
+$(eval $(call KernelPackage,stm32-dcmi))
+
+
+define KernelPackage/sound-soc-stm32-sai
+  TITLE:=STM32 SAI interface (Serial Audio Interface) support
+  KCONFIG:=CONFIG_SND_SOC_STM32_SAI
+  FILES:=$(LINUX_DIR)/sound/soc/stm/snd-soc-stm32-sai-sub.ko \
+	 $(LINUX_DIR)/sound/soc/stm/snd-soc-stm32-sai.ko
+  AUTOLOAD:=$(call AutoProbe,snd-soc-stm32-sai-sub snd-soc-stm32-sai)
+  $(call AddDepends/sound, at TARGET_stm32 +kmod-sound-soc-core)
+endef
+
+$(eval $(call KernelPackage,sound-soc-stm32-sai))
+
+
+define KernelPackage/sound-soc-stm32-i2s
+  TITLE:=STM32 I2S interface (SPI/I2S block) support
+  KCONFIG:=CONFIG_SND_SOC_STM32_I2S
+  FILES:=$(LINUX_DIR)/sound/soc/stm/snd-soc-stm32-i2s.ko
+  AUTOLOAD:=$(call AutoProbe,snd-soc-stm32-i2s)
+  $(call AddDepends/sound, at TARGET_stm32 +kmod-sound-soc-core)
+endef
+
+$(eval $(call KernelPackage,sound-soc-stm32-i2s))
+
+
+define KernelPackage/sound-soc-stm32-spdifrx
+  TITLE:=STM32 S/PDIF receiver (SPDIFRX) support
+  KCONFIG:=CONFIG_SND_SOC_STM32_SPDIFRX
+  FILES:=$(LINUX_DIR)/sound/soc/stm/snd-soc-stm32-spdifrx.ko
+  AUTOLOAD:=$(call AutoProbe,snd-soc-stm32-spdifrx)
+  $(call AddDepends/sound, at TARGET_stm32 +kmod-sound-soc-core)
+endef
+
+$(eval $(call KernelPackage,sound-soc-stm32-spdifrx))
+
+
+define KernelPackage/sound-soc-stm32-dfsdm
+  TITLE:=SoC Audio support for STM32 DFSDM
+  KCONFIG:=CONFIG_SND_SOC_STM32_DFSDM
+  FILES:=$(LINUX_DIR)/sound/soc/stm/stm32_adfsdm.ko
+  AUTOLOAD:=$(call AutoProbe,stm32_adfsdm)
+  $(call AddDepends/sound, at TARGET_stm32 +kmod-sound-soc-core +kmod-stm32-dfsdm-adc +kmod-industrialio-buffer-cb)
+endef
+
+$(eval $(call KernelPackage,sound-soc-stm32-dfsdm))
+
+
+define KernelPackage/stm32-timers
+  TITLE:=STM32 Timers
+  DEPENDS:=@TARGET_stm32 +kmod-mfd
+  KCONFIG:=CONFIG_MFD_STM32_TIMERS
+  FILES:=$(LINUX_DIR)/drivers/mfd/stm32-timers.ko
+  AUTOLOAD:=$(call AutoProbe,stm32-timers)
+endef
+
+$(eval $(call KernelPackage,stm32-timers))
+
+
+define KernelPackage/stm32-timer-trigger
+  TITLE:=STM32 Timer Trigger
+  KCONFIG:=CONFIG_IIO_STM32_TIMER_TRIGGER
+  FILES:=$(LINUX_DIR)/drivers/iio/trigger/stm32-timer-trigger.ko
+  AUTOLOAD:=$(call AutoProbe,stm32-timer-trigger)
+  $(call AddDepends/iio, at TARGET_stm32 +kmod-stm32-timers)
+endef
+
+$(eval $(call KernelPackage,stm32-timer-trigger))
+
+
+define KernelPackage/stm32-adc
+  TITLE:=STM32 ADC
+  KCONFIG:=CONFIG_STM32_ADC_CORE \
+	   CONFIG_STM32_ADC
+  FILES:=$(LINUX_DIR)/drivers/iio/adc/stm32-adc-core.ko \
+	 $(LINUX_DIR)/drivers/iio/adc/stm32-adc.ko
+  AUTOLOAD:=$(call AutoProbe,stm32-adc-core stm32-adc)
+  $(call AddDepends/iio, at TARGET_stm32 +kmod-stm32-timer-trigger +kmod-industrialio-triggered-buffer)
+endef
+
+$(eval $(call KernelPackage,stm32-adc))
+
+
+define KernelPackage/stm32-dfsdm-adc
+  TITLE:=STM32 DFSDM ADC
+  KCONFIG:=CONFIG_STM32_DFSDM_CORE \
+	   CONFIG_STM32_DFSDM_ADC
+  FILES:=$(LINUX_DIR)/drivers/iio/adc/stm32-dfsdm-core.ko \
+	 $(LINUX_DIR)/drivers/iio/adc/stm32-dfsdm-adc.ko
+  AUTOLOAD:=$(call AutoProbe,stm32-dfsdm-core stm32-dfsdm-adc)
+  $(call AddDepends/iio, at TARGET_stm32 +kmod-stm32-timer-trigger +kmod-industrialio-triggered-buffer +kmod-industrialio-hw-consumer)
+endef
+
+$(eval $(call KernelPackage,stm32-dfsdm-adc))
+
+
+define KernelPackage/scmi-iio
+  TITLE:=IIO SCMI
+  KCONFIG=CONFIG_IIO_SCMI
+  FILES:=$(LINUX_DIR)/drivers/iio/common/scmi_sensors/scmi_iio.ko
+  AUTOLOAD:=$(call AutoProbe,scmi_iio)
+  $(call AddDepends/iio, at TARGET_stm32 +kmod-iio-kfifo-buf)
+endef
+
+$(eval $(call KernelPackage,scmi-iio))
+
+
+define KernelPackage/stm32-dac
+  TITLE:=STM32 DAC
+  DEPENDS:=@TARGET_stm32
+  KCONFIG:=CONFIG_STM32_DAC_CORE \
+	   CONFIG_STM32_DAC
+  FILES:=$(LINUX_DIR)/drivers/iio/dac/stm32-dac-core.ko \
+	 $(LINUX_DIR)/drivers/iio/dac/stm32-dac.ko
+  AUTOLOAD:=$(call AutoProbe,stm32-dac-core stm32-dac)
+  $(call AddDepends/iio, at TARGET_stm32)
+endef
+
+$(eval $(call KernelPackage,stm32-dac))
+
+
+define KernelPackage/nvmem-stm32-romem
+  SUBMENU:=$(OTHER_MENU)
+  TITLE:=STM32 factory-programmed memory support
+  DEPENDS:=@TARGET_stm32
+  KCONFIG:=CONFIG_NVMEM_STM32_ROMEM
+  FILES:=$(LINUX_DIR)/drivers/nvmem/nvmem_stm32_romem.ko
+  AUTOLOAD:=$(call AutoProbe,nvmem-stm32-romem)
+endef
+
+$(eval $(call KernelPackage,nvmem-stm32-romem))
+
+
+define KernelPackage/stm32-crc32
+  TITLE:=Support for STM32 crc accelerators
+  KCONFIG:=CONFIG_CRYPTO_DEV_STM32_CRC \
+	   CONFIG_CRYPTO_HW=y
+  FILES:=$(LINUX_DIR)/drivers/crypto/stm32/stm32-crc32.ko
+  AUTOLOAD:=$(call AutoProbe,stm32-crc32)
+  $(call AddDepends/crypto, at TARGET_stm32 +kmod-crypto-crc32)
+endef
+
+$(eval $(call KernelPackage,stm32-crc32))
+
+
+define KernelPackage/stm32-hash
+  SUBMENU:=$(CRYPTO_MENU)
+  TITLE:=Support for STM32 hash accelerators
+  DEPENDS:=@TARGET_stm32 \
+	   +kmod-crypto-md5 \
+	   +kmod-crypto-sha1 \
+	   +kmod-crypto-sha256 \
+	   +kmod-crypto-sha3 \
+	   +kmod-crypto-rsa
+  KCONFIG:=CONFIG_CRYPTO_DEV_STM32_HASH \
+	   CONFIG_CRYPTO_ENGINE=y \
+  FILES:=$(LINUX_DIR)/drivers/crypto/stm32/stm32-hash.ko
+  AUTOLOAD:=$(call AutoProbe,stm32-hash)
+endef
+
+$(eval $(call KernelPackage,stm32-hash))
+
+
+define KernelPackage/stm32-cryp
+  TITLE:=Support for STM32 cryp accelerators
+  KCONFIG:=CONFIG_CRYPTO_DEV_STM32_CRYP \
+	   CONFIG_CRYPTO_LIB_DES=y
+  FILES:=$(LINUX_DIR)/drivers/crypto/stm32/stm32-cryp.ko
+  AUTOLOAD:=$(call AutoProbe,stm32-cryp)
+  $(call AddDepends/crypto, at TARGET_stm32 +kmod-crypto-hash +kmod-crypto-des +kmod-crypto-engine)
+endef
+
+$(eval $(call KernelPackage,stm32-cryp))
+
+
+define KernelPackage/st-thermal
+  SUBMENU:=$(OTHER_MENU)
+  TITLE:=Thermal sensors on STMicroelectronics STi series of SoCs
+  KCONFIG:=CONFIG_ST_THERMAL \
+	   CONFIG_ST_THERMAL_MEMMAP
+  DEPENDS:=@TARGET_stm32 +kmod-thermal
+  FILES:=$(LINUX_DIR)/drivers/thermal/st/st_thermal.ko \
+	 $(LINUX_DIR)/drivers/thermal/st/st_thermal_memmap.ko
+  AUTOLOAD:=$(call AutoProbe,st_thermal st_thermal_memmap)
+endef
+
+$(eval $(call KernelPackage,st-thermal))
diff --git a/target/linux/stm32/patches-6.6/001-net-stmmac-dwmac-stm32-use-devm_stmmac_probe_config_.patch b/target/linux/stm32/patches-6.6/001-net-stmmac-dwmac-stm32-use-devm_stmmac_probe_config_.patch
new file mode 100644
index 0000000000..cf192fdef4
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/001-net-stmmac-dwmac-stm32-use-devm_stmmac_probe_config_.patch
@@ -0,0 +1,69 @@
+From 1ddced59ac1f7c739f21e930d87b126a30c561bb Mon Sep 17 00:00:00 2001
+From: Jisheng Zhang <jszhang at kernel.org>
+Date: Sat, 16 Sep 2023 15:58:23 +0800
+Subject: [PATCH 1/8] net: stmmac: dwmac-stm32: use
+ devm_stmmac_probe_config_dt()
+
+Simplify the driver's probe() function by using the devres
+variant of stmmac_probe_config_dt().
+
+Signed-off-by: Jisheng Zhang <jszhang at kernel.org>
+Signed-off-by: David S. Miller <davem at davemloft.net>
+---
+ .../net/ethernet/stmicro/stmmac/dwmac-stm32.c   | 17 ++++++-----------
+ 1 file changed, 6 insertions(+), 11 deletions(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
+@@ -372,21 +372,18 @@ static int stm32_dwmac_probe(struct plat
+ 	if (ret)
+ 		return ret;
+ 
+-	plat_dat = stmmac_probe_config_dt(pdev, stmmac_res.mac);
++	plat_dat = devm_stmmac_probe_config_dt(pdev, stmmac_res.mac);
+ 	if (IS_ERR(plat_dat))
+ 		return PTR_ERR(plat_dat);
+ 
+ 	dwmac = devm_kzalloc(&pdev->dev, sizeof(*dwmac), GFP_KERNEL);
+-	if (!dwmac) {
+-		ret = -ENOMEM;
+-		goto err_remove_config_dt;
+-	}
++	if (!dwmac)
++		return -ENOMEM;
+ 
+ 	data = of_device_get_match_data(&pdev->dev);
+ 	if (!data) {
+ 		dev_err(&pdev->dev, "no of match data provided\n");
+-		ret = -EINVAL;
+-		goto err_remove_config_dt;
++		return -EINVAL;
+ 	}
+ 
+ 	dwmac->ops = data;
+@@ -395,14 +392,14 @@ static int stm32_dwmac_probe(struct plat
+ 	ret = stm32_dwmac_parse_data(dwmac, &pdev->dev);
+ 	if (ret) {
+ 		dev_err(&pdev->dev, "Unable to parse OF data\n");
+-		goto err_remove_config_dt;
++		return ret;
+ 	}
+ 
+ 	plat_dat->bsp_priv = dwmac;
+ 
+ 	ret = stm32_dwmac_init(plat_dat);
+ 	if (ret)
+-		goto err_remove_config_dt;
++		return ret;
+ 
+ 	ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
+ 	if (ret)
+@@ -412,8 +409,6 @@ static int stm32_dwmac_probe(struct plat
+ 
+ err_clk_disable:
+ 	stm32_dwmac_clk_disable(dwmac);
+-err_remove_config_dt:
+-	stmmac_remove_config_dt(pdev, plat_dat);
+ 
+ 	return ret;
+ }
diff --git a/target/linux/stm32/patches-6.6/002-net-stmmac-dwmac-stm32-refactor-clock-config.patch b/target/linux/stm32/patches-6.6/002-net-stmmac-dwmac-stm32-refactor-clock-config.patch
new file mode 100644
index 0000000000..dd791dab6a
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/002-net-stmmac-dwmac-stm32-refactor-clock-config.patch
@@ -0,0 +1,241 @@
+From 73c350e3fb32e9598b66f61081c7e06a7fba49f8 Mon Sep 17 00:00:00 2001
+From: Ben Wolsieffer <ben.wolsieffer at hefring.com>
+Date: Mon, 9 Oct 2023 10:59:04 -0400
+Subject: [PATCH 2/8] net: stmmac: dwmac-stm32: refactor clock config
+
+Currently, clock configuration is spread throughout the driver and
+partially duplicated for the STM32MP1 and STM32 MCU variants. This makes
+it difficult to keep track of which clocks need to be enabled or disabled
+in various scenarios.
+
+This patch adds symmetric stm32_dwmac_clk_enable/disable() functions
+that handle all clock configuration, including quirks required while
+suspending or resuming. syscfg_clk and clk_eth_ck are not present on
+STM32 MCUs, but it is fine to try to configure them anyway since NULL
+clocks are ignored.
+
+Signed-off-by: Ben Wolsieffer <ben.wolsieffer at hefring.com>
+Signed-off-by: David S. Miller <davem at davemloft.net>
+---
+ .../net/ethernet/stmicro/stmmac/dwmac-stm32.c | 113 +++++++-----------
+ 1 file changed, 45 insertions(+), 68 deletions(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
+@@ -98,7 +98,6 @@ struct stm32_dwmac {
+ 
+ struct stm32_ops {
+ 	int (*set_mode)(struct plat_stmmacenet_data *plat_dat);
+-	int (*clk_prepare)(struct stm32_dwmac *dwmac, bool prepare);
+ 	int (*suspend)(struct stm32_dwmac *dwmac);
+ 	void (*resume)(struct stm32_dwmac *dwmac);
+ 	int (*parse_data)(struct stm32_dwmac *dwmac,
+@@ -107,62 +106,55 @@ struct stm32_ops {
+ 	bool clk_rx_enable_in_suspend;
+ };
+ 
+-static int stm32_dwmac_init(struct plat_stmmacenet_data *plat_dat)
++static int stm32_dwmac_clk_enable(struct stm32_dwmac *dwmac, bool resume)
+ {
+-	struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
+ 	int ret;
+ 
+-	if (dwmac->ops->set_mode) {
+-		ret = dwmac->ops->set_mode(plat_dat);
+-		if (ret)
+-			return ret;
+-	}
+-
+ 	ret = clk_prepare_enable(dwmac->clk_tx);
+ 	if (ret)
+-		return ret;
++		goto err_clk_tx;
+ 
+-	if (!dwmac->ops->clk_rx_enable_in_suspend ||
+-	    !dwmac->dev->power.is_suspended) {
++	if (!dwmac->ops->clk_rx_enable_in_suspend || !resume) {
+ 		ret = clk_prepare_enable(dwmac->clk_rx);
+-		if (ret) {
+-			clk_disable_unprepare(dwmac->clk_tx);
+-			return ret;
+-		}
++		if (ret)
++			goto err_clk_rx;
+ 	}
+ 
+-	if (dwmac->ops->clk_prepare) {
+-		ret = dwmac->ops->clk_prepare(dwmac, true);
+-		if (ret) {
+-			clk_disable_unprepare(dwmac->clk_rx);
+-			clk_disable_unprepare(dwmac->clk_tx);
+-		}
++	ret = clk_prepare_enable(dwmac->syscfg_clk);
++	if (ret)
++		goto err_syscfg_clk;
++
++	if (dwmac->enable_eth_ck) {
++		ret = clk_prepare_enable(dwmac->clk_eth_ck);
++		if (ret)
++			goto err_clk_eth_ck;
+ 	}
+ 
+ 	return ret;
++
++err_clk_eth_ck:
++	clk_disable_unprepare(dwmac->syscfg_clk);
++err_syscfg_clk:
++	if (!dwmac->ops->clk_rx_enable_in_suspend || !resume)
++		clk_disable_unprepare(dwmac->clk_rx);
++err_clk_rx:
++	clk_disable_unprepare(dwmac->clk_tx);
++err_clk_tx:
++	return ret;
+ }
+ 
+-static int stm32mp1_clk_prepare(struct stm32_dwmac *dwmac, bool prepare)
++static int stm32_dwmac_init(struct plat_stmmacenet_data *plat_dat, bool resume)
+ {
+-	int ret = 0;
++	struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
++	int ret;
+ 
+-	if (prepare) {
+-		ret = clk_prepare_enable(dwmac->syscfg_clk);
++	if (dwmac->ops->set_mode) {
++		ret = dwmac->ops->set_mode(plat_dat);
+ 		if (ret)
+ 			return ret;
+-		if (dwmac->enable_eth_ck) {
+-			ret = clk_prepare_enable(dwmac->clk_eth_ck);
+-			if (ret) {
+-				clk_disable_unprepare(dwmac->syscfg_clk);
+-				return ret;
+-			}
+-		}
+-	} else {
+-		clk_disable_unprepare(dwmac->syscfg_clk);
+-		if (dwmac->enable_eth_ck)
+-			clk_disable_unprepare(dwmac->clk_eth_ck);
+ 	}
+-	return ret;
++
++	return stm32_dwmac_clk_enable(dwmac, resume);
+ }
+ 
+ static int stm32mp1_set_mode(struct plat_stmmacenet_data *plat_dat)
+@@ -252,13 +244,15 @@ static int stm32mcu_set_mode(struct plat
+ 				 dwmac->ops->syscfg_eth_mask, val << 23);
+ }
+ 
+-static void stm32_dwmac_clk_disable(struct stm32_dwmac *dwmac)
++static void stm32_dwmac_clk_disable(struct stm32_dwmac *dwmac, bool suspend)
+ {
+ 	clk_disable_unprepare(dwmac->clk_tx);
+-	clk_disable_unprepare(dwmac->clk_rx);
++	if (!dwmac->ops->clk_rx_enable_in_suspend || !suspend)
++		clk_disable_unprepare(dwmac->clk_rx);
+ 
+-	if (dwmac->ops->clk_prepare)
+-		dwmac->ops->clk_prepare(dwmac, false);
++	clk_disable_unprepare(dwmac->syscfg_clk);
++	if (dwmac->enable_eth_ck)
++		clk_disable_unprepare(dwmac->clk_eth_ck);
+ }
+ 
+ static int stm32_dwmac_parse_data(struct stm32_dwmac *dwmac,
+@@ -397,7 +391,7 @@ static int stm32_dwmac_probe(struct plat
+ 
+ 	plat_dat->bsp_priv = dwmac;
+ 
+-	ret = stm32_dwmac_init(plat_dat);
++	ret = stm32_dwmac_init(plat_dat, false);
+ 	if (ret)
+ 		return ret;
+ 
+@@ -408,7 +402,7 @@ static int stm32_dwmac_probe(struct plat
+ 	return 0;
+ 
+ err_clk_disable:
+-	stm32_dwmac_clk_disable(dwmac);
++	stm32_dwmac_clk_disable(dwmac, false);
+ 
+ 	return ret;
+ }
+@@ -421,7 +415,7 @@ static void stm32_dwmac_remove(struct pl
+ 
+ 	stmmac_dvr_remove(&pdev->dev);
+ 
+-	stm32_dwmac_clk_disable(priv->plat->bsp_priv);
++	stm32_dwmac_clk_disable(dwmac, false);
+ 
+ 	if (dwmac->irq_pwr_wakeup >= 0) {
+ 		dev_pm_clear_wake_irq(&pdev->dev);
+@@ -431,18 +425,7 @@ static void stm32_dwmac_remove(struct pl
+ 
+ static int stm32mp1_suspend(struct stm32_dwmac *dwmac)
+ {
+-	int ret = 0;
+-
+-	ret = clk_prepare_enable(dwmac->clk_ethstp);
+-	if (ret)
+-		return ret;
+-
+-	clk_disable_unprepare(dwmac->clk_tx);
+-	clk_disable_unprepare(dwmac->syscfg_clk);
+-	if (dwmac->enable_eth_ck)
+-		clk_disable_unprepare(dwmac->clk_eth_ck);
+-
+-	return ret;
++	return clk_prepare_enable(dwmac->clk_ethstp);
+ }
+ 
+ static void stm32mp1_resume(struct stm32_dwmac *dwmac)
+@@ -450,14 +433,6 @@ static void stm32mp1_resume(struct stm32
+ 	clk_disable_unprepare(dwmac->clk_ethstp);
+ }
+ 
+-static int stm32mcu_suspend(struct stm32_dwmac *dwmac)
+-{
+-	clk_disable_unprepare(dwmac->clk_tx);
+-	clk_disable_unprepare(dwmac->clk_rx);
+-
+-	return 0;
+-}
+-
+ #ifdef CONFIG_PM_SLEEP
+ static int stm32_dwmac_suspend(struct device *dev)
+ {
+@@ -468,6 +443,10 @@ static int stm32_dwmac_suspend(struct de
+ 	int ret;
+ 
+ 	ret = stmmac_suspend(dev);
++	if (ret)
++		return ret;
++
++	stm32_dwmac_clk_disable(dwmac, true);
+ 
+ 	if (dwmac->ops->suspend)
+ 		ret = dwmac->ops->suspend(dwmac);
+@@ -485,7 +464,7 @@ static int stm32_dwmac_resume(struct dev
+ 	if (dwmac->ops->resume)
+ 		dwmac->ops->resume(dwmac);
+ 
+-	ret = stm32_dwmac_init(priv->plat);
++	ret = stm32_dwmac_init(priv->plat, true);
+ 	if (ret)
+ 		return ret;
+ 
+@@ -500,13 +479,11 @@ static SIMPLE_DEV_PM_OPS(stm32_dwmac_pm_
+ 
+ static struct stm32_ops stm32mcu_dwmac_data = {
+ 	.set_mode = stm32mcu_set_mode,
+-	.suspend = stm32mcu_suspend,
+ 	.syscfg_eth_mask = SYSCFG_MCU_ETH_MASK
+ };
+ 
+ static struct stm32_ops stm32mp1_dwmac_data = {
+ 	.set_mode = stm32mp1_set_mode,
+-	.clk_prepare = stm32mp1_clk_prepare,
+ 	.suspend = stm32mp1_suspend,
+ 	.resume = stm32mp1_resume,
+ 	.parse_data = stm32mp1_parse_data,
diff --git a/target/linux/stm32/patches-6.6/003-net-stmmac-dwmac-stm32-Separate-out-external-clock-r.patch b/target/linux/stm32/patches-6.6/003-net-stmmac-dwmac-stm32-Separate-out-external-clock-r.patch
new file mode 100644
index 0000000000..bcdd23b4eb
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/003-net-stmmac-dwmac-stm32-Separate-out-external-clock-r.patch
@@ -0,0 +1,125 @@
+From 23c08dc4ff28b5ca1aa5ee745a5e9688561e8f6a Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex at denx.de>
+Date: Tue, 11 Jun 2024 10:36:00 +0200
+Subject: [PATCH 3/8] net: stmmac: dwmac-stm32: Separate out external clock
+ rate validation
+
+Pull the external clock frequency validation into a separate function,
+to avoid conflating it with external clock DT property decoding and
+clock mux register configuration. This should make the code easier to
+read and understand.
+
+This does change the code behavior slightly. The clock mux PMCR register
+setting now depends solely on the DT properties which configure the clock
+mux between external clock and internal RCC generated clock. The mux PMCR
+register settings no longer depend on the supplied clock frequency, that
+supplied clock frequency is now only validated, and if the clock frequency
+is invalid for a mode, it is rejected.
+
+Previously, the code would switch the PMCR register clock mux to internal
+RCC generated clock if external clock couldn't provide suitable frequency,
+without checking whether the RCC generated clock frequency is correct. Such
+behavior is risky at best, user should have configured their clock correctly
+in the first place, so this behavior is removed here.
+
+Signed-off-by: Marek Vasut <marex at denx.de>
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Signed-off-by: Paolo Abeni <pabeni at redhat.com>
+---
+ .../net/ethernet/stmicro/stmmac/dwmac-stm32.c | 51 +++++++++++++++----
+ 1 file changed, 41 insertions(+), 10 deletions(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
+@@ -157,25 +157,54 @@ static int stm32_dwmac_init(struct plat_
+ 	return stm32_dwmac_clk_enable(dwmac, resume);
+ }
+ 
++static int stm32mp1_validate_ethck_rate(struct plat_stmmacenet_data *plat_dat)
++{
++	struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
++	const u32 clk_rate = clk_get_rate(dwmac->clk_eth_ck);
++
++	switch (plat_dat->mac_interface) {
++	case PHY_INTERFACE_MODE_MII:
++	case PHY_INTERFACE_MODE_GMII:
++		if (clk_rate == ETH_CK_F_25M)
++			return 0;
++		break;
++	case PHY_INTERFACE_MODE_RMII:
++		if (clk_rate == ETH_CK_F_25M || clk_rate == ETH_CK_F_50M)
++			return 0;
++		break;
++	case PHY_INTERFACE_MODE_RGMII:
++	case PHY_INTERFACE_MODE_RGMII_ID:
++	case PHY_INTERFACE_MODE_RGMII_RXID:
++	case PHY_INTERFACE_MODE_RGMII_TXID:
++		if (clk_rate == ETH_CK_F_25M || clk_rate == ETH_CK_F_125M)
++			return 0;
++		break;
++	default:
++		break;
++	}
++
++	dev_err(dwmac->dev, "Mode %s does not match eth-ck frequency %d Hz",
++		phy_modes(plat_dat->mac_interface), clk_rate);
++	return -EINVAL;
++}
++
+ static int stm32mp1_set_mode(struct plat_stmmacenet_data *plat_dat)
+ {
+ 	struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
+-	u32 reg = dwmac->mode_reg, clk_rate;
+-	int val;
++	u32 reg = dwmac->mode_reg;
++	int val, ret;
+ 
+-	clk_rate = clk_get_rate(dwmac->clk_eth_ck);
+ 	dwmac->enable_eth_ck = false;
+ 	switch (plat_dat->mac_interface) {
+ 	case PHY_INTERFACE_MODE_MII:
+-		if (clk_rate == ETH_CK_F_25M && dwmac->ext_phyclk)
++		if (dwmac->ext_phyclk)
+ 			dwmac->enable_eth_ck = true;
+ 		val = SYSCFG_PMCR_ETH_SEL_MII;
+ 		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_MII\n");
+ 		break;
+ 	case PHY_INTERFACE_MODE_GMII:
+ 		val = SYSCFG_PMCR_ETH_SEL_GMII;
+-		if (clk_rate == ETH_CK_F_25M &&
+-		    (dwmac->eth_clk_sel_reg || dwmac->ext_phyclk)) {
++		if (dwmac->eth_clk_sel_reg || dwmac->ext_phyclk) {
+ 			dwmac->enable_eth_ck = true;
+ 			val |= SYSCFG_PMCR_ETH_CLK_SEL;
+ 		}
+@@ -183,8 +212,7 @@ static int stm32mp1_set_mode(struct plat
+ 		break;
+ 	case PHY_INTERFACE_MODE_RMII:
+ 		val = SYSCFG_PMCR_ETH_SEL_RMII;
+-		if ((clk_rate == ETH_CK_F_25M || clk_rate == ETH_CK_F_50M) &&
+-		    (dwmac->eth_ref_clk_sel_reg || dwmac->ext_phyclk)) {
++		if (dwmac->eth_ref_clk_sel_reg || dwmac->ext_phyclk) {
+ 			dwmac->enable_eth_ck = true;
+ 			val |= SYSCFG_PMCR_ETH_REF_CLK_SEL;
+ 		}
+@@ -195,8 +223,7 @@ static int stm32mp1_set_mode(struct plat
+ 	case PHY_INTERFACE_MODE_RGMII_RXID:
+ 	case PHY_INTERFACE_MODE_RGMII_TXID:
+ 		val = SYSCFG_PMCR_ETH_SEL_RGMII;
+-		if ((clk_rate == ETH_CK_F_25M || clk_rate == ETH_CK_F_125M) &&
+-		    (dwmac->eth_clk_sel_reg || dwmac->ext_phyclk)) {
++		if (dwmac->eth_clk_sel_reg || dwmac->ext_phyclk) {
+ 			dwmac->enable_eth_ck = true;
+ 			val |= SYSCFG_PMCR_ETH_CLK_SEL;
+ 		}
+@@ -209,6 +236,10 @@ static int stm32mp1_set_mode(struct plat
+ 		return -EINVAL;
+ 	}
+ 
++	ret = stm32mp1_validate_ethck_rate(plat_dat);
++	if (ret)
++		return ret;
++
+ 	/* Need to update PMCCLRR (clear register) */
+ 	regmap_write(dwmac->regmap, reg + SYSCFG_PMCCLRR_OFFSET,
+ 		     dwmac->ops->syscfg_eth_mask);
diff --git a/target/linux/stm32/patches-6.6/004-net-stmmac-dwmac-stm32-Separate-out-external-clock-s.patch b/target/linux/stm32/patches-6.6/004-net-stmmac-dwmac-stm32-Separate-out-external-clock-s.patch
new file mode 100644
index 0000000000..2e8f76158d
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/004-net-stmmac-dwmac-stm32-Separate-out-external-clock-s.patch
@@ -0,0 +1,132 @@
+From d23ba64e733580db2809e6f6dbf6f093fbd1b91b Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex at denx.de>
+Date: Tue, 11 Jun 2024 10:36:01 +0200
+Subject: [PATCH 4/8] net: stmmac: dwmac-stm32: Separate out external clock
+ selector
+
+Pull the external clock selector into a separate function, to avoid
+conflating it with external clock rate validation and clock mux
+register configuration. This should make the code easier to read and
+understand.
+
+The dwmac->enable_eth_ck variable in the end indicates whether the MAC
+clock are supplied by external oscillator (true) or internal RCC clock
+IP (false). The dwmac->enable_eth_ck value is set based on multiple DT
+properties, some of them deprecated, some of them specific to bus mode.
+
+The following DT properties and variables are taken into account. In
+each case, if the property is present or true, MAC clock is supplied
+by external oscillator.
+- "st,ext-phyclk", assigned to variable dwmac->ext_phyclk
+  - Used in any mode (MII/RMII/GMII/RGMII)
+  - The only non-deprecated DT property of the three
+- "st,eth-clk-sel", assigned to variable dwmac->eth_clk_sel_reg
+  - Valid only in GMII/RGMII mode
+  - Deprecated property, backward compatibility only
+- "st,eth-ref-clk-sel", assigned to variable dwmac->eth_ref_clk_sel_reg
+  - Valid only in RMII mode
+  - Deprecated property, backward compatibility only
+
+The stm32mp1_select_ethck_external() function handles the aforementioned
+DT properties and sets dwmac->enable_eth_ck accordingly.
+
+The stm32mp1_set_mode() is adjusted to call stm32mp1_select_ethck_external()
+first and then only use dwmac->enable_eth_ck to determine hardware clock mux
+settings.
+
+No functional change intended.
+
+Signed-off-by: Marek Vasut <marex at denx.de>
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Signed-off-by: Paolo Abeni <pabeni at redhat.com>
+---
+ .../net/ethernet/stmicro/stmmac/dwmac-stm32.c | 50 ++++++++++++++-----
+ 1 file changed, 38 insertions(+), 12 deletions(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
+@@ -157,6 +157,37 @@ static int stm32_dwmac_init(struct plat_
+ 	return stm32_dwmac_clk_enable(dwmac, resume);
+ }
+ 
++static int stm32mp1_select_ethck_external(struct plat_stmmacenet_data *plat_dat)
++{
++	struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
++
++	switch (plat_dat->mac_interface) {
++	case PHY_INTERFACE_MODE_MII:
++		dwmac->enable_eth_ck = dwmac->ext_phyclk;
++		return 0;
++	case PHY_INTERFACE_MODE_GMII:
++		dwmac->enable_eth_ck = dwmac->eth_clk_sel_reg ||
++				       dwmac->ext_phyclk;
++		return 0;
++	case PHY_INTERFACE_MODE_RMII:
++		dwmac->enable_eth_ck = dwmac->eth_ref_clk_sel_reg ||
++				       dwmac->ext_phyclk;
++		return 0;
++	case PHY_INTERFACE_MODE_RGMII:
++	case PHY_INTERFACE_MODE_RGMII_ID:
++	case PHY_INTERFACE_MODE_RGMII_RXID:
++	case PHY_INTERFACE_MODE_RGMII_TXID:
++		dwmac->enable_eth_ck = dwmac->eth_clk_sel_reg ||
++				       dwmac->ext_phyclk;
++		return 0;
++	default:
++		dwmac->enable_eth_ck = false;
++		dev_err(dwmac->dev, "Mode %s not supported",
++			phy_modes(plat_dat->mac_interface));
++		return -EINVAL;
++	}
++}
++
+ static int stm32mp1_validate_ethck_rate(struct plat_stmmacenet_data *plat_dat)
+ {
+ 	struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
+@@ -194,28 +225,25 @@ static int stm32mp1_set_mode(struct plat
+ 	u32 reg = dwmac->mode_reg;
+ 	int val, ret;
+ 
+-	dwmac->enable_eth_ck = false;
++	ret = stm32mp1_select_ethck_external(plat_dat);
++	if (ret)
++		return ret;
++
+ 	switch (plat_dat->mac_interface) {
+ 	case PHY_INTERFACE_MODE_MII:
+-		if (dwmac->ext_phyclk)
+-			dwmac->enable_eth_ck = true;
+ 		val = SYSCFG_PMCR_ETH_SEL_MII;
+ 		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_MII\n");
+ 		break;
+ 	case PHY_INTERFACE_MODE_GMII:
+ 		val = SYSCFG_PMCR_ETH_SEL_GMII;
+-		if (dwmac->eth_clk_sel_reg || dwmac->ext_phyclk) {
+-			dwmac->enable_eth_ck = true;
++		if (dwmac->enable_eth_ck)
+ 			val |= SYSCFG_PMCR_ETH_CLK_SEL;
+-		}
+ 		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_GMII\n");
+ 		break;
+ 	case PHY_INTERFACE_MODE_RMII:
+ 		val = SYSCFG_PMCR_ETH_SEL_RMII;
+-		if (dwmac->eth_ref_clk_sel_reg || dwmac->ext_phyclk) {
+-			dwmac->enable_eth_ck = true;
++		if (dwmac->enable_eth_ck)
+ 			val |= SYSCFG_PMCR_ETH_REF_CLK_SEL;
+-		}
+ 		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_RMII\n");
+ 		break;
+ 	case PHY_INTERFACE_MODE_RGMII:
+@@ -223,10 +251,8 @@ static int stm32mp1_set_mode(struct plat
+ 	case PHY_INTERFACE_MODE_RGMII_RXID:
+ 	case PHY_INTERFACE_MODE_RGMII_TXID:
+ 		val = SYSCFG_PMCR_ETH_SEL_RGMII;
+-		if (dwmac->eth_clk_sel_reg || dwmac->ext_phyclk) {
+-			dwmac->enable_eth_ck = true;
++		if (dwmac->enable_eth_ck)
+ 			val |= SYSCFG_PMCR_ETH_CLK_SEL;
+-		}
+ 		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_RGMII\n");
+ 		break;
+ 	default:
diff --git a/target/linux/stm32/patches-6.6/005-net-stmmac-dwmac-stm32-Extract-PMCR-configuration.patch b/target/linux/stm32/patches-6.6/005-net-stmmac-dwmac-stm32-Extract-PMCR-configuration.patch
new file mode 100644
index 0000000000..b28884df58
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/005-net-stmmac-dwmac-stm32-Extract-PMCR-configuration.patch
@@ -0,0 +1,71 @@
+From bb7ab910631ee0ade0758a3c4aa8dadc3b6934b6 Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex at denx.de>
+Date: Tue, 11 Jun 2024 10:36:02 +0200
+Subject: [PATCH 5/8] net: stmmac: dwmac-stm32: Extract PMCR configuration
+
+Pull the PMCR clock mux configuration into a separate function. This is
+the final change of three, which moves external clock rate validation,
+external clock selector decoding, and clock mux configuration into
+separate functions. This should make the code easier to understand.
+No functional change intended.
+
+Signed-off-by: Marek Vasut <marex at denx.de>
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Signed-off-by: Paolo Abeni <pabeni at redhat.com>
+---
+ .../net/ethernet/stmicro/stmmac/dwmac-stm32.c | 27 ++++++++++++-------
+ 1 file changed, 17 insertions(+), 10 deletions(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
+@@ -219,15 +219,11 @@ static int stm32mp1_validate_ethck_rate(
+ 	return -EINVAL;
+ }
+ 
+-static int stm32mp1_set_mode(struct plat_stmmacenet_data *plat_dat)
++static int stm32mp1_configure_pmcr(struct plat_stmmacenet_data *plat_dat)
+ {
+ 	struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
+ 	u32 reg = dwmac->mode_reg;
+-	int val, ret;
+-
+-	ret = stm32mp1_select_ethck_external(plat_dat);
+-	if (ret)
+-		return ret;
++	int val;
+ 
+ 	switch (plat_dat->mac_interface) {
+ 	case PHY_INTERFACE_MODE_MII:
+@@ -262,10 +258,6 @@ static int stm32mp1_set_mode(struct plat
+ 		return -EINVAL;
+ 	}
+ 
+-	ret = stm32mp1_validate_ethck_rate(plat_dat);
+-	if (ret)
+-		return ret;
+-
+ 	/* Need to update PMCCLRR (clear register) */
+ 	regmap_write(dwmac->regmap, reg + SYSCFG_PMCCLRR_OFFSET,
+ 		     dwmac->ops->syscfg_eth_mask);
+@@ -275,6 +267,21 @@ static int stm32mp1_set_mode(struct plat
+ 				 dwmac->ops->syscfg_eth_mask, val);
+ }
+ 
++static int stm32mp1_set_mode(struct plat_stmmacenet_data *plat_dat)
++{
++	int ret;
++
++	ret = stm32mp1_select_ethck_external(plat_dat);
++	if (ret)
++		return ret;
++
++	ret = stm32mp1_validate_ethck_rate(plat_dat);
++	if (ret)
++		return ret;
++
++	return stm32mp1_configure_pmcr(plat_dat);
++}
++
+ static int stm32mcu_set_mode(struct plat_stmmacenet_data *plat_dat)
+ {
+ 	struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
diff --git a/target/linux/stm32/patches-6.6/006-net-stmmac-dwmac-stm32-Clean-up-the-debug-prints.patch b/target/linux/stm32/patches-6.6/006-net-stmmac-dwmac-stm32-Clean-up-the-debug-prints.patch
new file mode 100644
index 0000000000..45050ae077
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/006-net-stmmac-dwmac-stm32-Clean-up-the-debug-prints.patch
@@ -0,0 +1,83 @@
+From 0476213f50452446fedd1a918b7bc72eb39a4c46 Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex at denx.de>
+Date: Tue, 11 Jun 2024 10:36:03 +0200
+Subject: [PATCH 6/8] net: stmmac: dwmac-stm32: Clean up the debug prints
+
+Use dev_err()/dev_dbg() and phy_modes() to print PHY mode instead of
+pr_debug() and hand-written PHY mode decoding. This way, each debug
+print has associated device with it and duplicated mode decoding is
+removed.
+
+Signed-off-by: Marek Vasut <marex at denx.de>
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Signed-off-by: Paolo Abeni <pabeni at redhat.com>
+---
+ .../net/ethernet/stmicro/stmmac/dwmac-stm32.c  | 18 ++++++++----------
+ 1 file changed, 8 insertions(+), 10 deletions(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
+@@ -228,19 +228,16 @@ static int stm32mp1_configure_pmcr(struc
+ 	switch (plat_dat->mac_interface) {
+ 	case PHY_INTERFACE_MODE_MII:
+ 		val = SYSCFG_PMCR_ETH_SEL_MII;
+-		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_MII\n");
+ 		break;
+ 	case PHY_INTERFACE_MODE_GMII:
+ 		val = SYSCFG_PMCR_ETH_SEL_GMII;
+ 		if (dwmac->enable_eth_ck)
+ 			val |= SYSCFG_PMCR_ETH_CLK_SEL;
+-		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_GMII\n");
+ 		break;
+ 	case PHY_INTERFACE_MODE_RMII:
+ 		val = SYSCFG_PMCR_ETH_SEL_RMII;
+ 		if (dwmac->enable_eth_ck)
+ 			val |= SYSCFG_PMCR_ETH_REF_CLK_SEL;
+-		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_RMII\n");
+ 		break;
+ 	case PHY_INTERFACE_MODE_RGMII:
+ 	case PHY_INTERFACE_MODE_RGMII_ID:
+@@ -249,15 +246,16 @@ static int stm32mp1_configure_pmcr(struc
+ 		val = SYSCFG_PMCR_ETH_SEL_RGMII;
+ 		if (dwmac->enable_eth_ck)
+ 			val |= SYSCFG_PMCR_ETH_CLK_SEL;
+-		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_RGMII\n");
+ 		break;
+ 	default:
+-		pr_debug("SYSCFG init :  Do not manage %d interface\n",
+-			 plat_dat->mac_interface);
++		dev_err(dwmac->dev, "Mode %s not supported",
++			phy_modes(plat_dat->mac_interface));
+ 		/* Do not manage others interfaces */
+ 		return -EINVAL;
+ 	}
+ 
++	dev_dbg(dwmac->dev, "Mode %s", phy_modes(plat_dat->mac_interface));
++
+ 	/* Need to update PMCCLRR (clear register) */
+ 	regmap_write(dwmac->regmap, reg + SYSCFG_PMCCLRR_OFFSET,
+ 		     dwmac->ops->syscfg_eth_mask);
+@@ -291,19 +289,19 @@ static int stm32mcu_set_mode(struct plat
+ 	switch (plat_dat->mac_interface) {
+ 	case PHY_INTERFACE_MODE_MII:
+ 		val = SYSCFG_MCU_ETH_SEL_MII;
+-		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_MII\n");
+ 		break;
+ 	case PHY_INTERFACE_MODE_RMII:
+ 		val = SYSCFG_MCU_ETH_SEL_RMII;
+-		pr_debug("SYSCFG init : PHY_INTERFACE_MODE_RMII\n");
+ 		break;
+ 	default:
+-		pr_debug("SYSCFG init :  Do not manage %d interface\n",
+-			 plat_dat->mac_interface);
++		dev_err(dwmac->dev, "Mode %s not supported",
++			phy_modes(plat_dat->mac_interface));
+ 		/* Do not manage others interfaces */
+ 		return -EINVAL;
+ 	}
+ 
++	dev_dbg(dwmac->dev, "Mode %s", phy_modes(plat_dat->mac_interface));
++
+ 	return regmap_update_bits(dwmac->regmap, reg,
+ 				 dwmac->ops->syscfg_eth_mask, val << 23);
+ }
diff --git a/target/linux/stm32/patches-6.6/007-net-stmmac-dwmac-stm32-Mask-support-for-PMCR-configu.patch b/target/linux/stm32/patches-6.6/007-net-stmmac-dwmac-stm32-Mask-support-for-PMCR-configu.patch
new file mode 100644
index 0000000000..336378abb3
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/007-net-stmmac-dwmac-stm32-Mask-support-for-PMCR-configu.patch
@@ -0,0 +1,101 @@
+From 796669a85c5c4fa80cb8790e9adcccbbd99750e8 Mon Sep 17 00:00:00 2001
+From: Christophe Roullier <christophe.roullier at foss.st.com>
+Date: Tue, 11 Jun 2024 10:36:05 +0200
+Subject: [PATCH 7/8] net: stmmac: dwmac-stm32: Mask support for PMCR
+ configuration
+
+Add possibility to have second argument in syscon property to manage
+mask. This mask will be used to address right BITFIELDS of PMCR register.
+
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Reviewed-by: Marek Vasut <marex at denx.de>
+Signed-off-by: Paolo Abeni <pabeni at redhat.com>
+---
+ .../net/ethernet/stmicro/stmmac/dwmac-stm32.c | 28 +++++++++++++------
+ 1 file changed, 19 insertions(+), 9 deletions(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
+@@ -90,6 +90,7 @@ struct stm32_dwmac {
+ 	int eth_ref_clk_sel_reg;
+ 	int irq_pwr_wakeup;
+ 	u32 mode_reg;		 /* MAC glue-logic mode register */
++	u32 mode_mask;
+ 	struct regmap *regmap;
+ 	u32 speed;
+ 	const struct stm32_ops *ops;
+@@ -102,8 +103,8 @@ struct stm32_ops {
+ 	void (*resume)(struct stm32_dwmac *dwmac);
+ 	int (*parse_data)(struct stm32_dwmac *dwmac,
+ 			  struct device *dev);
+-	u32 syscfg_eth_mask;
+ 	bool clk_rx_enable_in_suspend;
++	u32 syscfg_clr_off;
+ };
+ 
+ static int stm32_dwmac_clk_enable(struct stm32_dwmac *dwmac, bool resume)
+@@ -256,13 +257,16 @@ static int stm32mp1_configure_pmcr(struc
+ 
+ 	dev_dbg(dwmac->dev, "Mode %s", phy_modes(plat_dat->mac_interface));
+ 
++	/* Shift value at correct ethernet MAC offset in SYSCFG_PMCSETR */
++	val <<= ffs(dwmac->mode_mask) - ffs(SYSCFG_MP1_ETH_MASK);
++
+ 	/* Need to update PMCCLRR (clear register) */
+-	regmap_write(dwmac->regmap, reg + SYSCFG_PMCCLRR_OFFSET,
+-		     dwmac->ops->syscfg_eth_mask);
++	regmap_write(dwmac->regmap, dwmac->ops->syscfg_clr_off,
++		     dwmac->mode_mask);
+ 
+ 	/* Update PMCSETR (set register) */
+ 	return regmap_update_bits(dwmac->regmap, reg,
+-				 dwmac->ops->syscfg_eth_mask, val);
++				 dwmac->mode_mask, val);
+ }
+ 
+ static int stm32mp1_set_mode(struct plat_stmmacenet_data *plat_dat)
+@@ -303,7 +307,7 @@ static int stm32mcu_set_mode(struct plat
+ 	dev_dbg(dwmac->dev, "Mode %s", phy_modes(plat_dat->mac_interface));
+ 
+ 	return regmap_update_bits(dwmac->regmap, reg,
+-				 dwmac->ops->syscfg_eth_mask, val << 23);
++				 SYSCFG_MCU_ETH_MASK, val << 23);
+ }
+ 
+ static void stm32_dwmac_clk_disable(struct stm32_dwmac *dwmac, bool suspend)
+@@ -348,8 +352,15 @@ static int stm32_dwmac_parse_data(struct
+ 		return PTR_ERR(dwmac->regmap);
+ 
+ 	err = of_property_read_u32_index(np, "st,syscon", 1, &dwmac->mode_reg);
+-	if (err)
++	if (err) {
+ 		dev_err(dev, "Can't get sysconfig mode offset (%d)\n", err);
++		return err;
++	}
++
++	dwmac->mode_mask = SYSCFG_MP1_ETH_MASK;
++	err = of_property_read_u32_index(np, "st,syscon", 2, &dwmac->mode_mask);
++	if (err)
++		dev_dbg(dev, "Warning sysconfig register mask not set\n");
+ 
+ 	return err;
+ }
+@@ -540,8 +551,7 @@ static SIMPLE_DEV_PM_OPS(stm32_dwmac_pm_
+ 	stm32_dwmac_suspend, stm32_dwmac_resume);
+ 
+ static struct stm32_ops stm32mcu_dwmac_data = {
+-	.set_mode = stm32mcu_set_mode,
+-	.syscfg_eth_mask = SYSCFG_MCU_ETH_MASK
++	.set_mode = stm32mcu_set_mode
+ };
+ 
+ static struct stm32_ops stm32mp1_dwmac_data = {
+@@ -549,7 +559,7 @@ static struct stm32_ops stm32mp1_dwmac_d
+ 	.suspend = stm32mp1_suspend,
+ 	.resume = stm32mp1_resume,
+ 	.parse_data = stm32mp1_parse_data,
+-	.syscfg_eth_mask = SYSCFG_MP1_ETH_MASK,
++	.syscfg_clr_off = 0x44,
+ 	.clk_rx_enable_in_suspend = true
+ };
+ 
diff --git a/target/linux/stm32/patches-6.6/008-net-stmmac-dwmac-stm32-add-management-of-stm32mp13-f.patch b/target/linux/stm32/patches-6.6/008-net-stmmac-dwmac-stm32-add-management-of-stm32mp13-f.patch
new file mode 100644
index 0000000000..c2526019e2
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/008-net-stmmac-dwmac-stm32-add-management-of-stm32mp13-f.patch
@@ -0,0 +1,94 @@
+From 8d28aaf5d5dbfd1f452286fa6ac571df0bcf00ad Mon Sep 17 00:00:00 2001
+From: Christophe Roullier <christophe.roullier at foss.st.com>
+Date: Tue, 11 Jun 2024 10:36:06 +0200
+Subject: [PATCH 8/8] net: stmmac: dwmac-stm32: add management of stm32mp13 for
+ stm32
+
+Add Ethernet support for STM32MP13.
+STM32MP13 is STM32 SOC with 2 GMACs instances.
+GMAC IP version is SNPS 4.20.
+GMAC IP configure with 1 RX and 1 TX queue.
+DMA HW capability register supported
+RX Checksum Offload Engine supported
+TX Checksum insertion supported
+Wake-Up On Lan supported
+TSO supported
+
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Reviewed-by: Marek Vasut <marex at denx.de>
+Signed-off-by: Paolo Abeni <pabeni at redhat.com>
+---
+ .../net/ethernet/stmicro/stmmac/dwmac-stm32.c | 32 ++++++++++++++++---
+ 1 file changed, 28 insertions(+), 4 deletions(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
+@@ -104,6 +104,7 @@ struct stm32_ops {
+ 	int (*parse_data)(struct stm32_dwmac *dwmac,
+ 			  struct device *dev);
+ 	bool clk_rx_enable_in_suspend;
++	bool is_mp13;
+ 	u32 syscfg_clr_off;
+ };
+ 
+@@ -224,11 +225,18 @@ static int stm32mp1_configure_pmcr(struc
+ {
+ 	struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
+ 	u32 reg = dwmac->mode_reg;
+-	int val;
++	int val = 0;
+ 
+ 	switch (plat_dat->mac_interface) {
+ 	case PHY_INTERFACE_MODE_MII:
+-		val = SYSCFG_PMCR_ETH_SEL_MII;
++		/*
++		 * STM32MP15xx supports both MII and GMII, STM32MP13xx MII only.
++		 * SYSCFG_PMCSETR ETH_SELMII is present only on STM32MP15xx and
++		 * acts as a selector between 0:GMII and 1:MII. As STM32MP13xx
++		 * supports only MII, ETH_SELMII is not present.
++		 */
++		if (!dwmac->ops->is_mp13)  /* Select MII mode on STM32MP15xx */
++			val |= SYSCFG_PMCR_ETH_SEL_MII;
+ 		break;
+ 	case PHY_INTERFACE_MODE_GMII:
+ 		val = SYSCFG_PMCR_ETH_SEL_GMII;
+@@ -359,8 +367,12 @@ static int stm32_dwmac_parse_data(struct
+ 
+ 	dwmac->mode_mask = SYSCFG_MP1_ETH_MASK;
+ 	err = of_property_read_u32_index(np, "st,syscon", 2, &dwmac->mode_mask);
+-	if (err)
+-		dev_dbg(dev, "Warning sysconfig register mask not set\n");
++	if (err) {
++		if (dwmac->ops->is_mp13)
++			dev_err(dev, "Sysconfig register mask must be set (%d)\n", err);
++		else
++			dev_dbg(dev, "Warning sysconfig register mask not set\n");
++	}
+ 
+ 	return err;
+ }
+@@ -560,12 +572,24 @@ static struct stm32_ops stm32mp1_dwmac_d
+ 	.resume = stm32mp1_resume,
+ 	.parse_data = stm32mp1_parse_data,
+ 	.syscfg_clr_off = 0x44,
++	.is_mp13 = false,
++	.clk_rx_enable_in_suspend = true
++};
++
++static struct stm32_ops stm32mp13_dwmac_data = {
++	.set_mode = stm32mp1_set_mode,
++	.suspend = stm32mp1_suspend,
++	.resume = stm32mp1_resume,
++	.parse_data = stm32mp1_parse_data,
++	.syscfg_clr_off = 0x08,
++	.is_mp13 = true,
+ 	.clk_rx_enable_in_suspend = true
+ };
+ 
+ static const struct of_device_id stm32_dwmac_match[] = {
+ 	{ .compatible = "st,stm32-dwmac", .data = &stm32mcu_dwmac_data},
+ 	{ .compatible = "st,stm32mp1-dwmac", .data = &stm32mp1_dwmac_data},
++	{ .compatible = "st,stm32mp13-dwmac", .data = &stm32mp13_dwmac_data},
+ 	{ }
+ };
+ MODULE_DEVICE_TABLE(of, stm32_dwmac_match);
diff --git a/target/linux/stm32/patches-6.6/009-ARM-dts-stm32-add-ETZPC-as-a-system-bus-for-STM32MP1.patch b/target/linux/stm32/patches-6.6/009-ARM-dts-stm32-add-ETZPC-as-a-system-bus-for-STM32MP1.patch
new file mode 100644
index 0000000000..f00001bc47
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/009-ARM-dts-stm32-add-ETZPC-as-a-system-bus-for-STM32MP1.patch
@@ -0,0 +1,1192 @@
+From d788961c5b25d9d822c4230bfbc536a6736b91ff Mon Sep 17 00:00:00 2001
+From: Gatien Chevallier <gatien.chevallier at foss.st.com>
+Date: Fri, 5 Jan 2024 14:04:03 +0100
+Subject: [PATCH 1/5] ARM: dts: stm32: add ETZPC as a system bus for STM32MP13x
+ boards
+
+ETZPC is a firewall controller. Put all peripherals filtered by the
+ETZPC as ETZPC subnodes and keep the "simple-bus" compatible for
+backward compatibility.
+
+Signed-off-by: Gatien Chevallier <gatien.chevallier at foss.st.com>
+Signed-off-by: Alexandre Torgue <alexandre.torgue at foss.st.com>
+---
+ arch/arm/boot/dts/st/stm32mp131.dtsi  | 1020 +++++++++++++------------
+ arch/arm/boot/dts/st/stm32mp133.dtsi  |   50 +-
+ arch/arm/boot/dts/st/stm32mp13xc.dtsi |   18 +-
+ arch/arm/boot/dts/st/stm32mp13xf.dtsi |   18 +-
+ 4 files changed, 569 insertions(+), 537 deletions(-)
+
+--- a/arch/arm/boot/dts/st/stm32mp131.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp131.dtsi
+@@ -745,340 +745,6 @@
+ 			dma-channels = <16>;
+ 		};
+ 
+-		adc_2: adc at 48004000 {
+-			compatible = "st,stm32mp13-adc-core";
+-			reg = <0x48004000 0x400>;
+-			interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc ADC2>, <&rcc ADC2_K>;
+-			clock-names = "bus", "adc";
+-			interrupt-controller;
+-			#interrupt-cells = <1>;
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			status = "disabled";
+-
+-			adc2: adc at 0 {
+-				compatible = "st,stm32mp13-adc";
+-				#io-channel-cells = <1>;
+-				#address-cells = <1>;
+-				#size-cells = <0>;
+-				reg = <0x0>;
+-				interrupt-parent = <&adc_2>;
+-				interrupts = <0>;
+-				dmas = <&dmamux1 10 0x400 0x80000001>;
+-				dma-names = "rx";
+-				status = "disabled";
+-
+-				channel at 13 {
+-					reg = <13>;
+-					label = "vrefint";
+-				};
+-				channel at 14 {
+-					reg = <14>;
+-					label = "vddcore";
+-				};
+-				channel at 16 {
+-					reg = <16>;
+-					label = "vddcpu";
+-				};
+-				channel at 17 {
+-					reg = <17>;
+-					label = "vddq_ddr";
+-				};
+-			};
+-		};
+-
+-		usbotg_hs: usb at 49000000 {
+-			compatible = "st,stm32mp15-hsotg", "snps,dwc2";
+-			reg = <0x49000000 0x40000>;
+-			clocks = <&rcc USBO_K>;
+-			clock-names = "otg";
+-			resets = <&rcc USBO_R>;
+-			reset-names = "dwc2";
+-			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+-			g-rx-fifo-size = <512>;
+-			g-np-tx-fifo-size = <32>;
+-			g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
+-			dr_mode = "otg";
+-			otg-rev = <0x200>;
+-			usb33d-supply = <&scmi_usb33>;
+-			status = "disabled";
+-		};
+-
+-		usart1: serial at 4c000000 {
+-			compatible = "st,stm32h7-uart";
+-			reg = <0x4c000000 0x400>;
+-			interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc USART1_K>;
+-			resets = <&rcc USART1_R>;
+-			wakeup-source;
+-			dmas = <&dmamux1 41 0x400 0x5>,
+-			       <&dmamux1 42 0x400 0x1>;
+-			dma-names = "rx", "tx";
+-			status = "disabled";
+-		};
+-
+-		usart2: serial at 4c001000 {
+-			compatible = "st,stm32h7-uart";
+-			reg = <0x4c001000 0x400>;
+-			interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc USART2_K>;
+-			resets = <&rcc USART2_R>;
+-			wakeup-source;
+-			dmas = <&dmamux1 43 0x400 0x5>,
+-			       <&dmamux1 44 0x400 0x1>;
+-			dma-names = "rx", "tx";
+-			status = "disabled";
+-		};
+-
+-		i2s4: audio-controller at 4c002000 {
+-			compatible = "st,stm32h7-i2s";
+-			reg = <0x4c002000 0x400>;
+-			#sound-dai-cells = <0>;
+-			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+-			dmas = <&dmamux1 83 0x400 0x01>,
+-			       <&dmamux1 84 0x400 0x01>;
+-			dma-names = "rx", "tx";
+-			status = "disabled";
+-		};
+-
+-		spi4: spi at 4c002000 {
+-			compatible = "st,stm32h7-spi";
+-			reg = <0x4c002000 0x400>;
+-			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc SPI4_K>;
+-			resets = <&rcc SPI4_R>;
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			dmas = <&dmamux1 83 0x400 0x01>,
+-			       <&dmamux1 84 0x400 0x01>;
+-			dma-names = "rx", "tx";
+-			status = "disabled";
+-		};
+-
+-		spi5: spi at 4c003000 {
+-			compatible = "st,stm32h7-spi";
+-			reg = <0x4c003000 0x400>;
+-			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc SPI5_K>;
+-			resets = <&rcc SPI5_R>;
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			dmas = <&dmamux1 85 0x400 0x01>,
+-			       <&dmamux1 86 0x400 0x01>;
+-			dma-names = "rx", "tx";
+-			status = "disabled";
+-		};
+-
+-		i2c3: i2c at 4c004000 {
+-			compatible = "st,stm32mp13-i2c";
+-			reg = <0x4c004000 0x400>;
+-			interrupt-names = "event", "error";
+-			interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
+-				     <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc I2C3_K>;
+-			resets = <&rcc I2C3_R>;
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			dmas = <&dmamux1 73 0x400 0x1>,
+-			       <&dmamux1 74 0x400 0x1>;
+-			dma-names = "rx", "tx";
+-			st,syscfg-fmp = <&syscfg 0x4 0x4>;
+-			i2c-analog-filter;
+-			status = "disabled";
+-		};
+-
+-		i2c4: i2c at 4c005000 {
+-			compatible = "st,stm32mp13-i2c";
+-			reg = <0x4c005000 0x400>;
+-			interrupt-names = "event", "error";
+-			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
+-				     <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc I2C4_K>;
+-			resets = <&rcc I2C4_R>;
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			dmas = <&dmamux1 75 0x400 0x1>,
+-			       <&dmamux1 76 0x400 0x1>;
+-			dma-names = "rx", "tx";
+-			st,syscfg-fmp = <&syscfg 0x4 0x8>;
+-			i2c-analog-filter;
+-			status = "disabled";
+-		};
+-
+-		i2c5: i2c at 4c006000 {
+-			compatible = "st,stm32mp13-i2c";
+-			reg = <0x4c006000 0x400>;
+-			interrupt-names = "event", "error";
+-			interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+-				     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc I2C5_K>;
+-			resets = <&rcc I2C5_R>;
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			dmas = <&dmamux1 115 0x400 0x1>,
+-			       <&dmamux1 116 0x400 0x1>;
+-			dma-names = "rx", "tx";
+-			st,syscfg-fmp = <&syscfg 0x4 0x10>;
+-			i2c-analog-filter;
+-			status = "disabled";
+-		};
+-
+-		timers12: timer at 4c007000 {
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			compatible = "st,stm32-timers";
+-			reg = <0x4c007000 0x400>;
+-			interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
+-			interrupt-names = "global";
+-			clocks = <&rcc TIM12_K>;
+-			clock-names = "int";
+-			status = "disabled";
+-
+-			pwm {
+-				compatible = "st,stm32-pwm";
+-				#pwm-cells = <3>;
+-				status = "disabled";
+-			};
+-
+-			timer at 11 {
+-				compatible = "st,stm32h7-timer-trigger";
+-				reg = <11>;
+-				status = "disabled";
+-			};
+-		};
+-
+-		timers13: timer at 4c008000 {
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			compatible = "st,stm32-timers";
+-			reg = <0x4c008000 0x400>;
+-			interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
+-			interrupt-names = "global";
+-			clocks = <&rcc TIM13_K>;
+-			clock-names = "int";
+-			status = "disabled";
+-
+-			pwm {
+-				compatible = "st,stm32-pwm";
+-				#pwm-cells = <3>;
+-				status = "disabled";
+-			};
+-
+-			timer at 12 {
+-				compatible = "st,stm32h7-timer-trigger";
+-				reg = <12>;
+-				status = "disabled";
+-			};
+-		};
+-
+-		timers14: timer at 4c009000 {
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			compatible = "st,stm32-timers";
+-			reg = <0x4c009000 0x400>;
+-			interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
+-			interrupt-names = "global";
+-			clocks = <&rcc TIM14_K>;
+-			clock-names = "int";
+-			status = "disabled";
+-
+-			pwm {
+-				compatible = "st,stm32-pwm";
+-				#pwm-cells = <3>;
+-				status = "disabled";
+-			};
+-
+-			timer at 13 {
+-				compatible = "st,stm32h7-timer-trigger";
+-				reg = <13>;
+-				status = "disabled";
+-			};
+-		};
+-
+-		timers15: timer at 4c00a000 {
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			compatible = "st,stm32-timers";
+-			reg = <0x4c00a000 0x400>;
+-			interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
+-			interrupt-names = "global";
+-			clocks = <&rcc TIM15_K>;
+-			clock-names = "int";
+-			dmas = <&dmamux1 105 0x400 0x1>,
+-			       <&dmamux1 106 0x400 0x1>,
+-			       <&dmamux1 107 0x400 0x1>,
+-			       <&dmamux1 108 0x400 0x1>;
+-			dma-names = "ch1", "up", "trig", "com";
+-			status = "disabled";
+-
+-			pwm {
+-				compatible = "st,stm32-pwm";
+-				#pwm-cells = <3>;
+-				status = "disabled";
+-			};
+-
+-			timer at 14 {
+-				compatible = "st,stm32h7-timer-trigger";
+-				reg = <14>;
+-				status = "disabled";
+-			};
+-		};
+-
+-		timers16: timer at 4c00b000 {
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			compatible = "st,stm32-timers";
+-			reg = <0x4c00b000 0x400>;
+-			interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+-			interrupt-names = "global";
+-			clocks = <&rcc TIM16_K>;
+-			clock-names = "int";
+-			dmas = <&dmamux1 109 0x400 0x1>,
+-			       <&dmamux1 110 0x400 0x1>;
+-			dma-names = "ch1", "up";
+-			status = "disabled";
+-
+-			pwm {
+-				compatible = "st,stm32-pwm";
+-				#pwm-cells = <3>;
+-				status = "disabled";
+-			};
+-
+-			timer at 15 {
+-				compatible = "st,stm32h7-timer-trigger";
+-				reg = <15>;
+-				status = "disabled";
+-			};
+-		};
+-
+-		timers17: timer at 4c00c000 {
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			compatible = "st,stm32-timers";
+-			reg = <0x4c00c000 0x400>;
+-			interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+-			interrupt-names = "global";
+-			clocks = <&rcc TIM17_K>;
+-			clock-names = "int";
+-			dmas = <&dmamux1 111 0x400 0x1>,
+-			       <&dmamux1 112 0x400 0x1>;
+-			dma-names = "ch1", "up";
+-			status = "disabled";
+-
+-			pwm {
+-				compatible = "st,stm32-pwm";
+-				#pwm-cells = <3>;
+-				status = "disabled";
+-			};
+-
+-			timer at 16 {
+-				compatible = "st,stm32h7-timer-trigger";
+-				reg = <16>;
+-				status = "disabled";
+-			};
+-		};
+-
+ 		rcc: rcc at 50000000 {
+ 			compatible = "st,stm32mp13-rcc", "syscon";
+ 			reg = <0x50000000 0x1000>;
+@@ -1105,69 +771,6 @@
+ 			clocks = <&rcc SYSCFG>;
+ 		};
+ 
+-		lptimer2: timer at 50021000 {
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			compatible = "st,stm32-lptimer";
+-			reg = <0x50021000 0x400>;
+-			interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc LPTIM2_K>;
+-			clock-names = "mux";
+-			wakeup-source;
+-			status = "disabled";
+-
+-			pwm {
+-				compatible = "st,stm32-pwm-lp";
+-				#pwm-cells = <3>;
+-				status = "disabled";
+-			};
+-
+-			trigger at 1 {
+-				compatible = "st,stm32-lptimer-trigger";
+-				reg = <1>;
+-				status = "disabled";
+-			};
+-
+-			counter {
+-				compatible = "st,stm32-lptimer-counter";
+-				status = "disabled";
+-			};
+-
+-			timer {
+-				compatible = "st,stm32-lptimer-timer";
+-				status = "disabled";
+-			};
+-		};
+-
+-		lptimer3: timer at 50022000 {
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			compatible = "st,stm32-lptimer";
+-			reg = <0x50022000 0x400>;
+-			interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc LPTIM3_K>;
+-			clock-names = "mux";
+-			wakeup-source;
+-			status = "disabled";
+-
+-			pwm {
+-				compatible = "st,stm32-pwm-lp";
+-				#pwm-cells = <3>;
+-				status = "disabled";
+-			};
+-
+-			trigger at 2 {
+-				compatible = "st,stm32-lptimer-trigger";
+-				reg = <2>;
+-				status = "disabled";
+-			};
+-
+-			timer {
+-				compatible = "st,stm32-lptimer-timer";
+-				status = "disabled";
+-			};
+-		};
+-
+ 		lptimer4: timer at 50023000 {
+ 			compatible = "st,stm32-lptimer";
+ 			reg = <0x50023000 0x400>;
+@@ -1220,79 +823,10 @@
+ 			dma-requests = <48>;
+ 		};
+ 
+-		fmc: memory-controller at 58002000 {
+-			compatible = "st,stm32mp1-fmc2-ebi";
+-			reg = <0x58002000 0x1000>;
+-			ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
+-				 <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
+-				 <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
+-				 <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
+-				 <4 0 0x80000000 0x10000000>; /* NAND */
+-			#address-cells = <2>;
+-			#size-cells = <1>;
+-			clocks = <&rcc FMC_K>;
+-			resets = <&rcc FMC_R>;
+-			status = "disabled";
+-
+-			nand-controller at 4,0 {
+-				compatible = "st,stm32mp1-fmc2-nfc";
+-				reg = <4 0x00000000 0x1000>,
+-				      <4 0x08010000 0x1000>,
+-				      <4 0x08020000 0x1000>,
+-				      <4 0x01000000 0x1000>,
+-				      <4 0x09010000 0x1000>,
+-				      <4 0x09020000 0x1000>;
+-				#address-cells = <1>;
+-				#size-cells = <0>;
+-				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+-				dmas = <&mdma 24 0x2 0x12000a02 0x0 0x0>,
+-				       <&mdma 24 0x2 0x12000a08 0x0 0x0>,
+-				       <&mdma 25 0x2 0x12000a0a 0x0 0x0>;
+-				dma-names = "tx", "rx", "ecc";
+-				status = "disabled";
+-			};
+-		};
+-
+-		qspi: spi at 58003000 {
+-			compatible = "st,stm32f469-qspi";
+-			reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
+-			reg-names = "qspi", "qspi_mm";
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
+-			dmas = <&mdma 26 0x2 0x10100002 0x0 0x0>,
+-			       <&mdma 26 0x2 0x10100008 0x0 0x0>;
+-			dma-names = "tx", "rx";
+-			clocks = <&rcc QSPI_K>;
+-			resets = <&rcc QSPI_R>;
+-			status = "disabled";
+-		};
+-
+-		sdmmc1: mmc at 58005000 {
+-			compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
+-			arm,primecell-periphid = <0x20253180>;
+-			reg = <0x58005000 0x1000>, <0x58006000 0x1000>;
+-			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc SDMMC1_K>;
+-			clock-names = "apb_pclk";
+-			resets = <&rcc SDMMC1_R>;
+-			cap-sd-highspeed;
+-			cap-mmc-highspeed;
+-			max-frequency = <130000000>;
+-			status = "disabled";
+-		};
+-
+-		sdmmc2: mmc at 58007000 {
+-			compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
+-			arm,primecell-periphid = <0x20253180>;
+-			reg = <0x58007000 0x1000>, <0x58008000 0x1000>;
+-			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc SDMMC2_K>;
+-			clock-names = "apb_pclk";
+-			resets = <&rcc SDMMC2_R>;
+-			cap-sd-highspeed;
+-			cap-mmc-highspeed;
+-			max-frequency = <130000000>;
++		crc1: crc at 58009000 {
++			compatible = "st,stm32f7-crc";
++			reg = <0x58009000 0x400>;
++			clocks = <&rcc CRC1>;
+ 			status = "disabled";
+ 		};
+ 
+@@ -1323,29 +857,6 @@
+ 			status = "disabled";
+ 		};
+ 
+-		usbphyc: usbphyc at 5a006000 {
+-			#address-cells = <1>;
+-			#size-cells = <0>;
+-			#clock-cells = <0>;
+-			compatible = "st,stm32mp1-usbphyc";
+-			reg = <0x5a006000 0x1000>;
+-			clocks = <&rcc USBPHY_K>;
+-			resets = <&rcc USBPHY_R>;
+-			vdda1v1-supply = <&scmi_reg11>;
+-			vdda1v8-supply = <&scmi_reg18>;
+-			status = "disabled";
+-
+-			usbphyc_port0: usb-phy at 0 {
+-				#phy-cells = <0>;
+-				reg = <0>;
+-			};
+-
+-			usbphyc_port1: usb-phy at 1 {
+-				#phy-cells = <1>;
+-				reg = <1>;
+-			};
+-		};
+-
+ 		rtc: rtc at 5c004000 {
+ 			compatible = "st,stm32mp1-rtc";
+ 			reg = <0x5c004000 0x400>;
+@@ -1374,6 +885,529 @@
+ 			};
+ 		};
+ 
++		etzpc: bus at 5c007000 {
++			compatible = "simple-bus";
++			reg = <0x5c007000 0x400>;
++			#address-cells = <1>;
++			#size-cells = <1>;
++			ranges;
++
++			adc_2: adc at 48004000 {
++				compatible = "st,stm32mp13-adc-core";
++				reg = <0x48004000 0x400>;
++				interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc ADC2>, <&rcc ADC2_K>;
++				clock-names = "bus", "adc";
++				interrupt-controller;
++				#interrupt-cells = <1>;
++				#address-cells = <1>;
++				#size-cells = <0>;
++				status = "disabled";
++
++				adc2: adc at 0 {
++					compatible = "st,stm32mp13-adc";
++					#io-channel-cells = <1>;
++					#address-cells = <1>;
++					#size-cells = <0>;
++					reg = <0x0>;
++					interrupt-parent = <&adc_2>;
++					interrupts = <0>;
++					dmas = <&dmamux1 10 0x400 0x80000001>;
++					dma-names = "rx";
++					status = "disabled";
++
++					channel at 13 {
++						reg = <13>;
++						label = "vrefint";
++					};
++					channel at 14 {
++						reg = <14>;
++						label = "vddcore";
++					};
++					channel at 16 {
++						reg = <16>;
++						label = "vddcpu";
++					};
++					channel at 17 {
++						reg = <17>;
++						label = "vddq_ddr";
++					};
++				};
++			};
++
++			usbotg_hs: usb at 49000000 {
++				compatible = "st,stm32mp15-hsotg", "snps,dwc2";
++				reg = <0x49000000 0x40000>;
++				clocks = <&rcc USBO_K>;
++				clock-names = "otg";
++				resets = <&rcc USBO_R>;
++				reset-names = "dwc2";
++				interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
++				g-rx-fifo-size = <512>;
++				g-np-tx-fifo-size = <32>;
++				g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
++				dr_mode = "otg";
++				otg-rev = <0x200>;
++				usb33d-supply = <&scmi_usb33>;
++				status = "disabled";
++			};
++
++			usart1: serial at 4c000000 {
++				compatible = "st,stm32h7-uart";
++				reg = <0x4c000000 0x400>;
++				interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc USART1_K>;
++				resets = <&rcc USART1_R>;
++				wakeup-source;
++				dmas = <&dmamux1 41 0x400 0x5>,
++				<&dmamux1 42 0x400 0x1>;
++				dma-names = "rx", "tx";
++				status = "disabled";
++			};
++
++			usart2: serial at 4c001000 {
++				compatible = "st,stm32h7-uart";
++				reg = <0x4c001000 0x400>;
++				interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc USART2_K>;
++				resets = <&rcc USART2_R>;
++				wakeup-source;
++				dmas = <&dmamux1 43 0x400 0x5>,
++				<&dmamux1 44 0x400 0x1>;
++				dma-names = "rx", "tx";
++				status = "disabled";
++			};
++
++			i2s4: audio-controller at 4c002000 {
++				compatible = "st,stm32h7-i2s";
++				reg = <0x4c002000 0x400>;
++				#sound-dai-cells = <0>;
++				interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
++				dmas = <&dmamux1 83 0x400 0x01>,
++				<&dmamux1 84 0x400 0x01>;
++				dma-names = "rx", "tx";
++				status = "disabled";
++			};
++
++			spi4: spi at 4c002000 {
++				compatible = "st,stm32h7-spi";
++				reg = <0x4c002000 0x400>;
++				interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc SPI4_K>;
++				resets = <&rcc SPI4_R>;
++				#address-cells = <1>;
++				#size-cells = <0>;
++				dmas = <&dmamux1 83 0x400 0x01>,
++				       <&dmamux1 84 0x400 0x01>;
++				dma-names = "rx", "tx";
++				status = "disabled";
++			};
++
++			spi5: spi at 4c003000 {
++				compatible = "st,stm32h7-spi";
++				reg = <0x4c003000 0x400>;
++				interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc SPI5_K>;
++				resets = <&rcc SPI5_R>;
++				#address-cells = <1>;
++				#size-cells = <0>;
++				dmas = <&dmamux1 85 0x400 0x01>,
++				       <&dmamux1 86 0x400 0x01>;
++				dma-names = "rx", "tx";
++				status = "disabled";
++			};
++
++			i2c3: i2c at 4c004000 {
++				compatible = "st,stm32mp13-i2c";
++				reg = <0x4c004000 0x400>;
++				interrupt-names = "event", "error";
++				interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
++					     <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc I2C3_K>;
++				resets = <&rcc I2C3_R>;
++				#address-cells = <1>;
++				#size-cells = <0>;
++				dmas = <&dmamux1 73 0x400 0x1>,
++				       <&dmamux1 74 0x400 0x1>;
++				dma-names = "rx", "tx";
++				st,syscfg-fmp = <&syscfg 0x4 0x4>;
++				i2c-analog-filter;
++				status = "disabled";
++			};
++
++			i2c4: i2c at 4c005000 {
++				compatible = "st,stm32mp13-i2c";
++				reg = <0x4c005000 0x400>;
++				interrupt-names = "event", "error";
++				interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
++					     <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc I2C4_K>;
++				resets = <&rcc I2C4_R>;
++				#address-cells = <1>;
++				#size-cells = <0>;
++				dmas = <&dmamux1 75 0x400 0x1>,
++				       <&dmamux1 76 0x400 0x1>;
++				dma-names = "rx", "tx";
++				st,syscfg-fmp = <&syscfg 0x4 0x8>;
++				i2c-analog-filter;
++				status = "disabled";
++			};
++
++			i2c5: i2c at 4c006000 {
++				compatible = "st,stm32mp13-i2c";
++				reg = <0x4c006000 0x400>;
++				interrupt-names = "event", "error";
++				interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
++					     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc I2C5_K>;
++				resets = <&rcc I2C5_R>;
++				#address-cells = <1>;
++				#size-cells = <0>;
++				dmas = <&dmamux1 115 0x400 0x1>,
++				       <&dmamux1 116 0x400 0x1>;
++				dma-names = "rx", "tx";
++				st,syscfg-fmp = <&syscfg 0x4 0x10>;
++				i2c-analog-filter;
++				status = "disabled";
++			};
++
++			timers12: timer at 4c007000 {
++				#address-cells = <1>;
++				#size-cells = <0>;
++				compatible = "st,stm32-timers";
++				reg = <0x4c007000 0x400>;
++				interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
++				interrupt-names = "global";
++				clocks = <&rcc TIM12_K>;
++				clock-names = "int";
++				status = "disabled";
++
++				pwm {
++					compatible = "st,stm32-pwm";
++					#pwm-cells = <3>;
++					status = "disabled";
++				};
++
++				timer at 11 {
++					compatible = "st,stm32h7-timer-trigger";
++					reg = <11>;
++					status = "disabled";
++				};
++			};
++
++			timers13: timer at 4c008000 {
++				#address-cells = <1>;
++				#size-cells = <0>;
++				compatible = "st,stm32-timers";
++				reg = <0x4c008000 0x400>;
++				interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
++				interrupt-names = "global";
++				clocks = <&rcc TIM13_K>;
++				clock-names = "int";
++				status = "disabled";
++
++				pwm {
++					compatible = "st,stm32-pwm";
++					#pwm-cells = <3>;
++					status = "disabled";
++				};
++
++				timer at 12 {
++					compatible = "st,stm32h7-timer-trigger";
++					reg = <12>;
++					status = "disabled";
++				};
++			};
++
++			timers14: timer at 4c009000 {
++				#address-cells = <1>;
++				#size-cells = <0>;
++				compatible = "st,stm32-timers";
++				reg = <0x4c009000 0x400>;
++				interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
++				interrupt-names = "global";
++				clocks = <&rcc TIM14_K>;
++				clock-names = "int";
++				status = "disabled";
++
++				pwm {
++					compatible = "st,stm32-pwm";
++					#pwm-cells = <3>;
++					status = "disabled";
++				};
++
++				timer at 13 {
++					compatible = "st,stm32h7-timer-trigger";
++					reg = <13>;
++					status = "disabled";
++				};
++			};
++
++			timers15: timer at 4c00a000 {
++				#address-cells = <1>;
++				#size-cells = <0>;
++				compatible = "st,stm32-timers";
++				reg = <0x4c00a000 0x400>;
++				interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
++				interrupt-names = "global";
++				clocks = <&rcc TIM15_K>;
++				clock-names = "int";
++				dmas = <&dmamux1 105 0x400 0x1>,
++				<&dmamux1 106 0x400 0x1>,
++				<&dmamux1 107 0x400 0x1>,
++				<&dmamux1 108 0x400 0x1>;
++				dma-names = "ch1", "up", "trig", "com";
++				status = "disabled";
++
++				pwm {
++					compatible = "st,stm32-pwm";
++					#pwm-cells = <3>;
++					status = "disabled";
++				};
++
++				timer at 14 {
++					compatible = "st,stm32h7-timer-trigger";
++					reg = <14>;
++					status = "disabled";
++				};
++			};
++
++			timers16: timer at 4c00b000 {
++				#address-cells = <1>;
++				#size-cells = <0>;
++				compatible = "st,stm32-timers";
++				reg = <0x4c00b000 0x400>;
++				interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
++				interrupt-names = "global";
++				clocks = <&rcc TIM16_K>;
++				clock-names = "int";
++				dmas = <&dmamux1 109 0x400 0x1>,
++				<&dmamux1 110 0x400 0x1>;
++				dma-names = "ch1", "up";
++				status = "disabled";
++
++				pwm {
++					compatible = "st,stm32-pwm";
++					#pwm-cells = <3>;
++					status = "disabled";
++				};
++
++				timer at 15 {
++					compatible = "st,stm32h7-timer-trigger";
++					reg = <15>;
++					status = "disabled";
++				};
++			};
++
++			timers17: timer at 4c00c000 {
++				#address-cells = <1>;
++				#size-cells = <0>;
++				compatible = "st,stm32-timers";
++				reg = <0x4c00c000 0x400>;
++				interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
++				interrupt-names = "global";
++				clocks = <&rcc TIM17_K>;
++				clock-names = "int";
++				dmas = <&dmamux1 111 0x400 0x1>,
++				       <&dmamux1 112 0x400 0x1>;
++				dma-names = "ch1", "up";
++				status = "disabled";
++
++				pwm {
++					compatible = "st,stm32-pwm";
++					#pwm-cells = <3>;
++					status = "disabled";
++				};
++
++				timer at 16 {
++					compatible = "st,stm32h7-timer-trigger";
++					reg = <16>;
++					status = "disabled";
++				};
++			};
++
++			lptimer2: timer at 50021000 {
++				#address-cells = <1>;
++				#size-cells = <0>;
++				compatible = "st,stm32-lptimer";
++				reg = <0x50021000 0x400>;
++				interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc LPTIM2_K>;
++				clock-names = "mux";
++				wakeup-source;
++				status = "disabled";
++
++				pwm {
++					compatible = "st,stm32-pwm-lp";
++					#pwm-cells = <3>;
++					status = "disabled";
++				};
++
++				trigger at 1 {
++					compatible = "st,stm32-lptimer-trigger";
++					reg = <1>;
++					status = "disabled";
++				};
++
++				counter {
++					compatible = "st,stm32-lptimer-counter";
++					status = "disabled";
++				};
++
++				timer {
++					compatible = "st,stm32-lptimer-timer";
++					status = "disabled";
++				};
++			};
++
++			lptimer3: timer at 50022000 {
++				#address-cells = <1>;
++				#size-cells = <0>;
++				compatible = "st,stm32-lptimer";
++				reg = <0x50022000 0x400>;
++				interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc LPTIM3_K>;
++				clock-names = "mux";
++				wakeup-source;
++				status = "disabled";
++
++				pwm {
++					compatible = "st,stm32-pwm-lp";
++					#pwm-cells = <3>;
++					status = "disabled";
++				};
++
++				trigger at 2 {
++					compatible = "st,stm32-lptimer-trigger";
++					reg = <2>;
++					status = "disabled";
++				};
++
++				timer {
++					compatible = "st,stm32-lptimer-timer";
++					status = "disabled";
++				};
++			};
++
++			hash: hash at 54003000 {
++				compatible = "st,stm32mp13-hash";
++				reg = <0x54003000 0x400>;
++				interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc HASH1>;
++				resets = <&rcc HASH1_R>;
++				dmas = <&mdma 30 0x2 0x1000a02 0x0 0x0>;
++				dma-names = "in";
++				status = "disabled";
++			};
++
++			rng: rng at 54004000 {
++				compatible = "st,stm32mp13-rng";
++				reg = <0x54004000 0x400>;
++				clocks = <&rcc RNG1_K>;
++				resets = <&rcc RNG1_R>;
++				status = "disabled";
++			};
++
++			fmc: memory-controller at 58002000 {
++				compatible = "st,stm32mp1-fmc2-ebi";
++				reg = <0x58002000 0x1000>;
++				ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
++					 <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
++					 <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
++					 <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
++					 <4 0 0x80000000 0x10000000>; /* NAND */
++				#address-cells = <2>;
++				#size-cells = <1>;
++				clocks = <&rcc FMC_K>;
++				resets = <&rcc FMC_R>;
++				status = "disabled";
++
++				nand-controller at 4,0 {
++					compatible = "st,stm32mp1-fmc2-nfc";
++					reg = <4 0x00000000 0x1000>,
++					      <4 0x08010000 0x1000>,
++					      <4 0x08020000 0x1000>,
++					      <4 0x01000000 0x1000>,
++					      <4 0x09010000 0x1000>,
++					      <4 0x09020000 0x1000>;
++					#address-cells = <1>;
++					#size-cells = <0>;
++					interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
++					dmas = <&mdma 24 0x2 0x12000a02 0x0 0x0>,
++					       <&mdma 24 0x2 0x12000a08 0x0 0x0>,
++					       <&mdma 25 0x2 0x12000a0a 0x0 0x0>;
++					dma-names = "tx", "rx", "ecc";
++					status = "disabled";
++				};
++			};
++
++			qspi: spi at 58003000 {
++				compatible = "st,stm32f469-qspi";
++				reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
++				reg-names = "qspi", "qspi_mm";
++				#address-cells = <1>;
++				#size-cells = <0>;
++				interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
++				dmas = <&mdma 26 0x2 0x10100002 0x0 0x0>,
++				       <&mdma 26 0x2 0x10100008 0x0 0x0>;
++				dma-names = "tx", "rx";
++				clocks = <&rcc QSPI_K>;
++				resets = <&rcc QSPI_R>;
++				status = "disabled";
++			};
++
++			sdmmc1: mmc at 58005000 {
++				compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
++				arm,primecell-periphid = <0x20253180>;
++				reg = <0x58005000 0x1000>, <0x58006000 0x1000>;
++				interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc SDMMC1_K>;
++				clock-names = "apb_pclk";
++				resets = <&rcc SDMMC1_R>;
++				cap-sd-highspeed;
++				cap-mmc-highspeed;
++				max-frequency = <130000000>;
++				status = "disabled";
++			};
++
++			sdmmc2: mmc at 58007000 {
++				compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
++				arm,primecell-periphid = <0x20253180>;
++				reg = <0x58007000 0x1000>, <0x58008000 0x1000>;
++				interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
++				clocks = <&rcc SDMMC2_K>;
++				clock-names = "apb_pclk";
++				resets = <&rcc SDMMC2_R>;
++				cap-sd-highspeed;
++				cap-mmc-highspeed;
++				max-frequency = <130000000>;
++				status = "disabled";
++			};
++
++			usbphyc: usbphyc at 5a006000 {
++				#address-cells = <1>;
++				#size-cells = <0>;
++				#clock-cells = <0>;
++				compatible = "st,stm32mp1-usbphyc";
++				reg = <0x5a006000 0x1000>;
++				clocks = <&rcc USBPHY_K>;
++				resets = <&rcc USBPHY_R>;
++				vdda1v1-supply = <&scmi_reg11>;
++				vdda1v8-supply = <&scmi_reg18>;
++				status = "disabled";
++
++				usbphyc_port0: usb-phy at 0 {
++					#phy-cells = <0>;
++					reg = <0>;
++				};
++
++				usbphyc_port1: usb-phy at 1 {
++					#phy-cells = <1>;
++					reg = <1>;
++				};
++			};
++		};
++
+ 		/*
+ 		 * Break node order to solve dependency probe issue between
+ 		 * pinctrl and exti.
+--- a/arch/arm/boot/dts/st/stm32mp133.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp133.dtsi
+@@ -33,35 +33,37 @@
+ 			bosch,mram-cfg = <0x1400 0 0 32 0 0 2 2>;
+ 			status = "disabled";
+ 		};
++	};
++};
++
++&etzpc {
++	adc_1: adc at 48003000 {
++		compatible = "st,stm32mp13-adc-core";
++		reg = <0x48003000 0x400>;
++		interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
++		clocks = <&rcc ADC1>, <&rcc ADC1_K>;
++		clock-names = "bus", "adc";
++		interrupt-controller;
++		#interrupt-cells = <1>;
++		#address-cells = <1>;
++		#size-cells = <0>;
++		status = "disabled";
+ 
+-		adc_1: adc at 48003000 {
+-			compatible = "st,stm32mp13-adc-core";
+-			reg = <0x48003000 0x400>;
+-			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc ADC1>, <&rcc ADC1_K>;
+-			clock-names = "bus", "adc";
+-			interrupt-controller;
+-			#interrupt-cells = <1>;
++		adc1: adc at 0 {
++			compatible = "st,stm32mp13-adc";
++			#io-channel-cells = <1>;
+ 			#address-cells = <1>;
+ 			#size-cells = <0>;
++			reg = <0x0>;
++			interrupt-parent = <&adc_1>;
++			interrupts = <0>;
++			dmas = <&dmamux1 9 0x400 0x80000001>;
++			dma-names = "rx";
+ 			status = "disabled";
+ 
+-			adc1: adc at 0 {
+-				compatible = "st,stm32mp13-adc";
+-				#io-channel-cells = <1>;
+-				#address-cells = <1>;
+-				#size-cells = <0>;
+-				reg = <0x0>;
+-				interrupt-parent = <&adc_1>;
+-				interrupts = <0>;
+-				dmas = <&dmamux1 9 0x400 0x80000001>;
+-				dma-names = "rx";
+-				status = "disabled";
+-
+-				channel at 18 {
+-					reg = <18>;
+-					label = "vrefint";
+-				};
++			channel at 18 {
++				reg = <18>;
++				label = "vrefint";
+ 			};
+ 		};
+ 	};
+--- a/arch/arm/boot/dts/st/stm32mp13xc.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp13xc.dtsi
+@@ -4,15 +4,13 @@
+  * Author: Alexandre Torgue <alexandre.torgue at foss.st.com> for STMicroelectronics.
+  */
+ 
+-/ {
+-	soc {
+-		cryp: crypto at 54002000 {
+-			compatible = "st,stm32mp1-cryp";
+-			reg = <0x54002000 0x400>;
+-			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc CRYP1>;
+-			resets = <&rcc CRYP1_R>;
+-			status = "disabled";
+-		};
++&etzpc {
++	cryp: crypto at 54002000 {
++		compatible = "st,stm32mp1-cryp";
++		reg = <0x54002000 0x400>;
++		interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
++		clocks = <&rcc CRYP1>;
++		resets = <&rcc CRYP1_R>;
++		status = "disabled";
+ 	};
+ };
+--- a/arch/arm/boot/dts/st/stm32mp13xf.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp13xf.dtsi
+@@ -4,15 +4,13 @@
+  * Author: Alexandre Torgue <alexandre.torgue at foss.st.com> for STMicroelectronics.
+  */
+ 
+-/ {
+-	soc {
+-		cryp: crypto at 54002000 {
+-			compatible = "st,stm32mp1-cryp";
+-			reg = <0x54002000 0x400>;
+-			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+-			clocks = <&rcc CRYP1>;
+-			resets = <&rcc CRYP1_R>;
+-			status = "disabled";
+-		};
++&etzpc {
++	cryp: crypto at 54002000 {
++		compatible = "st,stm32mp1-cryp";
++		reg = <0x54002000 0x400>;
++		interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
++		clocks = <&rcc CRYP1>;
++		resets = <&rcc CRYP1_R>;
++		status = "disabled";
+ 	};
+ };
diff --git a/target/linux/stm32/patches-6.6/010-ARM-dts-stm32-put-ETZPC-as-an-access-controller-for-.patch b/target/linux/stm32/patches-6.6/010-ARM-dts-stm32-put-ETZPC-as-an-access-controller-for-.patch
new file mode 100644
index 0000000000..e6a4eee057
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/010-ARM-dts-stm32-put-ETZPC-as-an-access-controller-for-.patch
@@ -0,0 +1,265 @@
+From 21ca3d7c59595d76237faebeff4f6a979cf7ae82 Mon Sep 17 00:00:00 2001
+From: Alexandre Torgue <alexandre.torgue at foss.st.com>
+Date: Fri, 5 Apr 2024 13:45:24 +0200
+Subject: [PATCH 2/5] ARM: dts: stm32: put ETZPC as an access controller for
+ STM32MP13x boards
+
+Reference ETZPC as an access-control-provider.
+
+For more information on which peripheral is securable or supports MCU
+isolation, please read the STM32MP13 reference manual
+
+Signed-off-by: Gatien Chevallier <gatien.chevallier at foss.st.com>
+Signed-off-by: Alexandre Torgue <alexandre.torgue at foss.st.com>
+---
+ arch/arm/boot/dts/st/stm32mp131.dtsi  | 28 ++++++++++++++++++++++++++-
+ arch/arm/boot/dts/st/stm32mp133.dtsi  |  1 +
+ arch/arm/boot/dts/st/stm32mp13xc.dtsi |  1 +
+ arch/arm/boot/dts/st/stm32mp13xf.dtsi |  1 +
+ 4 files changed, 30 insertions(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/st/stm32mp131.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp131.dtsi
+@@ -886,10 +886,11 @@
+ 		};
+ 
+ 		etzpc: bus at 5c007000 {
+-			compatible = "simple-bus";
++			compatible = "st,stm32-etzpc", "simple-bus";
+ 			reg = <0x5c007000 0x400>;
+ 			#address-cells = <1>;
+ 			#size-cells = <1>;
++			#access-controller-cells = <1>;
+ 			ranges;
+ 
+ 			adc_2: adc at 48004000 {
+@@ -902,6 +903,7 @@
+ 				#interrupt-cells = <1>;
+ 				#address-cells = <1>;
+ 				#size-cells = <0>;
++				access-controllers = <&etzpc 33>;
+ 				status = "disabled";
+ 
+ 				adc2: adc at 0 {
+@@ -949,6 +951,7 @@
+ 				dr_mode = "otg";
+ 				otg-rev = <0x200>;
+ 				usb33d-supply = <&scmi_usb33>;
++				access-controllers = <&etzpc 34>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -962,6 +965,7 @@
+ 				dmas = <&dmamux1 41 0x400 0x5>,
+ 				<&dmamux1 42 0x400 0x1>;
+ 				dma-names = "rx", "tx";
++				access-controllers = <&etzpc 16>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -975,6 +979,7 @@
+ 				dmas = <&dmamux1 43 0x400 0x5>,
+ 				<&dmamux1 44 0x400 0x1>;
+ 				dma-names = "rx", "tx";
++				access-controllers = <&etzpc 17>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -986,6 +991,7 @@
+ 				dmas = <&dmamux1 83 0x400 0x01>,
+ 				<&dmamux1 84 0x400 0x01>;
+ 				dma-names = "rx", "tx";
++				access-controllers = <&etzpc 13>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1000,6 +1006,7 @@
+ 				dmas = <&dmamux1 83 0x400 0x01>,
+ 				       <&dmamux1 84 0x400 0x01>;
+ 				dma-names = "rx", "tx";
++				access-controllers = <&etzpc 18>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1014,6 +1021,7 @@
+ 				dmas = <&dmamux1 85 0x400 0x01>,
+ 				       <&dmamux1 86 0x400 0x01>;
+ 				dma-names = "rx", "tx";
++				access-controllers = <&etzpc 19>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1032,6 +1040,7 @@
+ 				dma-names = "rx", "tx";
+ 				st,syscfg-fmp = <&syscfg 0x4 0x4>;
+ 				i2c-analog-filter;
++				access-controllers = <&etzpc 20>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1050,6 +1059,7 @@
+ 				dma-names = "rx", "tx";
+ 				st,syscfg-fmp = <&syscfg 0x4 0x8>;
+ 				i2c-analog-filter;
++				access-controllers = <&etzpc 21>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1068,6 +1078,7 @@
+ 				dma-names = "rx", "tx";
+ 				st,syscfg-fmp = <&syscfg 0x4 0x10>;
+ 				i2c-analog-filter;
++				access-controllers = <&etzpc 22>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1080,6 +1091,7 @@
+ 				interrupt-names = "global";
+ 				clocks = <&rcc TIM12_K>;
+ 				clock-names = "int";
++				access-controllers = <&etzpc 23>;
+ 				status = "disabled";
+ 
+ 				pwm {
+@@ -1104,6 +1116,7 @@
+ 				interrupt-names = "global";
+ 				clocks = <&rcc TIM13_K>;
+ 				clock-names = "int";
++				access-controllers = <&etzpc 24>;
+ 				status = "disabled";
+ 
+ 				pwm {
+@@ -1128,6 +1141,7 @@
+ 				interrupt-names = "global";
+ 				clocks = <&rcc TIM14_K>;
+ 				clock-names = "int";
++				access-controllers = <&etzpc 25>;
+ 				status = "disabled";
+ 
+ 				pwm {
+@@ -1157,6 +1171,7 @@
+ 				<&dmamux1 107 0x400 0x1>,
+ 				<&dmamux1 108 0x400 0x1>;
+ 				dma-names = "ch1", "up", "trig", "com";
++				access-controllers = <&etzpc 26>;
+ 				status = "disabled";
+ 
+ 				pwm {
+@@ -1184,6 +1199,7 @@
+ 				dmas = <&dmamux1 109 0x400 0x1>,
+ 				<&dmamux1 110 0x400 0x1>;
+ 				dma-names = "ch1", "up";
++				access-controllers = <&etzpc 27>;
+ 				status = "disabled";
+ 
+ 				pwm {
+@@ -1211,6 +1227,7 @@
+ 				dmas = <&dmamux1 111 0x400 0x1>,
+ 				       <&dmamux1 112 0x400 0x1>;
+ 				dma-names = "ch1", "up";
++				access-controllers = <&etzpc 28>;
+ 				status = "disabled";
+ 
+ 				pwm {
+@@ -1235,6 +1252,7 @@
+ 				clocks = <&rcc LPTIM2_K>;
+ 				clock-names = "mux";
+ 				wakeup-source;
++				access-controllers = <&etzpc 1>;
+ 				status = "disabled";
+ 
+ 				pwm {
+@@ -1269,6 +1287,7 @@
+ 				clocks = <&rcc LPTIM3_K>;
+ 				clock-names = "mux";
+ 				wakeup-source;
++				access-controllers = <&etzpc 2>;
+ 				status = "disabled";
+ 
+ 				pwm {
+@@ -1297,6 +1316,7 @@
+ 				resets = <&rcc HASH1_R>;
+ 				dmas = <&mdma 30 0x2 0x1000a02 0x0 0x0>;
+ 				dma-names = "in";
++				access-controllers = <&etzpc 41>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1305,6 +1325,7 @@
+ 				reg = <0x54004000 0x400>;
+ 				clocks = <&rcc RNG1_K>;
+ 				resets = <&rcc RNG1_R>;
++				access-controllers = <&etzpc 40>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1320,6 +1341,7 @@
+ 				#size-cells = <1>;
+ 				clocks = <&rcc FMC_K>;
+ 				resets = <&rcc FMC_R>;
++				access-controllers = <&etzpc 54>;
+ 				status = "disabled";
+ 
+ 				nand-controller at 4,0 {
+@@ -1353,6 +1375,7 @@
+ 				dma-names = "tx", "rx";
+ 				clocks = <&rcc QSPI_K>;
+ 				resets = <&rcc QSPI_R>;
++				access-controllers = <&etzpc 55>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1367,6 +1390,7 @@
+ 				cap-sd-highspeed;
+ 				cap-mmc-highspeed;
+ 				max-frequency = <130000000>;
++				access-controllers = <&etzpc 50>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1381,6 +1405,7 @@
+ 				cap-sd-highspeed;
+ 				cap-mmc-highspeed;
+ 				max-frequency = <130000000>;
++				access-controllers = <&etzpc 51>;
+ 				status = "disabled";
+ 			};
+ 
+@@ -1394,6 +1419,7 @@
+ 				resets = <&rcc USBPHY_R>;
+ 				vdda1v1-supply = <&scmi_reg11>;
+ 				vdda1v8-supply = <&scmi_reg18>;
++				access-controllers = <&etzpc 5>;
+ 				status = "disabled";
+ 
+ 				usbphyc_port0: usb-phy at 0 {
+--- a/arch/arm/boot/dts/st/stm32mp133.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp133.dtsi
+@@ -47,6 +47,7 @@
+ 		#interrupt-cells = <1>;
+ 		#address-cells = <1>;
+ 		#size-cells = <0>;
++		access-controllers = <&etzpc 32>;
+ 		status = "disabled";
+ 
+ 		adc1: adc at 0 {
+--- a/arch/arm/boot/dts/st/stm32mp13xc.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp13xc.dtsi
+@@ -11,6 +11,7 @@
+ 		interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+ 		clocks = <&rcc CRYP1>;
+ 		resets = <&rcc CRYP1_R>;
++		access-controllers = <&etzpc 42>;
+ 		status = "disabled";
+ 	};
+ };
+--- a/arch/arm/boot/dts/st/stm32mp13xf.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp13xf.dtsi
+@@ -11,6 +11,7 @@
+ 		interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+ 		clocks = <&rcc CRYP1>;
+ 		resets = <&rcc CRYP1_R>;
++		access-controllers = <&etzpc 42>;
+ 		status = "disabled";
+ 	};
+ };
diff --git a/target/linux/stm32/patches-6.6/011-ARM-dts-stm32-add-ethernet1-2-RMII-pins-for-STM32MP1.patch b/target/linux/stm32/patches-6.6/011-ARM-dts-stm32-add-ethernet1-2-RMII-pins-for-STM32MP1.patch
new file mode 100644
index 0000000000..123bde8841
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/011-ARM-dts-stm32-add-ethernet1-2-RMII-pins-for-STM32MP1.patch
@@ -0,0 +1,126 @@
+From b1468a44e0c0f43a06e027efeff4183b3aee0cf7 Mon Sep 17 00:00:00 2001
+From: Christophe Roullier <christophe.roullier at foss.st.com>
+Date: Mon, 10 Jun 2024 10:03:08 +0200
+Subject: [PATCH 3/5] ARM: dts: stm32: add ethernet1/2 RMII pins for
+ STM32MP13F-DK board
+
+Those pins are used for Ethernet 1 and 2 on STM32MP13F-DK board.
+ethernet1: RMII with crystal.
+ethernet2: RMII without crystal.
+Add analog gpio pin configuration ("sleep") to manage power mode on
+stm32mp13.
+
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Reviewed-by: Marek Vasut <marex at denx.de>
+Signed-off-by: Alexandre Torgue <alexandre.torgue at foss.st.com>
+---
+ arch/arm/boot/dts/st/stm32mp13-pinctrl.dtsi | 98 +++++++++++++++++++++
+ 1 file changed, 98 insertions(+)
+
+--- a/arch/arm/boot/dts/st/stm32mp13-pinctrl.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp13-pinctrl.dtsi
+@@ -13,6 +13,104 @@
+ 		};
+ 	};
+ 
++	eth1_rgmii_pins_a: eth1-rgmii-0 {
++		pins1 {
++			pinmux = <STM32_PINMUX('G', 13, AF11)>, /* ETH_RGMII_TXD0 */
++				 <STM32_PINMUX('G', 14, AF11)>, /* ETH_RGMII_TXD1 */
++				 <STM32_PINMUX('C', 2, AF11)>, /* ETH_RGMII_TXD2 */
++				 <STM32_PINMUX('E', 5, AF10)>, /* ETH_RGMII_TXD3 */
++				 <STM32_PINMUX('B', 11, AF11)>, /* ETH_RGMII_TX_CTL */
++				 <STM32_PINMUX('C', 1, AF11)>, /* ETH_RGMII_GTX_CLK */
++				 <STM32_PINMUX('A', 2, AF11)>, /* ETH_MDIO */
++				 <STM32_PINMUX('G', 2, AF11)>; /* ETH_MDC */
++			bias-disable;
++			drive-push-pull;
++			slew-rate = <2>;
++		};
++
++		pins2 {
++			pinmux = <STM32_PINMUX('C', 4, AF11)>, /* ETH_RGMII_RXD0 */
++				 <STM32_PINMUX('C', 5, AF11)>, /* ETH_RGMII_RXD1 */
++				 <STM32_PINMUX('B', 0, AF11)>, /* ETH_RGMII_RXD2 */
++				 <STM32_PINMUX('B', 1, AF11)>, /* ETH_RGMII_RXD3 */
++				 <STM32_PINMUX('A', 7, AF11)>, /* ETH_RGMII_RX_CTL */
++				 <STM32_PINMUX('D', 7, AF10)>; /* ETH_RGMII_RX_CLK */
++			bias-disable;
++		};
++
++	};
++
++	eth1_rmii_pins_a: eth1-rmii-0 {
++		pins1 {
++			pinmux = <STM32_PINMUX('G', 13, AF11)>, /* ETH_RMII_TXD0 */
++				 <STM32_PINMUX('G', 14, AF11)>, /* ETH_RMII_TXD1 */
++				 <STM32_PINMUX('B', 11, AF11)>, /* ETH_RMII_TX_EN */
++				 <STM32_PINMUX('A', 1, AF11)>, /* ETH_RMII_REF_CLK */
++				 <STM32_PINMUX('A', 2, AF11)>, /* ETH_MDIO */
++				 <STM32_PINMUX('G', 2, AF11)>; /* ETH_MDC */
++			bias-disable;
++			drive-push-pull;
++			slew-rate = <1>;
++		};
++
++		pins2 {
++			pinmux = <STM32_PINMUX('C', 4, AF11)>, /* ETH_RMII_RXD0 */
++				 <STM32_PINMUX('C', 5, AF11)>, /* ETH_RMII_RXD1 */
++				 <STM32_PINMUX('C', 1, AF10)>; /* ETH_RMII_CRS_DV */
++			bias-disable;
++		};
++
++	};
++
++	eth1_rmii_sleep_pins_a: eth1-rmii-sleep-0 {
++		pins1 {
++			pinmux = <STM32_PINMUX('G', 13, ANALOG)>, /* ETH_RMII_TXD0 */
++				 <STM32_PINMUX('G', 14, ANALOG)>, /* ETH_RMII_TXD1 */
++				 <STM32_PINMUX('B', 11, ANALOG)>, /* ETH_RMII_TX_EN */
++				 <STM32_PINMUX('A', 1, ANALOG)>, /* ETH_RMII_REF_CLK */
++				 <STM32_PINMUX('A', 2, ANALOG)>, /* ETH_MDIO */
++				 <STM32_PINMUX('G', 2, ANALOG)>, /* ETH_MDC */
++				 <STM32_PINMUX('C', 4, ANALOG)>, /* ETH_RMII_RXD0 */
++				 <STM32_PINMUX('C', 5, ANALOG)>, /* ETH_RMII_RXD1 */
++				 <STM32_PINMUX('C', 1, ANALOG)>; /* ETH_RMII_CRS_DV */
++		};
++	};
++
++	eth2_rmii_pins_a: eth2-rmii-0 {
++		pins1 {
++			pinmux = <STM32_PINMUX('F', 7, AF11)>, /* ETH_RMII_TXD0 */
++				 <STM32_PINMUX('G', 11, AF10)>, /* ETH_RMII_TXD1 */
++				 <STM32_PINMUX('G', 8, AF13)>, /* ETH_RMII_ETHCK */
++				 <STM32_PINMUX('F', 6, AF11)>, /* ETH_RMII_TX_EN */
++				 <STM32_PINMUX('B', 2, AF11)>, /* ETH_MDIO */
++				 <STM32_PINMUX('G', 5, AF10)>; /* ETH_MDC */
++			bias-disable;
++			drive-push-pull;
++			slew-rate = <1>;
++		};
++
++		pins2 {
++			pinmux = <STM32_PINMUX('F', 4, AF11)>, /* ETH_RMII_RXD0 */
++				 <STM32_PINMUX('E', 2, AF10)>, /* ETH_RMII_RXD1 */
++				 <STM32_PINMUX('A', 12, AF11)>; /* ETH_RMII_CRS_DV */
++			bias-disable;
++		};
++	};
++
++	eth2_rmii_sleep_pins_a: eth2-rmii-sleep-0 {
++		pins1 {
++			pinmux = <STM32_PINMUX('F', 7, ANALOG)>, /* ETH_RMII_TXD0 */
++				 <STM32_PINMUX('G', 11, ANALOG)>, /* ETH_RMII_TXD1 */
++				 <STM32_PINMUX('G', 8, ANALOG)>, /* ETH_RMII_ETHCK */
++				 <STM32_PINMUX('F', 6, ANALOG)>, /* ETH_RMII_TX_EN */
++				 <STM32_PINMUX('B', 2, ANALOG)>, /* ETH_MDIO */
++				 <STM32_PINMUX('G', 5, ANALOG)>, /* ETH_MDC */
++				 <STM32_PINMUX('F', 4, ANALOG)>, /* ETH_RMII_RXD0 */
++				 <STM32_PINMUX('E', 2, ANALOG)>, /* ETH_RMII_RXD1 */
++				 <STM32_PINMUX('A', 12, ANALOG)>; /* ETH_RMII_CRS_DV */
++		};
++	};
++
+ 	i2c1_pins_a: i2c1-0 {
+ 		pins {
+ 			pinmux = <STM32_PINMUX('D', 12, AF5)>, /* I2C1_SCL */
diff --git a/target/linux/stm32/patches-6.6/012-ARM-dts-stm32-add-ethernet1-and-ethernet2-support-on.patch b/target/linux/stm32/patches-6.6/012-ARM-dts-stm32-add-ethernet1-and-ethernet2-support-on.patch
new file mode 100644
index 0000000000..947b141324
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/012-ARM-dts-stm32-add-ethernet1-and-ethernet2-support-on.patch
@@ -0,0 +1,108 @@
+From fcf6ca2da4650d0a7a9cd62c8c72341860931159 Mon Sep 17 00:00:00 2001
+From: Christophe Roullier <christophe.roullier at foss.st.com>
+Date: Mon, 10 Jun 2024 10:03:07 +0200
+Subject: [PATCH 4/5] ARM: dts: stm32: add ethernet1 and ethernet2 support on
+ stm32mp13
+
+Both instances ethernet based on GMAC SNPS IP on stm32mp13.
+GMAC IP version is SNPS 4.20.
+
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Signed-off-by: Alexandre Torgue <alexandre.torgue at foss.st.com>
+---
+ arch/arm/boot/dts/st/stm32mp131.dtsi | 38 ++++++++++++++++++++++++++++
+ arch/arm/boot/dts/st/stm32mp133.dtsi | 31 +++++++++++++++++++++++
+ 2 files changed, 69 insertions(+)
+
+--- a/arch/arm/boot/dts/st/stm32mp131.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp131.dtsi
+@@ -883,6 +883,12 @@
+ 			ts_cal2: calib at 5e {
+ 				reg = <0x5e 0x2>;
+ 			};
++			ethernet_mac1_address: mac1 at e4 {
++				reg = <0xe4 0x6>;
++			};
++			ethernet_mac2_address: mac2 at ea {
++				reg = <0xea 0x6>;
++			};
+ 		};
+ 
+ 		etzpc: bus at 5c007000 {
+@@ -1409,6 +1415,38 @@
+ 				status = "disabled";
+ 			};
+ 
++			ethernet1: ethernet at 5800a000 {
++				compatible = "st,stm32mp13-dwmac", "snps,dwmac-4.20a";
++				reg = <0x5800a000 0x2000>;
++				reg-names = "stmmaceth";
++				interrupts-extended = <&intc GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,
++						      <&exti 68 1>;
++				interrupt-names = "macirq", "eth_wake_irq";
++				clock-names = "stmmaceth",
++					      "mac-clk-tx",
++					      "mac-clk-rx",
++					      "ethstp",
++					      "eth-ck";
++				clocks = <&rcc ETH1MAC>,
++					 <&rcc ETH1TX>,
++					 <&rcc ETH1RX>,
++					 <&rcc ETH1STP>,
++					 <&rcc ETH1CK_K>;
++				st,syscon = <&syscfg 0x4 0xff0000>;
++				snps,mixed-burst;
++				snps,pbl = <2>;
++				snps,axi-config = <&stmmac_axi_config_1>;
++				snps,tso;
++				access-controllers = <&etzpc 48>;
++				status = "disabled";
++
++				stmmac_axi_config_1: stmmac-axi-config {
++					snps,blen = <0 0 0 0 16 8 4>;
++					snps,rd_osr_lmt = <0x7>;
++					snps,wr_osr_lmt = <0x7>;
++				};
++			};
++
+ 			usbphyc: usbphyc at 5a006000 {
+ 				#address-cells = <1>;
+ 				#size-cells = <0>;
+--- a/arch/arm/boot/dts/st/stm32mp133.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp133.dtsi
+@@ -68,4 +68,35 @@
+ 			};
+ 		};
+ 	};
++
++	ethernet2: ethernet at 5800e000 {
++		compatible = "st,stm32mp13-dwmac", "snps,dwmac-4.20a";
++		reg = <0x5800e000 0x2000>;
++		reg-names = "stmmaceth";
++		interrupts-extended = <&intc GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
++		interrupt-names = "macirq";
++		clock-names = "stmmaceth",
++			      "mac-clk-tx",
++			      "mac-clk-rx",
++			      "ethstp",
++			      "eth-ck";
++		clocks = <&rcc ETH2MAC>,
++			 <&rcc ETH2TX>,
++			 <&rcc ETH2RX>,
++			 <&rcc ETH2STP>,
++			 <&rcc ETH2CK_K>;
++		st,syscon = <&syscfg 0x4 0xff000000>;
++		snps,mixed-burst;
++		snps,pbl = <2>;
++		snps,axi-config = <&stmmac_axi_config_2>;
++		snps,tso;
++		access-controllers = <&etzpc 49>;
++		status = "disabled";
++
++		stmmac_axi_config_2: stmmac-axi-config {
++			snps,blen = <0 0 0 0 16 8 4>;
++			snps,rd_osr_lmt = <0x7>;
++			snps,wr_osr_lmt = <0x7>;
++		};
++	};
+ };
diff --git a/target/linux/stm32/patches-6.6/013-ARM-dts-stm32-add-ethernet1-for-STM32MP135F-DK-board.patch b/target/linux/stm32/patches-6.6/013-ARM-dts-stm32-add-ethernet1-for-STM32MP135F-DK-board.patch
new file mode 100644
index 0000000000..79408c5bad
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/013-ARM-dts-stm32-add-ethernet1-for-STM32MP135F-DK-board.patch
@@ -0,0 +1,58 @@
+From b255afeeb33efaa974b1b2454b1f58252d783b67 Mon Sep 17 00:00:00 2001
+From: Christophe Roullier <christophe.roullier at foss.st.com>
+Date: Mon, 10 Jun 2024 10:03:09 +0200
+Subject: [PATCH 5/5] ARM: dts: stm32: add ethernet1 for STM32MP135F-DK board
+
+Ethernet1: RMII with crystal
+Ethernet2: RMII with no cristal, need "phy-supply" property to work,
+today this property was managed by Ethernet glue, but should be present
+and managed in PHY node. So I will push second Ethernet in next step.
+
+PHYs used are SMSC (LAN8742A)
+
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Reviewed-by: Marek Vasut <marex at denx.de>
+Signed-off-by: Alexandre Torgue <alexandre.torgue at foss.st.com>
+---
+ arch/arm/boot/dts/st/stm32mp135f-dk.dts | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+
+--- a/arch/arm/boot/dts/st/stm32mp135f-dk.dts
++++ b/arch/arm/boot/dts/st/stm32mp135f-dk.dts
+@@ -19,6 +19,7 @@
+ 	compatible = "st,stm32mp135f-dk", "st,stm32mp135";
+ 
+ 	aliases {
++		ethernet0 = &ethernet1;
+ 		serial0 = &uart4;
+ 		serial1 = &usart1;
+ 		serial2 = &uart8;
+@@ -92,6 +93,28 @@
+ 		};
+ 	};
+ };
++
++&ethernet1 {
++	status = "okay";
++	pinctrl-0 = <&eth1_rmii_pins_a>;
++	pinctrl-1 = <&eth1_rmii_sleep_pins_a>;
++	pinctrl-names = "default", "sleep";
++	phy-mode = "rmii";
++	phy-handle = <&phy0_eth1>;
++
++	mdio {
++		#address-cells = <1>;
++		#size-cells = <0>;
++		compatible = "snps,dwmac-mdio";
++
++		phy0_eth1: ethernet-phy at 0 {
++			compatible = "ethernet-phy-id0007.c131";
++			reg = <0>;
++			reset-gpios = <&mcp23017 9 GPIO_ACTIVE_LOW>;
++			wakeup-source;
++		};
++	};
++};
+ 
+ &i2c1 {
+ 	pinctrl-names = "default", "sleep";
diff --git a/target/linux/stm32/patches-6.6/020-mmc-mmci-stm32-add-SDIO-in-band-interrupt-mode.patch b/target/linux/stm32/patches-6.6/020-mmc-mmci-stm32-add-SDIO-in-band-interrupt-mode.patch
new file mode 100644
index 0000000000..235efb5716
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/020-mmc-mmci-stm32-add-SDIO-in-band-interrupt-mode.patch
@@ -0,0 +1,166 @@
+From 1bcfbfd7c9aa716f61a01682345a1b329f6a6e66 Mon Sep 17 00:00:00 2001
+From: Christophe Kerello <christophe.kerello at foss.st.com>
+Date: Wed, 8 Nov 2023 15:16:37 +0100
+Subject: [PATCH] mmc: mmci: stm32: add SDIO in-band interrupt mode
+
+Add the support of SDIO in-band interrupt mode for STM32 and Ux500
+variants.
+It allows the SD I/O card to interrupt the host on SDMMC_D1 data line.
+It is not enabled by default on Ux500 variant as this is unstable and
+Ux500 users should use out-of-band IRQs.
+
+Signed-off-by: Christophe Kerello <christophe.kerello at foss.st.com>
+Signed-off-by: Yann Gautier <yann.gautier at foss.st.com>
+Reviewed-by: Linus Walleij <linus.walleij at linaro.org>
+Link: https://lore.kernel.org/r/20231108141637.119497-1-yann.gautier at foss.st.com
+Signed-off-by: Ulf Hansson <ulf.hansson at linaro.org>
+---
+ drivers/mmc/host/mmci.c | 69 +++++++++++++++++++++++++++++++++++++++--
+ drivers/mmc/host/mmci.h |  2 ++
+ 2 files changed, 69 insertions(+), 2 deletions(-)
+
+--- a/drivers/mmc/host/mmci.c
++++ b/drivers/mmc/host/mmci.c
+@@ -272,6 +272,7 @@ static struct variant_data variant_stm32
+ 	.datactrl_mask_sdio	= MCI_DPSM_ST_SDIOEN,
+ 	.stm32_idmabsize_mask	= GENMASK(12, 5),
+ 	.stm32_idmabsize_align	= BIT(5),
++	.supports_sdio_irq	= true,
+ 	.busy_timeout		= true,
+ 	.busy_detect		= true,
+ 	.busy_detect_flag	= MCI_STM32_BUSYD0,
+@@ -299,6 +300,7 @@ static struct variant_data variant_stm32
+ 	.datactrl_mask_sdio	= MCI_DPSM_ST_SDIOEN,
+ 	.stm32_idmabsize_mask	= GENMASK(16, 5),
+ 	.stm32_idmabsize_align	= BIT(5),
++	.supports_sdio_irq	= true,
+ 	.dma_lli		= true,
+ 	.busy_timeout		= true,
+ 	.busy_detect		= true,
+@@ -327,6 +329,7 @@ static struct variant_data variant_stm32
+ 	.datactrl_mask_sdio	= MCI_DPSM_ST_SDIOEN,
+ 	.stm32_idmabsize_mask	= GENMASK(16, 6),
+ 	.stm32_idmabsize_align	= BIT(6),
++	.supports_sdio_irq	= true,
+ 	.dma_lli		= true,
+ 	.busy_timeout		= true,
+ 	.busy_detect		= true,
+@@ -420,8 +423,9 @@ void mmci_write_pwrreg(struct mmci_host
+  */
+ static void mmci_write_datactrlreg(struct mmci_host *host, u32 datactrl)
+ {
+-	/* Keep busy mode in DPSM if enabled */
+-	datactrl |= host->datactrl_reg & host->variant->busy_dpsm_flag;
++	/* Keep busy mode in DPSM and SDIO mask if enabled */
++	datactrl |= host->datactrl_reg & (host->variant->busy_dpsm_flag |
++					  host->variant->datactrl_mask_sdio);
+ 
+ 	if (host->datactrl_reg != datactrl) {
+ 		host->datactrl_reg = datactrl;
+@@ -1761,6 +1765,25 @@ static irqreturn_t mmci_pio_irq(int irq,
+ 	return IRQ_HANDLED;
+ }
+ 
++static void mmci_write_sdio_irq_bit(struct mmci_host *host, int enable)
++{
++	void __iomem *base = host->base;
++	u32 mask = readl_relaxed(base + MMCIMASK0);
++
++	if (enable)
++		writel_relaxed(mask | MCI_ST_SDIOITMASK, base + MMCIMASK0);
++	else
++		writel_relaxed(mask & ~MCI_ST_SDIOITMASK, base + MMCIMASK0);
++}
++
++static void mmci_signal_sdio_irq(struct mmci_host *host, u32 status)
++{
++	if (status & MCI_ST_SDIOIT) {
++		mmci_write_sdio_irq_bit(host, 0);
++		sdio_signal_irq(host->mmc);
++	}
++}
++
+ /*
+  * Handle completion of command and data transfers.
+  */
+@@ -1805,6 +1828,9 @@ static irqreturn_t mmci_irq(int irq, voi
+ 			mmci_data_irq(host, host->data, status);
+ 		}
+ 
++		if (host->variant->supports_sdio_irq)
++			mmci_signal_sdio_irq(host, status);
++
+ 		/*
+ 		 * Busy detection has been handled by mmci_cmd_irq() above.
+ 		 * Clear the status bit to prevent polling in IRQ context.
+@@ -2041,6 +2067,35 @@ static int mmci_sig_volt_switch(struct m
+ 	return ret;
+ }
+ 
++static void mmci_enable_sdio_irq(struct mmc_host *mmc, int enable)
++{
++	struct mmci_host *host = mmc_priv(mmc);
++	unsigned long flags;
++
++	if (enable)
++		/* Keep the SDIO mode bit if SDIO irqs are enabled */
++		pm_runtime_get_sync(mmc_dev(mmc));
++
++	spin_lock_irqsave(&host->lock, flags);
++	mmci_write_sdio_irq_bit(host, enable);
++	spin_unlock_irqrestore(&host->lock, flags);
++
++	if (!enable) {
++		pm_runtime_mark_last_busy(mmc_dev(mmc));
++		pm_runtime_put_autosuspend(mmc_dev(mmc));
++	}
++}
++
++static void mmci_ack_sdio_irq(struct mmc_host *mmc)
++{
++	struct mmci_host *host = mmc_priv(mmc);
++	unsigned long flags;
++
++	spin_lock_irqsave(&host->lock, flags);
++	mmci_write_sdio_irq_bit(host, 1);
++	spin_unlock_irqrestore(&host->lock, flags);
++}
++
+ static struct mmc_host_ops mmci_ops = {
+ 	.request	= mmci_request,
+ 	.pre_req	= mmci_pre_request,
+@@ -2316,6 +2371,16 @@ static int mmci_probe(struct amba_device
+ 		mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY;
+ 	}
+ 
++	if (variant->supports_sdio_irq && host->mmc->caps & MMC_CAP_SDIO_IRQ) {
++		mmc->caps2 |= MMC_CAP2_SDIO_IRQ_NOTHREAD;
++
++		mmci_ops.enable_sdio_irq = mmci_enable_sdio_irq;
++		mmci_ops.ack_sdio_irq	= mmci_ack_sdio_irq;
++
++		mmci_write_datactrlreg(host,
++				       host->variant->datactrl_mask_sdio);
++	}
++
+ 	/* Variants with mandatory busy timeout in HW needs R1B responses. */
+ 	if (variant->busy_timeout)
+ 		mmc->caps |= MMC_CAP_NEED_RSP_BUSY;
+--- a/drivers/mmc/host/mmci.h
++++ b/drivers/mmc/host/mmci.h
+@@ -331,6 +331,7 @@ enum mmci_busy_state {
+  *	       register.
+  * @opendrain: bitmask identifying the OPENDRAIN bit inside MMCIPOWER register
+  * @dma_lli: true if variant has dma link list feature.
++ * @supports_sdio_irq: allow SD I/O card to interrupt the host
+  * @stm32_idmabsize_mask: stm32 sdmmc idma buffer size.
+  */
+ struct variant_data {
+@@ -376,6 +377,7 @@ struct variant_data {
+ 	u32			start_err;
+ 	u32			opendrain;
+ 	u8			dma_lli:1;
++	bool			supports_sdio_irq;
+ 	u32			stm32_idmabsize_mask;
+ 	u32			stm32_idmabsize_align;
+ 	void (*init)(struct mmci_host *host);
diff --git a/target/linux/stm32/patches-6.6/030-rtc-stm32-add-pinctrl-and-pinmux-interfaces.patch b/target/linux/stm32/patches-6.6/030-rtc-stm32-add-pinctrl-and-pinmux-interfaces.patch
new file mode 100644
index 0000000000..e06ea134c5
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/030-rtc-stm32-add-pinctrl-and-pinmux-interfaces.patch
@@ -0,0 +1,189 @@
+From c15671ce05a038b8c92a6f1e24b0b850a154ba59 Mon Sep 17 00:00:00 2001
+From: Valentin Caron <valentin.caron at foss.st.com>
+Date: Mon, 22 Jul 2024 18:00:20 +0200
+Subject: [PATCH] rtc: stm32: add pinctrl and pinmux interfaces
+
+STM32 RTC is capable to handle 3 specific pins of the soc.
+"out1, out2 and out2_rmp". To handle this, we use pinctrl framework.
+There is a single pin per group.
+
+Signed-off-by: Valentin Caron <valentin.caron at foss.st.com>
+Reviewed-by: Linus Walleij <linus.walleij at linaro.org>
+Link: https://lore.kernel.org/r/20240722160022.454226-3-valentin.caron at foss.st.com
+Signed-off-by: Alexandre Belloni <alexandre.belloni at bootlin.com>
+---
+ drivers/rtc/Kconfig     |   5 ++
+ drivers/rtc/rtc-stm32.c | 120 ++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 125 insertions(+)
+
+--- a/drivers/rtc/Kconfig
++++ b/drivers/rtc/Kconfig
+@@ -1887,6 +1887,11 @@ config RTC_DRV_STM32
+ 	tristate "STM32 RTC"
+ 	select REGMAP_MMIO
+ 	depends on ARCH_STM32 || COMPILE_TEST
++	depends on OF
++	depends on PINCTRL
++	select PINMUX
++	select PINCONF
++	select GENERIC_PINCONF
+ 	help
+ 	   If you say yes here you get support for the STM32 On-Chip
+ 	   Real Time Clock.
+--- a/drivers/rtc/rtc-stm32.c
++++ b/drivers/rtc/rtc-stm32.c
+@@ -12,6 +12,9 @@
+ #include <linux/mfd/syscon.h>
+ #include <linux/module.h>
+ #include <linux/of.h>
++#include <linux/pinctrl/pinctrl.h>
++#include <linux/pinctrl/pinconf-generic.h>
++#include <linux/pinctrl/pinmux.h>
+ #include <linux/platform_device.h>
+ #include <linux/pm_wakeirq.h>
+ #include <linux/regmap.h>
+@@ -94,6 +97,14 @@
+ /* STM32 RTC driver time helpers */
+ #define SEC_PER_DAY		(24 * 60 * 60)
+ 
++/* STM32 RTC pinctrl helpers */
++#define STM32_RTC_PINMUX(_name, _action, ...) { \
++	.name = (_name), \
++	.action = (_action), \
++	.groups = ((const char *[]){ __VA_ARGS__ }), \
++	.num_groups = ARRAY_SIZE(((const char *[]){ __VA_ARGS__ })), \
++}
++
+ struct stm32_rtc;
+ 
+ struct stm32_rtc_registers {
+@@ -149,6 +160,106 @@ static void stm32_rtc_wpr_lock(struct st
+ 	writel_relaxed(RTC_WPR_WRONG_KEY, rtc->base + regs->wpr);
+ }
+ 
++enum stm32_rtc_pin_name {
++	NONE,
++	OUT1,
++	OUT2,
++	OUT2_RMP
++};
++
++static const struct pinctrl_pin_desc stm32_rtc_pinctrl_pins[] = {
++	PINCTRL_PIN(OUT1, "out1"),
++	PINCTRL_PIN(OUT2, "out2"),
++	PINCTRL_PIN(OUT2_RMP, "out2_rmp"),
++};
++
++static int stm32_rtc_pinctrl_get_groups_count(struct pinctrl_dev *pctldev)
++{
++	return ARRAY_SIZE(stm32_rtc_pinctrl_pins);
++}
++
++static const char *stm32_rtc_pinctrl_get_group_name(struct pinctrl_dev *pctldev,
++						    unsigned int selector)
++{
++	return stm32_rtc_pinctrl_pins[selector].name;
++}
++
++static int stm32_rtc_pinctrl_get_group_pins(struct pinctrl_dev *pctldev,
++					    unsigned int selector,
++					    const unsigned int **pins,
++					    unsigned int *num_pins)
++{
++	*pins = &stm32_rtc_pinctrl_pins[selector].number;
++	*num_pins = 1;
++	return 0;
++}
++
++static const struct pinctrl_ops stm32_rtc_pinctrl_ops = {
++	.dt_node_to_map		= pinconf_generic_dt_node_to_map_all,
++	.dt_free_map		= pinconf_generic_dt_free_map,
++	.get_groups_count	= stm32_rtc_pinctrl_get_groups_count,
++	.get_group_name		= stm32_rtc_pinctrl_get_group_name,
++	.get_group_pins		= stm32_rtc_pinctrl_get_group_pins,
++};
++
++struct stm32_rtc_pinmux_func {
++	const char *name;
++	const char * const *groups;
++	const unsigned int num_groups;
++	int (*action)(struct pinctrl_dev *pctl_dev, unsigned int pin);
++};
++
++static const struct stm32_rtc_pinmux_func stm32_rtc_pinmux_functions[] = {
++};
++
++static int stm32_rtc_pinmux_get_functions_count(struct pinctrl_dev *pctldev)
++{
++	return ARRAY_SIZE(stm32_rtc_pinmux_functions);
++}
++
++static const char *stm32_rtc_pinmux_get_fname(struct pinctrl_dev *pctldev, unsigned int selector)
++{
++	return stm32_rtc_pinmux_functions[selector].name;
++}
++
++static int stm32_rtc_pinmux_get_groups(struct pinctrl_dev *pctldev, unsigned int selector,
++				       const char * const **groups, unsigned int * const num_groups)
++{
++	*groups = stm32_rtc_pinmux_functions[selector].groups;
++	*num_groups = stm32_rtc_pinmux_functions[selector].num_groups;
++	return 0;
++}
++
++static int stm32_rtc_pinmux_set_mux(struct pinctrl_dev *pctldev, unsigned int selector,
++				    unsigned int group)
++{
++	struct stm32_rtc_pinmux_func selected_func = stm32_rtc_pinmux_functions[selector];
++	struct pinctrl_pin_desc pin = stm32_rtc_pinctrl_pins[group];
++
++	/* Call action */
++	if (selected_func.action)
++		return selected_func.action(pctldev, pin.number);
++
++	return -EINVAL;
++}
++
++static const struct pinmux_ops stm32_rtc_pinmux_ops = {
++	.get_functions_count	= stm32_rtc_pinmux_get_functions_count,
++	.get_function_name	= stm32_rtc_pinmux_get_fname,
++	.get_function_groups	= stm32_rtc_pinmux_get_groups,
++	.set_mux		= stm32_rtc_pinmux_set_mux,
++	.strict			= true,
++};
++
++static struct pinctrl_desc stm32_rtc_pdesc = {
++	.name = DRIVER_NAME,
++	.pins = stm32_rtc_pinctrl_pins,
++	.npins = ARRAY_SIZE(stm32_rtc_pinctrl_pins),
++	.owner = THIS_MODULE,
++	.pctlops = &stm32_rtc_pinctrl_ops,
++	.pmxops = &stm32_rtc_pinmux_ops,
++};
++
+ static int stm32_rtc_enter_init_mode(struct stm32_rtc *rtc)
+ {
+ 	const struct stm32_rtc_registers *regs = &rtc->data->regs;
+@@ -723,6 +834,7 @@ static int stm32_rtc_probe(struct platfo
+ {
+ 	struct stm32_rtc *rtc;
+ 	const struct stm32_rtc_registers *regs;
++	struct pinctrl_dev *pctl;
+ 	int ret;
+ 
+ 	rtc = devm_kzalloc(&pdev->dev, sizeof(*rtc), GFP_KERNEL);
+@@ -834,6 +946,14 @@ static int stm32_rtc_probe(struct platfo
+ 		goto err;
+ 	}
+ 
++	ret = devm_pinctrl_register_and_init(&pdev->dev, &stm32_rtc_pdesc, rtc, &pctl);
++	if (ret)
++		return dev_err_probe(&pdev->dev, ret, "pinctrl register failed");
++
++	ret = pinctrl_enable(pctl);
++	if (ret)
++		return dev_err_probe(&pdev->dev, ret, "pinctrl enable failed");
++
+ 	/*
+ 	 * If INITS flag is reset (calendar year field set to 0x00), calendar
+ 	 * must be initialized
diff --git a/target/linux/stm32/patches-6.6/031-rtc-stm32-add-Low-Speed-Clock-Output-LSCO-support.patch b/target/linux/stm32/patches-6.6/031-rtc-stm32-add-Low-Speed-Clock-Output-LSCO-support.patch
new file mode 100644
index 0000000000..1ac0974572
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/031-rtc-stm32-add-Low-Speed-Clock-Output-LSCO-support.patch
@@ -0,0 +1,253 @@
+From 229476a4de2e237ebadddca8a82d20afa9298f71 Mon Sep 17 00:00:00 2001
+From: Valentin Caron <valentin.caron at foss.st.com>
+Date: Mon, 22 Jul 2024 18:00:21 +0200
+Subject: [PATCH] rtc: stm32: add Low Speed Clock Output (LSCO) support
+
+RTC is able to output on a pin the "LSE" internal clock.
+
+STM32 RTC is now registered as a clock provider.
+It provides rtc_lsco clock, that means RTC_LSCO is output on either
+RTC_OUT1 or RTC_OUT2_RMP, depending on pinmux DT property.
+The clock is marked as CLK_IGNORE_UNUSED and CLK_IS_CRITICAL because
+RTC_LSCO can be early required by devices needed it to init.
+
+Add LSCO in pinmux functions.
+
+Add "stm32_rtc_clean_outs" to disable LSCO. As RTC is part of "backup"
+power domain, it is not reset during shutdown or reboot. So force LSCO
+disable at probe.
+
+Co-developed-by: Amelie Delaunay <amelie.delaunay at foss.st.com>
+Signed-off-by: Amelie Delaunay <amelie.delaunay at foss.st.com>
+Signed-off-by: Valentin Caron <valentin.caron at foss.st.com>
+Link: https://lore.kernel.org/r/20240722160022.454226-4-valentin.caron at foss.st.com
+Signed-off-by: Alexandre Belloni <alexandre.belloni at bootlin.com>
+---
+ drivers/rtc/Kconfig     |  1 +
+ drivers/rtc/rtc-stm32.c | 99 +++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 100 insertions(+)
+
+--- a/drivers/rtc/Kconfig
++++ b/drivers/rtc/Kconfig
+@@ -1892,6 +1892,7 @@ config RTC_DRV_STM32
+ 	select PINMUX
+ 	select PINCONF
+ 	select GENERIC_PINCONF
++	depends on COMMON_CLK
+ 	help
+ 	   If you say yes here you get support for the STM32 On-Chip
+ 	   Real Time Clock.
+--- a/drivers/rtc/rtc-stm32.c
++++ b/drivers/rtc/rtc-stm32.c
+@@ -6,6 +6,7 @@
+ 
+ #include <linux/bcd.h>
+ #include <linux/clk.h>
++#include <linux/clk-provider.h>
+ #include <linux/errno.h>
+ #include <linux/iopoll.h>
+ #include <linux/ioport.h>
+@@ -44,6 +45,10 @@
+ #define STM32_RTC_CR_FMT		BIT(6)
+ #define STM32_RTC_CR_ALRAE		BIT(8)
+ #define STM32_RTC_CR_ALRAIE		BIT(12)
++#define STM32_RTC_CR_OSEL		GENMASK(22, 21)
++#define STM32_RTC_CR_COE		BIT(23)
++#define STM32_RTC_CR_TAMPOE		BIT(26)
++#define STM32_RTC_CR_OUT2EN		BIT(31)
+ 
+ /* STM32_RTC_ISR/STM32_RTC_ICSR bit fields */
+ #define STM32_RTC_ISR_ALRAWF		BIT(0)
+@@ -80,6 +85,12 @@
+ /* STM32_RTC_SR/_SCR bit fields */
+ #define STM32_RTC_SR_ALRA		BIT(0)
+ 
++/* STM32_RTC_CFGR bit fields */
++#define STM32_RTC_CFGR_OUT2_RMP		BIT(0)
++#define STM32_RTC_CFGR_LSCOEN		GENMASK(2, 1)
++#define STM32_RTC_CFGR_LSCOEN_OUT1	1
++#define STM32_RTC_CFGR_LSCOEN_OUT2_RMP	2
++
+ /* STM32_RTC_VERR bit fields */
+ #define STM32_RTC_VERR_MINREV_SHIFT	0
+ #define STM32_RTC_VERR_MINREV		GENMASK(3, 0)
+@@ -117,6 +128,7 @@ struct stm32_rtc_registers {
+ 	u16 wpr;
+ 	u16 sr;
+ 	u16 scr;
++	u16 cfgr;
+ 	u16 verr;
+ };
+ 
+@@ -131,6 +143,7 @@ struct stm32_rtc_data {
+ 	bool has_pclk;
+ 	bool need_dbp;
+ 	bool need_accuracy;
++	bool has_lsco;
+ };
+ 
+ struct stm32_rtc {
+@@ -143,6 +156,7 @@ struct stm32_rtc {
+ 	struct clk *rtc_ck;
+ 	const struct stm32_rtc_data *data;
+ 	int irq_alarm;
++	struct clk *clk_lsco;
+ };
+ 
+ static void stm32_rtc_wpr_unlock(struct stm32_rtc *rtc)
+@@ -209,7 +223,68 @@ struct stm32_rtc_pinmux_func {
+ 	int (*action)(struct pinctrl_dev *pctl_dev, unsigned int pin);
+ };
+ 
++static int stm32_rtc_pinmux_lsco_available(struct pinctrl_dev *pctldev, unsigned int pin)
++{
++	struct stm32_rtc *rtc = pinctrl_dev_get_drvdata(pctldev);
++	struct stm32_rtc_registers regs = rtc->data->regs;
++	unsigned int cr = readl_relaxed(rtc->base + regs.cr);
++	unsigned int cfgr = readl_relaxed(rtc->base + regs.cfgr);
++	unsigned int calib = STM32_RTC_CR_COE;
++	unsigned int tampalrm = STM32_RTC_CR_TAMPOE | STM32_RTC_CR_OSEL;
++
++	switch (pin) {
++	case OUT1:
++		if ((!(cr & STM32_RTC_CR_OUT2EN) &&
++		     ((cr & calib) || cr & tampalrm)) ||
++		     ((cr & calib) && (cr & tampalrm)))
++			return -EBUSY;
++		break;
++	case OUT2_RMP:
++		if ((cr & STM32_RTC_CR_OUT2EN) &&
++		    (cfgr & STM32_RTC_CFGR_OUT2_RMP) &&
++		    ((cr & calib) || (cr & tampalrm)))
++			return -EBUSY;
++		break;
++	default:
++		return -EINVAL;
++	}
++
++	if (clk_get_rate(rtc->rtc_ck) != 32768)
++		return -ERANGE;
++
++	return 0;
++}
++
++static int stm32_rtc_pinmux_action_lsco(struct pinctrl_dev *pctldev, unsigned int pin)
++{
++	struct stm32_rtc *rtc = pinctrl_dev_get_drvdata(pctldev);
++	struct stm32_rtc_registers regs = rtc->data->regs;
++	struct device *dev = rtc->rtc_dev->dev.parent;
++	u8 lscoen;
++	int ret;
++
++	if (!rtc->data->has_lsco)
++		return -EPERM;
++
++	ret = stm32_rtc_pinmux_lsco_available(pctldev, pin);
++	if (ret)
++		return ret;
++
++	lscoen = (pin == OUT1) ? STM32_RTC_CFGR_LSCOEN_OUT1 : STM32_RTC_CFGR_LSCOEN_OUT2_RMP;
++
++	rtc->clk_lsco = clk_register_gate(dev, "rtc_lsco", __clk_get_name(rtc->rtc_ck),
++					  CLK_IGNORE_UNUSED | CLK_IS_CRITICAL,
++					  rtc->base + regs.cfgr, lscoen, 0, NULL);
++	if (IS_ERR(rtc->clk_lsco))
++		return PTR_ERR(rtc->clk_lsco);
++
++	of_clk_add_provider(dev->of_node, of_clk_src_simple_get, rtc->clk_lsco);
++
++	return 0;
++}
++
+ static const struct stm32_rtc_pinmux_func stm32_rtc_pinmux_functions[] = {
++	STM32_RTC_PINMUX("lsco", &stm32_rtc_pinmux_action_lsco, "out1", "out2_rmp"),
+ };
+ 
+ static int stm32_rtc_pinmux_get_functions_count(struct pinctrl_dev *pctldev)
+@@ -664,6 +739,7 @@ static const struct stm32_rtc_data stm32
+ 	.has_pclk = false,
+ 	.need_dbp = true,
+ 	.need_accuracy = false,
++	.has_lsco = false,
+ 	.regs = {
+ 		.tr = 0x00,
+ 		.dr = 0x04,
+@@ -674,6 +750,7 @@ static const struct stm32_rtc_data stm32
+ 		.wpr = 0x24,
+ 		.sr = 0x0C, /* set to ISR offset to ease alarm management */
+ 		.scr = UNDEF_REG,
++		.cfgr = UNDEF_REG,
+ 		.verr = UNDEF_REG,
+ 	},
+ 	.events = {
+@@ -686,6 +763,7 @@ static const struct stm32_rtc_data stm32
+ 	.has_pclk = true,
+ 	.need_dbp = true,
+ 	.need_accuracy = false,
++	.has_lsco = false,
+ 	.regs = {
+ 		.tr = 0x00,
+ 		.dr = 0x04,
+@@ -696,6 +774,7 @@ static const struct stm32_rtc_data stm32
+ 		.wpr = 0x24,
+ 		.sr = 0x0C, /* set to ISR offset to ease alarm management */
+ 		.scr = UNDEF_REG,
++		.cfgr = UNDEF_REG,
+ 		.verr = UNDEF_REG,
+ 	},
+ 	.events = {
+@@ -717,6 +796,7 @@ static const struct stm32_rtc_data stm32
+ 	.has_pclk = true,
+ 	.need_dbp = false,
+ 	.need_accuracy = true,
++	.has_lsco = true,
+ 	.regs = {
+ 		.tr = 0x00,
+ 		.dr = 0x04,
+@@ -727,6 +807,7 @@ static const struct stm32_rtc_data stm32
+ 		.wpr = 0x24,
+ 		.sr = 0x50,
+ 		.scr = 0x5C,
++		.cfgr = 0x60,
+ 		.verr = 0x3F4,
+ 	},
+ 	.events = {
+@@ -743,6 +824,19 @@ static const struct of_device_id stm32_r
+ };
+ MODULE_DEVICE_TABLE(of, stm32_rtc_of_match);
+ 
++static void stm32_rtc_clean_outs(struct stm32_rtc *rtc)
++{
++	struct stm32_rtc_registers regs = rtc->data->regs;
++
++	if (regs.cfgr != UNDEF_REG) {
++		unsigned int cfgr = readl_relaxed(rtc->base + regs.cfgr);
++
++		cfgr &= ~STM32_RTC_CFGR_LSCOEN;
++		cfgr &= ~STM32_RTC_CFGR_OUT2_RMP;
++		writel_relaxed(cfgr, rtc->base + regs.cfgr);
++	}
++}
++
+ static int stm32_rtc_init(struct platform_device *pdev,
+ 			  struct stm32_rtc *rtc)
+ {
+@@ -946,6 +1040,8 @@ static int stm32_rtc_probe(struct platfo
+ 		goto err;
+ 	}
+ 
++	stm32_rtc_clean_outs(rtc);
++
+ 	ret = devm_pinctrl_register_and_init(&pdev->dev, &stm32_rtc_pdesc, rtc, &pctl);
+ 	if (ret)
+ 		return dev_err_probe(&pdev->dev, ret, "pinctrl register failed");
+@@ -992,6 +1088,9 @@ static void stm32_rtc_remove(struct plat
+ 	const struct stm32_rtc_registers *regs = &rtc->data->regs;
+ 	unsigned int cr;
+ 
++	if (!IS_ERR_OR_NULL(rtc->clk_lsco))
++		clk_unregister_gate(rtc->clk_lsco);
++
+ 	/* Disable interrupts */
+ 	stm32_rtc_wpr_unlock(rtc);
+ 	cr = readl_relaxed(rtc->base + regs->cr);
diff --git a/target/linux/stm32/patches-6.6/032-ARM-dts-stm32-rtc-add-pin-to-provide-LSCO-on-stm32mp.patch b/target/linux/stm32/patches-6.6/032-ARM-dts-stm32-rtc-add-pin-to-provide-LSCO-on-stm32mp.patch
new file mode 100644
index 0000000000..1d5bedbad3
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/032-ARM-dts-stm32-rtc-add-pin-to-provide-LSCO-on-stm32mp.patch
@@ -0,0 +1,31 @@
+From 92483a156238078562d187f527de6b358cb53a08 Mon Sep 17 00:00:00 2001
+From: Valentin Caron <valentin.caron at foss.st.com>
+Date: Tue, 27 Aug 2024 16:04:48 +0200
+Subject: [PATCH] ARM: dts: stm32: rtc, add pin to provide LSCO on
+ stm32mp13
+
+Declare pin for LSCO in stm32-pinctrl provider node to reserve this pin
+for RTC OUT2_RMP, in stm32mp13-pinctrl.dtsi.
+
+Signed-off-by: Valentin Caron <valentin.caron at foss.st.com>
+Signed-off-by: Alexandre Torgue <alexandre.torgue at foss.st.com>
+---
+ arch/arm/boot/dts/st/stm32mp13-pinctrl.dtsi | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/arch/arm/boot/dts/st/stm32mp13-pinctrl.dtsi
++++ b/arch/arm/boot/dts/st/stm32mp13-pinctrl.dtsi
+@@ -212,6 +212,13 @@
+ 		};
+ 	};
+ 
++	/omit-if-no-ref/
++	rtc_rsvd_pins_a: rtc-rsvd-0 {
++		pins {
++			pinmux = <STM32_PINMUX('I', 1, ANALOG)>; /* RTC_OUT2_RMP */
++		};
++	};
++
+ 	sdmmc1_b4_pins_a: sdmmc1-b4-0 {
+ 		pins {
+ 			pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
diff --git a/target/linux/stm32/patches-6.6/033-ARM-dts-stm32-rtc-add-LSCO-to-WLAN-BT-module-on-stm3.patch b/target/linux/stm32/patches-6.6/033-ARM-dts-stm32-rtc-add-LSCO-to-WLAN-BT-module-on-stm3.patch
new file mode 100644
index 0000000000..ec6a086a7d
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/033-ARM-dts-stm32-rtc-add-LSCO-to-WLAN-BT-module-on-stm3.patch
@@ -0,0 +1,34 @@
+From d6e424f926397e682fc44a952d5b3a1e34b2cd73 Mon Sep 17 00:00:00 2001
+From: Valentin Caron <valentin.caron at foss.st.com>
+Date: Tue, 27 Aug 2024 16:04:50 +0200
+Subject: [PATCH] ARM: dts: stm32: rtc, add LSCO to WLAN/BT module on
+ stm32mp135f-dk
+
+On stm32mp135f-dk board, WLAN/BT module LPO_IN pin is wired to
+RTC OUT2_RMP pin.
+
+Provide a pinctrl configuration to enable LSCO on OUT2_RMP.
+
+Signed-off-by: Valentin Caron <valentin.caron at foss.st.com>
+Signed-off-by: Alexandre Torgue <alexandre.torgue at foss.st.com>
+---
+ arch/arm/boot/dts/st/stm32mp135f-dk.dts | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/arch/arm/boot/dts/st/stm32mp135f-dk.dts
++++ b/arch/arm/boot/dts/st/stm32mp135f-dk.dts
+@@ -184,7 +184,14 @@
+ };
+ 
+ &rtc {
++	pinctrl-names = "default";
++	pinctrl-0 = <&rtc_rsvd_pins_a>;
+ 	status = "okay";
++
++	rtc_lsco_pins_a: rtc-lsco-0 {
++		pins = "out2_rmp";
++		function = "lsco";
++	};
+ };
+ 
+ &scmi_regu {
diff --git a/target/linux/stm32/patches-6.6/034-ARM-dts-stm32-add-support-of-WLAN-BT-on-stm32mp135f-.patch b/target/linux/stm32/patches-6.6/034-ARM-dts-stm32-add-support-of-WLAN-BT-on-stm32mp135f-.patch
new file mode 100644
index 0000000000..e2b69ac8c7
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/034-ARM-dts-stm32-add-support-of-WLAN-BT-on-stm32mp135f-.patch
@@ -0,0 +1,84 @@
+From 6b44fdef4c7ad112e17d7cbd64d7d522a426d6e4 Mon Sep 17 00:00:00 2001
+From: Christophe Roullier <christophe.roullier at foss.st.com>
+Date: Tue, 27 Aug 2024 16:04:52 +0200
+Subject: [PATCH] ARM: dts: stm32: add support of WLAN/BT on stm32mp135f-dk
+
+Add support of WLAN/BT Murata Type 1DX module:
+- usart2 is used for Bluetooth interface
+- sdmmc2 is used for WLAN (sdio) interface
+
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+Signed-off-by: Valentin Caron <valentin.caron at foss.st.com>
+Signed-off-by: Alexandre Torgue <alexandre.torgue at foss.st.com>
+---
+ arch/arm/boot/dts/st/stm32mp135f-dk.dts | 45 +++++++++++++++++++++++++
+ 1 file changed, 45 insertions(+)
+
+--- a/arch/arm/boot/dts/st/stm32mp135f-dk.dts
++++ b/arch/arm/boot/dts/st/stm32mp135f-dk.dts
+@@ -67,6 +67,19 @@
+ 			default-state = "off";
+ 		};
+ 	};
++
++	v3v3_ao: v3v3-ao {
++		compatible = "regulator-fixed";
++		regulator-name = "v3v3_ao";
++		regulator-min-microvolt = <3300000>;
++		regulator-max-microvolt = <3300000>;
++		regulator-always-on;
++	};
++
++	wifi_pwrseq: wifi-pwrseq {
++		compatible = "mmc-pwrseq-simple";
++		reset-gpios = <&mcp23017 11 GPIO_ACTIVE_LOW>;
++	};
+ };
+ 
+ &adc_1 {
+@@ -230,6 +243,30 @@
+ 	status = "okay";
+ };
+ 
++/* Wifi */
++&sdmmc2 {
++	pinctrl-names = "default", "opendrain", "sleep";
++	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_clk_pins_a>;
++	pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_clk_pins_a>;
++	pinctrl-2 = <&sdmmc2_b4_sleep_pins_a>;
++	non-removable;
++	cap-sdio-irq;
++	st,neg-edge;
++	bus-width = <4>;
++	vmmc-supply = <&v3v3_ao>;
++	mmc-pwrseq = <&wifi_pwrseq>;
++	#address-cells = <1>;
++	#size-cells = <0>;
++	status = "okay";
++
++	brcmf: bcrmf at 1 {
++		reg = <1>;
++		compatible = "brcm,bcm4329-fmac";
++		pinctrl-names = "default";
++		pinctrl-0 = <&rtc_lsco_pins_a>;
++	};
++};
++
+ &spi5 {
+ 	pinctrl-names = "default", "sleep";
+ 	pinctrl-0 = <&spi5_pins_a>;
+@@ -332,6 +369,14 @@
+ 	pinctrl-2 = <&usart2_idle_pins_a>;
+ 	uart-has-rtscts;
+ 	status = "okay";
++
++	bluetooth {
++		shutdown-gpios = <&mcp23017 13 GPIO_ACTIVE_HIGH>;
++		compatible = "brcm,bcm43438-bt";
++		max-speed = <3000000>;
++		vbat-supply = <&v3v3_ao>;
++		vddio-supply = <&v3v3_ao>;
++	};
+ };
+ 
+ &usbh_ehci {
diff --git a/target/linux/stm32/patches-6.6/700-net-stmmac-dwmac-stm32-add-support-of-phy-supply-pro.patch b/target/linux/stm32/patches-6.6/700-net-stmmac-dwmac-stm32-add-support-of-phy-supply-pro.patch
new file mode 100644
index 0000000000..57d2a26c1a
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/700-net-stmmac-dwmac-stm32-add-support-of-phy-supply-pro.patch
@@ -0,0 +1,106 @@
+From 7bfe3404a02923ca3858abf56b18a098b4be33b2 Mon Sep 17 00:00:00 2001
+From: Christophe Roullier <christophe.roullier at st.com>
+Date: Wed, 10 Nov 2021 17:39:40 +0100
+Subject: [PATCH] net: ethernet: stmmac: stm32: support the phy-supply
+ regulator binding
+
+Configure the phy regulator if defined by the "phy-supply" DT phandle.
+
+Signed-off-by: Christophe Roullier <christophe.roullier at foss.st.com>
+---
+ .../net/ethernet/stmicro/stmmac/dwmac-stm32.c | 51 ++++++++++++++++++-
+ 1 file changed, 50 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
+@@ -14,6 +14,7 @@
+ #include <linux/of_net.h>
+ #include <linux/phy.h>
+ #include <linux/platform_device.h>
++#include <linux/regulator/consumer.h>
+ #include <linux/pm_wakeirq.h>
+ #include <linux/regmap.h>
+ #include <linux/slab.h>
+@@ -92,6 +93,7 @@ struct stm32_dwmac {
+ 	u32 mode_reg;		 /* MAC glue-logic mode register */
+ 	u32 mode_mask;
+ 	struct regmap *regmap;
++	struct regulator *regulator;
+ 	u32 speed;
+ 	const struct stm32_ops *ops;
+ 	struct device *dev;
+@@ -374,6 +376,16 @@ static int stm32_dwmac_parse_data(struct
+ 			dev_dbg(dev, "Warning sysconfig register mask not set\n");
+ 	}
+ 
++	dwmac->regulator = devm_regulator_get_optional(dev, "phy");
++	if (IS_ERR(dwmac->regulator)) {
++		if (PTR_ERR(dwmac->regulator) == -EPROBE_DEFER) {
++			dev_dbg(dev, "phy regulator is not available yet, deferred probing\n");
++			return -EPROBE_DEFER;
++		}
++		dev_dbg(dev, "no regulator found\n");
++		dwmac->regulator = NULL;
++	}
++
+ 	return err;
+ }
+ 
+@@ -439,6 +451,28 @@ static int stm32mp1_parse_data(struct st
+ 	return err;
+ }
+ 
++static int phy_power_on(struct stm32_dwmac *bsp_priv, bool enable)
++{
++	int ret;
++	struct device *dev = bsp_priv->dev;
++
++	if (!bsp_priv->regulator)
++		return 0;
++
++	if (enable) {
++		ret = regulator_enable(bsp_priv->regulator);
++		if (ret)
++			dev_err(dev, "fail to enable phy-supply\n");
++	} else {
++		ret = regulator_disable(bsp_priv->regulator);
++		if (ret)
++			dev_err(dev, "fail to disable phy-supply\n");
++	}
++
++	return 0;
++}
++
++
+ static int stm32_dwmac_probe(struct platform_device *pdev)
+ {
+ 	struct plat_stmmacenet_data *plat_dat;
+@@ -480,12 +514,18 @@ static int stm32_dwmac_probe(struct plat
+ 	if (ret)
+ 		return ret;
+ 
+-	ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
++	ret = phy_power_on(plat_dat->bsp_priv, true);
+ 	if (ret)
+ 		goto err_clk_disable;
+ 
++	ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
++	if (ret)
++		goto err_gmac_powerdown;
++
+ 	return 0;
+ 
++err_gmac_powerdown:
++	phy_power_on(plat_dat->bsp_priv, false);
+ err_clk_disable:
+ 	stm32_dwmac_clk_disable(dwmac, false);
+ 
+@@ -506,6 +546,8 @@ static void stm32_dwmac_remove(struct pl
+ 		dev_pm_clear_wake_irq(&pdev->dev);
+ 		device_init_wakeup(&pdev->dev, false);
+ 	}
++
++	phy_power_on(priv->plat->bsp_priv, false);
+ }
+ 
+ static int stm32mp1_suspend(struct stm32_dwmac *dwmac)
diff --git a/target/linux/stm32/patches-6.6/900-ARM-dts-stm32-add-ethernet2-for-STM32MP135F-DK-board.patch b/target/linux/stm32/patches-6.6/900-ARM-dts-stm32-add-ethernet2-for-STM32MP135F-DK-board.patch
new file mode 100644
index 0000000000..48fa446bd8
--- /dev/null
+++ b/target/linux/stm32/patches-6.6/900-ARM-dts-stm32-add-ethernet2-for-STM32MP135F-DK-board.patch
@@ -0,0 +1,53 @@
+From 63c84f846ec5b794a6c90a1c5813cdb0ae75daf6 Mon Sep 17 00:00:00 2001
+From: Thomas Richard <thomas.richard at bootlin.com>
+Date: Thu, 26 Sep 2024 16:48:52 +0200
+Subject: [PATCH] ARM: dts: stm32: add ethernet2 for STM32MP135F-DK board
+
+This patch is based on the stm32mp135f-dk devicetree from 6.6 ST kernel.
+
+Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
+---
+ arch/arm/boot/dts/st/stm32mp135f-dk.dts | 25 +++++++++++++++++++++++++
+ 1 file changed, 25 insertions(+)
+
+--- a/arch/arm/boot/dts/st/stm32mp135f-dk.dts
++++ b/arch/arm/boot/dts/st/stm32mp135f-dk.dts
+@@ -20,6 +20,7 @@
+ 
+ 	aliases {
+ 		ethernet0 = &ethernet1;
++		ethernet1 = &ethernet2;
+ 		serial0 = &uart4;
+ 		serial1 = &usart1;
+ 		serial2 = &uart8;
+@@ -129,6 +130,30 @@
+ 	};
+ };
+ 
++&ethernet2 {
++	status = "okay";
++	pinctrl-0 = <&eth2_rmii_pins_a>;
++	pinctrl-1 = <&eth2_rmii_sleep_pins_a>;
++	pinctrl-names = "default", "sleep";
++	phy-mode = "rmii";
++	phy-handle = <&phy0_eth2>;
++	st,ext-phyclk;
++	phy-supply = <&scmi_v3v3_sw>;
++
++	mdio1 {
++		#address-cells = <1>;
++		#size-cells = <0>;
++		compatible = "snps,dwmac-mdio";
++		phy0_eth2: ethernet-phy at 0 {
++			compatible = "ethernet-phy-id0007.c131";
++			reset-gpios = <&mcp23017 10 GPIO_ACTIVE_LOW>;
++			reg = <0>;
++		};
++	};
++};
++
++
++
+ &i2c1 {
+ 	pinctrl-names = "default", "sleep";
+ 	pinctrl-0 = <&i2c1_pins_a>;
diff --git a/target/linux/stm32/stm32mp1/config-6.6 b/target/linux/stm32/stm32mp1/config-6.6
new file mode 100644
index 0000000000..946649ef9b
--- /dev/null
+++ b/target/linux/stm32/stm32mp1/config-6.6
@@ -0,0 +1,485 @@
+CONFIG_ALIGNMENT_TRAP=y
+CONFIG_ARCH_32BIT_OFF_T=y
+CONFIG_ARCH_FORCE_MAX_ORDER=12
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_KEEP_MEMBLOCK=y
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
+CONFIG_ARCH_MULTIPLATFORM=y
+CONFIG_ARCH_MULTI_V6_V7=y
+CONFIG_ARCH_MULTI_V7=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_STACKWALK=y
+CONFIG_ARCH_STM32=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARM=y
+CONFIG_ARM_AMBA=y
+CONFIG_ARM_APPENDED_DTB=y
+CONFIG_ARM_ARCH_TIMER=y
+CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
+CONFIG_ARM_ATAG_DTB_COMPAT=y
+CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y
+CONFIG_ARM_CPU_SUSPEND=y
+CONFIG_ARM_ERRATA_430973=y
+CONFIG_ARM_ERRATA_643719=y
+CONFIG_ARM_ERRATA_720789=y
+CONFIG_ARM_ERRATA_754322=y
+CONFIG_ARM_ERRATA_754327=y
+CONFIG_ARM_ERRATA_764369=y
+CONFIG_ARM_ERRATA_775420=y
+CONFIG_ARM_ERRATA_798181=y
+CONFIG_ARM_ERRATA_814220=y
+CONFIG_ARM_GIC=y
+CONFIG_ARM_HAS_GROUP_RELOCS=y
+# CONFIG_ARM_HIGHBANK_CPUIDLE is not set
+CONFIG_ARM_L1_CACHE_SHIFT=6
+CONFIG_ARM_L1_CACHE_SHIFT_6=y
+CONFIG_ARM_PATCH_IDIV=y
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+# CONFIG_ARM_PL172_MPMC is not set
+CONFIG_ARM_PSCI=y
+CONFIG_ARM_PSCI_CPUIDLE=y
+CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y
+CONFIG_ARM_PSCI_FW=y
+CONFIG_ARM_SCMI_CPUFREQ=y
+CONFIG_ARM_SCMI_HAVE_MSG=y
+CONFIG_ARM_SCMI_HAVE_SHMEM=y
+CONFIG_ARM_SCMI_HAVE_TRANSPORT=y
+# CONFIG_ARM_SCMI_POWER_CONTROL is not set
+CONFIG_ARM_SCMI_POWER_DOMAIN=y
+CONFIG_ARM_SCMI_PROTOCOL=y
+# CONFIG_ARM_SCMI_RAW_MODE_SUPPORT is not set
+CONFIG_ARM_SCMI_TRANSPORT_OPTEE=y
+CONFIG_ARM_SCMI_TRANSPORT_SMC=y
+# CONFIG_ARM_SCMI_TRANSPORT_SMC_ATOMIC_ENABLE is not set
+CONFIG_ARM_SMCCC_SOC_ID=y
+CONFIG_ARM_SMC_WATCHDOG=y
+# CONFIG_ARM_SMMU is not set
+CONFIG_ARM_THUMB=y
+CONFIG_ARM_THUMBEE=y
+CONFIG_ARM_UNWIND=y
+CONFIG_ARM_VIRT_EXT=y
+CONFIG_AUTO_ZRELADDR=y
+CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y
+# CONFIG_BLK_DEV_INITRD is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_PM=y
+CONFIG_BOUNCE=y
+CONFIG_BUFFER_HEAD=y
+# CONFIG_CACHE_L2X0 is not set
+CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
+CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
+CONFIG_CC_NO_ARRAY_BOUNDS=y
+CONFIG_CHR_DEV_SG=y
+CONFIG_CLKSRC_MMIO=y
+CONFIG_CLKSRC_STM32=y
+CONFIG_CLK_ICST=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_CMA=y
+CONFIG_CMA_ALIGNMENT=8
+CONFIG_CMA_AREAS=7
+# CONFIG_CMA_DEBUG is not set
+# CONFIG_CMA_DEBUGFS is not set
+CONFIG_CMA_SIZE_MBYTES=64
+# CONFIG_CMA_SIZE_SEL_MAX is not set
+CONFIG_CMA_SIZE_SEL_MBYTES=y
+# CONFIG_CMA_SIZE_SEL_MIN is not set
+# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
+# CONFIG_CMA_SYSFS is not set
+CONFIG_CMDLINE_PARTITION=y
+CONFIG_COMMON_CLK=y
+CONFIG_COMMON_CLK_SCMI=y
+CONFIG_COMMON_CLK_STM32MP135=y
+CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_CONTEXT_TRACKING=y
+CONFIG_CONTEXT_TRACKING_IDLE=y
+CONFIG_CONTIG_ALLOC=y
+CONFIG_COREDUMP=y
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_CPUFREQ_DT=y
+CONFIG_CPUFREQ_DT_PLATDEV=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_32v7=y
+CONFIG_CPU_ABRT_EV7=y
+CONFIG_CPU_CACHE_V7=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
+CONFIG_CPU_ISOLATION=y
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_CPU_MITIGATIONS=y
+CONFIG_CPU_PABRT_V7=y
+CONFIG_CPU_PM=y
+CONFIG_CPU_RMAP=y
+CONFIG_CPU_SPECTRE=y
+CONFIG_CPU_THUMB_CAPABLE=y
+CONFIG_CPU_TLB_V7=y
+CONFIG_CPU_V7=y
+CONFIG_CRC16=y
+CONFIG_CROSS_MEMORY_ATTACH=y
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
+CONFIG_CRYPTO_LIB_GF128MUL=y
+CONFIG_CRYPTO_LIB_SHA1=y
+CONFIG_CRYPTO_LIB_UTILS=y
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CURRENT_POINTER_IN_TPIDRURO=y
+CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_DEBUG_ALIGN_RODATA=y
+CONFIG_DEBUG_INFO=y
+CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
+CONFIG_DEVFREQ_GOV_PASSIVE=y
+# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
+# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+# CONFIG_DEVFREQ_GOV_USERSPACE is not set
+CONFIG_DMADEVICES=y
+CONFIG_DMA_CMA=y
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_OF=y
+CONFIG_DMA_OPS=y
+CONFIG_DMA_SHARED_BUFFER=y
+CONFIG_DMA_VIRTUAL_CHANNELS=y
+CONFIG_DNOTIFY=y
+CONFIG_DTC=y
+CONFIG_DT_IDLE_GENPD=y
+CONFIG_DT_IDLE_STATES=y
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DWMAC_DWC_QOS_ETH=y
+CONFIG_DWMAC_GENERIC=y
+CONFIG_DWMAC_STM32=y
+CONFIG_DW_DMAC=y
+CONFIG_DW_DMAC_CORE=y
+CONFIG_EDAC=y
+CONFIG_EDAC_ATOMIC_SCRUB=y
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_LEGACY_SYSFS=y
+CONFIG_EDAC_SUPPORT=y
+CONFIG_ELF_CORE=y
+CONFIG_EXCLUSIVE_SYSTEM_RAM=y
+CONFIG_EXT4_FS=y
+CONFIG_FIXED_PHY=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_FREEZER=y
+CONFIG_FS_IOMAP=y
+CONFIG_FS_MBCACHE=y
+CONFIG_FUNCTION_ALIGNMENT=0
+CONFIG_FWNODE_MDIO=y
+CONFIG_FW_CACHE=y
+# CONFIG_FW_LOADER_USER_HELPER is not set
+CONFIG_GCC10_NO_ARRAY_BOUNDS=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_GENERIC_CPU_VULNERABILITIES=y
+CONFIG_GENERIC_EARLY_IOREMAP=y
+CONFIG_GENERIC_GETTIMEOFDAY=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
+CONFIG_GENERIC_IRQ_MIGRATION=y
+CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
+CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_PHY=y
+CONFIG_GENERIC_PINCONF=y
+CONFIG_GENERIC_PINCTRL_GROUPS=y
+CONFIG_GENERIC_PINMUX_FUNCTIONS=y
+CONFIG_GENERIC_SCHED_CLOCK=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_VDSO_32=y
+CONFIG_GLOB=y
+CONFIG_GPIOLIB_IRQCHIP=y
+CONFIG_GPIO_CDEV=y
+CONFIG_GPIO_GENERIC=y
+CONFIG_GPIO_GENERIC_PLATFORM=y
+CONFIG_GPIO_SYSCON=y
+# CONFIG_GPIO_SYSFS is not set
+CONFIG_HARDEN_BRANCH_PREDICTOR=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_HAS_DMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAVE_SMP=y
+CONFIG_HIGHMEM=y
+CONFIG_HIGHPTE=y
+CONFIG_HOTPLUG_CORE_SYNC=y
+CONFIG_HOTPLUG_CORE_SYNC_DEAD=y
+CONFIG_HOTPLUG_CPU=y
+CONFIG_HW_CONSOLE=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_OPTEE=y
+# CONFIG_HW_RANDOM_STM32 is not set
+CONFIG_HZ_FIXED=0
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_DEMUX_PINCTRL=y
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_MUX=y
+CONFIG_I2C_MUX_GPIO=y
+CONFIG_I2C_MUX_PCA954x=y
+CONFIG_I2C_MUX_PINCTRL=y
+CONFIG_I2C_SLAVE=y
+# CONFIG_I2C_SLAVE_TESTUNIT is not set
+CONFIG_I2C_SMBUS=y
+# CONFIG_I2C_STM32F4 is not set
+CONFIG_I2C_STM32F7=y
+CONFIG_INPUT=y
+# CONFIG_IOMMUFD is not set
+# CONFIG_IOMMU_DEBUGFS is not set
+CONFIG_IOMMU_IO_PGTABLE=y
+# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
+CONFIG_IOMMU_IO_PGTABLE_LPAE=y
+# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
+CONFIG_IOMMU_SUPPORT=y
+CONFIG_IRQCHIP=y
+CONFIG_IRQSTACKS=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_IRQ_WORK=y
+CONFIG_JBD2=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_XZ is not set
+CONFIG_KMAP_LOCAL=y
+CONFIG_KMAP_LOCAL_NON_LINEAR_PTE_ARRAY=y
+# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
+# CONFIG_LEDS_CLASS_MULTICOLOR is not set
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_ONESHOT=y
+CONFIG_LEDS_TRIGGER_TRANSIENT=y
+CONFIG_LIBFDT=y
+CONFIG_LOCK_DEBUGGING_SUPPORT=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_LOG_BUF_SHIFT=16
+# CONFIG_LRU_GEN is not set
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_MACH_STM32MP13=y
+# CONFIG_MACH_STM32MP157 is not set
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MAGIC_SYSRQ_SERIAL=y
+CONFIG_MDIO_BITBANG=y
+CONFIG_MDIO_BUS=y
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_DEVRES=y
+# CONFIG_MDIO_GPIO is not set
+CONFIG_MEMORY=y
+CONFIG_MEMORY_ISOLATION=y
+# CONFIG_MFD_STM32_LPTIMER is not set
+# CONFIG_MFD_STM32_TIMERS is not set
+CONFIG_MFD_SYSCON=y
+CONFIG_MIGHT_HAVE_CACHE_L2X0=y
+CONFIG_MIGRATION=y
+CONFIG_MMC=y
+CONFIG_MMC_ARMMMCI=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=16
+CONFIG_MMC_STM32_SDMMC=y
+CONFIG_MMU_LAZY_TLB_REFCOUNT=y
+CONFIG_MODULES_USE_ELF_REL=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SRCU_NMI_SAFE=y
+CONFIG_NEON=y
+CONFIG_NET_EGRESS=y
+CONFIG_NET_FLOW_LIMIT=y
+CONFIG_NET_INGRESS=y
+CONFIG_NET_PTP_CLASSIFY=y
+CONFIG_NET_SELFTESTS=y
+CONFIG_NET_XGRESS=y
+CONFIG_NO_HZ_COMMON=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_NR_CPUS=2
+CONFIG_OF=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_DYNAMIC=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_KOBJ=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_OVERLAY=y
+CONFIG_OF_RESOLVE=y
+CONFIG_OLD_SIGACTION=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_OPTEE=y
+CONFIG_PADATA=y
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_PAGE_POOL=y
+CONFIG_PAGE_POOL_STATS=y
+CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
+CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=0
+CONFIG_PCPU_DEV_REFCNT=y
+CONFIG_PCS_XPCS=y
+CONFIG_PERF_USE_VMALLOC=y
+CONFIG_PGTABLE_LEVELS=2
+CONFIG_PHYLIB=y
+CONFIG_PHYLIB_LEDS=y
+CONFIG_PHYLINK=y
+# CONFIG_PHY_STM32_USBPHYC is not set
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_MCP23S08=y
+CONFIG_PINCTRL_MCP23S08_I2C=y
+CONFIG_PINCTRL_STM32=y
+CONFIG_PINCTRL_STM32MP135=y
+# CONFIG_PL353_SMC is not set
+CONFIG_PM=y
+CONFIG_PM_CLK=y
+CONFIG_PM_DEVFREQ=y
+CONFIG_PM_DEVFREQ_EVENT=y
+CONFIG_PM_GENERIC_DOMAINS=y
+CONFIG_PM_GENERIC_DOMAINS_OF=y
+CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
+CONFIG_PM_OPP=y
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_GPIO=y
+CONFIG_POWER_RESET_GPIO_RESTART=y
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_PPS=y
+CONFIG_PREEMPT_NONE_BUILD=y
+CONFIG_PRINTK_TIME=y
+CONFIG_PTP_1588_CLOCK=y
+CONFIG_PTP_1588_CLOCK_OPTIONAL=y
+CONFIG_RANDSTRUCT_NONE=y
+CONFIG_RAS=y
+CONFIG_RATIONAL=y
+# CONFIG_RAVE_SP_CORE is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_ARM_SCMI=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_GPIO=y
+# CONFIG_REGULATOR_STM32_BOOSTER is not set
+# CONFIG_REGULATOR_STM32_PWR is not set
+# CONFIG_REGULATOR_STM32_VREFBUF is not set
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RESET_SCMI=y
+CONFIG_RESET_SIMPLE=y
+CONFIG_RFS_ACCEL=y
+CONFIG_RPS=y
+CONFIG_RTC_CLASS=y
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_OPTEE is not set
+CONFIG_RTC_DRV_STM32=y
+CONFIG_RTC_I2C_AND_SPI=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_SCSI=y
+CONFIG_SCSI_COMMON=y
+# CONFIG_SERIAL_8250 is not set
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+CONFIG_SERIAL_MCTRL_GPIO=y
+CONFIG_SERIAL_STM32=y
+CONFIG_SERIAL_STM32_CONSOLE=y
+CONFIG_SERIO=y
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_SERPORT=y
+CONFIG_SGL_ALLOC=y
+CONFIG_SG_POOL=y
+CONFIG_SMP=y
+CONFIG_SMP_ON_UP=y
+CONFIG_SOCK_RX_QUEUE_MAPPING=y
+CONFIG_SOC_BUS=y
+CONFIG_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FILE_CACHE=y
+# CONFIG_SQUASHFS_FILE_DIRECT is not set
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_ZLIB=y
+CONFIG_STM32_DMA=y
+CONFIG_STM32_DMAMUX=y
+CONFIG_STM32_EXTI=y
+# CONFIG_STM32_FMC2_EBI is not set
+CONFIG_STM32_MDMA=y
+CONFIG_STM32_WATCHDOG=y
+CONFIG_STMMAC_ETH=y
+CONFIG_STMMAC_PLATFORM=y
+# CONFIG_STRIP_ASM_SYMS is not set
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_SWPHY=y
+CONFIG_SWP_EMULATE=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_TEE=y
+CONFIG_THREAD_INFO_IN_TASK=y
+CONFIG_TICK_CPU_ACCOUNTING=y
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_TREE_RCU=y
+CONFIG_TREE_SRCU=y
+CONFIG_TRUSTED_FOUNDATIONS=y
+# CONFIG_UCLAMP_TASK is not set
+# CONFIG_UEVENT_HELPER is not set
+CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
+CONFIG_UNWINDER_ARM=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USELIB=y
+CONFIG_USE_OF=y
+CONFIG_VFP=y
+CONFIG_VFPv3=y
+CONFIG_VMAP_STACK=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_WATCHDOG_CORE=y
+# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
+CONFIG_XPS=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_BCJ=y
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=y
diff --git a/target/linux/stm32/stm32mp1/target.mk b/target/linux/stm32/stm32mp1/target.mk
new file mode 100644
index 0000000000..c41055d5b5
--- /dev/null
+++ b/target/linux/stm32/stm32mp1/target.mk
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Copyright (C) 2024 Bootlin
+#
+
+BOARDNAME:=STM32MP1 boards
+ARCH:=arm
+CPU_TYPE:=cortex-a7
+CPU_SUBTYPE=neon-vfpv4
+FEATURES+=fpu
+KERNEL_IMAGES:=zImage
+



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:54 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:54 -0500
Subject: [openwrt/openwrt]  ipq807x: prpl haze & qnap 301w: use the standard
 eMMC sysupgrade code
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8024.1732820907.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/16eb043062f16986879d7ff8f6f9b1f773a4a2fd

commit 16eb043062f16986879d7ff8f6f9b1f773a4a2fd
Author: Rodrigo Balerdi <lanchon at gmail.com>
AuthorDate: Fri Nov 8 17:40:03 2024 -0300

    ipq807x: prpl haze & qnap 301w: use the standard eMMC sysupgrade code
    
    Note that the old ad-hoc method did not explicitly align backup data
    to 64 KiB boundaries.
    
    Also note that the qnap 301w has a 'rootfs_data' partition in the eMMC
    that is being ignored by fstools during boot, presumably due to a bug.
    This is why the partition is also ignored in the sysupgrade code and
    there is no definition of CI_DATAPART="rootfs_data".
    
    Signed-off-by: Rodrigo Balerdi <lanchon at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16505
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit fe481c9c47d97ebde1bc3c959924f4f9227c6c16)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/qualcommax/image/ipq807x.mk                          | 4 ++--
 .../linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh   | 8 +++++---
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/target/linux/qualcommax/image/ipq807x.mk b/target/linux/qualcommax/image/ipq807x.mk
index 401f455585..60af865459 100644
--- a/target/linux/qualcommax/image/ipq807x.mk
+++ b/target/linux/qualcommax/image/ipq807x.mk
@@ -308,7 +308,7 @@ define Device/prpl_haze
 	DEVICE_DTS_CONFIG := config at hk09
 	SOC := ipq8072
 	DEVICE_PACKAGES := ath11k-firmware-qcn9074 ipq-wifi-prpl_haze kmod-ath11k-pci \
-		mkf2fs f2fsck kmod-fs-f2fs kmod-leds-lp5562
+		kmod-fs-f2fs f2fs-tools kmod-leds-lp5562
 endef
 TARGET_DEVICES += prpl_haze
 
@@ -320,7 +320,7 @@ define Device/qnap_301w
 	DEVICE_DTS_CONFIG := config at hk01
 	KERNEL_SIZE := 16384k
 	SOC := ipq8072
-	DEVICE_PACKAGES := ipq-wifi-qnap_301w
+	DEVICE_PACKAGES := kmod-fs-f2fs f2fs-tools ipq-wifi-qnap_301w
 endef
 TARGET_DEVICES += qnap_301w
 
diff --git a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh b/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
index f822f6291d..00289dcfe6 100644
--- a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
+++ b/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
@@ -185,9 +185,9 @@ platform_do_upgrade() {
 		;;
 	prpl,haze|\
 	qnap,301w)
-		kernelname="0:HLOS"
-		rootfsname="rootfs"
-		mmc_do_upgrade "$1"
+		CI_KERNPART="0:HLOS"
+		CI_ROOTPART="rootfs"
+		emmc_do_upgrade "$1"
 		;;
 	tplink,eap660hd-v1)
 		tplink_do_upgrade "$1"
@@ -267,6 +267,8 @@ platform_do_upgrade() {
 
 platform_copy_config() {
 	case "$(board_name)" in
+	prpl,haze|\
+	qnap,301w|\
 	spectrum,sax1v1k|\
 	zyxel,nbg7815)
 		emmc_copy_config



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:04 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:04 -0500
Subject: [openwrt/openwrt]  omnia-eeprom: depend only on subtarget
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8025.1732820909.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/57ac0965cf8455c69907eb6be80cdc2695596822

commit 57ac0965cf8455c69907eb6be80cdc2695596822
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Mon Nov 18 17:15:54 2024 +0100

    omnia-eeprom: depend only on subtarget
    
    Now that omnia-eeprom is marked nonshared building the cortex-a9 mvebu
    subtarget will fail with:
    ERROR: unable to select packages:
      omnia-eeprom (no such package):
        required by: world[omnia-eeprom]
    
    This is because omnia-eeprom depends on TARGET_mvebu_cortexa9_DEVICE_cznic_turris-omnia
    which will not be satisfied in buildbots since CONFIG_TARGET_ALL_PROFILES
    and CONFIG_TARGET_PER_DEVICE_ROOTFS are set in which case
    CONFIG_TARGET_mvebu_cortexa9_DEVICE_cznic_turris-omnia is not set.
    
    So, lets simply depend on the mvebu/cortex-a9 subtarget.
    
    Fixes: 371e7bef4046 ("omnia-eeprom: Mark it nonshared")
    Link: https://github.com/openwrt/openwrt/pull/17007
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 90de3b277b8e1d121b2f7023578979c6b616167f)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/utils/omnia-eeprom/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/utils/omnia-eeprom/Makefile b/package/utils/omnia-eeprom/Makefile
index f9e48b28b9..9418e93f44 100644
--- a/package/utils/omnia-eeprom/Makefile
+++ b/package/utils/omnia-eeprom/Makefile
@@ -29,7 +29,7 @@ define Package/omnia-eeprom
   CATEGORY:=Utilities
   URL:=https://gitlab.nic.cz/turris/omnia-eeprom
   TITLE:=CZ.NIC Turris Omnia EEPROM accessing utility
-  DEPENDS:=@TARGET_mvebu_cortexa9_DEVICE_cznic_turris-omnia +kmod-eeprom-at24
+  DEPENDS:=@TARGET_mvebu_cortexa9 +kmod-eeprom-at24
 endef
 
 define Package/omnia-eeprom/description



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:17 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:17 -0500
Subject: [openwrt/openwrt]  uboot-stm32: add U-Boot for stm32 boards
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8026.1732820912.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/fd9de585d7ab82d400ed4091a20a36e20b83160e

commit fd9de585d7ab82d400ed4091a20a36e20b83160e
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Thu Sep 26 16:24:26 2024 +0200

    uboot-stm32: add U-Boot for stm32 boards
    
    Add U-Boot for stm32 boards, with the first being STM32MP135F-DK.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit ac79ad0757764028a138d0138c8d9aa74420f9ed)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/boot/uboot-stm32/Makefile | 51 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/package/boot/uboot-stm32/Makefile b/package/boot/uboot-stm32/Makefile
new file mode 100644
index 0000000000..58754aedd5
--- /dev/null
+++ b/package/boot/uboot-stm32/Makefile
@@ -0,0 +1,51 @@
+#
+# Copyright (C) 2024 Bootlin
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_VERSION:=2024.07
+PKG_RELEASE:=1
+
+PKG_HASH:=f591da9ab90ef3d6b3d173766d0ddff90c4ed7330680897486117df390d83c8f
+PKG_MAINTAINER:=Thomas Richard <thomas.richard at bootlin.com>
+
+UBOOT_USE_INTREE_DTC:=1
+
+include $(INCLUDE_DIR)/u-boot.mk
+include $(INCLUDE_DIR)/package.mk
+
+define U-Boot/Default
+  BUILD_TARGET:=stm32
+  UBOOT_IMAGE:=u-boot.bin u-boot.dtb
+endef
+
+define U-Boot/stm32mp13
+  BUILD_SUBTARGET:=stm32mp1
+  UBOOT_CONFIG:=stm32mp13
+endef
+
+define U-Boot/stm32mp135f-dk
+  $(call U-Boot/stm32mp13)
+  NAME:=STM32MP135F-DK
+  DEVICE_TREE:=stm32mp135f-dk
+endef
+
+UBOOT_TARGETS := stm32mp135f-dk
+
+UBOOT_MAKE_FLAGS += DEVICE_TREE=$(DEVICE_TREE)
+
+define Build/InstallDev
+	$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
+	$(foreach img,$(UBOOT_IMAGE), \
+		$(CP) $(PKG_BUILD_DIR)/$(img) $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-$(img); \
+	)
+endef
+
+define Package/u-boot/install/default
+endef
+
+$(eval $(call BuildPackage/U-Boot))



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:40 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:40 -0500
Subject: [openwrt/openwrt]  mediatek: filogic: add support for GatoNetworks
 GDSP
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8027.1732820915.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/f2a40e11176f74adba1228880725af7a95ebfaf0

commit f2a40e11176f74adba1228880725af7a95ebfaf0
Author: Enrico Mioso <mrkiko.rs at gmail.com>
AuthorDate: Sat Nov 9 22:14:33 2024 +0100

    mediatek: filogic: add support for GatoNetworks GDSP
    
    The GatoNetworks GDSP is a re-branded version of the R5000 5G Industrial
    router from Yinghua Technologies.
    The re-branded device comes with OpenWrt preinstalled, and an OpenWrt-based
    U-Boot bootloader version. While the flash layout has been kept compatible
    with the OpenWrt version found on the stock device (see [5]), the image format
    changed, making a bootloader upgrade necessary.
    
    Specifications:
    SoC: Mediatek MT7981BA
    RAM: 256MB
    Flash: SPI-NOR 32 MiB (Winbond W25Q256)
    WLAN: MT7976CN DBDC AX Wi-Fi
    Switch: MT7531AE (4x LAN Gigabit ports, 1x WAN Gigabit port)
    5G: Quectel RM520N modem
    Watchdog: an external WDT connected to GPIO 6 is present and always running;
              the built-in Mediatek watchdog is also present and effective, but
              not used at the moment.
    
    This porting has been tested only with 1x 5G modems installed (the device
    supports up to two).
    
    Installation:
    Installation is possible via sysupgrade both in the stock device and
    re-branded version. However, in the former case, updating the bootloader is
    required.
    
    OpenWrt-based U-Boot Bootloader installation
    --------------------------------------------
    The firmware flashed in the re-branded device at manifacturing time will
    flash an OpenWrt-based U-Boot bootloader with some extra recovery features
    (see [1]) at first boot.
    To update the bootloader, you need to install the mtd-rw module and
    insmod it:
    
    insmod mtd-rw i_want_a_brick=1
    
    Then update relevant flash partitions:
    
    mtd erase u-boot-env
    mtd erase BL2
    mtd erase FIP
    mtd write openwrt-mediatek-filogic-gatonetworks_gdsp-preloader.bin BL2
    mtd write openwrt-mediatek-filogic-gatonetworks_gdsp-bl31-uboot.fip FIP
    
    And reboot, making sure all previous commands ran succesfully.
    If something goes wrong, you can recover your device via the mtk_uartboot
    tool.
    In my testing, it was possible to start the process even without (un)-plugging
    the device, may be handy for remote recovery.
    
    Installation from stock device and firmware
    -------------------------------------------
    To install vanilla OpenWrt in the stock device (R5000 5G Industrial router
    from Yinghua Technologies) running the stock vendor firmware, you will need
    to update your bootloader as described in previous section. Remember to use
    -F (force upgrade) and -n (not keeping settings).
    
    U-Boot Recovery
    ---------------
    This procedure has been tested only with the OpenWrt-based U-boot bootloader.
    Assign your system static IP address 192.168.1.1 and start a TFTP server. The
    device will look for an initramfs image named
    openwrt-mediatek-filogic-gatonetworks_gdsp-initramfs-kernel.bin
    (so you may use openwrt/bin/targets/mediatek/filogic as root dir for your
    TFTP server).
    Power on the device while keeping the reset button pressed, until you see
    a TFTP request from 192.168.1.10. Your environment will be restored to it's
    default state.
    
    MAC addresses assignment
    ------------------------
    MAC addresses are assigned slightly differently than in stock firmware. In
    particular, the 5 GHz Wi-Fi uses 2.4 GHZ MAC + 1, rather than reusing it with
    LA bit set as done in stock firmware. This MAC address is allocated to the
    device, so it can be used.
    The 2.4 GHz Wi-Fi MAC address is the label MAC. LAN MAC is used to set the
    special U-Boot environment ethaddr variable.
    
    device                                  MAC address             U-Boot env variable             factory partition offset
    2.4 GHz Wi-Fi           :84                                             wifi_mac                                                        0x4
    5.8 GHz Wi-Fi           :85                                             not present                                             not present
    WAN                                                     :86                                             wan_mac                                                         0x24
    LAN                                                     :87                                             lan_mac                                                         0x2A
    
    Notes
    -----
    [1]: the OpenWrt-based U-Boot bootloader you will find installed in the
    re-branded device is configured to request for the initramfs image via
    TFTP for $gdsp_tftp_tries times before trying normal boot from NOR flash.
    Setting this U-Boot environment variable to 0x0 will disable the feature,
    which is not implemented in this patch.
    [2]: the exposed UART port is connected to ttyS1; the ttyS0 console port is
    not exposed.
    [3]: the provided bootloader environment has no provision for operating on
    BL2 and the FIP partitions. This is an intentional choice to make it
    (slightly) more difficult to brick the device.
    [4]: it seems GPIO 6 is used both for the "SYS" LED and external WDT.
    [5] BL2 expects to find FIP payload at a fixed offset, so some constraints
    apply.
    
    Signed-off-by: Enrico Mioso <mrkiko.rs at gmail.com>
    (cherry picked from commit b43194e041b17fbb574fb3721dafedcc30a20ab5)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../mediatek/dts/mt7981b-gatonetworks-gdsp.dts     | 389 +++++++++++++++++++++
 .../filogic/base-files/lib/upgrade/platform.sh     |   1 +
 target/linux/mediatek/image/filogic.mk             |  20 ++
 3 files changed, 410 insertions(+)

diff --git a/target/linux/mediatek/dts/mt7981b-gatonetworks-gdsp.dts b/target/linux/mediatek/dts/mt7981b-gatonetworks-gdsp.dts
new file mode 100644
index 0000000000..fd9fdca124
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7981b-gatonetworks-gdsp.dts
@@ -0,0 +1,389 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+/dts-v1/;
+#include "mt7981.dtsi"
+
+/ {
+	model = "GatoNetworks GDSP";
+	compatible = "gatonetworks,gdsp", "mediatek,mt7981";
+
+	aliases {
+		serial0 = &uart0;
+		label-mac-device = &wifi_band_0;
+		led-boot = &sg1;
+		led-failsafe = &sg1;
+		led-running = &sg1;
+		led-upgrade = &sg1;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+		bootargs = "console=ttyS0,115200n1 earlycon=uart8250,mmio32,0x11002000";
+		rootdisk = <&firmware>;
+	};
+
+	memory {
+		reg = <0 0x40000000 0 0x10000000>;
+	};
+
+	reg_3p3v: regulator-3p3v {
+		compatible = "regulator-fixed";
+		regulator-name = "fixed-3.3V";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	reg_5v: regulator-5v {
+		compatible = "regulator-fixed";
+		regulator-name = "fixed-5V";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&pio 1 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	gpio-export {
+		compatible = "gpio-export";
+
+		modem1 {
+			gpio-export,name = "modem1";
+			gpio-export,output = <0>;
+			gpios = <&pio 2 GPIO_ACTIVE_LOW>;
+		};
+
+		modem2 {
+			gpio-export,name = "modem2";
+			gpio-export,output = <0>;
+			gpios = <&pio 14 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		sim1 {
+			label = "green:sim1";
+			gpios = <&pio 13 GPIO_ACTIVE_LOW>;
+		};
+
+		sim2 {
+			label = "green:sim2";
+			gpios = <&pio 0 GPIO_ACTIVE_LOW>;
+		};
+
+		sg1: sg1 {
+			label = "green:sg1";
+			gpios = <&pio 10 GPIO_ACTIVE_LOW>;
+		};
+
+		sg2 {
+			label = "green:sg2";
+			gpios = <&pio 11 GPIO_ACTIVE_LOW>;
+		};
+
+		sg3 {
+			label = "green:sg3";
+			gpios = <&pio 12 GPIO_ACTIVE_LOW>;
+		};
+
+		sg4 {
+			label = "green:sg4";
+			gpios = <&pio 7 GPIO_ACTIVE_LOW>;
+		};
+
+		sg5 {
+			label = "green:sg5";
+			gpios = <&pio 8 GPIO_ACTIVE_LOW>;
+		};
+
+		sg6 {
+			label = "green:sg6";
+			gpios = <&pio 9 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	gpio-watchdog {
+		compatible = "linux,wdt-gpio";
+		gpios = <&pio 6 GPIO_ACTIVE_LOW>;
+		hw_algo = "toggle";
+		hw_margin_ms = <25000>;
+		always-running;
+	};
+};
+
+&watchdog {
+	status = "okay";
+};
+
+&eth {
+	status = "okay";
+
+	gmac0: mac at 0 {
+		compatible = "mediatek,eth-mac";
+		reg = <0>;
+		phy-mode = "2500base-x";
+
+		nvmem-cells = <&macaddr_lan>;
+		nvmem-cell-names = "mac-address";
+
+		fixed-link {
+			speed = <2500>;
+			full-duplex;
+			pause;
+		};
+	};
+
+	mdio: mdio-bus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		switch at 1f {
+			compatible = "mediatek,mt7531";
+			reg = <31>;
+			reset-gpios = <&pio 39 0>;
+			interrupt-controller;
+			#interrupt-cells = <1>;
+			interrupt-parent = <&pio>;
+			interrupts = <38 IRQ_TYPE_LEVEL_HIGH>;
+
+			mdio {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				swphy0: phy at 0 {
+					reg = <0>;
+				};
+
+				swphy1: phy at 1 {
+					reg = <1>;
+				};
+
+				swphy2: phy at 2 {
+					reg = <2>;
+				};
+
+				swphy3: phy at 3 {
+					reg = <3>;
+				};
+
+				swphy4: phy at 4 {
+					reg = <4>;
+				};
+			};
+
+			ports {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				port at 0 {
+					reg = <0>;
+					label = "lan1";
+					phy-handle = <&swphy0>;
+				};
+
+				port at 1 {
+					reg = <1>;
+					label = "lan2";
+					phy-handle = <&swphy1>;
+				};
+
+				port at 2 {
+					reg = <2>;
+					label = "lan3";
+					phy-handle = <&swphy2>;
+				};
+
+				port at 3 {
+					reg = <3>;
+					label = "lan4";
+					phy-handle = <&swphy3>;
+				};
+
+				port at 4 {
+					reg = <4>;
+					label = "wan";
+					nvmem-cells = <&macaddr_wan>;
+					nvmem-cell-names = "mac-address";
+					phy-handle = <&swphy4>;
+				};
+
+				port at 6 {
+					reg = <6>;
+					ethernet = <&gmac0>;
+					phy-mode = "2500base-x";
+
+					fixed-link {
+						speed = <2500>;
+						full-duplex;
+						pause;
+					};
+				};
+			};
+		};
+	};
+};
+
+&crypto {
+	status = "okay";
+};
+
+&wifi {
+	mediatek,mtd-eeprom = <&factory 0x0>;
+	status = "okay";
+
+	wifi_band_0: band at 0 {
+		reg = <0>;
+		nvmem-cells = <&macaddr_wifi 0>;
+		nvmem-cell-names = "mac-address";
+	};
+
+	band at 1 {
+		reg = <1>;
+		nvmem-cells = <&macaddr_wifi 1>;
+		nvmem-cell-names = "mac-address";
+	};
+};
+
+&spi2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&spi2_flash_pins>;
+	status = "okay";
+
+	flash at 0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <52000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 00000 {
+				label = "BL2";
+				reg = <0x00000 0x0040000>;
+				read-only;
+			};
+
+			partition at 40000 {
+				label = "u-boot-env";
+				reg = <0x40000 0x0010000>;
+			};
+
+			factory: partition at 50000 {
+				label = "Factory";
+				reg = <0x50000 0x00B0000>;
+				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_wifi: macaddr at 4 {
+						reg = <0x4 0x6>;
+						compatible = "mac-base";
+						#nvmem-cell-cells = <1>;
+					};
+
+					macaddr_wan: macaddr at 24 {
+						reg = <0x24 0x6>;
+					};
+
+					macaddr_lan: macaddr at 2a {
+						reg = <0x2a 0x6>;
+					};
+				};
+			};
+
+			partition at 100000 {
+				label = "FIP";
+				reg = <0x100000 0x0080000>;
+				read-only;
+			};
+
+			firmware: partition at 180000 {
+				label = "firmware";
+				reg = <0x180000 0x1E80000>;
+			};
+		};
+	};
+};
+
+&pio {
+	uart1_pins: uart1-pins {
+		mux {
+			function = "uart";
+			groups = "uart1_0";
+		};
+	};
+
+	uart2_pins: uart2-pins {
+		mux {
+			function = "uart";
+			groups = "uart2_0_tx_rx";
+		};
+	};
+
+	spi2_flash_pins: spi2-pins {
+		mux {
+			function = "spi";
+			groups = "spi2", "spi2_wp_hold";
+		};
+
+		conf-pu {
+			pins = "SPI2_CS", "SPI2_HOLD", "SPI2_WP";
+			drive-strength = <MTK_DRIVE_8mA>;
+			bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
+		};
+
+		conf-pd {
+			pins = "SPI2_CLK", "SPI2_MOSI", "SPI2_MISO";
+			drive-strength = <MTK_DRIVE_8mA>;
+			bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
+		};
+	};
+};
+
+&uart0 {
+	status = "okay";
+};
+
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart1_pins>;
+	status = "okay";
+};
+
+&uart2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart2_pins>;
+	status = "okay";
+};
+
+&usb_phy {
+	status = "okay";
+};
+
+&xhci {
+	mediatek,u3p-dis-msk = <0x0>;
+	phys = <&u2port0 PHY_TYPE_USB2>,
+	       <&u3port0 PHY_TYPE_USB3>;
+	status = "okay";
+	vusb33-supply = <&reg_3p3v>;
+	vbus-supply = <&reg_5v>;
+};
diff --git a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
index 7fe2d29d31..cfd77b62d7 100755
--- a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
@@ -70,6 +70,7 @@ platform_do_upgrade() {
 	bananapi,bpi-r4|\
 	bananapi,bpi-r4-poe|\
 	cmcc,rax3000m|\
+	gatonetworks,gdsp|\
 	h3c,magic-nx30-pro|\
 	jcg,q30-pro|\
 	jdcloud,re-cp-03|\
diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index 5dfde755a0..739fd54308 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -670,6 +670,26 @@ define Device/edgecore_eap111
 endef
 TARGET_DEVICES += edgecore_eap111
 
+define Device/gatonetworks_gdsp
+  DEVICE_VENDOR := GatoNetworks
+  DEVICE_MODEL := gdsp
+  DEVICE_DTS := mt7981b-gatonetworks-gdsp
+  DEVICE_DTS_DIR := ../dts
+  IMAGES := sysupgrade.itb
+  IMAGE_SIZE := 32768k
+  DEVICE_PACKAGES := fitblk kmod-mt7915e kmod-mt7981-firmware \
+    kmod-usb-net-qmi-wwan kmod-usb-serial-option kmod-usb3 \
+    mt7981-wo-firmware -kmod-phy-aquantia
+  ARTIFACTS := preloader.bin bl31-uboot.fip
+  ARTIFACT/preloader.bin := mt7981-bl2 nor-ddr3
+  ARTIFACT/bl31-uboot.fip := mt7981-bl31-uboot gatonetworks_gdsp
+  KERNEL := kernel-bin | gzip
+  KERNEL_INITRAMFS := kernel-bin | lzma | \
+	fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
+  IMAGE/sysupgrade.itb := append-kernel | fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | pad-rootfs | append-metadata
+endef
+TARGET_DEVICES += gatonetworks_gdsp
+
 define Device/glinet_gl-mt2500
   DEVICE_VENDOR := GL.iNet
   DEVICE_MODEL := GL-MT2500



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:09 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:09 -0500
Subject: [openwrt/openwrt]  mpc85xx: p2020: add missing symbols
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8030.1732820925.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/77de80d9dbe3e6bf68ed5df328ca23ccf3a7f723

commit 77de80d9dbe3e6bf68ed5df328ca23ccf3a7f723
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Thu Oct 17 16:14:07 2024 -0700

    mpc85xx: p2020: add missing symbols
    
    Since kernel_oldconfig doesn't work properly with it, I ran that first
    and then moved all the config symbols to config-6.6 and found the
    differences.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16847
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 22664498ebdd47aad9b15f62edbcaadd851fd62c)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/mpc85xx/p2020/config-default | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/target/linux/mpc85xx/p2020/config-default b/target/linux/mpc85xx/p2020/config-default
index ff8c8cb939..bfdb48959a 100644
--- a/target/linux/mpc85xx/p2020/config-default
+++ b/target/linux/mpc85xx/p2020/config-default
@@ -1,16 +1,16 @@
 CONFIG_BLK_DEV_NVME=y
+CONFIG_CONTEXT_TRACKING=y
+CONFIG_CONTEXT_TRACKING_IDLE=y
 CONFIG_CPU_RMAP=y
 CONFIG_DEFAULT_UIMAGE=y
 CONFIG_FSL_ULI1575=y
 CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
 CONFIG_GENERIC_IRQ_MIGRATION=y
 CONFIG_GENERIC_MSI_IRQ=y
-CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
 CONFIG_GENERIC_TBSYNC=y
 CONFIG_IRQ_DOMAIN_HIERARCHY=y
 CONFIG_LOCK_SPIN_ON_OWNER=y
 CONFIG_MAX63XX_WATCHDOG=y
-CONFIG_MDIO_DEVRES=y
 CONFIG_MPC85xx_RDB=y
 CONFIG_MTD_CFI=y
 CONFIG_MTD_NAND_FSL_ELBC=y
@@ -36,6 +36,7 @@ CONFIG_RPS=y
 CONFIG_RTC_DRV_DS1307=y
 CONFIG_RWSEM_SPIN_ON_OWNER=y
 CONFIG_SMP=y
+CONFIG_SOCK_RX_QUEUE_MAPPING=y
 CONFIG_SWIOTLB=y
 CONFIG_TARGET_CPU="8540"
 CONFIG_TARGET_CPU_BOOL=y



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:18 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:18 -0500
Subject: [openwrt/openwrt]  rampis: mt7621: Edgerouter-X set compat version
 message
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8031.1732820928.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/a5efcbd327f837b4ca425ac46d9e63e203580d4f

commit a5efcbd327f837b4ca425ac46d9e63e203580d4f
Author: Tim Lunn <tim at feathertop.org>
AuthorDate: Thu Apr 18 10:56:07 2024 +1000

    rampis: mt7621: Edgerouter-X set compat version message
    
    Refer user to the wiki page for instructions on how to migrate to the
    new kernel layout.
    
    Signed-off-by: Tim Lunn <tim at feathertop.org>
    Tested-by: Mauri Sandberg <maukka at ext.kapsi.fi>
    Link: https://github.com/openwrt/openwrt/pull/15194
    (cherry picked from commit 70c371d91cda300d7c655f019cb2076d2dd537fb)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ramips/image/mt7621.mk | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index 27adb06bf7..f4dacba894 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -2865,6 +2865,10 @@ define Device/ubnt_edgerouter_common
 	ubnt-erx-factory-image $(KDIR)/tmp/$$(KERNEL_INITRAMFS_PREFIX)-factory.tar
   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
   DEVICE_PACKAGES += -wpad-basic-mbedtls -uboot-envtools
+  DEVICE_COMPAT_VERSION := 2.0
+  DEVICE_COMPAT_MESSAGE :=  Partition table has been changed due to kernel size restrictions. \
+    Refer to the wiki page for instructions to migrate to the new layout: \
+    https://openwrt.org/toh/ubiquiti/edgerouter_x_er-x_ka
   DEFAULT := n
 endef
 



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:55 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:55 -0500
Subject: [openwrt/openwrt]  config: Mark USE_APK broken
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8032.1732820931.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/2c3d036fe7d573eee9874ae9bdeb7c9b3291eebe

commit 2c3d036fe7d573eee9874ae9bdeb7c9b3291eebe
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Wed Nov 27 00:25:12 2024 +0100

    config: Mark USE_APK broken
    
    This will hide the USE_APK setting in OpenWrt 24.10 by default.
    
    APK is not stable yet and we do not want to support it in OpenWrt 24.10 branch.
    
    References: https://openwrt.org/meetings/20241126#release_2410
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    Signed-off-by: Petr ?tetiar <ynezz at true.cz> [meeting notes ref, config]
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 config/Config-build.in | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/config/Config-build.in b/config/Config-build.in
index 481be0bb6c..ae44985546 100644
--- a/config/Config-build.in
+++ b/config/Config-build.in
@@ -70,7 +70,8 @@ menu "Global build settings"
 
 	config USE_APK
 		imply PACKAGE_apk-mbedtls
-		bool "Use APK instead of OPKG to build distribution (EXPERIMENTAL)"
+		bool "Use APK instead of OPKG to build distribution (BROKEN)"
+		depends on BROKEN
 
 	comment "General build options"
 



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:34 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:34 -0500
Subject: [openwrt/openwrt]  ramips: mt76x8: Add support for Zbtlink
 ZBT-WE2426-B
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8033.1732820933.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/50ee6adc5a51fb9764cd0036bfd4af440189860f

commit 50ee6adc5a51fb9764cd0036bfd4af440189860f
Author: Vaclav Svoboda <svoboda at neng.cz>
AuthorDate: Mon Nov 11 22:34:00 2024 +0100

    ramips: mt76x8: Add support for Zbtlink ZBT-WE2426-B
    
    The Zbtlink ZBT-WE2426-B is an indoor dual band WiFi router
    with 4 external non detachable antennas and 5 Fast Ethernet ports.
    
    Hardware of ZBT-WE2426-B:
    - SoC: MT7628AN
    - RAM: 64 MB (Winbond W9751G6K8-25)
    - Storage: 8 MB SPI flash (S25FL064K)
    - Ethernet: 5x 10/100 Mbps LAN1,LAN2,LAN3,LAN4 & WAN
    - Wireless: 2.4GHz: on SoC (802.11b/g/n)
    - Wireless: 5GHz: Mediatek MT7612EN (802.11n/ac)
    - LEDs: 8x
    - Buttons: 1x reset
    - USB: 1x 2.0
    - MicroSD slot: 1x
    - Power: 9 VDC, 1 A
    - Uart: GND TX RX PWR - J1 on the PCB
    - Board silkscreen: "ZBT-WE2426-C V04" "2018-02-28" "CTT" "13 18"
    
    Backup the stock firmware, settings and calibration data:
    This router comes with PandoraBox OpenWrt firmware, so it is
    possible to get all MTD partitions using scp.
    
    Installation:
    - Using the bootloader web server. Hold the reset button while turning
      the power on. Upload the sysupgrade image on http://192.168.1.1.
    - Using the sysupgrade command in PandoraBox OpenWrt.
    
    LEDs:
    - LAN1,LAN2,LAN3,LAN4,WAN,WLAN2G use GPIO pins of the MT7628AN SoC
      (GPIOs 43,42,41,40,39,44)
    - WLAN5G uses pin of MT7612EN.
    - The POWER LED is directly connected to the VCC. It can be reconnected to
      the GPIO 37 of the MT7628AN SoC by resoldering SMD resistor on the PCB.
    
    Buttons:
    - The RESET button is connected to the GPIO 38 of the MT7628AN SoC.
    
    MAC addresses as verified by OEM firmware:
    use   address   source
    2g    *:b0      factory 0x4 (label)
    5g    *:b1      factory 0x8004
    LAN   *:b2      factory 0x28
    WAN   *:b3      factory 0x2e
    
    Signed-off-by: Vaclav Svoboda <svoboda at neng.cz>
    Link: https://github.com/openwrt/openwrt/pull/16927
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 3a9752ea027b8969750c0dd7f89b6afc357dcffa)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../ramips/dts/mt7628an_zbtlink_zbt-we2426-b.dts   | 183 +++++++++++++++++++++
 target/linux/ramips/image/mt76x8.mk                |   8 +
 .../ramips/mt76x8/base-files/etc/board.d/01_leds   |   7 +
 .../mt76x8/base-files/etc/board.d/02_network       |   6 +-
 4 files changed, 202 insertions(+), 2 deletions(-)

diff --git a/target/linux/ramips/dts/mt7628an_zbtlink_zbt-we2426-b.dts b/target/linux/ramips/dts/mt7628an_zbtlink_zbt-we2426-b.dts
new file mode 100644
index 0000000000..6dfdb2617c
--- /dev/null
+++ b/target/linux/ramips/dts/mt7628an_zbtlink_zbt-we2426-b.dts
@@ -0,0 +1,183 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7628an.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+	compatible = "zbtlink,zbt-we2426-b", "mediatek,mt7628an-soc";
+	model = "Zbtlink ZBT-WE2426-B";
+
+	aliases {
+		led-boot = &led_wlan;
+		led-failsafe = &led_wlan;
+		led-upgrade = &led_wlan;
+		label-mac-device = &wmac;
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RESTART>;
+		};
+
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		lan1 {
+			gpios = <&gpio 43 GPIO_ACTIVE_LOW>;
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <1>;
+		};
+
+		lan2 {
+			gpios = <&gpio 42 GPIO_ACTIVE_LOW>;
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <2>;
+		};
+
+		lan3 {
+			gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <3>;
+		};
+
+		lan4 {
+			gpios = <&gpio 40 GPIO_ACTIVE_LOW>;
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <4>;
+		};
+
+		wan {
+			gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_WAN;
+		};
+
+		led_wlan: wlan2g {
+			gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_WLAN;
+			linux,default-trigger = "phy0tpt";
+		};
+
+	};
+};
+
+&spi0 {
+	status = "okay";
+
+	flash at 0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <10000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "u-boot";
+				reg = <0x0 0x30000>;
+				read-only;
+			};
+
+			partition at 30000 {
+				label = "u-boot-env";
+				reg = <0x30000 0x10000>;
+				read-only;
+			};
+
+			factory: partition at 40000 {
+				label = "factory";
+				reg = <0x40000 0x10000>;
+				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					eeprom_factory_0: eeprom at 0 {
+						reg = <0x0 0x400>;
+					};
+
+					eeprom_factory_8000: eeprom at 8000 {
+						reg = <0x8000 0x200>;
+					};
+
+					macaddr_factory_28: macaddr at 28 {
+						reg = <0x28 0x6>;
+					};
+				};
+			};
+
+			partition at 50000 {
+				compatible = "denx,uimage";
+				label = "firmware";
+				reg = <0x50000 0x7b0000>;
+			};
+		};
+	};
+};
+
+&state_default {
+	gpio {
+		groups = "i2s", "refclk", "wdt", "p4led_an",
+				"p3led_an", "p2led_an",
+				"p1led_an", "p0led_an",
+				"wled_an";
+		function = "gpio";
+	};
+};
+
+&pcie {
+	status = "okay";
+};
+
+&pcie0 {
+	wifi at 0,0 {
+		compatible = "mediatek,mt76";
+		reg = <0x0000 0 0 0 0>;
+		nvmem-cells = <&eeprom_factory_8000>;
+		nvmem-cell-names = "eeprom";
+		ieee80211-freq-limit = <5000000 6000000>;
+
+		led {
+			led-sources = <2>;
+			led-active-low;
+		};
+	};
+};
+
+&wmac {
+	status = "okay";
+
+	nvmem-cells = <&eeprom_factory_0>;
+	nvmem-cell-names = "eeprom";
+};
+
+&ethernet {
+	nvmem-cells = <&macaddr_factory_28>;
+	nvmem-cell-names = "mac-address";
+};
+
+&esw {
+	mediatek,portmap = <0x2f>;
+};
+
+&sdhci {
+	status = "okay";
+};
diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk
index 8ad840ddfe..7e343bf016 100644
--- a/target/linux/ramips/image/mt76x8.mk
+++ b/target/linux/ramips/image/mt76x8.mk
@@ -1158,6 +1158,14 @@ define Device/zbtlink_zbt-we1226
 endef
 TARGET_DEVICES += zbtlink_zbt-we1226
 
+define Device/zbtlink_zbt-we2426-b
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := Zbtlink
+  DEVICE_MODEL := ZBT-WE2426-B
+  DEVICE_PACKAGES := kmod-mt76x2 kmod-usb2 kmod-usb-ohci
+endef
+TARGET_DEVICES += zbtlink_zbt-we2426-b
+
 define Device/zyxel_keenetic-extra-ii
   IMAGE_SIZE := 29824k
   DEVICE_VENDOR := Zyxel
diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
index 5ea668de01..00e5086bb3 100644
--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
+++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
@@ -186,6 +186,13 @@ zbtlink,zbt-we1226)
 	ucidef_set_led_switch "lan2" "LAN2" "green:lan2" "switch0" "0x02"
 	ucidef_set_led_switch "wan" "WAN" "green:wan" "switch0" "0x10"
 	;;
+zbtlink,zbt-we2426-b)
+	ucidef_set_led_switch "wan" "wan" "green:wan" "switch0" "0x10"
+	ucidef_set_led_switch "lan1" "lan1" "green:lan-1" "switch0" "0x01"
+	ucidef_set_led_switch "lan2" "lan2" "green:lan-2" "switch0" "0x02"
+	ucidef_set_led_switch "lan3" "lan3" "green:lan-3" "switch0" "0x04"
+	ucidef_set_led_switch "lan4" "lan4" "green:lan-4" "switch0" "0x08"
+	;;
 zyxel,keenetic-extra-ii)
 	ucidef_set_led_netdev "wifi_led" "wifi" "green:wifi" "wlan0"
 	ucidef_set_led_switch "internet" "internet" "green:internet" "switch0" "0x01"
diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
index cb0983b9dc..616baa80c0 100644
--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
@@ -148,7 +148,8 @@ ramips_setup_interfaces()
 	netgear,r6020|\
 	netgear,r6080|\
 	netgear,r6120|\
-	wavlink,wl-wn531a3)
+	wavlink,wl-wn531a3|\
+	zbtlink,zbt-we2426-b)
 		ucidef_add_switch "switch0" \
 			"0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan" "6 at eth0"
 		;;
@@ -244,7 +245,8 @@ ramips_setup_macs()
 	hilink,hlk-7688a|\
 	wavlink,wl-wn531a3|\
 	wavlink,wl-wn577a2|\
-	wavlink,wl-wn578a2)
+	wavlink,wl-wn578a2|\
+	zbtlink,zbt-we2426-b)
 		wan_mac=$(mtd_get_mac_binary factory 0x2e)
 		label_mac=$(mtd_get_mac_binary factory 0x4)
 		;;



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:52 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:52 -0500
Subject: [openwrt/openwrt]  elfutils: Backport some patches to fix errors
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8034.1732820936.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/9591c1631d158dabf529603a490914bbdc3fd6c9

commit 9591c1631d158dabf529603a490914bbdc3fd6c9
Author: Ryan Keane <the.ra2.ifv at gmail.com>
AuthorDate: Thu Nov 7 22:36:23 2024 -0800

    elfutils: Backport some patches to fix errors
    
    On aarch64 musl gcc 14.x compiler, trying compiling elfutils 0.192 with
    lto option enabled will cause null-dereference error.
    Example error message:
    
    ...
    elf_compress.c: In function 'elf_compress':
    elf_compress.c:675:26: error: potential null pointer dereference [-Werror=null-dereference]
      675 |           shdr->sh_flags |= SHF_COMPRESSED;
          |                          ^
    elf_compress_gnu.c: In function 'elf_compress_gnu':
    elf_compress_gnu.c:127:25: error: potential null pointer dereference [-Werror=null-dereference]
      127 |           shdr->sh_size = new_size;
          |                         ^                      ^
    ...
    
    This is a false postive warning but will abort compilation if gcc has
    `-Werror` flag. This commit add a patch for this, see the bugzilla
    report below.
    
    This commit backports a series of patches to fix some errors.
    
    Add patch:
    - 007-add-libeu-symbols-to-libelf.patch
    - 008-fix-autoconf-ENABLE_IMA_VERIFICATION.patch
    - 009-fix-null-dereference-with-lto.patch
    
    Link: https://sourceware.org/bugzilla/show_bug.cgi?id=32311
    Signed-off-by: Ryan Keane <the.ra2.ifv at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16886
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit afffcd09e5f15be53f327a80ee87d391312eb805)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../patches/007-add-libeu-symbols-to-libelf.patch  |  31 ++++
 .../008-fix-autoconf-ENABLE_IMA_VERIFICATION.patch |  24 +++
 .../009-fix-null-dereference-with-lto.patch        | 193 +++++++++++++++++++++
 3 files changed, 248 insertions(+)

diff --git a/package/libs/elfutils/patches/007-add-libeu-symbols-to-libelf.patch b/package/libs/elfutils/patches/007-add-libeu-symbols-to-libelf.patch
new file mode 100644
index 0000000000..23489b5625
--- /dev/null
+++ b/package/libs/elfutils/patches/007-add-libeu-symbols-to-libelf.patch
@@ -0,0 +1,31 @@
+From f5d6e088f84dd05278c4698a21cbf1ff4569978d Mon Sep 17 00:00:00 2001
+From: Mark Wielaard <mark at klomp.org>
+Date: Tue, 22 Oct 2024 15:03:42 +0200
+Subject: [PATCH] libelf: Add libeu objects to libelf.a static archive
+
+libelf might use some symbols from libeu.a, specifically the eu-search
+wrappers. But we don't ship libeu.a separately. So include the libeu
+objects in the libelf.a archive to facilitate static linking.
+
+	* libelf/Makefile.am (libeu_objects): New variable.
+	(libelf_a_LIBADD): New, add libeu_objects.
+
+https://sourceware.org/bugzilla/show_bug.cgi?id=32293
+
+Signed-off-by: Mark Wielaard <mark at klomp.org>
+---
+ libelf/Makefile.am | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/libelf/Makefile.am
++++ b/libelf/Makefile.am
+@@ -122,6 +122,9 @@ libelf.so: $(srcdir)/libelf.map $(libelf
+ 	@$(textrel_check)
+ 	$(AM_V_at)ln -fs $@ $@.$(VERSION)
+ 
++libeu_objects = $(shell $(AR) t ../lib/libeu.a)
++libelf_a_LIBADD = $(addprefix ../lib/,$(libeu_objects))
++
+ install: install-am libelf.so
+ 	$(mkinstalldirs) $(DESTDIR)$(libdir)
+ 	$(INSTALL_PROGRAM) libelf.so $(DESTDIR)$(libdir)/libelf-$(PACKAGE_VERSION).so
diff --git a/package/libs/elfutils/patches/008-fix-autoconf-ENABLE_IMA_VERIFICATION.patch b/package/libs/elfutils/patches/008-fix-autoconf-ENABLE_IMA_VERIFICATION.patch
new file mode 100644
index 0000000000..e5732d2b08
--- /dev/null
+++ b/package/libs/elfutils/patches/008-fix-autoconf-ENABLE_IMA_VERIFICATION.patch
@@ -0,0 +1,24 @@
+From f3c664d069d81a4872a1ec8241ee709f37c53e9c Mon Sep 17 00:00:00 2001
+From: Aaron Merey <amerey at redhat.com>
+Date: Tue, 29 Oct 2024 14:16:57 -0400
+Subject: [PATCH] configure.ac: Fix ENABLE_IMA_VERIFICATION conditional
+
+Fix test statement for ENABLE_IMA_VERIFICATION always evalutating to
+false due to a missing 'x'.
+
+Signed-off-by: Aaron Merey <amerey at redhat.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -895,7 +895,7 @@ AS_IF([test "x$enable_debuginfod" != "xn
+ AM_CONDITIONAL([DEBUGINFOD],[test "x$enable_debuginfod" = "xyes"])
+ AS_IF([test "x$enable_debuginfod_ima_verification" = "xyes"],AC_DEFINE([ENABLE_IMA_VERIFICATION],[1],[Build IMA verification]))
+ AS_IF([test "x$have_libarchive" = "xyes"],AC_DEFINE([HAVE_LIBARCHIVE],[1],[Define to 1 if libarchive is available]))
+-AM_CONDITIONAL([ENABLE_IMA_VERIFICATION],[test "$enable_debuginfod_ima_verification" = "xyes"])
++AM_CONDITIONAL([ENABLE_IMA_VERIFICATION],[test "x$enable_debuginfod_ima_verification" = "xyes"])
+ AM_CONDITIONAL([OLD_LIBMICROHTTPD],[test "x$old_libmicrohttpd" = "xyes"])
+ 
+ dnl for /etc/profile.d/elfutils.{csh,sh}
diff --git a/package/libs/elfutils/patches/009-fix-null-dereference-with-lto.patch b/package/libs/elfutils/patches/009-fix-null-dereference-with-lto.patch
new file mode 100644
index 0000000000..1179a1e1a0
--- /dev/null
+++ b/package/libs/elfutils/patches/009-fix-null-dereference-with-lto.patch
@@ -0,0 +1,193 @@
+From 8707194a9f2f0b13e53041b03ebfdbdbd2942e43 Mon Sep 17 00:00:00 2001
+From: Mark Wielaard <mark at klomp.org>
+Date: Tue, 5 Nov 2024 23:31:14 +0100
+Subject: [PATCH 1/1] libelf: Only fetch shdr once in elf_compress[_gnu]
+
+Some compilers assume the second call to elf[32|64]_getshdr can fail
+and produce error: potential null pointer dereference. Just store the
+result of the first call and reuse (when not NULL).
+
+       * libelf/elf_compress.c (elf_compress): Store getshdr result in
+       a shdr union var.
+       * libelf/elf_compress_gnu.c (): Likewise
+
+https://sourceware.org/bugzilla/show_bug.cgi?id=32311
+
+Signed-off-by: Mark Wielaard <mark at klomp.org>
+---
+ libelf/elf_compress.c     | 55 +++++++++++++++++++++------------------
+ libelf/elf_compress_gnu.c | 45 ++++++++++++++------------------
+ 2 files changed, 48 insertions(+), 52 deletions(-)
+
+--- a/libelf/elf_compress.c
++++ b/libelf/elf_compress.c
+@@ -584,25 +584,30 @@ elf_compress (Elf_Scn *scn, int type, un
+   Elf64_Xword sh_flags;
+   Elf64_Word sh_type;
+   Elf64_Xword sh_addralign;
++  union shdr
++  {
++    Elf32_Shdr *s32;
++    Elf64_Shdr *s64;
++  } shdr;
+   if (elfclass == ELFCLASS32)
+     {
+-      Elf32_Shdr *shdr = elf32_getshdr (scn);
+-      if (shdr == NULL)
++      shdr.s32 = elf32_getshdr (scn);
++      if (shdr.s32 == NULL)
+ 	return -1;
+ 
+-      sh_flags = shdr->sh_flags;
+-      sh_type = shdr->sh_type;
+-      sh_addralign = shdr->sh_addralign;
++      sh_flags = shdr.s32->sh_flags;
++      sh_type = shdr.s32->sh_type;
++      sh_addralign = shdr.s32->sh_addralign;
+     }
+   else
+     {
+-      Elf64_Shdr *shdr = elf64_getshdr (scn);
+-      if (shdr == NULL)
++      shdr.s64 = elf64_getshdr (scn);
++      if (shdr.s64 == NULL)
+ 	return -1;
+ 
+-      sh_flags = shdr->sh_flags;
+-      sh_type = shdr->sh_type;
+-      sh_addralign = shdr->sh_addralign;
++      sh_flags = shdr.s64->sh_flags;
++      sh_type = shdr.s64->sh_type;
++      sh_addralign = shdr.s64->sh_addralign;
+     }
+ 
+   if ((sh_flags & SHF_ALLOC) != 0)
+@@ -679,17 +684,17 @@ elf_compress (Elf_Scn *scn, int type, un
+ 	 correctly and ignored when SHF_COMPRESSED is set.  */
+       if (elfclass == ELFCLASS32)
+ 	{
+-	  Elf32_Shdr *shdr = elf32_getshdr (scn);
+-	  shdr->sh_size = new_size;
+-	  shdr->sh_addralign = __libelf_type_align (ELFCLASS32, ELF_T_CHDR);
+-	  shdr->sh_flags |= SHF_COMPRESSED;
++	  shdr.s32->sh_size = new_size;
++	  shdr.s32->sh_addralign = __libelf_type_align (ELFCLASS32,
++							ELF_T_CHDR);
++	  shdr.s32->sh_flags |= SHF_COMPRESSED;
+ 	}
+       else
+ 	{
+-	  Elf64_Shdr *shdr = elf64_getshdr (scn);
+-	  shdr->sh_size = new_size;
+-	  shdr->sh_addralign = __libelf_type_align (ELFCLASS64, ELF_T_CHDR);
+-	  shdr->sh_flags |= SHF_COMPRESSED;
++	  shdr.s64->sh_size = new_size;
++	  shdr.s64->sh_addralign = __libelf_type_align (ELFCLASS64,
++							ELF_T_CHDR);
++	  shdr.s64->sh_flags |= SHF_COMPRESSED;
+ 	}
+ 
+       __libelf_reset_rawdata (scn, out_buf, new_size, 1, ELF_T_CHDR);
+@@ -731,17 +736,15 @@ elf_compress (Elf_Scn *scn, int type, un
+ 	 correctly and ignored when SHF_COMPRESSED is set.  */
+       if (elfclass == ELFCLASS32)
+ 	{
+-	  Elf32_Shdr *shdr = elf32_getshdr (scn);
+-	  shdr->sh_size = scn->zdata_size;
+-	  shdr->sh_addralign = scn->zdata_align;
+-	  shdr->sh_flags &= ~SHF_COMPRESSED;
++	  shdr.s32->sh_size = scn->zdata_size;
++	  shdr.s32->sh_addralign = scn->zdata_align;
++	  shdr.s32->sh_flags &= ~SHF_COMPRESSED;
+ 	}
+       else
+ 	{
+-	  Elf64_Shdr *shdr = elf64_getshdr (scn);
+-	  shdr->sh_size = scn->zdata_size;
+-	  shdr->sh_addralign = scn->zdata_align;
+-	  shdr->sh_flags &= ~SHF_COMPRESSED;
++	  shdr.s64->sh_size = scn->zdata_size;
++	  shdr.s64->sh_addralign = scn->zdata_align;
++	  shdr.s64->sh_flags &= ~SHF_COMPRESSED;
+ 	}
+ 
+       __libelf_reset_rawdata (scn, scn->zdata_base,
+--- a/libelf/elf_compress_gnu.c
++++ b/libelf/elf_compress_gnu.c
+@@ -59,25 +59,30 @@ elf_compress_gnu (Elf_Scn *scn, int infl
+   Elf64_Xword sh_flags;
+   Elf64_Word sh_type;
+   Elf64_Xword sh_addralign;
++  union shdr
++  {
++    Elf32_Shdr *s32;
++    Elf64_Shdr *s64;
++  } shdr;
+   if (elfclass == ELFCLASS32)
+     {
+-      Elf32_Shdr *shdr = elf32_getshdr (scn);
+-      if (shdr == NULL)
++      shdr.s32 = elf32_getshdr (scn);
++      if (shdr.s32 == NULL)
+ 	return -1;
+ 
+-      sh_flags = shdr->sh_flags;
+-      sh_type = shdr->sh_type;
+-      sh_addralign = shdr->sh_addralign;
++      sh_flags = shdr.s32->sh_flags;
++      sh_type = shdr.s32->sh_type;
++      sh_addralign = shdr.s32->sh_addralign;
+     }
+   else
+     {
+-      Elf64_Shdr *shdr = elf64_getshdr (scn);
+-      if (shdr == NULL)
++      shdr.s64 = elf64_getshdr (scn);
++      if (shdr.s64 == NULL)
+ 	return -1;
+ 
+-      sh_flags = shdr->sh_flags;
+-      sh_type = shdr->sh_type;
+-      sh_addralign = shdr->sh_addralign;
++      sh_flags = shdr.s64->sh_flags;
++      sh_type = shdr.s64->sh_type;
++      sh_addralign = shdr.s64->sh_addralign;
+     }
+ 
+   /* Allocated sections, or sections that are already are compressed
+@@ -122,15 +127,9 @@ elf_compress_gnu (Elf_Scn *scn, int infl
+ 	 sh_flags won't have a SHF_COMPRESSED hint in the GNU format.
+ 	 Just adjust the sh_size.  */
+       if (elfclass == ELFCLASS32)
+-	{
+-	  Elf32_Shdr *shdr = elf32_getshdr (scn);
+-	  shdr->sh_size = new_size;
+-	}
++	  shdr.s32->sh_size = new_size;
+       else
+-	{
+-	  Elf64_Shdr *shdr = elf64_getshdr (scn);
+-	  shdr->sh_size = new_size;
+-	}
++	  shdr.s64->sh_size = new_size;
+ 
+       __libelf_reset_rawdata (scn, out_buf, new_size, 1, ELF_T_BYTE);
+ 
+@@ -187,15 +186,9 @@ elf_compress_gnu (Elf_Scn *scn, int infl
+ 	 sh_flags won't have a SHF_COMPRESSED hint in the GNU format.
+ 	 Just adjust the sh_size.  */
+       if (elfclass == ELFCLASS32)
+-	{
+-	  Elf32_Shdr *shdr = elf32_getshdr (scn);
+-	  shdr->sh_size = size;
+-	}
++	shdr.s32->sh_size = size;
+       else
+-	{
+-	  Elf64_Shdr *shdr = elf64_getshdr (scn);
+-	  shdr->sh_size = size;
+-	}
++	shdr.s64->sh_size = size;
+ 
+       __libelf_reset_rawdata (scn, buf_out, size, sh_addralign,
+ 			      __libelf_data_type (&ehdr, sh_type,



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:18 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:18 -0500
Subject: [openwrt/openwrt]  arm-trusted-firmware-stm32: add ATF for stm32
 boards
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8037.1732820940.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/d921c2db0b511b89cd9adeb644f4d92a79e419bb

commit d921c2db0b511b89cd9adeb644f4d92a79e419bb
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Thu Sep 26 16:29:41 2024 +0200

    arm-trusted-firmware-stm32: add ATF for stm32 boards
    
    Add ATF for stm32 boards, with the first being STM32MP135F-DK.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 08dcb73c8d05aa774957422731bfed1b322648d7)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/boot/arm-trusted-firmware-stm32/Makefile | 63 ++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/package/boot/arm-trusted-firmware-stm32/Makefile b/package/boot/arm-trusted-firmware-stm32/Makefile
new file mode 100644
index 0000000000..75a92f15af
--- /dev/null
+++ b/package/boot/arm-trusted-firmware-stm32/Makefile
@@ -0,0 +1,63 @@
+#
+# Copyright (C) 2024 Bootlin
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_VERSION:=2.10
+PKG_RELEASE:=1
+
+PKG_HASH:=88215a62291b9ba87da8e50b077741103cdc08fb6c9e1ebd34dfaace746d3201
+PKG_MAINTAINER:=Thomas Richard <thomas.richard at bootlin.com>
+
+include $(INCLUDE_DIR)/kernel.mk
+include $(INCLUDE_DIR)/trusted-firmware-a.mk
+include $(INCLUDE_DIR)/package.mk
+
+define Trusted-Firmware-A/Default
+  BUILD_TARGET:=stm32
+  BUILD_DEVICES:=$(1)
+  DEPENDS:=+u-boot-$(1) +optee-os-$(1)
+endef
+
+define Trusted-Firmware-A/stm32mp1
+  BUILD_SUBTARGET:=stm32mp1
+  PLAT:=stm32mp1
+  MAKE_ARGS += BL32_EXTRA2=$(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-tee-pageable_v2.bin \
+	       STM32MP_USB_PROGRAMMER=1 \
+	       STM32MP1_OPTEE_IN_SYSRAM=1 \
+	       ARM_ARCH_MAJOR=7
+endef
+
+define Trusted-Firmware-A/stm32mp135f-dk
+  $(call Trusted-Firmware-A/stm32mp1)
+  NAME:=STM32MP135F-DK
+  DTB_FILE_NAME=stm32mp135f-dk.dtb
+endef
+
+TFA_TARGETS := stm32mp135f-dk
+
+TFA_MAKE_FLAGS += \
+		ARCH=aarch32 AARCH32_SP=optee \
+		BL32=$(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-tee-header_v2.bin \
+		BL32_EXTRA1=$(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-tee-pager_v2.bin \
+		BL33=$(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-u-boot.bin \
+		BL33_CFG=$(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-u-boot.dtb \
+		DTB_FILE_NAME=$(DTB_FILE_NAME) \
+		STM32MP_SDMMC=1 \
+		TARGET_BOARD="" \
+		$(MAKE_ARGS) \
+		all fip
+
+define Package/trusted-firmware-a/install
+	$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
+	$(CP) $(PKG_BUILD_DIR)/build/$(PLAT)/release/tf-a-$(BUILD_VARIANT).stm32 \
+		$(STAGING_DIR_IMAGE)/tf-a-$(BUILD_VARIANT).stm32
+	$(CP) $(PKG_BUILD_DIR)/build/$(PLAT)/release/fip.bin \
+		$(STAGING_DIR_IMAGE)/fip-$(BUILD_VARIANT).bin
+endef
+
+$(eval $(call BuildPackage/Trusted-Firmware-A))



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:26 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:26 -0500
Subject: [openwrt/openwrt]  treewide: remove THIS_MODULE assignment
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8038.1732820943.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/2af51fbdabbec7ec3d6adcc5090222a9292d0a79

commit 2af51fbdabbec7ec3d6adcc5090222a9292d0a79
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Thu Oct 31 12:22:04 2024 -0700

    treewide: remove THIS_MODULE assignment
    
    Matches upstream coccinelle check: api/platform_no_drv_owner.cocci.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16846
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
    (cherry picked from commit cc98cfafd799d502fbe09ddb62bab68633d570f5)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c        | 2 --
 package/kernel/gpio-nct5104d/src/gpio-nct5104d.c                    | 1 -
 package/kernel/lantiq/ltq-adsl-mei/src/drv_mei_cpe.c                | 1 -
 package/kernel/lantiq/ltq-adsl/patches/120-platform.patch           | 3 +--
 package/kernel/lantiq/ltq-atm/src/ltq_atm.c                         | 1 -
 package/kernel/lantiq/ltq-deu/src/ifxmips_deu.c                     | 1 -
 package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_adsl.c                | 1 -
 package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c                | 1 -
 package/kernel/ubootenv-nvram/src/ubootenv-nvram.c                  | 1 -
 target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c         | 1 -
 target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c              | 1 -
 target/linux/ath79/files/drivers/mtd/nand/raw/ar934x_nand.c         | 1 -
 target/linux/ath79/files/drivers/mtd/nand/raw/rb91x_nand.c          | 1 -
 target/linux/bcm47xx/patches-6.6/831-old_gpio_wdt.patch             | 3 +--
 target/linux/generic/files/drivers/net/phy/rtl8366rb.c              | 1 -
 target/linux/generic/files/drivers/net/phy/rtl8366s.c               | 1 -
 target/linux/generic/files/drivers/net/phy/rtl8367.c                | 1 -
 target/linux/generic/files/drivers/net/phy/rtl8367b.c               | 1 -
 target/linux/generic/hack-6.6/800-GPIO-add-named-gpio-exports.patch | 3 +--
 .../510-block-add-uImage.FIT-subimage-block-driver.patch            | 3 +--
 target/linux/ipq40xx/patches-6.6/850-soc-add-qualcomm-syscon.patch  | 3 +--
 target/linux/ipq806x/patches-6.6/850-soc-add-qualcomm-syscon.patch  | 3 +--
 .../patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch      | 3 +--
 .../0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch           | 3 +--
 .../0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch        | 3 +--
 .../linux/lantiq/patches-6.6/0151-lantiq-ifxmips_pcie-use-of.patch  | 3 +--
 target/linux/mediatek/files/drivers/net/phy/rtk/rtl8367s_mdio.c     | 1 -
 .../linux/qualcommax/patches-6.6/0900-power-Add-Qualcomm-APM.patch  | 3 +--
 .../patches-6.6/0901-regulator-add-Qualcomm-CPR-regulators.patch    | 6 ++----
 target/linux/ramips/files/drivers/net/ethernet/ralink/esw_rt3050.c  | 1 -
 target/linux/ramips/files/drivers/net/ethernet/ralink/gsw_mt7620.c  | 1 -
 target/linux/ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c | 1 -
 target/linux/siflower/files-6.6/drivers/gpio/gpio-siflower.c        | 1 -
 33 files changed, 13 insertions(+), 48 deletions(-)

diff --git a/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c b/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
index 52346c25d9..9876dee90f 100644
--- a/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
+++ b/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
@@ -693,7 +693,6 @@ static struct platform_driver gpio_keys_driver = {
 	.remove	= gpio_keys_remove,
 	.driver	= {
 		.name	= "gpio-keys",
-		.owner	= THIS_MODULE,
 		.of_match_table = of_match_ptr(gpio_keys_of_match),
 	},
 };
@@ -703,7 +702,6 @@ static struct platform_driver gpio_keys_polled_driver = {
 	.remove	= gpio_keys_remove,
 	.driver	= {
 		.name	= "gpio-keys-polled",
-		.owner	= THIS_MODULE,
 		.of_match_table = of_match_ptr(gpio_keys_polled_of_match),
 	},
 };
diff --git a/package/kernel/gpio-nct5104d/src/gpio-nct5104d.c b/package/kernel/gpio-nct5104d/src/gpio-nct5104d.c
index e31a94b5cf..ffeab29eda 100644
--- a/package/kernel/gpio-nct5104d/src/gpio-nct5104d.c
+++ b/package/kernel/gpio-nct5104d/src/gpio-nct5104d.c
@@ -366,7 +366,6 @@ err:
 
 static struct platform_driver nct5104d_gpio_driver = {
 	.driver = {
-		.owner	= THIS_MODULE,
 		.name	= DRVNAME,
 	},
 	.probe		= nct5104d_gpio_probe,
diff --git a/package/kernel/lantiq/ltq-adsl-mei/src/drv_mei_cpe.c b/package/kernel/lantiq/ltq-adsl-mei/src/drv_mei_cpe.c
index ba23232ee9..20a63716a3 100644
--- a/package/kernel/lantiq/ltq-adsl-mei/src/drv_mei_cpe.c
+++ b/package/kernel/lantiq/ltq-adsl-mei/src/drv_mei_cpe.c
@@ -2807,7 +2807,6 @@ static struct platform_driver ltq_mei_driver = {
 	.remove = ltq_mei_remove,
 	.driver = {
 		.name = "lantiq,mei-xway",
-		.owner = THIS_MODULE,
 		.of_match_table = ltq_mei_match,
 	},
 };
diff --git a/package/kernel/lantiq/ltq-adsl/patches/120-platform.patch b/package/kernel/lantiq/ltq-adsl/patches/120-platform.patch
index 7bbcf35cd2..69f2b45e32 100644
--- a/package/kernel/lantiq/ltq-adsl/patches/120-platform.patch
+++ b/package/kernel/lantiq/ltq-adsl/patches/120-platform.patch
@@ -36,7 +36,7 @@
  }
  
  #ifndef _lint
-@@ -1159,8 +1159,30 @@ module_param(debug_level, byte, 0);
+@@ -1159,8 +1159,29 @@ module_param(debug_level, byte, 0);
  MODULE_PARM_DESC(debug_level, "set to get more (1) or fewer (4) debug outputs");
  #endif /* #ifndef DSL_DEBUG_DISABLE*/
  
@@ -59,7 +59,6 @@
 +	.remove = __devexit_p(ltq_adsl_remove),
 +	.driver = {
 +		.name = "adsl",
-+		.owner = THIS_MODULE,
 +		.of_match_table = ltq_adsl_match,
 +	},
 +};
diff --git a/package/kernel/lantiq/ltq-atm/src/ltq_atm.c b/package/kernel/lantiq/ltq-atm/src/ltq_atm.c
index 0cb49a59bd..6b1e0321b3 100644
--- a/package/kernel/lantiq/ltq-atm/src/ltq_atm.c
+++ b/package/kernel/lantiq/ltq-atm/src/ltq_atm.c
@@ -1894,7 +1894,6 @@ static struct platform_driver ltq_atm_driver = {
 	.remove = ltq_atm_remove,
 	.driver = {
 		.name = "atm",
-		.owner = THIS_MODULE,
 		.of_match_table = ltq_atm_match,
 	},
 };
diff --git a/package/kernel/lantiq/ltq-deu/src/ifxmips_deu.c b/package/kernel/lantiq/ltq-deu/src/ifxmips_deu.c
index 096b8b5bba..e44e84c03c 100644
--- a/package/kernel/lantiq/ltq-deu/src/ifxmips_deu.c
+++ b/package/kernel/lantiq/ltq-deu/src/ifxmips_deu.c
@@ -196,7 +196,6 @@ static struct platform_driver ltq_deu_driver = {
 	.remove = ltq_deu_remove,
 	.driver = {
 		.name = "deu",
-		.owner = THIS_MODULE,
 		.of_match_table = ltq_deu_match,
 	},
 };
diff --git a/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_adsl.c b/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_adsl.c
index 3ff01d588a..5e5535348d 100644
--- a/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_adsl.c
+++ b/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_adsl.c
@@ -1600,7 +1600,6 @@ static struct platform_driver ltq_ptm_driver = {
        .remove = ltq_ptm_remove,
        .driver = {
                .name = "ptm",
-               .owner = THIS_MODULE,
                .of_match_table = ltq_ptm_match,
        },
 };
diff --git a/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c b/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c
index 6731904bba..c5bbd9fd87 100644
--- a/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c
+++ b/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c
@@ -1138,7 +1138,6 @@ static struct platform_driver ltq_ptm_driver = {
 	.remove = ltq_ptm_remove,
 	.driver = {
 		.name = "ptm",
-		.owner = THIS_MODULE,
 		.of_match_table = ltq_ptm_match,
 	},
 };
diff --git a/package/kernel/ubootenv-nvram/src/ubootenv-nvram.c b/package/kernel/ubootenv-nvram/src/ubootenv-nvram.c
index f624414216..106e41231c 100644
--- a/package/kernel/ubootenv-nvram/src/ubootenv-nvram.c
+++ b/package/kernel/ubootenv-nvram/src/ubootenv-nvram.c
@@ -146,7 +146,6 @@ static struct platform_driver ubootenv_driver = {
 	.remove = ubootenv_remove,
 	.driver = {
 		.name           = NAME,
-		.owner          = THIS_MODULE,
 		.of_match_table = of_ubootenv_match,
 	},
 };
diff --git a/target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c b/target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c
index 4baed52e57..a0759fe9e3 100644
--- a/target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c
+++ b/target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c
@@ -168,7 +168,6 @@ static struct platform_driver gpio_latch_driver = {
 	.probe = gpio_latch_probe,
 	.driver = {
 		.name = GPIO_LATCH_DRIVER_NAME,
-		.owner = THIS_MODULE,
 		.of_match_table = gpio_latch_match,
 	},
 };
diff --git a/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c b/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c
index 02639cf011..d83b690afe 100644
--- a/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c
+++ b/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c
@@ -182,7 +182,6 @@ static struct platform_driver gpio_rb91x_key_driver = {
 	.probe = gpio_rb91x_key_probe,
 	.driver = {
 		.name = GPIO_RB91X_KEY_DRIVER_NAME,
-		.owner = THIS_MODULE,
 		.of_match_table = gpio_rb91x_key_match,
 	},
 };
diff --git a/target/linux/ath79/files/drivers/mtd/nand/raw/ar934x_nand.c b/target/linux/ath79/files/drivers/mtd/nand/raw/ar934x_nand.c
index d0d9e2090b..029142ca61 100644
--- a/target/linux/ath79/files/drivers/mtd/nand/raw/ar934x_nand.c
+++ b/target/linux/ath79/files/drivers/mtd/nand/raw/ar934x_nand.c
@@ -1478,7 +1478,6 @@ static struct platform_driver ar934x_nfc_driver = {
 	.remove		= ar934x_nfc_remove,
 	.driver = {
 		.name	= AR934X_NFC_DRIVER_NAME,
-		.owner	= THIS_MODULE,
 		.of_match_table = ar934x_nfc_match,
 	},
 };
diff --git a/target/linux/ath79/files/drivers/mtd/nand/raw/rb91x_nand.c b/target/linux/ath79/files/drivers/mtd/nand/raw/rb91x_nand.c
index 092cd85d82..cf2809bfa3 100644
--- a/target/linux/ath79/files/drivers/mtd/nand/raw/rb91x_nand.c
+++ b/target/linux/ath79/files/drivers/mtd/nand/raw/rb91x_nand.c
@@ -356,7 +356,6 @@ static struct platform_driver rb91x_nand_driver = {
 	.remove	= rb91x_nand_remove,
 	.driver	= {
 		.name	= "rb91x-nand",
-		.owner	= THIS_MODULE,
 		.of_match_table = rb91x_nand_match,
 	},
 };
diff --git a/target/linux/bcm47xx/patches-6.6/831-old_gpio_wdt.patch b/target/linux/bcm47xx/patches-6.6/831-old_gpio_wdt.patch
index 6c76cbeee7..f7ab33802c 100644
--- a/target/linux/bcm47xx/patches-6.6/831-old_gpio_wdt.patch
+++ b/target/linux/bcm47xx/patches-6.6/831-old_gpio_wdt.patch
@@ -32,7 +32,7 @@ Signed-off-by: Mathias Adam <m.adam--openwrt at adamis.de>
  obj-$(CONFIG_TXX9_WDT) += txx9wdt.o
 --- /dev/null
 +++ b/drivers/watchdog/old_gpio_wdt.c
-@@ -0,0 +1,301 @@
+@@ -0,0 +1,300 @@
 +/*
 + *      Driver for GPIO-controlled Hardware Watchdogs.
 + *
@@ -294,7 +294,6 @@ Signed-off-by: Mathias Adam <m.adam--openwrt at adamis.de>
 +	.probe = gpio_wdt_probe,
 +	.remove = gpio_wdt_remove,
 +	.driver.name = "gpio-wdt",
-+	.driver.owner = THIS_MODULE,
 +};
 +
 +static int __init gpio_wdt_init(void)
diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366rb.c b/target/linux/generic/files/drivers/net/phy/rtl8366rb.c
index 0e0116051a..0878ca9f14 100644
--- a/target/linux/generic/files/drivers/net/phy/rtl8366rb.c
+++ b/target/linux/generic/files/drivers/net/phy/rtl8366rb.c
@@ -1503,7 +1503,6 @@ MODULE_DEVICE_TABLE(of, rtl8366rb_match);
 static struct platform_driver rtl8366rb_driver = {
 	.driver = {
 		.name		= RTL8366RB_DRIVER_NAME,
-		.owner		= THIS_MODULE,
 		.of_match_table = of_match_ptr(rtl8366rb_match),
 	},
 	.probe		= rtl8366rb_probe,
diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366s.c b/target/linux/generic/files/drivers/net/phy/rtl8366s.c
index 8c746778b8..d4045fcc06 100644
--- a/target/linux/generic/files/drivers/net/phy/rtl8366s.c
+++ b/target/linux/generic/files/drivers/net/phy/rtl8366s.c
@@ -1291,7 +1291,6 @@ MODULE_DEVICE_TABLE(of, rtl8366s_match);
 static struct platform_driver rtl8366s_driver = {
 	.driver = {
 		.name		= RTL8366S_DRIVER_NAME,
-		.owner		= THIS_MODULE,
 #ifdef CONFIG_OF
 		.of_match_table = of_match_ptr(rtl8366s_match),
 #endif
diff --git a/target/linux/generic/files/drivers/net/phy/rtl8367.c b/target/linux/generic/files/drivers/net/phy/rtl8367.c
index 0acfeb54bb..950e9d2767 100644
--- a/target/linux/generic/files/drivers/net/phy/rtl8367.c
+++ b/target/linux/generic/files/drivers/net/phy/rtl8367.c
@@ -1834,7 +1834,6 @@ MODULE_DEVICE_TABLE(of, rtl8367_match);
 static struct platform_driver rtl8367_driver = {
 	.driver = {
 		.name		= RTL8367_DRIVER_NAME,
-		.owner		= THIS_MODULE,
 #ifdef CONFIG_OF
 		.of_match_table = of_match_ptr(rtl8367_match),
 #endif
diff --git a/target/linux/generic/files/drivers/net/phy/rtl8367b.c b/target/linux/generic/files/drivers/net/phy/rtl8367b.c
index 4236912dd5..5f885aa5be 100644
--- a/target/linux/generic/files/drivers/net/phy/rtl8367b.c
+++ b/target/linux/generic/files/drivers/net/phy/rtl8367b.c
@@ -1633,7 +1633,6 @@ MODULE_DEVICE_TABLE(of, rtl8367b_match);
 static struct platform_driver rtl8367b_driver = {
 	.driver = {
 		.name		= RTL8367B_DRIVER_NAME,
-		.owner		= THIS_MODULE,
 #ifdef CONFIG_OF
 		.of_match_table = of_match_ptr(rtl8367b_match),
 #endif
diff --git a/target/linux/generic/hack-6.6/800-GPIO-add-named-gpio-exports.patch b/target/linux/generic/hack-6.6/800-GPIO-add-named-gpio-exports.patch
index a1d787191c..e6dcdfd92b 100644
--- a/target/linux/generic/hack-6.6/800-GPIO-add-named-gpio-exports.patch
+++ b/target/linux/generic/hack-6.6/800-GPIO-add-named-gpio-exports.patch
@@ -15,7 +15,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  
  #include "gpiolib.h"
  #include "gpiolib-of.h"
-@@ -1129,3 +1131,74 @@ void of_gpiochip_remove(struct gpio_chip
+@@ -1129,3 +1131,73 @@ void of_gpiochip_remove(struct gpio_chip
  {
  	of_node_put(dev_of_node(&chip->gpiodev->dev));
  }
@@ -81,7 +81,6 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +static struct platform_driver gpio_export_driver = {
 +	.driver		= {
 +		.name		= "gpio-export",
-+		.owner	= THIS_MODULE,
 +		.of_match_table	= of_match_ptr(gpio_export_ids),
 +	},
 +	.probe		= of_gpio_export_probe,
diff --git a/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch b/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch
index ff38964ece..b06c29ffaf 100644
--- a/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch
+++ b/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch
@@ -81,7 +81,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  swim_mod-y	:= swim.o swim_asm.o
 --- /dev/null
 +++ b/drivers/block/fitblk.c
-@@ -0,0 +1,659 @@
+@@ -0,0 +1,658 @@
 +// SPDX-License-Identifier: GPL-2.0-only
 +/*
 + * uImage.FIT virtual block device driver.
@@ -714,7 +714,6 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 +	.probe		= fitblk_probe,
 +	.driver		= {
 +		.name   = "fitblk",
-+		.owner   = THIS_MODULE,
 +	},
 +};
 +
diff --git a/target/linux/ipq40xx/patches-6.6/850-soc-add-qualcomm-syscon.patch b/target/linux/ipq40xx/patches-6.6/850-soc-add-qualcomm-syscon.patch
index 0e93ebb646..7cd473b24e 100644
--- a/target/linux/ipq40xx/patches-6.6/850-soc-add-qualcomm-syscon.patch
+++ b/target/linux/ipq40xx/patches-6.6/850-soc-add-qualcomm-syscon.patch
@@ -23,7 +23,7 @@ Subject: SoC: add qualcomm syscon
 +obj-$(CONFIG_QCOM_TCSR)		+= qcom_tcsr.o
 --- /dev/null
 +++ b/drivers/soc/qcom/qcom_tcsr.c
-@@ -0,0 +1,96 @@
+@@ -0,0 +1,95 @@
 +/*
 + * Copyright (c) 2014, The Linux foundation. All rights reserved.
 + *
@@ -109,7 +109,6 @@ Subject: SoC: add qualcomm syscon
 +static struct platform_driver tcsr_driver = {
 +	.driver = {
 +		.name		= "tcsr",
-+		.owner		= THIS_MODULE,
 +		.of_match_table	= tcsr_dt_match,
 +	},
 +	.probe = tcsr_probe,
diff --git a/target/linux/ipq806x/patches-6.6/850-soc-add-qualcomm-syscon.patch b/target/linux/ipq806x/patches-6.6/850-soc-add-qualcomm-syscon.patch
index 8b49af8e84..2d639bbfd3 100644
--- a/target/linux/ipq806x/patches-6.6/850-soc-add-qualcomm-syscon.patch
+++ b/target/linux/ipq806x/patches-6.6/850-soc-add-qualcomm-syscon.patch
@@ -28,7 +28,7 @@ Subject: SoC: add qualcomm syscon
  	depends on ARCH_QCOM || COMPILE_TEST
 --- /dev/null
 +++ b/drivers/soc/qcom/qcom_tcsr.c
-@@ -0,0 +1,62 @@
+@@ -0,0 +1,61 @@
 +/*
 + * Copyright (c) 2014, The Linux foundation. All rights reserved.
 + *
@@ -80,7 +80,6 @@ Subject: SoC: add qualcomm syscon
 +static struct platform_driver tcsr_driver = {
 +	.driver = {
 +		.name		= "tcsr",
-+		.owner		= THIS_MODULE,
 +		.of_match_table	= tcsr_dt_match,
 +	},
 +	.probe = tcsr_probe,
diff --git a/target/linux/lantiq/patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch b/target/linux/lantiq/patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch
index 3e6c267685..81bf72913b 100644
--- a/target/linux/lantiq/patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch
+++ b/target/linux/lantiq/patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch
@@ -186,7 +186,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  obj-y += vmmc.o
 --- /dev/null
 +++ b/arch/mips/lantiq/xway/timer.c
-@@ -0,0 +1,887 @@
+@@ -0,0 +1,886 @@
 +#ifndef CONFIG_SOC_AMAZON_SE
 +
 +#include <linux/kernel.h>
@@ -1043,7 +1043,6 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +	.probe = gptu_probe,
 +	.driver = {
 +		.name = "gptu-xway",
-+		.owner = THIS_MODULE,
 +		.of_match_table = gptu_match,
 +	},
 +};
diff --git a/target/linux/lantiq/patches-6.6/0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch b/target/linux/lantiq/patches-6.6/0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch
index 1992b536f4..235e48f6de 100644
--- a/target/linux/lantiq/patches-6.6/0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch
+++ b/target/linux/lantiq/patches-6.6/0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch
@@ -47,7 +47,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  obj-$(CONFIG_I2C_MESON)		+= i2c-meson.o
 --- /dev/null
 +++ b/drivers/i2c/busses/i2c-lantiq.c
-@@ -0,0 +1,746 @@
+@@ -0,0 +1,745 @@
 +
 +/*
 + * Lantiq I2C bus adapter
@@ -782,7 +782,6 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +	.remove	= ltq_i2c_remove,
 +	.driver	= {
 +		.name	= DRV_NAME,
-+		.owner	= THIS_MODULE,
 +		.of_match_table = ltq_i2c_match,
 +	},
 +};
diff --git a/target/linux/lantiq/patches-6.6/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch b/target/linux/lantiq/patches-6.6/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch
index 8bb6e5a0da..3ece97052b 100644
--- a/target/linux/lantiq/patches-6.6/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch
+++ b/target/linux/lantiq/patches-6.6/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch
@@ -36,7 +36,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +obj-$(CONFIG_PCI) += ath5k_eep.o
 --- /dev/null
 +++ b/arch/mips/lantiq/xway/ath5k_eep.c
-@@ -0,0 +1,136 @@
+@@ -0,0 +1,135 @@
 +/*
 + *  Copyright (C) 2011 Luca Olivetti <luca at ventoso.org>
 + *  Copyright (C) 2011 John Crispin <blogic at openwrt.org>
@@ -149,7 +149,6 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +static struct platform_driver ath5k_eeprom_driver = {
 +	.driver		= {
 +		.name		= "ath5k,eeprom",
-+		.owner	= THIS_MODULE,
 +		.of_match_table	= of_match_ptr(ath5k_eeprom_ids),
 +	},
 +};
diff --git a/target/linux/lantiq/patches-6.6/0151-lantiq-ifxmips_pcie-use-of.patch b/target/linux/lantiq/patches-6.6/0151-lantiq-ifxmips_pcie-use-of.patch
index b83bf992a6..65253bc7e4 100644
--- a/target/linux/lantiq/patches-6.6/0151-lantiq-ifxmips_pcie-use-of.patch
+++ b/target/linux/lantiq/patches-6.6/0151-lantiq-ifxmips_pcie-use-of.patch
@@ -293,7 +293,7 @@ Signed-off-by: Eddi De Pieri <eddi at depieri.net>
  
              register_pci_controller(&ifx_pcie_controller[pcie_port].pcic);
              /* XXX, clear error status */
-@@ -1083,6 +1185,30 @@ static int __init ifx_pcie_bios_init(voi
+@@ -1083,6 +1185,29 @@ static int __init ifx_pcie_bios_init(voi
  
      return 0;
  }
@@ -308,7 +308,6 @@ Signed-off-by: Eddi De Pieri <eddi at depieri.net>
 +        .probe = ifx_pcie_bios_probe,
 +        .driver = {
 +                .name = "pcie-xrx200",
-+                .owner = THIS_MODULE,
 +                .of_match_table = ifxmips_pcie_match,
 +        },
 +};
diff --git a/target/linux/mediatek/files/drivers/net/phy/rtk/rtl8367s_mdio.c b/target/linux/mediatek/files/drivers/net/phy/rtk/rtl8367s_mdio.c
index b4d4554d4f..d958d622e0 100644
--- a/target/linux/mediatek/files/drivers/net/phy/rtk/rtl8367s_mdio.c
+++ b/target/linux/mediatek/files/drivers/net/phy/rtk/rtl8367s_mdio.c
@@ -296,7 +296,6 @@ static struct platform_driver gsw_driver = {
 	.remove = rtk_gsw_remove,
 	.driver = {
 		.name = "rtk-gsw",
-		.owner = THIS_MODULE,
 		.of_match_table = rtk_gsw_match,
 	},
 };
diff --git a/target/linux/qualcommax/patches-6.6/0900-power-Add-Qualcomm-APM.patch b/target/linux/qualcommax/patches-6.6/0900-power-Add-Qualcomm-APM.patch
index 2e5c72b7d1..f105351584 100644
--- a/target/linux/qualcommax/patches-6.6/0900-power-Add-Qualcomm-APM.patch
+++ b/target/linux/qualcommax/patches-6.6/0900-power-Add-Qualcomm-APM.patch
@@ -49,7 +49,7 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
 +obj-$(CONFIG_QCOM_APM)		+= apm.o
 --- /dev/null
 +++ b/drivers/power/qcom/apm.c
-@@ -0,0 +1,944 @@
+@@ -0,0 +1,943 @@
 +/*
 + * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
 + *
@@ -971,7 +971,6 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
 +	.driver		= {
 +		.name		= MSM_APM_DRIVER_NAME,
 +		.of_match_table	= msm_apm_match_table,
-+		.owner		= THIS_MODULE,
 +	},
 +	.probe		= msm_apm_probe,
 +	.remove		= msm_apm_remove,
diff --git a/target/linux/qualcommax/patches-6.6/0901-regulator-add-Qualcomm-CPR-regulators.patch b/target/linux/qualcommax/patches-6.6/0901-regulator-add-Qualcomm-CPR-regulators.patch
index c85be0357c..46d4fc246f 100644
--- a/target/linux/qualcommax/patches-6.6/0901-regulator-add-Qualcomm-CPR-regulators.patch
+++ b/target/linux/qualcommax/patches-6.6/0901-regulator-add-Qualcomm-CPR-regulators.patch
@@ -77,7 +77,7 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
  obj-$(CONFIG_REGULATOR_PF8X00) += pf8x00-regulator.o
 --- /dev/null
 +++ b/drivers/regulator/cpr3-npu-regulator.c
-@@ -0,0 +1,695 @@
+@@ -0,0 +1,694 @@
 +/*
 + * Copyright (c) 2017, The Linux Foundation. All rights reserved.
 + *
@@ -752,7 +752,6 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
 +	.driver		= {
 +		.name		= "qcom,cpr3-npu-regulator",
 +		.of_match_table	= cpr3_regulator_match_table,
-+		.owner		= THIS_MODULE,
 +	},
 +	.probe		= cpr3_npu_regulator_probe,
 +	.remove		= cpr3_npu_regulator_remove,
@@ -9866,7 +9865,7 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
 +}
 --- /dev/null
 +++ b/drivers/regulator/cpr4-apss-regulator.c
-@@ -0,0 +1,1819 @@
+@@ -0,0 +1,1818 @@
 +/*
 + * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
 + *
@@ -11663,7 +11662,6 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
 +	.driver		= {
 +		.name		= "qcom,cpr4-apss-regulator",
 +		.of_match_table	= cpr4_regulator_match_table,
-+		.owner		= THIS_MODULE,
 +	},
 +	.probe		= cpr4_apss_regulator_probe,
 +	.remove		= cpr4_apss_regulator_remove,
diff --git a/target/linux/ramips/files/drivers/net/ethernet/ralink/esw_rt3050.c b/target/linux/ramips/files/drivers/net/ethernet/ralink/esw_rt3050.c
index cafa28e7a4..bbb52d74b2 100644
--- a/target/linux/ramips/files/drivers/net/ethernet/ralink/esw_rt3050.c
+++ b/target/linux/ramips/files/drivers/net/ethernet/ralink/esw_rt3050.c
@@ -1525,7 +1525,6 @@ static struct platform_driver esw_driver = {
 	.remove = esw_remove,
 	.driver = {
 		.name = "rt3050-esw",
-		.owner = THIS_MODULE,
 		.of_match_table = ralink_esw_match,
 	},
 };
diff --git a/target/linux/ramips/files/drivers/net/ethernet/ralink/gsw_mt7620.c b/target/linux/ramips/files/drivers/net/ethernet/ralink/gsw_mt7620.c
index 9fc54a74b4..154983494e 100644
--- a/target/linux/ramips/files/drivers/net/ethernet/ralink/gsw_mt7620.c
+++ b/target/linux/ramips/files/drivers/net/ethernet/ralink/gsw_mt7620.c
@@ -296,7 +296,6 @@ static struct platform_driver gsw_driver = {
 	.remove = mt7620_gsw_remove,
 	.driver = {
 		.name = "mt7620-gsw",
-		.owner = THIS_MODULE,
 		.of_match_table = mediatek_gsw_match,
 	},
 };
diff --git a/target/linux/ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c b/target/linux/ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c
index d8d27fda3b..4dff1340d7 100644
--- a/target/linux/ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c
+++ b/target/linux/ramips/files/drivers/net/ethernet/ralink/mtk_eth_soc.c
@@ -1657,7 +1657,6 @@ static struct platform_driver fe_driver = {
 	.remove = fe_remove,
 	.driver = {
 		.name = "mtk_soc_eth",
-		.owner = THIS_MODULE,
 		.of_match_table = of_fe_match,
 	},
 };
diff --git a/target/linux/siflower/files-6.6/drivers/gpio/gpio-siflower.c b/target/linux/siflower/files-6.6/drivers/gpio/gpio-siflower.c
index f061021e30..bd3d8906b4 100644
--- a/target/linux/siflower/files-6.6/drivers/gpio/gpio-siflower.c
+++ b/target/linux/siflower/files-6.6/drivers/gpio/gpio-siflower.c
@@ -333,7 +333,6 @@ static struct platform_driver sf_gpio_driver = {
 	.remove		= sf_gpio_remove,
 	.driver = {
 		.name		= "siflower_gpio",
-		.owner		= THIS_MODULE,
 		.of_match_table	= sf_gpio_ids,
 	},
 };



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:44 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:44 -0500
Subject: [openwrt/openwrt]  dropbear: bump to 2024.86
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8041.1732820951.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/2544e03d10fc5e06e9423878bf9d1ab02def5bc2

commit 2544e03d10fc5e06e9423878bf9d1ab02def5bc2
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sat Nov 23 22:32:03 2024 +0100

    dropbear: bump to 2024.86
    
    - update dropbear to latest stable 2024.86;
      for the changes see https://matt.ucc.asn.au/dropbear/CHANGES
    
    Link: https://github.com/openwrt/openwrt/pull/17053
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit a9d3c5b4c9bf910d4b3b42109161b1f6526b76eb)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/network/services/dropbear/Makefile                      | 6 +++---
 package/network/services/dropbear/patches/110-change_user.patch | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/package/network/services/dropbear/Makefile b/package/network/services/dropbear/Makefile
index 1918e7dec6..e13b6c2145 100644
--- a/package/network/services/dropbear/Makefile
+++ b/package/network/services/dropbear/Makefile
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dropbear
-PKG_VERSION:=2024.85
-PKG_RELEASE:=2
+PKG_VERSION:=2024.86
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:= \
 	https://matt.ucc.asn.au/dropbear/releases/ \
 	https://dropbear.nl/mirror/releases/
-PKG_HASH:=86b036c433a69d89ce51ebae335d65c47738ccf90d13e5eb0fea832e556da502
+PKG_HASH:=e78936dffc395f2e0db099321d6be659190966b99712b55c530dd0a1822e0a5e
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE libtomcrypt/LICENSE libtommath/LICENSE
diff --git a/package/network/services/dropbear/patches/110-change_user.patch b/package/network/services/dropbear/patches/110-change_user.patch
index 9cb073cf94..9ef8f0cfbc 100644
--- a/package/network/services/dropbear/patches/110-change_user.patch
+++ b/package/network/services/dropbear/patches/110-change_user.patch
@@ -1,6 +1,6 @@
 --- a/src/svr-chansession.c
 +++ b/src/svr-chansession.c
-@@ -987,12 +987,12 @@ static void execchild(const void *user_d
+@@ -984,12 +984,12 @@ static void execchild(const void *user_d
  	/* We can only change uid/gid as root ... */
  	if (getuid() == 0) {
  



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:37 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:37 -0500
Subject: [openwrt/openwrt]  linux-firmware: Add support for Intel AX411
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8042.1732820955.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/25973eab22e0f30bcdfd9ff93951136d5eff88ee

commit 25973eab22e0f30bcdfd9ff93951136d5eff88ee
Author: Joerg Bayer <sg-o at live.de>
AuthorDate: Sat Apr 13 16:05:24 2024 +0200

    linux-firmware: Add support for Intel AX411
    
    Add support for Intel AX411 CNVio2 device.
    
    Signed-off-by: Joerg Bayer <sg-o at live.de>
    Link: https://github.com/openwrt/openwrt/pull/15153
    [squashed and updated commit description, update to version 89]
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit c89ed7acc897794b06b61f10d8f641ee06fbaacf)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/firmware/linux-firmware/intel.mk | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/package/firmware/linux-firmware/intel.mk b/package/firmware/linux-firmware/intel.mk
index 4c9e04cd3d..eb5ac29159 100644
--- a/package/firmware/linux-firmware/intel.mk
+++ b/package/firmware/linux-firmware/intel.mk
@@ -199,6 +199,14 @@ define Package/iwlwifi-firmware-ax210/install
 endef
 $(eval $(call BuildPackage,iwlwifi-firmware-ax210))
 
+Package/iwlwifi-firmware-ax411 = $(call Package/firmware-default,Intel AX411 firmware)
+define Package/iwlwifi-firmware-ax411/install
+	$(INSTALL_DIR) $(1)/lib/firmware
+	$(INSTALL_DATA) $(PKG_BUILD_DIR)/iwlwifi-so-a0-gf4-a0-89.ucode $(1)/lib/firmware
+	$(INSTALL_DATA) $(PKG_BUILD_DIR)/iwlwifi-so-a0-gf4-a0.pnvm $(1)/lib/firmware
+endef
+$(eval $(call BuildPackage,iwlwifi-firmware-ax411))
+
 Package/iwlwifi-firmware-be200 = $(call Package/firmware-default,Intel BE200 firmware)
 define Package/iwlwifi-firmware-be200/install
 	$(INSTALL_DIR) $(1)/lib/firmware



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:10 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:10 -0500
Subject: [openwrt/openwrt]  mediatek: fix pwn fan settings for sinovoip bpi-r3
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8043.1732820965.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/f93bba30d7ea704e5948d4c0c79d7e2432b9e82e

commit f93bba30d7ea704e5948d4c0c79d7e2432b9e82e
Author: Mikhail Kshevetskiy <mikhail.kshevetskiy at gmail.com>
AuthorDate: Fri Nov 15 03:17:07 2024 +0300

    mediatek: fix pwn fan settings for sinovoip bpi-r3
    
    Popular bpi-r3 pwm fans like this one
    
      https://www.amazon.com/youyeetoo-Barebone-Fan-BPI-R3-Integrated/dp/B0CCCTY8PS
    
    will not work properly with current openwrt-23.05/24.10 firmware.
    Trying different pwm setting
    
      echo $value > /sys/devices/platform/pwm-fan/hwmon/hwmon1/pwm1
    
    I found:
    
      pwm1 value     fan rotation speed   cpu temperature     notes
      -----------------------------------------------------------------
        0            maximal              31.5 Celsius        too noisy
       40            optimal              35.2 Celsius        no noise hearable
       95            minimal
       above 95      does not rotate      55.5 Celsius
      -----------------------------------------------------------------
    
    At the moment we have following cooling levels:
    
      cooling-levels = <255 96 0>;
    
    for cpu-active-high, cpu-active-medium and cpu-active-low modes correspondingly.
    Thus only cpu-active-high and cpu-active-low are usable. I think this is wrong.
    
    This patch fixes cpu-active-medium settings for bpi-r3 board.
    
    PS: I know, the patch is not ideal as it can break pwm fan for some users.
        There are some peoples that use handmade cooling solutions, but:
          * discussed cooler is the only 'official' pwm cooler for bpi-r3
            available on the market.
          * most peoples will use passive cooling available on the market or
            the discussed cooler.
          * the pwm-fan dts section was added before the official cooler
            appears on the market.
        Thus it should not be a lot of harm from this fix.
    
    Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16974
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 3467ea905b40f0df87700a15b716b1f5a4efc955)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../196-dts-mt7986a-bpi-r3-pwm-fan-cooling-levels.patch       | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/target/linux/mediatek/patches-5.15/196-dts-mt7986a-bpi-r3-pwm-fan-cooling-levels.patch b/target/linux/mediatek/patches-5.15/196-dts-mt7986a-bpi-r3-pwm-fan-cooling-levels.patch
new file mode 100644
index 0000000000..267c654f35
--- /dev/null
+++ b/target/linux/mediatek/patches-5.15/196-dts-mt7986a-bpi-r3-pwm-fan-cooling-levels.patch
@@ -0,0 +1,11 @@
+--- a/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts
++++ b/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts
+@@ -46,7 +46,7 @@
+ 		compatible = "pwm-fan";
+ 		#cooling-cells = <2>;
+ 		/* cooling level (0, 1, 2) - pwm inverted */
+-		cooling-levels = <255 96 0>;
++		cooling-levels = <255 40 0>;
+ 		pwms = <&pwm 0 10000>;
+ 		status = "okay";
+ 	};



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:34 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:34 -0500
Subject: [openwrt/openwrt]  qualcommax: ipq60xx: add NSS reserved memory
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8044.1732820979.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/03984356bdb2d476dcd9c9115dca0c64599c94d0

commit 03984356bdb2d476dcd9c9115dca0c64599c94d0
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Wed Nov 6 20:13:06 2024 +0100

    qualcommax: ipq60xx: add NSS reserved memory
    
    It seems that despite NSS not being supported in OpenWrt the memory it
    usually uses needs to be reserved anyway for stability reasons.
    
    Link: https://github.com/openwrt/openwrt/pull/16928
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 8729d2a64d282d37b69c0853269af401a0102517)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 ...-dts-qcom-ipq6018-add-NSS-reserved-memory.patch | 27 ++++++++++++++++++++++
 ...0906-arm64-dts-qcom-ipq6018-add-wifi-node.patch |  2 +-
 .../0907-soc-qcom-fix-smp2p-ack-on-ipq6018.patch   |  2 +-
 ...com-ipq6018-assign-QDSS_AT-clock-to-wifi-.patch |  2 +-
 4 files changed, 30 insertions(+), 3 deletions(-)

diff --git a/target/linux/qualcommax/patches-6.6/0140-arm64-dts-qcom-ipq6018-add-NSS-reserved-memory.patch b/target/linux/qualcommax/patches-6.6/0140-arm64-dts-qcom-ipq6018-add-NSS-reserved-memory.patch
new file mode 100644
index 0000000000..84591c845d
--- /dev/null
+++ b/target/linux/qualcommax/patches-6.6/0140-arm64-dts-qcom-ipq6018-add-NSS-reserved-memory.patch
@@ -0,0 +1,27 @@
+From 7e102b1eb2ca3eff7a6f33ebeab17825e6f70956 Mon Sep 17 00:00:00 2001
+From: Robert Marko <robimarko at gmail.com>
+Date: Mon, 4 Nov 2024 22:01:24 +0100
+Subject: [PATCH] arm64: dts: qcom: ipq6018: add NSS reserved memory
+
+It seems that despite NSS not being supported in OpenWrt the memory it
+usually uses needs to be reserved anyway for stability reasons.
+
+Signed-off-by: Robert Marko <robimarko at gmail.com>
+---
+ arch/arm64/boot/dts/qcom/ipq6018.dtsi | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
++++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
+@@ -199,6 +199,11 @@
+ 			no-map;
+ 		};
+ 
++		nss_region: memory at 40000000 {
++			reg = <0x0 0x40000000 0x0 0x01000000>;
++			no-map;
++		};
++
+ 		bootloader at 4a100000 {
+ 			reg = <0x0 0x4a100000 0x0 0x400000>;
+ 			no-map;
diff --git a/target/linux/qualcommax/patches-6.6/0906-arm64-dts-qcom-ipq6018-add-wifi-node.patch b/target/linux/qualcommax/patches-6.6/0906-arm64-dts-qcom-ipq6018-add-wifi-node.patch
index f4968f1a4d..d41244d65a 100644
--- a/target/linux/qualcommax/patches-6.6/0906-arm64-dts-qcom-ipq6018-add-wifi-node.patch
+++ b/target/linux/qualcommax/patches-6.6/0906-arm64-dts-qcom-ipq6018-add-wifi-node.patch
@@ -15,7 +15,7 @@ Signed-off-by: Mantas Pucka <mantas at 8devices.com>
 
 --- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
-@@ -809,6 +809,102 @@
+@@ -814,6 +814,102 @@
  			};
  		};
  
diff --git a/target/linux/qualcommax/patches-6.6/0907-soc-qcom-fix-smp2p-ack-on-ipq6018.patch b/target/linux/qualcommax/patches-6.6/0907-soc-qcom-fix-smp2p-ack-on-ipq6018.patch
index 094442a59b..5154aad531 100644
--- a/target/linux/qualcommax/patches-6.6/0907-soc-qcom-fix-smp2p-ack-on-ipq6018.patch
+++ b/target/linux/qualcommax/patches-6.6/0907-soc-qcom-fix-smp2p-ack-on-ipq6018.patch
@@ -15,7 +15,7 @@ Signed-off-by: Mantas Pucka <mantas at 8devices.com>
 
 --- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
-@@ -1157,6 +1157,7 @@
+@@ -1162,6 +1162,7 @@
  
  		wcss_smp2p_out: master-kernel {
  			qcom,entry-name = "master-kernel";
diff --git a/target/linux/qualcommax/patches-6.6/0909-arm64-dts-qcom-ipq6018-assign-QDSS_AT-clock-to-wifi-.patch b/target/linux/qualcommax/patches-6.6/0909-arm64-dts-qcom-ipq6018-assign-QDSS_AT-clock-to-wifi-.patch
index a0528e7f50..993d60870b 100644
--- a/target/linux/qualcommax/patches-6.6/0909-arm64-dts-qcom-ipq6018-assign-QDSS_AT-clock-to-wifi-.patch
+++ b/target/linux/qualcommax/patches-6.6/0909-arm64-dts-qcom-ipq6018-assign-QDSS_AT-clock-to-wifi-.patch
@@ -13,7 +13,7 @@ Signed-off-by: Mantas Pucka <mantas at 8devices.com>
 
 --- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
-@@ -930,8 +930,8 @@
+@@ -935,8 +935,8 @@
  				      "wcss_reset",
  				      "wcss_q6_reset";
  



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:14 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:14 -0500
Subject: [openwrt/openwrt]  mediatek: change Routerich AX3000 ubi size All new
 routers are shipped with ubi size 112MB since early September. Bootloader
 update required (ask vendor , see wiki)
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8045.1732820981.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/fb4088cdecb6a9e6413ba50ea81e594e2403c430

commit fb4088cdecb6a9e6413ba50ea81e594e2403c430
Author: Romanov Danila <pervokur at gmail.com>
AuthorDate: Mon Oct 21 21:34:34 2024 +0300

    mediatek: change Routerich AX3000 ubi size
    All new routers are shipped with ubi size 112MB since early September.
    Bootloader update required (ask vendor , see wiki)
    
    These partitions weren't used:
    firmware_backup
    zrsave
    config2
    
    Signed-off-by: Romanov Danila <pervokur at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16686
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit d8a9669093359d60f4d6f183b58a22f24cf01731)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../linux/mediatek/dts/mt7981b-routerich-ax3000.dts  | 20 +-------------------
 .../filogic/base-files/etc/board.d/05_compat-version |  3 +++
 target/linux/mediatek/image/filogic.mk               |  5 +++++
 3 files changed, 9 insertions(+), 19 deletions(-)

diff --git a/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts b/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts
index dfe44843b9..aa6a15ee1d 100644
--- a/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts
+++ b/target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts
@@ -226,25 +226,7 @@
 
 			partition at 580000 {
 				label = "ubi";
-				reg = <0x580000 0x4000000>;
-			};
-
-			partition at 4580000 {
-				label = "firmware_backup";
-				reg = <0x4580000 0x2000000>;
-				read-only;
-			};
-
-			partition at 6580000 {
-				label = "zrsave";
-				reg = <0x6580000 0x100000>;
-				read-only;
-			};
-
-			partition at 6680000 {
-				label = "config2";
-				reg = <0x6680000 0x100000>;
-				read-only;
+				reg = <0x580000 0x7000000>;
 			};
 		};
 	};
diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/05_compat-version b/target/linux/mediatek/filogic/base-files/etc/board.d/05_compat-version
index d0cfd8f0a1..9b704b983c 100644
--- a/target/linux/mediatek/filogic/base-files/etc/board.d/05_compat-version
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/05_compat-version
@@ -8,6 +8,9 @@ case "$(board_name)" in
 	bananapi,bpi-r3)
 		ucidef_set_compat_version "1.2"
 		;;
+	routerich,ax3000)
+		ucidef_set_compat_version "1.1"
+		;;
 esac
 
 board_config_flush
diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index 739fd54308..cb5c102b1e 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -1173,6 +1173,11 @@ define Device/routerich_ax3000
   DEVICE_PACKAGES := kmod-mt7915e kmod-mt7981-firmware mt7981-wo-firmware kmod-usb3
   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
   SUPPORTED_DEVICES += mediatek,mt7981-spim-snand-rfb
+  DEVICE_COMPAT_VERSION := 1.1
+  DEVICE_COMPAT_MESSAGE := Partition layout has been changed. Bootloader MUST be \
+	upgraded to avoid data corruption and getting bricked. \
+	Please, contact your vendor and follow the guide: \
+	https://openwrt.org/toh/routerich/ax3000#web_ui_method
 endef
 TARGET_DEVICES += routerich_ax3000
 



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:36 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:36 -0500
Subject: [openwrt/openwrt]  scripts: add download-check-artifact.sh script
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8048.1732821010.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/2942ee0a8d205428afcca9cd9c0479b161246229

commit 2942ee0a8d205428afcca9cd9c0479b161246229
Author: David S. H. Rosenthal <dshr at abitare.org>
AuthorDate: Wed Nov 6 10:19:17 2024 +0000

    scripts: add download-check-artifact.sh script
    
    While checking wiki documentation about GPG signatures checking I found
    this nice script and I've thought, that it would be nice to provide it
    officially instead of some random internet site.
    
    Usage example:
    
      $ ./scripts/download-check-artifact.sh https://downloads.openwrt.org/snapshots/targets/mediatek/filogic/openwrt-mediatek-filogic-openwrt_one-squashfs-sysupgrade.itb
    
      1) Downloading image file
      =========================
      ########################################### 100.0%
    
      2) Downloading checksum file
      ============================
      ########################################### 100.0%
    
      3) Downloading the GPG signature
      ================================
      ########################################### 100.0%
    
      4) Verifying GPG signature
      ==========================
      gpg: Signature made Tue 05 Nov 2024 05:21:50 PM UTC
      gpg:                using EDDSA key 92C561DE55AE6552F3C736B82B0151090606D1D9
      gpg: Good signature from "OpenWrt Build System (Nitrokey3) <contact at openwrt.org>" [ultimate]
      Primary key fingerprint: 8A8B C12F 46B8 36C0 F9CD  B36F 1D53 D187 7742 E911
           Subkey fingerprint: 92C5 61DE 55AE 6552 F3C7  36B8 2B01 5109 0606 D1D9
    
      5) Verifying SHA256 checksum
      ============================
      openwrt-mediatek-filogic-openwrt_one-squashfs-sysupgrade.itb: OK
    
      Verification done!
      ==================
      Downloaded artifact placed in '/var/home/ynezz/dev/openwrt/openwrt.git/openwrt-mediatek-filogic-openwrt_one-squashfs-sysupgrade.itb'
    
      Cleaning up.
    
    Adding file in a state as downloaded from https://www.abitare.org/bin/download.sh
    
    References: https://openwrt.org/docs/guide-quick-start/verify_firmware_checksum?s[]=gpg#linux
    Signed-off-by: David S. H. Rosenthal <dshr at abitare.org>
    Link: https://github.com/openwrt/openwrt/pull/16871
    (cherry picked from commit 4c9031fda271ed7d4503642f63ff824faa6cc3a0)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 scripts/download-check-artifact.sh | 154 +++++++++++++++++++++++++++++++++++++
 1 file changed, 154 insertions(+)

diff --git a/scripts/download-check-artifact.sh b/scripts/download-check-artifact.sh
new file mode 100755
index 0000000000..31868da5cd
--- /dev/null
+++ b/scripts/download-check-artifact.sh
@@ -0,0 +1,154 @@
+#!/usr/bin/env bash
+# Script to perform verified file downloads.
+# Exit codes:
+#  0 - File downloaded successfully and verified
+#  1 - Failed to download requested file
+#  2 - Failed to download sha256sums file
+#  3 - Failed to download sha256sums.gpg file
+#  4 - GnuPG is available but fails to verify the signature (missing pubkey, file integrity error, ...)
+#  5 - The checksums do not match
+#  6 - Unable to copy the requested file to its final destination
+#  254 - The script got interrupted by a signal
+#  255 - A suitable download or checksum utility is missing
+
+[ -n "$1" ] || {
+	echo "Usage: $0 <url>" >&2
+	exit 1
+}
+
+finish() {
+	[ -e "/tmp/verify.$$" ] && {
+		echo "Cleaning up."
+		rm -r "/tmp/verify.$$"
+	}
+	exit $1
+}
+
+trap "finish 254" INT TERM
+
+destdir="$(pwd)"
+image_url="$1"
+image_file="${image_url##*/}"
+sha256_url="${image_url%/*}/sha256sums"
+gpgsig_url="${image_url%/*}/sha256sums.asc"
+keyserver_url="hkp://keyserver.ubuntu.com"
+
+# Find a suitable download utility
+if which curl >/dev/null; then
+	download() { curl --progress-bar -o "$1" "$2"; }
+elif which wget >/dev/null; then
+	download() { wget -O "$1" "$2"; }
+elif which fetch >/dev/null; then
+	download() { fetch -o "$1" "$2"; }
+else
+	echo "No suitable download utility found, cannot download files!" >&2
+	finish 255
+fi
+
+# Find a suitable checksum utility
+if which sha256sum >/dev/null; then
+	checksum() { sha256sum -c --ignore-missing "sha256sums"; }
+elif which shasum >/dev/null; then
+	checksum() {
+		local sum="$(shasum -a 256 "$image_file")";
+		grep -xF "${sum%% *} *$image_file" "sha256sums";
+	}
+else
+	echo "No SHA256 checksum executable installed, cannot verify checksums!" >&2
+	finish 255
+fi
+
+# Check for gpg availability
+if which gpg >/dev/null; then
+	runpgp() { gpg "$@"; }
+else
+	runpgp() {
+		echo "WARNING: No GnuPG installed, cannot verify digital signature!" >&2
+		return 0
+	}
+fi
+
+mkdir -p "/tmp/verify.$$"
+cd "/tmp/verify.$$"
+
+echo ""
+echo "1) Downloading image file"
+echo "========================="
+download "$image_file" "$image_url" || {
+	echo "Failed to download image file!" >&2
+	finish 1
+}
+
+echo ""
+echo "2) Downloading checksum file"
+echo "============================"
+download "sha256sums" "$sha256_url" || {
+	echo "Failed to download checksum file!" >&2
+	finish 2
+}
+
+echo ""
+echo "3) Downloading the GPG signature"
+echo "================================"
+download "sha256sums.gpg" "$gpgsig_url" || {
+	echo "Failed to download GPG signature!" >&2
+	finish 3
+}
+
+echo ""
+echo "4) Verifying GPG signature"
+echo "=========================="
+missing_key=$(runpgp --status-fd 1 --with-fingerprint --verify \
+	"sha256sums.gpg" "sha256sums" 2>/dev/null | sed -ne 's!^.* NO_PUBKEY !!p')
+
+if [ -n "$missing_key" ]; then
+	echo "The signature was signed by a public key with the id $missing_key" >&2
+	echo "which is not present on this system."                              >&2
+	echo ""                                                                  >&2
+
+	echo "Provide a public keyserver url below or press enter to accept the" >&2
+	echo "default suggestion. Hit Ctrl-C to abort the operation."            >&2
+	echo ""                                                                  >&2
+
+	while true; do
+		printf "Keyserver to use? [$keyserver_url] > "
+		read url; case "${url:-$keyserver_url}" in
+			hkp://*)
+				gpg --keyserver "${url:-$keyserver_url}" --recv-keys "$missing_key" || {
+					echo "Failed to download public key." >&2
+					finish 7
+				}
+				break
+			;;
+			*)
+				echo "Expecting a key server url in the form 'hkp://hostname'." >&2
+			;;
+		esac
+	done
+fi
+
+runpgp --with-fingerprint --verify "sha256sums.gpg" "sha256sums" || {
+	echo "Failed to verify checksum file with GPG signature!" >&2
+	finish 4
+}
+
+echo ""
+echo "5) Verifying SHA256 checksum"
+echo "============================"
+checksum || {
+	echo "Checksums do not match!" >&2
+	finish 5
+}
+
+cp "$image_file" "$destdir/$image_file" || {
+	echo "Failed to write '$destdir/$image_file'" >&2
+	finish 6
+}
+
+echo ""
+echo "Verification done!"
+echo "=================="
+echo "Firmware image placed in '$destdir/$image_file'."
+echo ""
+
+finish 0



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:58 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:58 -0500
Subject: [openwrt/openwrt]  omnia-eeprom: Mark it nonshared
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8049.1732821018.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/dae203bd942d5220bee83eb63a75202e339181ad

commit dae203bd942d5220bee83eb63a75202e339181ad
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sat Nov 16 18:38:42 2024 +0100

    omnia-eeprom: Mark it nonshared
    
    This tool was build in the phase 2 build, there the
    TARGET_mvebu_cortexa9_DEVICE_cznic_turris-omnia dependecy was probably
    not meat. Mark it as non shared to build it together with the target
    where this option is set.
    
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    Link: https://github.com/openwrt/openwrt/pull/16975
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 371e7bef4046fb3992ecfb92b5b741c22fa3ade6)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/utils/omnia-eeprom/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/utils/omnia-eeprom/Makefile b/package/utils/omnia-eeprom/Makefile
index 03eb13bbc1..f9e48b28b9 100644
--- a/package/utils/omnia-eeprom/Makefile
+++ b/package/utils/omnia-eeprom/Makefile
@@ -15,6 +15,7 @@ PKG_SOURCE_SUBDIR:=$(PKG_NAME)-v$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://gitlab.nic.cz/turris/omnia-eeprom/-/archive/v$(PKG_VERSION)/
 PKG_HASH:=6f949d0b8080adca8bae088774ce615b563ba6ec2807cce97ee6769b4eee7bbf
+PKG_FLAGS:=nonshared
 
 PKG_MAINTAINER:=Marek Behun <kabel at kernel.org>
 PKG_LICENSE:=GPL-2.0-or-later



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:47 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:47 -0500
Subject: [openwrt/openwrt]  kernel: usb: kmod-usb-audio: Fix dependency
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8050.1732821043.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/67269ae51ecd7abfdc761ec9a802092965babe1e

commit 67269ae51ecd7abfdc761ec9a802092965babe1e
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sun Nov 24 14:57:19 2024 +0100

    kernel: usb: kmod-usb-audio: Fix dependency
    
    Change the dependency on the kmod-media-controller from depends to
    select.
    
    Fixes: 109592524663 ("kernel: add kmod-media-controller dependency for kmod-usb-audio")
    Link: https://github.com/openwrt/openwrt/pull/17058
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit b7dd70a0d708b7f8fe9f5c95d09013245e3dcb6b)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/kernel/linux/modules/usb.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/kernel/linux/modules/usb.mk b/package/kernel/linux/modules/usb.mk
index 466c547e8a..734df050cd 100644
--- a/package/kernel/linux/modules/usb.mk
+++ b/package/kernel/linux/modules/usb.mk
@@ -576,7 +576,7 @@ define KernelPackage/usb-audio
 	CONFIG_SND_USB_AUDIO
   $(call AddDepends/usb)
   $(call AddDepends/sound)
-  DEPENDS+=kmod-media-controller
+  DEPENDS+=+kmod-media-controller
   FILES:= \
 	$(LINUX_DIR)/sound/usb/snd-usbmidi-lib.ko \
 	$(LINUX_DIR)/sound/usb/snd-usb-audio.ko



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:08 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:08 -0500
Subject: [openwrt/openwrt]  mpc85xx: p1020: add missing symbols
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8051.1732821045.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/b17413117d54b9989422aafff7dbcaa398f00172

commit b17413117d54b9989422aafff7dbcaa398f00172
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Thu Oct 17 16:09:17 2024 -0700

    mpc85xx: p1020: add missing symbols
    
    Since kernel_oldconfig doesn't work properly with it, I ran that first
    and then moved all the config symbols to config-6.6 and found the
    differences.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16847
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit bec8edb6d61eb74e8d7578749560cbb5040f307a)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/mpc85xx/p1020/config-default | 29 +++++++++++++++++++++++++----
 1 file changed, 25 insertions(+), 4 deletions(-)

diff --git a/target/linux/mpc85xx/p1020/config-default b/target/linux/mpc85xx/p1020/config-default
index 66710a9ace..6169791007 100644
--- a/target/linux/mpc85xx/p1020/config-default
+++ b/target/linux/mpc85xx/p1020/config-default
@@ -1,24 +1,31 @@
-CONFIG_ARCH_HAS_TICK_BROADCAST=y
 CONFIG_AT803X_PHY=y
 CONFIG_B53=y
 CONFIG_B53_MDIO_DRIVER=y
 CONFIG_BCM_NET_PHYLIB=y
 CONFIG_BROADCOM_PHY=y
 CONFIG_CMDLINE_OVERRIDE=y
+CONFIG_CONTEXT_TRACKING=y
+CONFIG_CONTEXT_TRACKING_IDLE=y
 CONFIG_CPU_RMAP=y
+CONFIG_CRC16=y
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_ZSTD=y
+CONFIG_DEFAULT_UIMAGE=y
 CONFIG_EEPROM_LEGACY=y
-# CONFIG_FSL_CORENET_CF is not set
 CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
 CONFIG_GENERIC_TBSYNC=y
 CONFIG_GPIO_74X164=y
 # CONFIG_GPIO_MAX77620 is not set
 CONFIG_GRO_CELLS=y
-CONFIG_HAVE_RCU_TABLE_FREE=y
 CONFIG_HIVEAP_330=y
 CONFIG_I2C_CHARDEV=y
 CONFIG_LEDS_LP5521=y
 CONFIG_LEDS_LP55XX_COMMON=y
 CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
 # CONFIG_MAX77620_THERMAL is not set
 # CONFIG_MAX77620_WATCHDOG is not set
 CONFIG_MFD_CORE=y
@@ -46,16 +53,30 @@ CONFIG_NET_SWITCHDEV=y
 CONFIG_NR_CPUS=2
 CONFIG_PADATA=y
 CONFIG_PANDA=y
+CONFIG_PHYLINK=y
+CONFIG_PPC_ZIMAGE_LA3000000=y
+CONFIG_QCOM_NET_PHYLIB=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
 CONFIG_REGMAP_IRQ=y
 CONFIG_REGULATOR=y
 CONFIG_RFS_ACCEL=y
 CONFIG_RPS=y
-# CONFIG_RTC_DRV_MAX77686 is not set
 CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_SGL_ALLOC=y
 CONFIG_SMP=y
+CONFIG_SOCK_RX_QUEUE_MAPPING=y
+CONFIG_SPI_BITBANG=y
 CONFIG_SPI_GPIO=y
 CONFIG_TREE_RCU=y
+CONFIG_TREE_SRCU=y
 CONFIG_UBIFS_FS=y
 CONFIG_WS_AP3710I=y
 CONFIG_WS_AP3825I=y
 CONFIG_XPS=y
+CONFIG_XXHASH=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZSTD_COMMON=y
+CONFIG_ZSTD_COMPRESS=y
+CONFIG_ZSTD_DECOMPRESS=y



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:39 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:39 -0500
Subject: [openwrt/openwrt]  uboot-envtools: add support for GatoNetworks GDSP
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8052.1732821053.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/7d9fc260a1e56299a17eb23f1ba0ccda13fb445d

commit 7d9fc260a1e56299a17eb23f1ba0ccda13fb445d
Author: Enrico Mioso <mrkiko.rs at gmail.com>
AuthorDate: Sat Nov 9 22:14:32 2024 +0100

    uboot-envtools: add support for GatoNetworks GDSP
    
    This configuration should work with both stock and OpenWrt-based U-Boot.
    
    Signed-off-by: Enrico Mioso <mrkiko.rs at gmail.com>
    (cherry picked from commit 785ebf2baff4adadf818d71a99fdb2d2300590ba)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/boot/uboot-envtools/files/mediatek_filogic | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/package/boot/uboot-envtools/files/mediatek_filogic b/package/boot/uboot-envtools/files/mediatek_filogic
index a38024de65..9de1a4d75d 100644
--- a/package/boot/uboot-envtools/files/mediatek_filogic
+++ b/package/boot/uboot-envtools/files/mediatek_filogic
@@ -86,6 +86,9 @@ zbtlink,zbt-z8103ax)
 dlink,aquila-pro-ai-m30-a1)
 	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x40000" "0x40000"
 	;;
+gatonetworks,gdsp)
+	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x10000"
+	;;
 glinet,gl-x3000|\
 glinet,gl-xe3000|\
 glinet,gl-mt2500|\



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:22 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:22 -0500
Subject: [openwrt/openwrt]  kernel: package industrialio-hw-consumer driver
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8055.1732821056.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/956bb0c2a49e3178542ca5e917b0db55c9aff695

commit 956bb0c2a49e3178542ca5e917b0db55c9aff695
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Fri Oct 25 15:20:38 2024 +0200

    kernel: package industrialio-hw-consumer driver
    
    It is needed for the stm32/stm32mp1 subtarget.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit ff96bd84ce0bae633007cf0de82d69796cf3508a)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/kernel/linux/modules/iio.mk | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/package/kernel/linux/modules/iio.mk b/package/kernel/linux/modules/iio.mk
index e46544b79c..b9bcaad5b2 100644
--- a/package/kernel/linux/modules/iio.mk
+++ b/package/kernel/linux/modules/iio.mk
@@ -46,6 +46,23 @@ endef
 $(eval $(call KernelPackage,iio-kfifo-buf))
 
 
+define KernelPackage/industrialio-hw-consumer
+  TITLE:=Provides a bonding way to an other device in hardware
+  KCONFIG:=CONFIG_IIO_BUFFER_HW_CONSUMER
+  FILES:=$(LINUX_DIR)/drivers/iio/buffer/industrialio-hw-consumer.ko
+  AUTOLOAD:=$(call AutoLoad,55,industrialio-hw-consumer)
+  $(call AddDepends/iio,+kmod-iio-kfifo-buf)
+endef
+
+define KernelPackage/industrialio-hw-consumer/description
+ Provides a way to bonding when an IIO device has a direct connection
+ to another device in hardware. In this case buffers for data transfers
+ are handled by hardware.
+endef
+
+$(eval $(call KernelPackage,industrialio-hw-consumer))
+
+
 define KernelPackage/industrialio-triggered-buffer
   TITLE:=Provides helper functions for setting up triggered buffers.
   DEPENDS:=+kmod-iio-kfifo-buf



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:38 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:38 -0500
Subject: [openwrt/openwrt]  mediatek: split Acer/W6 dts into W6 common dtsi
 and device specific dts
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8056.1732821059.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/a07c241b81542ada0ebd7aaacafcd346a23593b8

commit a07c241b81542ada0ebd7aaacafcd346a23593b8
Author: George Oldfort <openwrt at 10099.de>
AuthorDate: Mon Nov 11 09:25:56 2024 +0100

    mediatek: split Acer/W6 dts into W6 common dtsi and device specific dts
    
    In order to prepare OpenWrt support for other Acer W6 devices, this commit
    moves all device tree components that are used by all Acer W6/W6e/W6d/W6m
    routers from mt7986a-acer-predator-w6.dts to mt7986a-acer-w6-common.dtsi
    (new file) and includes this dtsi file in mt7986a-acer-predator-w6.dts.
    
    Minor changes had to be made to the device tree in order to improve clarity
    and ? notably ? to reduce the number of dtc warnings:
    - replace (obviously wrong) led@<N> gpio led entities by led-<N>
    - remove unnecessary (default-state = "off") gpio led statements
    - rename entity ?memory? to ?memory at 0?
    - add missing #address-cells and #address-size in /soc/mmc at 11230000
    - add missing #address-cells and #address-size in /soc/pcie at 11280000
    - introduce symbols ?nvmem? and ?swport0? in dtsi (referenced in dts)
    
    The changes were checked with `diff -BEZbdtwy --suppress-common-lines ...`
    (comparing two dts files created using old and new fdt-1 blobs again), see
    https://github.com/openwrt/openwrt/pull/16861/#issuecomment-2455680020 .
    
    This is the first of four commits into which the original commit was split
    to make reviews easier and more targeted.
    
    Signed-off-by: George Oldfort <openwrt at 10099.de>
    Link: https://github.com/openwrt/openwrt/pull/16861
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit ce3b36b3d5374709b9b091390cb9053657be17fa)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../mediatek/dts/mt7986a-acer-predator-w6.dts      | 475 ++-------------------
 ...predator-w6.dts => mt7986a-acer-w6-common.dtsi} | 470 +++++++-------------
 2 files changed, 197 insertions(+), 748 deletions(-)

diff --git a/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts b/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts
index c27264a8d2..8c86fd31d8 100644
--- a/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts
+++ b/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts
@@ -1,11 +1,7 @@
-// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 
 /dts-v1/;
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/leds/common.h>
-
-#include "mt7986a.dtsi"
+#include "mt7986a-acer-w6-common.dtsi"
 
 / {
 	model = "Acer Predator W6";
@@ -19,531 +15,146 @@
 		led-upgrade = &led_status;
 	};
 
-	chosen {
-		stdout-path = "serial0:115200n8";
-		bootargs = "dm-mod.create=\"dm-verity,,,ro,0 31544 verity 1 PARTLABEL=rootfs PARTLABEL=rootfs 4096 4096 3943 3944 sha256 2f969fa9e9e4e20b37746f22633e85b178f5db7c143e11f92733a704299cc933 2dd56e34b15c6c84573cf26c4392028421061d2c808975217b45e9a5b49d2087\" rootfstype=squashfs,ext4 rootwait root=/dev/mmcblk0p6 fstools_ignore_partname=1";
-	};
-
-	memory {
-		reg = <0 0x40000000 0 0x20000000>;
-	};
-
-	reg_1p8v: regulator-1p8v {
-		compatible = "regulator-fixed";
-		regulator-name = "fixed-1.8V";
-		regulator-min-microvolt = <1800000>;
-		regulator-max-microvolt = <1800000>;
-		regulator-boot-on;
-		regulator-always-on;
-	};
-
-	reg_3p3v: regulator-3p3v {
-		compatible = "regulator-fixed";
-		regulator-name = "fixed-3.3V";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-		regulator-boot-on;
-		regulator-always-on;
-	};
-
-	reg_5v: regulator-5v {
-		compatible = "regulator-fixed";
-		regulator-name = "fixed-5V";
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-		regulator-boot-on;
-		regulator-always-on;
-	};
-
-	gpio-keys {
-		compatible = "gpio-keys";
-
-		factory {
-			label = "factory";
-			linux,code = <KEY_RESTART>;
-			gpios = <&pio 9 GPIO_ACTIVE_LOW>;
-		};
-
-		wps {
-			label = "wps";
-			linux,code = <KEY_WPS_BUTTON>;
-			gpios = <&pio 10 GPIO_ACTIVE_LOW>;
-		};
-	};
-
-
 	leds {
 		compatible = "gpio-leds";
 
-		led_status: led at 0 {
+		led_status: led-0 {
 			label = "ant0:red";
 			gpios = <&pio 1 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 1 {
+		led-1 {
 			label = "ant0:green";
 			gpios = <&pio 2 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 2 {
+		led-2 {
 			label = "ant0:blue";
 			gpios = <&pio 36 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 3 {
+		led-3 {
 			label = "ant1:red";
 			gpios = <&pio 35 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 4 {
+		led-4 {
 			label = "ant1:green";
 			gpios = <&pio 34 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 5 {
+		led-5 {
 			label = "ant1:blue";
 			gpios = <&pio 33 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 6 {
+		led-6 {
 			label = "ant2:red";
 			gpios = <&pio 38 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 7 {
+		led-7 {
 			label = "ant2:green";
 			gpios = <&pio 37 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 8 {
+		led-8 {
 			label = "ant2:blue";
 			gpios = <&pio 26 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 9 {
+		led-9 {
 			label = "ant3:red";
 			gpios = <&pio 25 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 10 {
+		led-10 {
 			label = "ant3:green";
 			gpios = <&pio 24 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 11 {
+		led-11 {
 			label = "ant3:blue";
 			gpios = <&pio 23 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 12 {
+		led-12 {
 			label = "ant4:red";
 			gpios = <&pio 28 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 13 {
+		led-13 {
 			label = "ant4:green";
 			gpios = <&pio 27 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 14 {
+		led-14 {
 			label = "ant4:blue";
 			gpios = <&pio 32 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 15 {
+		led-15 {
 			label = "ant5:red";
 			gpios = <&pio 45 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 16 {
+		led-16 {
 			label = "ant5:green";
 			gpios = <&pio 44 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 
-		led at 17 {
+		led-17 {
 			label = "ant5:blue";
 			gpios = <&pio 43 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
 		};
 	};
-
 };
 
-&eth {
+&ssusb {
+	vusb33-supply = <&reg_3p3v>;
+	vbus-supply = <&reg_5v>;
 	status = "okay";
+};
 
-	gmac0: mac at 0 {
-		/* LAN */
-		compatible = "mediatek,eth-mac";
-		reg = <0>;
-		phy-mode = "2500base-x";
+&nvmem {
+	eeprom_factory_a0000: eeprom at a0000 {
+		reg = <0xa0000 0x1000>;
+	};
+};
 
-		fixed-link {
-			speed = <2500>;
-			full-duplex;
-			pause;
-		};
+&slot0 {
+	radio0: mt7915 at 0,0 {
+		reg = <0x0000 0 0 0 0>;
+		nvmem-cells = <&eeprom_factory_a0000>;
+		nvmem-cell-names = "eeprom";
 	};
+};
 
+&usb_phy {
+	status = "okay";
+};
+
+&eth {
 	gmac1: mac at 1 {
-		/* WAN */
 		compatible = "mediatek,eth-mac";
 		reg = <1>;
 		phy-mode = "2500base-x";
 		phy-handle = <&phy6>;
 	};
-
-	mdio: mdio-bus {
-		#address-cells = <1>;
-		#size-cells = <0>;
-	};
 };
 
 &mdio {
 	phy6: phy at 6 {
 		compatible = "ethernet-phy-ieee802.3-c45";
 		reg = <6>;
-
 		reset-gpios = <&pio 6 GPIO_ACTIVE_LOW>;
 		reset-assert-us = <10000>;
 		reset-deassert-us = <10000>;
-
-		/* LED0: nc ; LED1: nc ; LED2: Amber ; LED3: Green */
+		/* LED0: nc ; LED1: nc ; LED2: amber ; LED3: green */
 		mxl,led-config = <0x0 0x0 0x370 0x80>;
 	};
-
-	switch: switch at 1f {
-		compatible = "mediatek,mt7531";
-		reg = <31>;
-
-		reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
-		reset-assert-us = <10000>;
-		reset-deassert-us = <10000>;
-	};
-};
-
-&pio {
-	mmc0_pins_default: mmc0-pins {
-		mux {
-			function = "emmc";
-			groups = "emmc_51";
-		};
-		conf-cmd-dat {
-			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
-			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
-			       "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
-			input-enable;
-			drive-strength = <4>;
-			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
-		};
-		conf-clk {
-			pins = "EMMC_CK";
-			drive-strength = <6>;
-			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
-		};
-		conf-ds {
-			pins = "EMMC_DSL";
-			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
-		};
-		conf-rst {
-			pins = "EMMC_RSTB";
-			drive-strength = <4>;
-			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
-		};
-	};
-
-	mmc0_pins_uhs: mmc0-uhs-pins {
-		mux {
-			function = "emmc";
-			groups = "emmc_51";
-		};
-		conf-cmd-dat {
-			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
-			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
-			       "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
-			input-enable;
-			drive-strength = <4>;
-			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
-		};
-		conf-clk {
-			pins = "EMMC_CK";
-			drive-strength = <6>;
-			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
-		};
-		conf-ds {
-			pins = "EMMC_DSL";
-			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
-		};
-		conf-rst {
-			pins = "EMMC_RSTB";
-			drive-strength = <4>;
-			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
-		};
-	};
-
-	pcie_pins: pcie-pins {
-		mux {
-			function = "pcie";
-			groups = "pcie_pereset";
-		};
-	};
-
-	wf_2g_5g_pins: wf_2g_5g-pins {
-		mux {
-			function = "wifi";
-			groups = "wf_2g", "wf_5g";
-		};
-		conf {
-			pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
-			       "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
-			       "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
-			       "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
-			       "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
-			       "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
-			       "WF1_TOP_CLK", "WF1_TOP_DATA";
-			drive-strength = <4>;
-		};
-	};
-
-	wf_dbdc_pins: wf-dbdc-pins {
-		mux {
-			function = "wifi";
-			groups = "wf_dbdc";
-		};
-		conf {
-			pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
-				"WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
-				"WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
-				"WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
-				"WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
-				"WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
-				"WF1_TOP_CLK", "WF1_TOP_DATA";
-			drive-strength = <4>;
-		};
-	};
 };
 
-&switch {
-	ports {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		port at 0 {
-			reg = <0>;
-			label = "game";
-			phy-handle = <&swphy0>;
-		};
-
-		port at 1 {
-			reg = <1>;
-			label = "lan1";
-			phy-handle = <&swphy1>;
-		};
-
-		port at 2 {
-			reg = <2>;
-			label = "lan2";
-			phy-handle = <&swphy2>;
-		};
-
-		port at 3 {
-			reg = <3>;
-			label = "lan3";
-			phy-handle = <&swphy3>;
-		};
-
-		port at 6 {
-			reg = <6>;
-			label = "cpu";
-			ethernet = <&gmac0>;
-			phy-mode = "2500base-x";
-
-			fixed-link {
-				speed = <2500>;
-				full-duplex;
-				pause;
-			};
-		};
-	};
-
-	mdio {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		swphy0: phy at 0 {
-			reg = <0>;
-
-			mediatek,led-config = <
-				0x21 0x8009 /* BASIC_CTRL */
-				0x22 0x0c00 /* ON_DURATION */
-				0x23 0x1400 /* BLINK_DURATION */
-				0x24 0xc001 /* LED0_ON_CTRL */
-				0x25 0x0000 /* LED0_BLINK_CTRL */
-				0x26 0xc007 /* LED1_ON_CTRL */
-				0x27 0x003f /* LED1_BLINK_CTRL */
-			>;
-		};
-
-		swphy1: phy at 1 {
-			reg = <1>;
-
-			mediatek,led-config = <
-				0x21 0x8009 /* BASIC_CTRL */
-				0x22 0x0c00 /* ON_DURATION */
-				0x23 0x1400 /* BLINK_DURATION */
-				0x24 0xc001 /* LED0_ON_CTRL */
-				0x25 0x0000 /* LED0_BLINK_CTRL */
-				0x26 0xc007 /* LED1_ON_CTRL */
-				0x27 0x003f /* LED1_BLINK_CTRL */
-			>;
-		};
-
-		swphy2: phy at 2 {
-			reg = <2>;
-
-			mediatek,led-config = <
-				0x21 0x8009 /* BASIC_CTRL */
-				0x22 0x0c00 /* ON_DURATION */
-				0x23 0x1400 /* BLINK_DURATION */
-				0x24 0xc001 /* LED0_ON_CTRL */
-				0x25 0x0000 /* LED0_BLINK_CTRL */
-				0x26 0xc007 /* LED1_ON_CTRL */
-				0x27 0x003f /* LED1_BLINK_CTRL */
-			>;
-		};
-
-		swphy3: phy at 3 {
-			reg = <3>;
-
-			mediatek,led-config = <
-				0x21 0x8009 /* BASIC_CTRL */
-				0x22 0x0c00 /* ON_DURATION */
-				0x23 0x1400 /* BLINK_DURATION */
-				0x24 0xc001 /* LED0_ON_CTRL */
-				0x25 0x0000 /* LED0_BLINK_CTRL */
-				0x26 0xc007 /* LED1_ON_CTRL */
-				0x27 0x003f /* LED1_BLINK_CTRL */
-			>;
-		};
-	};
-};
-
-&wifi {
-	nvmem-cells = <&eeprom_factory_0>;
-	nvmem-cell-names = "eeprom";
-	pinctrl-names = "default", "dbdc";
-	pinctrl-0 = <&wf_2g_5g_pins>;
-	pinctrl-1 = <&wf_dbdc_pins>;
-	status = "okay";
-};
-
-&trng {
-	status = "okay";
-};
-
-&watchdog {
-	status = "okay";
-};
-
-&crypto {
-	status = "okay";
-};
-
-&uart0 {
-	status = "okay";
-};
-
-&ssusb {
-	vusb33-supply = <&reg_3p3v>;
-	vbus-supply = <&reg_5v>;
-	status = "okay";
-};
-
-&usb_phy {
-	status = "okay";
-};
-
-&mmc0 {
-	status = "okay";
-	pinctrl-names = "default", "state_uhs";
-	pinctrl-0 = <&mmc0_pins_default>;
-	pinctrl-1 = <&mmc0_pins_uhs>;
-	bus-width = <0x08>;
-	max-frequency = <200000000>;
-	cap-mmc-highspeed;
-	mmc-hs200-1_8v;
-	mmc-hs400-1_8v;
-	hs400-ds-delay = <0x14014>;
-	vmmc-supply = <&reg_3p3v>;
-	vqmmc-supply = <&reg_1p8v>;
-	non-removable;
-	no-sd;
-	no-sdio;
-
-	card at 0 {
-		compatible = "mmc-card";
-		reg = <0>;
-
-		block {
-			compatible = "block-device";
-
-			partitions {
-				block-partition-factory {
-					partname = "factory";
-
-					nvmem-layout {
-						compatible = "fixed-layout";
-						#address-cells = <1>;
-						#size-cells = <1>;
-
-						eeprom_factory_0: eeprom at 0 {
-							reg = <0x0 0x1000>;
-						};
-
-						eeprom_factory_a0000: eeprom at a0000 {
-							reg = <0xa0000 0x1000>;
-						};
-					};
-				};
-			};
-		};
-	};
-};
-
-&pcie {
-	pinctrl-names = "default";
-	pinctrl-0 = <&pcie_pins>;
-	status = "okay";
-
-	slot0: pcie at 0,0 {
-		reg = <0x0000 0 0 0 0>;
-
-		radio0: mt7915 at 0,0 {
-			reg = <0x0000 0 0 0 0>;
-
-			nvmem-cells = <&eeprom_factory_a0000>;
-			nvmem-cell-names = "eeprom";
-		};
-	};
-};
-
-&pcie_phy {
-	status = "okay";
+&swport0 {
+	label = "game";
 };
diff --git a/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts b/target/linux/mediatek/dts/mt7986a-acer-w6-common.dtsi
similarity index 51%
copy from target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts
copy to target/linux/mediatek/dts/mt7986a-acer-w6-common.dtsi
index c27264a8d2..cca03684fb 100644
--- a/target/linux/mediatek/dts/mt7986a-acer-predator-w6.dts
+++ b/target/linux/mediatek/dts/mt7986a-acer-w6-common.dtsi
@@ -1,6 +1,5 @@
-// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 
-/dts-v1/;
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/leds/common.h>
@@ -8,23 +7,12 @@
 #include "mt7986a.dtsi"
 
 / {
-	model = "Acer Predator W6";
-	compatible = "acer,predator-w6", "mediatek,mt7986a";
-
-	aliases {
-		serial0 = &uart0;
-		led-boot = &led_status;
-		led-failsafe = &led_status;
-		led-running = &led_status;
-		led-upgrade = &led_status;
-	};
-
 	chosen {
 		stdout-path = "serial0:115200n8";
 		bootargs = "dm-mod.create=\"dm-verity,,,ro,0 31544 verity 1 PARTLABEL=rootfs PARTLABEL=rootfs 4096 4096 3943 3944 sha256 2f969fa9e9e4e20b37746f22633e85b178f5db7c143e11f92733a704299cc933 2dd56e34b15c6c84573cf26c4392028421061d2c808975217b45e9a5b49d2087\" rootfstype=squashfs,ext4 rootwait root=/dev/mmcblk0p6 fstools_ignore_partname=1";
 	};
 
-	memory {
+	memory at 0 {
 		reg = <0 0x40000000 0 0x20000000>;
 	};
 
@@ -70,173 +58,10 @@
 			gpios = <&pio 10 GPIO_ACTIVE_LOW>;
 		};
 	};
-
-
-	leds {
-		compatible = "gpio-leds";
-
-		led_status: led at 0 {
-			label = "ant0:red";
-			gpios = <&pio 1 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 1 {
-			label = "ant0:green";
-			gpios = <&pio 2 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 2 {
-			label = "ant0:blue";
-			gpios = <&pio 36 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 3 {
-			label = "ant1:red";
-			gpios = <&pio 35 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 4 {
-			label = "ant1:green";
-			gpios = <&pio 34 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 5 {
-			label = "ant1:blue";
-			gpios = <&pio 33 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 6 {
-			label = "ant2:red";
-			gpios = <&pio 38 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 7 {
-			label = "ant2:green";
-			gpios = <&pio 37 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 8 {
-			label = "ant2:blue";
-			gpios = <&pio 26 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 9 {
-			label = "ant3:red";
-			gpios = <&pio 25 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 10 {
-			label = "ant3:green";
-			gpios = <&pio 24 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 11 {
-			label = "ant3:blue";
-			gpios = <&pio 23 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 12 {
-			label = "ant4:red";
-			gpios = <&pio 28 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 13 {
-			label = "ant4:green";
-			gpios = <&pio 27 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 14 {
-			label = "ant4:blue";
-			gpios = <&pio 32 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 15 {
-			label = "ant5:red";
-			gpios = <&pio 45 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 16 {
-			label = "ant5:green";
-			gpios = <&pio 44 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led at 17 {
-			label = "ant5:blue";
-			gpios = <&pio 43 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-	};
-
 };
 
-&eth {
+&watchdog {
 	status = "okay";
-
-	gmac0: mac at 0 {
-		/* LAN */
-		compatible = "mediatek,eth-mac";
-		reg = <0>;
-		phy-mode = "2500base-x";
-
-		fixed-link {
-			speed = <2500>;
-			full-duplex;
-			pause;
-		};
-	};
-
-	gmac1: mac at 1 {
-		/* WAN */
-		compatible = "mediatek,eth-mac";
-		reg = <1>;
-		phy-mode = "2500base-x";
-		phy-handle = <&phy6>;
-	};
-
-	mdio: mdio-bus {
-		#address-cells = <1>;
-		#size-cells = <0>;
-	};
-};
-
-&mdio {
-	phy6: phy at 6 {
-		compatible = "ethernet-phy-ieee802.3-c45";
-		reg = <6>;
-
-		reset-gpios = <&pio 6 GPIO_ACTIVE_LOW>;
-		reset-assert-us = <10000>;
-		reset-deassert-us = <10000>;
-
-		/* LED0: nc ; LED1: nc ; LED2: Amber ; LED3: Green */
-		mxl,led-config = <0x0 0x0 0x370 0x80>;
-	};
-
-	switch: switch at 1f {
-		compatible = "mediatek,mt7531";
-		reg = <31>;
-
-		reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
-		reset-assert-us = <10000>;
-		reset-deassert-us = <10000>;
-	};
 };
 
 &pio {
@@ -245,6 +70,7 @@
 			function = "emmc";
 			groups = "emmc_51";
 		};
+
 		conf-cmd-dat {
 			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
 			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
@@ -253,15 +79,18 @@
 			drive-strength = <4>;
 			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
 		};
+
 		conf-clk {
 			pins = "EMMC_CK";
 			drive-strength = <6>;
 			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
 		};
+
 		conf-ds {
 			pins = "EMMC_DSL";
 			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
 		};
+
 		conf-rst {
 			pins = "EMMC_RSTB";
 			drive-strength = <4>;
@@ -274,6 +103,7 @@
 			function = "emmc";
 			groups = "emmc_51";
 		};
+
 		conf-cmd-dat {
 			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
 			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
@@ -282,15 +112,18 @@
 			drive-strength = <4>;
 			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
 		};
+
 		conf-clk {
 			pins = "EMMC_CK";
 			drive-strength = <6>;
 			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
 		};
+
 		conf-ds {
 			pins = "EMMC_DSL";
 			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
 		};
+
 		conf-rst {
 			pins = "EMMC_RSTB";
 			drive-strength = <4>;
@@ -340,128 +173,10 @@
 	};
 };
 
-&switch {
-	ports {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		port at 0 {
-			reg = <0>;
-			label = "game";
-			phy-handle = <&swphy0>;
-		};
-
-		port at 1 {
-			reg = <1>;
-			label = "lan1";
-			phy-handle = <&swphy1>;
-		};
-
-		port at 2 {
-			reg = <2>;
-			label = "lan2";
-			phy-handle = <&swphy2>;
-		};
-
-		port at 3 {
-			reg = <3>;
-			label = "lan3";
-			phy-handle = <&swphy3>;
-		};
-
-		port at 6 {
-			reg = <6>;
-			label = "cpu";
-			ethernet = <&gmac0>;
-			phy-mode = "2500base-x";
-
-			fixed-link {
-				speed = <2500>;
-				full-duplex;
-				pause;
-			};
-		};
-	};
-
-	mdio {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		swphy0: phy at 0 {
-			reg = <0>;
-
-			mediatek,led-config = <
-				0x21 0x8009 /* BASIC_CTRL */
-				0x22 0x0c00 /* ON_DURATION */
-				0x23 0x1400 /* BLINK_DURATION */
-				0x24 0xc001 /* LED0_ON_CTRL */
-				0x25 0x0000 /* LED0_BLINK_CTRL */
-				0x26 0xc007 /* LED1_ON_CTRL */
-				0x27 0x003f /* LED1_BLINK_CTRL */
-			>;
-		};
-
-		swphy1: phy at 1 {
-			reg = <1>;
-
-			mediatek,led-config = <
-				0x21 0x8009 /* BASIC_CTRL */
-				0x22 0x0c00 /* ON_DURATION */
-				0x23 0x1400 /* BLINK_DURATION */
-				0x24 0xc001 /* LED0_ON_CTRL */
-				0x25 0x0000 /* LED0_BLINK_CTRL */
-				0x26 0xc007 /* LED1_ON_CTRL */
-				0x27 0x003f /* LED1_BLINK_CTRL */
-			>;
-		};
-
-		swphy2: phy at 2 {
-			reg = <2>;
-
-			mediatek,led-config = <
-				0x21 0x8009 /* BASIC_CTRL */
-				0x22 0x0c00 /* ON_DURATION */
-				0x23 0x1400 /* BLINK_DURATION */
-				0x24 0xc001 /* LED0_ON_CTRL */
-				0x25 0x0000 /* LED0_BLINK_CTRL */
-				0x26 0xc007 /* LED1_ON_CTRL */
-				0x27 0x003f /* LED1_BLINK_CTRL */
-			>;
-		};
-
-		swphy3: phy at 3 {
-			reg = <3>;
-
-			mediatek,led-config = <
-				0x21 0x8009 /* BASIC_CTRL */
-				0x22 0x0c00 /* ON_DURATION */
-				0x23 0x1400 /* BLINK_DURATION */
-				0x24 0xc001 /* LED0_ON_CTRL */
-				0x25 0x0000 /* LED0_BLINK_CTRL */
-				0x26 0xc007 /* LED1_ON_CTRL */
-				0x27 0x003f /* LED1_BLINK_CTRL */
-			>;
-		};
-	};
-};
-
-&wifi {
-	nvmem-cells = <&eeprom_factory_0>;
-	nvmem-cell-names = "eeprom";
-	pinctrl-names = "default", "dbdc";
-	pinctrl-0 = <&wf_2g_5g_pins>;
-	pinctrl-1 = <&wf_dbdc_pins>;
-	status = "okay";
-};
-
 &trng {
 	status = "okay";
 };
 
-&watchdog {
-	status = "okay";
-};
-
 &crypto {
 	status = "okay";
 };
@@ -470,16 +185,6 @@
 	status = "okay";
 };
 
-&ssusb {
-	vusb33-supply = <&reg_3p3v>;
-	vbus-supply = <&reg_5v>;
-	status = "okay";
-};
-
-&usb_phy {
-	status = "okay";
-};
-
 &mmc0 {
 	status = "okay";
 	pinctrl-names = "default", "state_uhs";
@@ -496,6 +201,8 @@
 	non-removable;
 	no-sd;
 	no-sdio;
+	#address-cells = <1>;
+	#size-cells = <0>;
 
 	card at 0 {
 		compatible = "mmc-card";
@@ -508,7 +215,7 @@
 				block-partition-factory {
 					partname = "factory";
 
-					nvmem-layout {
+					nvmem: nvmem-layout {
 						compatible = "fixed-layout";
 						#address-cells = <1>;
 						#size-cells = <1>;
@@ -516,10 +223,6 @@
 						eeprom_factory_0: eeprom at 0 {
 							reg = <0x0 0x1000>;
 						};
-
-						eeprom_factory_a0000: eeprom at a0000 {
-							reg = <0xa0000 0x1000>;
-						};
 					};
 				};
 			};
@@ -534,16 +237,151 @@
 
 	slot0: pcie at 0,0 {
 		reg = <0x0000 0 0 0 0>;
+		#address-cells = <0x03>; 
+		#size-cells = <0x02>;
+	};
+};
+
+&pcie_phy {
+	status = "okay";
+};
+
+&eth {
+	status = "okay";
+
+	gmac0: mac at 0 {
+		compatible = "mediatek,eth-mac";
+		reg = <0>;
+		phy-mode = "2500base-x";
+
+		fixed-link {
+			speed = <2500>;
+			full-duplex;
+			pause;
+		};
+	};
+
+	mdio: mdio-bus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		switch: switch at 1f {
+			compatible = "mediatek,mt7531";
+			reg = <31>;
+			reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
+			reset-assert-us = <10000>;
+			reset-deassert-us = <10000>;
+
+			ports {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				swport0: port at 0 {
+					reg = <0>;
+					phy-handle = <&swphy0>;
+				};
+
+				port at 1 {
+					reg = <1>;
+					label = "lan1";
+					phy-handle = <&swphy1>;
+				};
 
-		radio0: mt7915 at 0,0 {
-			reg = <0x0000 0 0 0 0>;
+				port at 2 {
+					reg = <2>;
+					label = "lan2";
+					phy-handle = <&swphy2>;
+				};
+
+				port at 3 {
+					reg = <3>;
+					label = "lan3";
+					phy-handle = <&swphy3>;
+				};
+
+				port at 6 {
+					reg = <6>;
+					label = "cpu";
+					ethernet = <&gmac0>;
+					phy-mode = "2500base-x";
+
+					fixed-link {
+						speed = <2500>;
+						full-duplex;
+						pause;
+					};
+				};
+			};
+
+			mdio {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				swphy0: phy at 0 {
+					reg = <0>;
+
+					mediatek,led-config = <
+						0x21 0x8009 /* BASIC_CTRL */
+						0x22 0x0c00 /* ON_DURATION */
+						0x23 0x1400 /* BLINK_DURATION */
+						0x24 0xc001 /* LED0_ON_CTRL */
+						0x25 0x0000 /* LED0_BLINK_CTRL */
+						0x26 0xc007 /* LED1_ON_CTRL */
+						0x27 0x003f /* LED1_BLINK_CTRL */
+					>;
+				};
+
+				swphy1: phy at 1 {
+					reg = <1>;
+
+					mediatek,led-config = <
+						0x21 0x8009 /* BASIC_CTRL */
+						0x22 0x0c00 /* ON_DURATION */
+						0x23 0x1400 /* BLINK_DURATION */
+						0x24 0xc001 /* LED0_ON_CTRL */
+						0x25 0x0000 /* LED0_BLINK_CTRL */
+						0x26 0xc007 /* LED1_ON_CTRL */
+						0x27 0x003f /* LED1_BLINK_CTRL */
+					>;
+				};
 
-			nvmem-cells = <&eeprom_factory_a0000>;
-			nvmem-cell-names = "eeprom";
+				swphy2: phy at 2 {
+					reg = <2>;
+
+					mediatek,led-config = <
+						0x21 0x8009 /* BASIC_CTRL */
+						0x22 0x0c00 /* ON_DURATION */
+						0x23 0x1400 /* BLINK_DURATION */
+						0x24 0xc001 /* LED0_ON_CTRL */
+						0x25 0x0000 /* LED0_BLINK_CTRL */
+						0x26 0xc007 /* LED1_ON_CTRL */
+						0x27 0x003f /* LED1_BLINK_CTRL */
+					>;
+				};
+
+				swphy3: phy at 3 {
+					reg = <3>;
+
+					mediatek,led-config = <
+						0x21 0x8009 /* BASIC_CTRL */
+						0x22 0x0c00 /* ON_DURATION */
+						0x23 0x1400 /* BLINK_DURATION */
+						0x24 0xc001 /* LED0_ON_CTRL */
+						0x25 0x0000 /* LED0_BLINK_CTRL */
+						0x26 0xc007 /* LED1_ON_CTRL */
+						0x27 0x003f /* LED1_BLINK_CTRL */
+					>;
+				};
+			};
 		};
 	};
 };
 
-&pcie_phy {
+&wifi {
+	nvmem-cells = <&eeprom_factory_0>;
+	nvmem-cell-names = "eeprom";
+	pinctrl-names = "default", "dbdc";
+	pinctrl-0 = <&wf_2g_5g_pins>;
+	pinctrl-1 = <&wf_dbdc_pins>;
 	status = "okay";
 };



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:38 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:38 -0500
Subject: [openwrt/openwrt]  uboot-mediatek: add support for GatoNetworks GDSP
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8059.1732821062.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/2226546e1c07ca442ccd89bb0dad54776c216d89

commit 2226546e1c07ca442ccd89bb0dad54776c216d89
Author: Enrico Mioso <mrkiko.rs at gmail.com>
AuthorDate: Sat Nov 9 22:14:31 2024 +0100

    uboot-mediatek: add support for GatoNetworks GDSP
    
    The GatoNetworks GDSP is a re-branded version of the R5000 5G Industrial
    router from Yinghua Technologies.
    
    Advantages over stock bootloader:
    1. supports serving the external GPIO WDT, allowing for easier work in U-Boot
       shell
    2. supports cool features like netconsole, easy recovery, scripting and so on
    3. allows using FIT image and image integrity validation
    
    and ultimately gives you much more flexibility to implement your tweaks.
    
    Known issues
    ------------
    To make it easier to operate the device, console I/O multiplexing support has
    been enabled in U-Boot configuration. Setting I/O related U-Boot environment
    variables to something like "serial,nc" will have the desired effect. Still,
    setting these variables to such a value in the persistent environment will
    lead to a crash and make it impossible to boot the system or recover it. I
    decided to leave it on anyway since I think it can be very practical in
    development.
    
    Signed-off-by: Enrico Mioso <mrkiko.rs at gmail.com>
    (cherry picked from commit 7f2c7b3238ee26180d44528ae98fd2f54e874511)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/boot/uboot-mediatek/Makefile               |  14 +
 ...-initialized-the-watchdog-subsystem-later.patch |  54 +++
 .../patches/458-add-GatoNetworks-GDSP.patch        | 406 +++++++++++++++++++++
 3 files changed, 474 insertions(+)

diff --git a/package/boot/uboot-mediatek/Makefile b/package/boot/uboot-mediatek/Makefile
index 3485765368..d2a03277d4 100644
--- a/package/boot/uboot-mediatek/Makefile
+++ b/package/boot/uboot-mediatek/Makefile
@@ -364,6 +364,19 @@ define U-Boot/mt7981_rfb-emmc
   DEPENDS:=+trusted-firmware-a-mt7981-emmc-ddr3
 endef
 
+define U-Boot/mt7981_gatonetworks_gdsp
+  NAME:=GatoNetworks GDSP
+  BUILD_SUBTARGET:=filogic
+  BUILD_DEVICES:=gatonetworks_gdsp
+  UBOOT_CONFIG:=mt7981_gatonetworks_gdsp
+  UBOOT_IMAGE:=u-boot.fip
+  BL2_BOOTDEV:=nor
+  BL2_SOC:=mt7981
+  BL2_DDRTYPE:=ddr3
+  DEPENDS:=+trusted-firmware-a-mt7981-nor-ddr3
+  FIP_COMPRESS:=1
+endef
+
 define U-Boot/mt7981_rfb-nor
   NAME:=MT7981 Reference Board
   BUILD_SUBTARGET:=filogic
@@ -797,6 +810,7 @@ UBOOT_TARGETS := \
 	mt7981_abt_asr3000 \
 	mt7981_cmcc_rax3000m-emmc \
 	mt7981_cmcc_rax3000m-nand \
+	mt7981_gatonetworks_gdsp \
 	mt7981_glinet_gl-x3000 \
 	mt7981_glinet_gl-xe3000 \
 	mt7981_h3c_magic-nx30-pro \
diff --git a/package/boot/uboot-mediatek/patches/457-initialized-the-watchdog-subsystem-later.patch b/package/boot/uboot-mediatek/patches/457-initialized-the-watchdog-subsystem-later.patch
new file mode 100644
index 0000000000..7919b36560
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/457-initialized-the-watchdog-subsystem-later.patch
@@ -0,0 +1,54 @@
+From 9c1ad8a18ac1a20aee7a617964bcae3e90dac700 Mon Sep 17 00:00:00 2001
+From: Enrico Mioso <mrkiko.rs at gmail.com>
+Date: Wed, 23 Oct 2024 17:46:35 +0200
+Subject: [PATCH] uboot-mediatek: initialized the watchdog subsystem later
+
+Initialize the watchdog subsystem later during initialization, to allow for
+the gpio-wdt driver to work.
+
+Signed-off-by: Enrico Mioso <mrkiko.rs at gmail.com>
+---
+ common/board_r.c | 11 ++++-------
+ 1 file changed, 4 insertions(+), 7 deletions(-)
+
+--- a/common/board_r.c
++++ b/common/board_r.c
+@@ -663,19 +663,13 @@ static init_fnc_t init_sequence_r[] = {
+ 	serial_initialize,
+ 	initr_announce,
+ 	dm_announce,
+-#if CONFIG_IS_ENABLED(WDT)
+-	initr_watchdog,
+-#endif
+-	INIT_FUNC_WATCHDOG_RESET
+ 	arch_initr_trap,
+ #if defined(CONFIG_BOARD_EARLY_INIT_R)
+ 	board_early_init_r,
+ #endif
+-	INIT_FUNC_WATCHDOG_RESET
+ #ifdef CONFIG_POST
+ 	post_output_backlog,
+ #endif
+-	INIT_FUNC_WATCHDOG_RESET
+ #if defined(CONFIG_PCI_INIT_R) && defined(CONFIG_SYS_EARLY_PCI_INIT)
+ 	/*
+ 	 * Do early PCI configuration _before_ the flash gets initialised,
+@@ -690,7 +684,6 @@ static init_fnc_t init_sequence_r[] = {
+ #ifdef CONFIG_MTD_NOR_FLASH
+ 	initr_flash,
+ #endif
+-	INIT_FUNC_WATCHDOG_RESET
+ #if defined(CONFIG_PPC) || defined(CONFIG_M68K) || defined(CONFIG_X86)
+ 	/* initialize higher level parts of CPU like time base and timers */
+ 	cpu_init_r,
+@@ -719,6 +712,10 @@ static init_fnc_t init_sequence_r[] = {
+ #ifdef CONFIG_PVBLOCK
+ 	initr_pvblock,
+ #endif
++#if CONFIG_IS_ENABLED(WDT)
++	initr_watchdog,
++#endif
++	INIT_FUNC_WATCHDOG_RESET
+ 	initr_env,
+ #ifdef CONFIG_SYS_MALLOC_BOOTPARAMS
+ 	initr_malloc_bootparams,
diff --git a/package/boot/uboot-mediatek/patches/458-add-GatoNetworks-GDSP.patch b/package/boot/uboot-mediatek/patches/458-add-GatoNetworks-GDSP.patch
new file mode 100644
index 0000000000..28bdd95e15
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/458-add-GatoNetworks-GDSP.patch
@@ -0,0 +1,406 @@
+From 57d0f608d925cb688b5c9b71512fca7d228f07f6 Mon Sep 17 00:00:00 2001
+From: Enrico Mioso <mrkiko.rs at gmail.com>
+Date: Wed, 23 Oct 2024 20:39:28 +0200
+Subject: [PATCH] add GatoNetworks GDSP
+
+Signed-off-by: Enrico Mioso <mrkiko.rs at gmail.com>
+---
+ arch/arm/dts/mt7981-gatonetworks_gdsp.dts  | 200 +++++++++++++++++++++
+ configs/mt7981_gatonetworks_gdsp_defconfig | 144 +++++++++++++++
+ gatonetworks_gdsp_env                      |  38 ++++
+ 3 files changed, 382 insertions(+)
+ create mode 100644 arch/arm/dts/mt7981-gatonetworks_gdsp.dts
+ create mode 100644 configs/mt7981_gatonetworks_gdsp_defconfig
+ create mode 100644 gatonetworks_gdsp_env
+
+--- /dev/null
++++ b/arch/arm/dts/mt7981-gatonetworks_gdsp.dts
+@@ -0,0 +1,200 @@
++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
++
++/dts-v1/;
++#include "mt7981.dtsi"
++#include <dt-bindings/gpio/gpio.h>
++#include <dt-bindings/input/linux-event-codes.h>
++
++/ {
++	#address-cells = <1>;
++	#size-cells = <1>;
++	model = "GatoNetworks GDSP";
++	compatible = "gatonetworks,gdsp", "mediatek,mt7981";
++  chosen {
++		stdout-path = &uart0;
++		tick-timer = &timer0;
++  };
++
++	memory {
++		device_type = "memory";
++		reg = <0x40000000 0x10000000>;
++	};
++
++	keys {
++		compatible = "gpio-keys";
++
++		reset {
++			label = "reset";
++			linux,code = <KEY_RESTART>;
++			gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
++		};
++	};
++
++	leds {
++		compatible = "gpio-leds";
++
++		sim1 {
++			label = "sim1";
++			gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
++		};
++
++		sim2 {
++			label = "sim2";
++			gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
++		};
++
++		sg1 {
++			label = "sg1";
++			gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
++		};
++
++		sg2 {
++			label = "sg2";
++			gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
++		};
++
++		sg3 {
++			label = "sg3";
++			gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
++		};
++
++		sg4 {
++			label = "sg4";
++			gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
++		};
++
++		sg5 {
++			label = "sg5";
++			gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
++		};
++
++		sg6 {
++			label = "sg6";
++			gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
++		};
++	};
++	gpio-watchdog {
++		compatible = "linux,wdt-gpio";
++		gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
++		hw_algo = "toggle";
++		hw_margin_ms = <25000>;
++		always-running;
++		u-boot,autostart;
++	};
++};
++
++&eth {
++	status = "okay";
++	mediatek,gmac-id = <0>;
++	phy-mode = "2500base-x";
++	mediatek,switch = "mt7531";
++	reset-gpios = <&gpio 39 GPIO_ACTIVE_HIGH>;
++
++	fixed-link {
++		speed = <2500>;
++		full-duplex;
++	};
++};
++
++&spi2 {
++	pinctrl-names = "default";
++	pinctrl-0 = <&spi2_flash_pins>;
++	status = "okay";
++	must_tx;
++	enhance_timing;
++	dma_ext;
++	ipm_design;
++	support_quad;
++	tick_dly = <2>;
++	sample_sel = <0>;
++
++	flash at 0 {
++		compatible = "jedec,spi-nor";
++		reg = <0>;
++		spi-max-frequency = <52000000>;
++
++		partitions {
++			compatible = "fixed-partitions";
++			#address-cells = <1>;
++			#size-cells = <1>;
++
++			partition at 00000 {
++				label = "BL2";
++				reg = <0x00000 0x0040000>;
++				read-only;
++			};
++
++			partition at 40000 {
++				label = "u-boot-env";
++				reg = <0x40000 0x0010000>;
++			};
++
++			partition at 50000 {
++				label = "Factory";
++				reg = <0x50000 0x00B0000>;
++				read-only;
++			};
++
++			partition at 100000 {
++				label = "FIP";
++				reg = <0x100000 0x0080000>;
++			};
++
++			partition at 180000 {
++				label = "firmware";
++				reg = <0x180000 0x1E80000>;
++			};
++		};
++	};
++};
++
++&pinctrl {
++	uart1_pins: uart1-pins {
++		mux {
++			function = "uart";
++			groups = "uart1_0";
++		};
++	};
++
++	uart2_pins: uart2-pins {
++		mux {
++			function = "uart";
++			groups = "uart2_0_tx_rx";
++		};
++	};
++
++	spi2_flash_pins: spi2-pins {
++		mux {
++			function = "spi";
++			groups = "spi2", "spi2_wp_hold";
++		};
++
++		conf-pu {
++			pins = "SPI2_CS", "SPI2_HOLD", "SPI2_WP";
++			drive-strength = <MTK_DRIVE_8mA>;
++			bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
++		};
++
++		conf-pd {
++			pins = "SPI2_CLK", "SPI2_MOSI", "SPI2_MISO";
++			drive-strength = <MTK_DRIVE_8mA>;
++			bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
++		};
++	};
++};
++
++&uart0 {
++	status = "okay";
++};
++
++&uart1 {
++	pinctrl-names = "default";
++	pinctrl-0 = <&uart1_pins>;
++	status = "okay";
++};
++
++&uart2 {
++	pinctrl-names = "default";
++	pinctrl-0 = <&uart2_pins>;
++	status = "okay";
++};
+--- /dev/null
++++ b/configs/mt7981_gatonetworks_gdsp_defconfig
+@@ -0,0 +1,144 @@
++CONFIG_ARM=y
++CONFIG_SYS_HAS_NONCACHED_MEMORY=y
++CONFIG_POSITION_INDEPENDENT=y
++CONFIG_ARCH_MEDIATEK=y
++CONFIG_TEXT_BASE=0x41e00000
++CONFIG_SYS_MALLOC_F_LEN=0x4000
++CONFIG_NR_DRAM_BANKS=1
++CONFIG_ENV_SIZE=0x10000
++CONFIG_ENV_OFFSET=0x0
++CONFIG_DEFAULT_DEVICE_TREE="mt7981-gatonetworks_gdsp"
++CONFIG_OF_LIBFDT_OVERLAY=y
++CONFIG_TARGET_MT7981=y
++CONFIG_WATCHDOG_TIMEOUT_MSECS=25000
++CONFIG_DEBUG_UART_BASE=0x11002000
++CONFIG_DEBUG_UART_CLOCK=40000000
++CONFIG_SYS_LOAD_ADDR=0x46000000
++CONFIG_DEBUG_UART=y
++CONFIG_FIT=y
++CONFIG_SPI_BOOT=y
++CONFIG_AUTOBOOT_MENU_SHOW=y
++CONFIG_USE_PREBOOT=y
++CONFIG_DEFAULT_FDT_FILE="mt7981-gatonetworks_gdsp"
++CONFIG_SYS_CBSIZE=512
++CONFIG_SYS_PBSIZE=1049
++CONFIG_LOGLEVEL=7
++CONFIG_CONSOLE_MUX=y
++CONFIG_LOG=y
++CONFIG_BOARD_LATE_INIT=y
++CONFIG_HUSH_PARSER=y
++CONFIG_SYS_PROMPT="GDSP> "
++CONFIG_SYS_MAXARGS=16
++CONFIG_CMD_BDINFO_EXTRA=y
++CONFIG_CMD_CPU=y
++CONFIG_CMD_HISTORY=y
++CONFIG_CMD_LICENSE=y
++# CONFIG_BOOTM_NETBSD is not set
++# CONFIG_BOOTM_PLAN9 is not set
++# CONFIG_BOOTM_RTEMS is not set
++# CONFIG_BOOTM_VXWORKS is not set
++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set
++CONFIG_CMD_BOOTMENU=y
++CONFIG_CMD_ASKENV=y
++CONFIG_CMD_ERASEENV=y
++CONFIG_CMD_ENV_CALLBACK=y
++CONFIG_CMD_ENV_FLAGS=y
++CONFIG_CRC32_VERIFY=y
++CONFIG_LOOPW=y
++CONFIG_CMD_MEMINFO=y
++CONFIG_CMD_MEMTEST=y
++CONFIG_CMD_STRINGS=y
++# CONFIG_CMD_UNLZ4 is not set
++# CONFIG_CMD_UNZIP is not set
++CONFIG_CMD_DM=y
++CONFIG_CMD_GPIO=y
++CONFIG_CMD_GPIO_READ=y
++CONFIG_CMD_PWM=y
++CONFIG_CMD_MTD=y
++# CONFIG_CMD_NAND_EXT is not set
++CONFIG_CMD_SF_TEST=y
++CONFIG_CMD_CAT=y
++CONFIG_CMD_SETEXPR_FMT=y
++CONFIG_CMD_XXD=y
++CONFIG_CMD_DHCP=y
++CONFIG_CMD_TFTPPUT=y
++CONFIG_CMD_TFTPSRV=y
++CONFIG_CMD_RARP=y
++CONFIG_CMD_PING=y
++CONFIG_CMD_CDP=y
++CONFIG_CMD_SNTP=y
++CONFIG_CMD_DNS=y
++CONFIG_CMD_LINK_LOCAL=y
++CONFIG_CMD_PXE=y
++CONFIG_CMD_CACHE=y
++# CONFIG_CMD_EFICONFIG is not set
++CONFIG_CMD_PSTORE=y
++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
++CONFIG_CMD_UUID=y
++CONFIG_CMD_HASH=y
++CONFIG_CMD_SMC=y
++CONFIG_CMD_FAT=y
++CONFIG_CMD_FS_GENERIC=y
++CONFIG_CMD_FS_UUID=y
++CONFIG_ENV_OVERWRITE=y
++CONFIG_ENV_IS_IN_MTD=y
++CONFIG_ENV_MTD_NAME="u-boot-env"
++CONFIG_ENV_SIZE_REDUND=0x0
++CONFIG_SYS_RELOC_GD_ENV_ADDR=y
++CONFIG_USE_DEFAULT_ENV_FILE=y
++CONFIG_DEFAULT_ENV_FILE="gatonetworks_gdsp_env"
++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
++CONFIG_VERSION_VARIABLE=y
++CONFIG_NET_RANDOM_ETHADDR=y
++CONFIG_NETCONSOLE=y
++CONFIG_REGMAP=y
++CONFIG_SYSCON=y
++CONFIG_BUTTON=y
++CONFIG_BUTTON_GPIO=y
++CONFIG_CLK=y
++CONFIG_GPIO_HOG=y
++CONFIG_LED=y
++CONFIG_LED_BLINK=y
++CONFIG_LED_GPIO=y
++# CONFIG_MMC is not set
++CONFIG_MTD=y
++CONFIG_DM_MTD=y
++CONFIG_MTD_SPI_NAND=y
++CONFIG_DM_SPI_FLASH=y
++CONFIG_SPI_FLASH_SFDP_SUPPORT=y
++CONFIG_SPI_FLASH_EON=y
++CONFIG_SPI_FLASH_GIGADEVICE=y
++CONFIG_SPI_FLASH_ISSI=y
++CONFIG_SPI_FLASH_MACRONIX=y
++CONFIG_SPI_FLASH_SPANSION=y
++CONFIG_SPI_FLASH_STMICRO=y
++CONFIG_SPI_FLASH_WINBOND=y
++CONFIG_SPI_FLASH_XMC=y
++CONFIG_SPI_FLASH_XTX=y
++CONFIG_SPI_FLASH_MTD=y
++CONFIG_UBI_SILENCE_MSG=y
++CONFIG_PHY_FIXED=y
++CONFIG_MEDIATEK_ETH=y
++CONFIG_PHY=y
++CONFIG_PHY_MTK_TPHY=y
++CONFIG_PINCTRL=y
++CONFIG_PINCONF=y
++CONFIG_PINCTRL_MT7981=y
++CONFIG_POWER_DOMAIN=y
++CONFIG_MTK_POWER_DOMAIN=y
++CONFIG_DM_PWM=y
++CONFIG_PWM_MTK=y
++CONFIG_DM_SERIAL=y
++CONFIG_MTK_SERIAL=y
++CONFIG_SPI=y
++CONFIG_DM_SPI=y
++CONFIG_MTK_SPIM=y
++CONFIG_USB=y
++CONFIG_USB_XHCI_HCD=y
++CONFIG_USB_XHCI_MTK=y
++CONFIG_USB_STORAGE=y
++CONFIG_WDT=y
++CONFIG_WDT_GPIO=y
++CONFIG_UBIFS_SILENCE_MSG=y
++CONFIG_HEXDUMP=y
++CONFIG_LMB_MAX_REGIONS=64
+--- /dev/null
++++ b/gatonetworks_gdsp_env
+@@ -0,0 +1,38 @@
++load_factory_data=if env exists factory_data_present ; then else mtd read Factory $loadaddr 0x0 0x1000 ; setenv factory_data_present 1 ; fi
++lan_mac_factory=run load_factory_data ; setexpr macoffs $loadaddr + 0x2a ; env readmem -b lan_mac $macoffs 0x6 ; setenv lan_mac_factory ; setenv macoffs
++wan_mac_factory=run load_factory_data ; setexpr macoffs $loadaddr + 0x24 ; env readmem -b wan_mac $macoffs 0x6 ; setenv wan_mac_factory ; setenv macoffs
++label_mac_factory=run load_factory_data ; setexpr macoffs $loadaddr + 0x4 ; env readmem -b label_mac $macoffs 0x6 ; setenv label_mac_factory ; setenv macoffs
++ethaddr_factory=setenv ethaddr $lan_mac ; setenv ethaddr_factory
++wifi_mac_factory=setenv wifi_mac $label_mac ; setenv wifi_mac_factory
++env_cleanup=setenv load_factory_data ; setenv factory_data_present ; setenv env_cleanup
++ipaddr=192.168.1.1
++serverip=192.168.1.10
++loadaddr=0x46000000
++bootcmd=run boot_nor
++bootdelay=0
++bootfile=openwrt-mediatek-filogic-gatonetworks_gdsp-initramfs-kernel.bin
++bootfile_upg=openwrt-mediatek-filogic-gatonetworks_gdsp-squashfs-sysupgrade.bin
++bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
++bootmenu_default=0
++bootmenu_delay=0
++bootmenu_title=      [0;34m( ( ( [1;39mOpenWrt[0;34m ) ) )[0m
++bootmenu_0=Initialize environment.=run _firstboot
++bootmenu_0d=Run default boot command.=run boot_default
++bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return
++bootmenu_2=Boot system from flash.=run boot_nor ; run bootmenu_confirm_return
++bootmenu_3=Load system via TFTP then write to flash.=run boot_tftp_sysupgrade ; run bootmenu_confirm_return
++bootmenu_4=Reset all settings to factory defaults.=run reset_factory ; reset
++bootmenu_5=Reboot.=reset
++boot_first=if button reset ; then run boot_tftp ; setenv flag_recover 1 ; run boot_default ; fi ; bootmenu
++boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_tftp_forever
++boot_nor=mtd read firmware ${loadaddr} ; bootm $loadaddr
++boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr
++boot_tftp_forever=while true ; do run boot_tftp ; sleep 1 ; done
++boot_tftp_sysupgrade=tftpboot $loadaddr $bootfile_upg && iminfo $loadaddr && run nor_write_production
++reset_factory=env default -a && saveenv && reset
++nor_pad_size=setexpr image_eb $filesize / 0x1000 ; setexpr tmp1 image_size % 0x1000 ; test 0x$tmp1 -gt 0 && setexpr image_eb $image_eb + 1 ; setexpr image_eb $image_eb * 0x1000
++nor_write_production=run nor_pad_size ; test 0x$image_eb -le 0x1e80000 && mtd erase firmware 0x0 0x$image_eb && mtd write firmware $loadaddr 0x0 $filesize
++_init_env=setenv _init_env ; saveenv
++_firstboot=setenv _firstboot ; run _switch_to_menu ; run lan_mac_factory ; run wan_mac_factory ; run label_mac_factory ; run env_cleanup ; run ethaddr_factory ; run wifi_mac_factory ; run _init_env ; run boot_first
++_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
++_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title       [33m$ver[0m"



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:33 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:33 -0500
Subject: [openwrt/openwrt]  mvebu: devm for mutex_init
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8060.1732821064.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/1b513604c3bdc4663ab6cb8ea8f850d967c94f7b

commit 1b513604c3bdc4663ab6cb8ea8f850d967c94f7b
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Fri Oct 18 19:19:50 2024 -0700

    mvebu: devm for mutex_init
    
    It's common to avoid calling mutex_destroy when done. It's not correct
    strictly speaking.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16753
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 6280b4abfbc087157bc233083a67a42bffa31010)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 ...-drivers-mfd-Add-a-driver-for-IEI-WT61P803-PUZZLE-MCU.patch | 10 +++++++---
 ...-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch |  6 ++++--
 .../910-drivers-leds-wt61p803-puzzle-improvements.patch        |  6 ++++--
 3 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/target/linux/mvebu/patches-6.6/902-drivers-mfd-Add-a-driver-for-IEI-WT61P803-PUZZLE-MCU.patch b/target/linux/mvebu/patches-6.6/902-drivers-mfd-Add-a-driver-for-IEI-WT61P803-PUZZLE-MCU.patch
index 1046b15e4b..2aac515eb1 100644
--- a/target/linux/mvebu/patches-6.6/902-drivers-mfd-Add-a-driver-for-IEI-WT61P803-PUZZLE-MCU.patch
+++ b/target/linux/mvebu/patches-6.6/902-drivers-mfd-Add-a-driver-for-IEI-WT61P803-PUZZLE-MCU.patch
@@ -54,7 +54,7 @@ Cc: Robert Marko <robert.marko at sartura.hr>
  obj-$(CONFIG_INTEL_SOC_PMIC_BXTWC)	+= intel_soc_pmic_bxtwc.o
 --- /dev/null
 +++ b/drivers/mfd/iei-wt61p803-puzzle.c
-@@ -0,0 +1,908 @@
+@@ -0,0 +1,912 @@
 +// SPDX-License-Identifier: GPL-2.0-only
 +/* IEI WT61P803 PUZZLE MCU Driver
 + * System management microcontroller for fan control, temperature sensor reading,
@@ -894,8 +894,12 @@ Cc: Robert Marko <robert.marko at sartura.hr>
 +	mcu->serdev = serdev;
 +	mcu->dev = dev;
 +	init_completion(&mcu->reply->received);
-+	mutex_init(&mcu->reply_lock);
-+	mutex_init(&mcu->lock);
++	ret = devm_mutex_init(dev, &mcu->reply_lock);
++	if (ret)
++		return ret;
++	ret = devm_mutex_init(dev, &mcu->lock);
++	if (ret)
++		return ret;
 +
 +	/* Setup UART interface */
 +	serdev_device_set_drvdata(serdev, mcu);
diff --git a/target/linux/mvebu/patches-6.6/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch b/target/linux/mvebu/patches-6.6/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch
index 983434e666..eca2bb81e4 100644
--- a/target/linux/mvebu/patches-6.6/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch
+++ b/target/linux/mvebu/patches-6.6/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch
@@ -53,7 +53,7 @@ Cc: Robert Marko <robert.marko at sartura.hr>
  obj-$(CONFIG_SENSORS_IBMPOWERNV)+= ibmpowernv.o
 --- /dev/null
 +++ b/drivers/hwmon/iei-wt61p803-puzzle-hwmon.c
-@@ -0,0 +1,445 @@
+@@ -0,0 +1,447 @@
 +// SPDX-License-Identifier: GPL-2.0-only
 +/* IEI WT61P803 PUZZLE MCU HWMON Driver
 + *
@@ -457,7 +457,9 @@ Cc: Robert Marko <robert.marko at sartura.hr>
 +
 +	mcu_hwmon->mcu = mcu;
 +	platform_set_drvdata(pdev, mcu_hwmon);
-+	mutex_init(&mcu_hwmon->lock);
++	ret = devm_mutex_init(dev, &mcu_hwmon->lock);
++	if (ret)
++		return ret;
 +
 +	hwmon_dev = devm_hwmon_device_register_with_info(dev, "iei_wt61p803_puzzle",
 +							 mcu_hwmon,
diff --git a/target/linux/mvebu/patches-6.6/910-drivers-leds-wt61p803-puzzle-improvements.patch b/target/linux/mvebu/patches-6.6/910-drivers-leds-wt61p803-puzzle-improvements.patch
index 150a65498c..8de403773a 100644
--- a/target/linux/mvebu/patches-6.6/910-drivers-leds-wt61p803-puzzle-improvements.patch
+++ b/target/linux/mvebu/patches-6.6/910-drivers-leds-wt61p803-puzzle-improvements.patch
@@ -47,7 +47,7 @@
  
  	ret = iei_wt61p803_puzzle_write_command(priv->mcu, led_power_cmd,
  						sizeof(led_power_cmd),
-@@ -90,39 +106,166 @@ static enum led_brightness iei_wt61p803_
+@@ -90,39 +106,168 @@ static enum led_brightness iei_wt61p803_
  	return led_state;
  }
  
@@ -194,7 +194,9 @@
 +			goto put_child_node;
 +		}
 +
-+		mutex_init(&priv->lock);
++		ret = devm_mutex_init(dev, &priv->lock);
++		if (ret)
++			goto put_child_node;
 +
 +		dev_set_drvdata(dev, priv);
 +



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:45 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:45 -0500
Subject: [openwrt/openwrt]  CI: labeler: Add stm32 target
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8061.1732821078.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/888e879d7ffdad46998a1f7570f8c3b642a94eac

commit 888e879d7ffdad46998a1f7570f8c3b642a94eac
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sun Nov 24 14:52:22 2024 +0100

    CI: labeler: Add stm32 target
    
    Add a label for changes in the stm32 target.
    
    Fixes: 851e7f77e424 ("stm32: add new stm32 target")
    Link: https://github.com/openwrt/openwrt/pull/17058
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit eb7aa07a0e23e931579de07e0dbdec735b8e35b2)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .github/labeler.yml | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/.github/labeler.yml b/.github/labeler.yml
index ede4bb5a02..129357df2b 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -180,6 +180,13 @@
 - changed-files:
   - any-glob-to-any-file:
     - "target/linux/starfive/**"
+"target/stm32":
+- changed-files:
+  - any-glob-to-any-file:
+    - "target/linux/stm32/**"
+    - "package/boot/arm-trusted-firmware-stm32/**"
+    - "package/boot/optee-os-stm32/**"
+    - "package/boot/uboot-stm32/**"
 "target/sunxi":
 - changed-files:
   - any-glob-to-any-file:



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:46 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:46 -0500
Subject: [openwrt/openwrt]  ppp: remove more unnecessary kernel checks
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8064.1732821080.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/be082a7c7e9b1edf60346752e8dc9935905b7dda

commit be082a7c7e9b1edf60346752e8dc9935905b7dda
Author: Shiji Yang <yangshiji66 at qq.com>
AuthorDate: Sun Oct 13 21:15:59 2024 +0800

    ppp: remove more unnecessary kernel checks
    
    The ppp package can support all features since Linux 4.7.0 kernel.
    Therefore, most kernel version checks can pass unconditionally on
    OpenWrt v18.06 and later version. This patch can reduce the size
    of ppp package by approximately 2.5 KB.
    
    Signed-off-by: Shiji Yang <yangshiji66 at qq.com>
    Link: https://github.com/openwrt/openwrt/pull/16695
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
    (cherry picked from commit 3dbe730080e70e96990a5e89cbe2035adcca8d4b)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../ppp/patches/400-simplify_kernel_checks.patch   | 100 +++++++++++----------
 1 file changed, 53 insertions(+), 47 deletions(-)

diff --git a/package/network/services/ppp/patches/400-simplify_kernel_checks.patch b/package/network/services/ppp/patches/400-simplify_kernel_checks.patch
index 137937c244..311bb8752f 100644
--- a/package/network/services/ppp/patches/400-simplify_kernel_checks.patch
+++ b/package/network/services/ppp/patches/400-simplify_kernel_checks.patch
@@ -10,7 +10,14 @@ Signed-off-by: Jo-Philipp Wich <jo at mein.io>
 
 --- a/pppd/sys-linux.c
 +++ b/pppd/sys-linux.c
-@@ -231,7 +231,7 @@ static int driver_is_old       = 0;
+@@ -224,14 +224,10 @@ static fd_set in_fds;		/* set of fds tha
+ static int max_in_fd;		/* highest fd set in in_fds */
+ 
+ static int has_proxy_arp       = 0;
+-static int driver_version      = 0;
+-static int driver_modification = 0;
+-static int driver_patch        = 0;
+-static int driver_is_old       = 0;
  static int restore_term        = 0;	/* 1 => we've munged the terminal */
  static struct termios inittermios;	/* Initial TTY termios */
  
@@ -19,17 +26,18 @@ Signed-off-by: Jo-Philipp Wich <jo at mein.io>
  
  static char loop_name[20];
  static unsigned char inbuf[512]; /* buffer for chars read from loopback */
-@@ -250,8 +250,8 @@ static int	looped;			/* 1 if using loop
+@@ -249,9 +245,8 @@ static int	dynaddr_set;		/* 1 if ip_dyna
+ static int	looped;			/* 1 if using loop */
  static int	link_mtu;		/* mtu for the link (not bundle) */
  
- static struct utsname utsname;	/* for the kernel version */
+-static struct utsname utsname;	/* for the kernel version */
 -static int kernel_version;
  #define KVERSION(j,n,p)	((j)*1000000 + (n)*1000 + (p))
-+static const int kernel_version = KVERSION(2,6,37);
++static const int kernel_version = KVERSION(4,9,0);
  
  #define MAX_IFS		100
  
-@@ -1970,11 +1970,12 @@ int ccp_fatal_error (int unit)
+@@ -1970,11 +1965,12 @@ int ccp_fatal_error (int unit)
   *
   * path_to_procfs - find the path to the proc file system mount point
   */
@@ -44,7 +52,7 @@ Signed-off-by: Jo-Philipp Wich <jo at mein.io>
      struct mntent *mntent;
      FILE *fp;
  
-@@ -1996,6 +1997,7 @@ static char *path_to_procfs(const char *
+@@ -1996,6 +1992,7 @@ static char *path_to_procfs(const char *
  	    fclose (fp);
  	}
      }
@@ -52,35 +60,24 @@ Signed-off-by: Jo-Philipp Wich <jo at mein.io>
  
      strlcpy(proc_path + proc_path_len, tail,
  	    sizeof(proc_path) - proc_path_len);
-@@ -2895,15 +2897,19 @@ int ppp_check_kernel_support(void)
-     int    my_version, my_modification, my_patch;
-     int osmaj, osmin, ospatch;
+@@ -2889,6 +2886,8 @@ ppp_registered(void)
  
+ int ppp_check_kernel_support(void)
+ {
++    return 1; /* OpenWrt support ppp device "/dev/ppp" by default */
 +#if 0
-     /* get the kernel version now, since we are called before sys_init */
-     uname(&utsname);
-     osmaj = osmin = ospatch = 0;
-     sscanf(utsname.release, "%d.%d.%d", &osmaj, &osmin, &ospatch);
-     kernel_version = KVERSION(osmaj, osmin, ospatch);
-+#endif
- 
-     fd = open("/dev/ppp", O_RDWR);
-     if (fd >= 0) {
-+#if 0
- 	new_style_driver = 1;
+     int s, ok, fd;
+     struct ifreq ifr;
+     int    size;
+@@ -3016,6 +3015,7 @@ int ppp_check_kernel_support(void)
+     }
+     close(s);
+     return ok;
 +#endif
+ }
  
- 	/* XXX should get from driver */
- 	driver_version = 2;
-@@ -2963,6 +2969,7 @@ int ppp_check_kernel_support(void)
- 
-     if (ok && ((ifr.ifr_hwaddr.sa_family & ~0xFF) != ARPHRD_PPP))
- 	ok = 0;
-+	return ok;
- 
- /*
-  *  This is the PPP device. Validate the version of the driver at this
-@@ -3577,6 +3584,7 @@ get_pty(int *master_fdp, int *slave_fdp,
+ #ifndef HAVE_LOGWTMP
+@@ -3577,6 +3577,7 @@ get_pty(int *master_fdp, int *slave_fdp,
      }
  #endif /* TIOCGPTN */
  
@@ -88,7 +85,7 @@ Signed-off-by: Jo-Philipp Wich <jo at mein.io>
      if (sfd < 0) {
  	/* the old way - scan through the pty name space */
  	for (i = 0; i < 64; ++i) {
-@@ -3601,6 +3609,7 @@ get_pty(int *master_fdp, int *slave_fdp,
+@@ -3601,6 +3602,7 @@ get_pty(int *master_fdp, int *slave_fdp,
  	    }
  	}
      }
@@ -96,23 +93,35 @@ Signed-off-by: Jo-Philipp Wich <jo at mein.io>
  
      if (sfd < 0)
  	return 0;
+@@ -3716,6 +3718,7 @@ get_host_seed(void)
+ int
+ sys_check_options(void)
+ {
++#if 0
+     if (demand && driver_is_old) {
+ 	ppp_option_error("demand dialling is not supported by kernel driver "
+ 		     "version %d.%d.%d", driver_version, driver_modification,
+@@ -3726,6 +3729,7 @@ sys_check_options(void)
+ 	warn("Warning: multilink is not supported by the kernel driver");
+ 	multilink = 0;
+     }
++#endif
+     return 1;
+ }
+ 
 --- a/pppd/plugins/pppoatm/pppoatm.c
 +++ b/pppd/plugins/pppoatm/pppoatm.c
-@@ -179,14 +179,6 @@ static void disconnect_pppoatm(void)
- 
+@@ -180,10 +180,6 @@ static void disconnect_pppoatm(void)
  void plugin_init(void)
  {
--#ifdef linux
+ #ifdef linux
 -	extern int new_style_driver;	/* From sys-linux.c */
 -	if (!ppp_check_kernel_support() && !new_style_driver)
 -		fatal("Kernel doesn't support ppp_generic - "
 -		    "needed for PPPoATM");
--#else
--	fatal("No PPPoATM support on this OS");
--#endif
- 	ppp_add_options(pppoa_options);
- }
- 
+ #else
+ 	fatal("No PPPoATM support on this OS");
+ #endif
 --- a/pppd/plugins/pppoe/plugin.c
 +++ b/pppd/plugins/pppoe/plugin.c
 @@ -57,9 +57,6 @@ static char const RCSID[] =
@@ -138,17 +147,14 @@ Signed-off-by: Jo-Philipp Wich <jo at mein.io>
      info("PPPoE plugin from pppd %s", PPPD_VERSION);
 --- a/pppd/plugins/pppol2tp/pppol2tp.c
 +++ b/pppd/plugins/pppol2tp/pppol2tp.c
-@@ -500,12 +500,7 @@ static void pppol2tp_cleanup(void)
- 
+@@ -501,10 +501,6 @@ static void pppol2tp_cleanup(void)
  void plugin_init(void)
  {
--#if defined(__linux__)
+ #if defined(__linux__)
 -	extern int new_style_driver;	/* From sys-linux.c */
 -	if (!ppp_check_kernel_support() && !new_style_driver)
 -		fatal("Kernel doesn't support ppp_generic - "
 -		    "needed for PPPoL2TP");
--#else
-+#if !defined(__linux__)
+ #else
  	fatal("No PPPoL2TP support on this OS");
  #endif
- 	ppp_add_options(pppol2tp_options);



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:54 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:54 -0500
Subject: [openwrt/openwrt]  gdb: Fix description for apk, remove backtick
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8065.1732821088.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/7eec852c060cdef0d7d287596ac95799a954430e

commit 7eec852c060cdef0d7d287596ac95799a954430e
Author: Hannu Nyman <hannu.nyman at iki.fi>
AuthorDate: Sun Nov 10 17:16:51 2024 +0200

    gdb: Fix description for apk, remove backtick
    
    Remove backtick from gdb description text, as that seems to
    be recognized as a shell action by compilation with apk,
    causing error.
    
    Example from test buildbot:
     rstrip.sh: /builder/shared-workdir/build/sdk/build_dir/target-aarch64_generic_musl/gdb-15.2/ipkg-aarch64_generic/gdb/usr/bin/gdb: executable
     bash: -c: line 1: unexpected EOF while looking for matching ``'
     bash: -c: line 2: syntax error: unexpected end of file
     make[3]: *** [Makefile:123: /builder/shared-workdir/build/sdk/bin/packages/aarch64_generic/base/gdb-15.2-r1.apk] Error 2
    
    Local compilation:
     rstrip.sh: /OpenWrt/aarch64/build_dir/target-aarch64_cortex-a53_musl/gdb-15.2/ipkg-aarch64_cortex-a53/gdb/usr/bin/gdb: executable
     bash: -c: line 1: unexpected EOF while looking for matching ``'
     make[2]: *** [Makefile:123: /OpenWrt/aarch64/bin/packages/aarch64_cortex-a53/base/gdb-15.2-r1.apk] Error 2
    
    Signed-off-by: Hannu Nyman <hannu.nyman at iki.fi>
    Link: https://github.com/openwrt/openwrt/pull/16908
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit adb921c34ff220951a699665bb35dc0e3538b3b2)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/devel/gdb/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package/devel/gdb/Makefile b/package/devel/gdb/Makefile
index 366746be87..7bdc6c83cb 100644
--- a/package/devel/gdb/Makefile
+++ b/package/devel/gdb/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gdb
 PKG_VERSION:=15.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNU/gdb
@@ -37,7 +37,7 @@ $(call Package/gdb/Default)
 endef
 
 define Package/gdb/description
-GDB, the GNU Project debugger, allows you to see what is going on `inside'
+GDB, the GNU Project debugger, allows you to see what is going on 'inside'
 another program while it executes -- or what another program was doing at the
 moment it crashed.
 endef



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:48 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:48 -0500
Subject: [openwrt/openwrt]  libreadlne: create symlinks for .so
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8066.1732821091.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/994a95584aeb7b5168306eaac6d62dcae4784106

commit 994a95584aeb7b5168306eaac6d62dcae4784106
Author: Jeronimo Pellegrini <j_p at aleph0.info>
AuthorDate: Sat Sep 21 15:46:36 2024 -0300

    libreadlne: create symlinks for .so
    
    Currently, libreadline only installs
    
    ```
     /usr/lib/libhistory.so.8 -> libhistory.so.8.2
     /usr/lib/libhistory.so.8.2
     /usr/lib/libreadline.so.8 -> libreadline.so.8.2
     /usr/lib/libreadline.so.8.2
    ```
    
    But there is no `libreadline.so` or `libhistory.so` available.
    
    So this happens:
    
    ```
    root at OpenWRT:~# cat a.c
    int main() {
    }
    root at OpenWRT:~# gcc a.c -lreadline
    /usr/bin/ld: cannot find -lreadline: No such file or directory
    collect2: error: ld returned 1 exit status
    ```
    
    Unless, of course, one uses `-l:libreadline.so.8`... But that
    doesn't help with binaries that try to dynamically open
    
    `libreadline.so`. I have one of those here (the STklos Scheme
    compiler -- I didn't make a PR for it because it's far from
    being ready, but one issue is that it does use dlopen to use
    readline...)
    
    With the symlink, it works:
    
    ```
    root at OpenWRT:~# ln -s /usr/lib/libreadline.so.8 /usr/lib/libreadline.so
    root at OpenWRT:~#
    root at OpenWRT:~# gcc a.c -lreadline
    root at OpenWRT:~#
    ```
    
    Another example: when trying to package rlwrap, the build failed
    complaining it could not find readline (using `-lreadline`).
    It would then be necessary to change rlwrap's `configure.ac`
    (and also in all packages that use readline), but it seems
    simpler to add the symlinks...
    
    This PR changes the Makefile so it will include the links.
    
    Signed-off-by: Jeronimo Pellegrini <j_p at aleph0.info>
    Link: https://github.com/openwrt/openwrt/pull/16445
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
    (cherry picked from commit 0000ba6ab8062f965d8fed240b76d36f9a493b55)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/libs/readline/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/libs/readline/Makefile b/package/libs/readline/Makefile
index 11b9e0172f..03e56f36ed 100644
--- a/package/libs/readline/Makefile
+++ b/package/libs/readline/Makefile
@@ -69,7 +69,7 @@ endef
 
 define Package/libreadline/install
 	$(INSTALL_DIR) $(1)/usr/lib
-	$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{history,readline}.so.* $(1)/usr/lib/
+	$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{history,readline}.so* $(1)/usr/lib/
 endef
 
 $(eval $(call HostBuild))



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:41 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:41 -0500
Subject: [openwrt/openwrt]  utils: Add the omnia-eeprom utility
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8067.1732821105.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/77af73050cd53d022a5a4a503f38ffa226a48384

commit 77af73050cd53d022a5a4a503f38ffa226a48384
Author: Marek Beh?n <kabel at kernel.org>
AuthorDate: Fri Nov 15 10:01:35 2024 +0100

    utils: Add the omnia-eeprom utility
    
    Add a new utility, `omnia-eeprom`, which can be used to print / set
    EEPROM fields on Turris Omnia.
    
    One example when this utility might be useful is if the board
    experiences random crashes due to newer versions of the DDR training
    algorithm in newer U-Boot. The user can change the DDR speed from 1600K
    to 1333H to solve these issues, with
    
      ```
      omnia-eeprom set ddr_speed 1333H
      ```
    
    Signed-off-by: Marek Beh?n <kabel at kernel.org>
    Link: https://github.com/openwrt/openwrt/pull/16264
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 749a43325b98afe4430fa7e2f23ac3ee44791ad6)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/utils/omnia-eeprom/Makefile  | 56 ++++++++++++++++++++++++++++++++++++
 target/linux/mvebu/image/cortexa9.mk |  3 +-
 2 files changed, 58 insertions(+), 1 deletion(-)

diff --git a/package/utils/omnia-eeprom/Makefile b/package/utils/omnia-eeprom/Makefile
new file mode 100644
index 0000000000..03eb13bbc1
--- /dev/null
+++ b/package/utils/omnia-eeprom/Makefile
@@ -0,0 +1,56 @@
+#
+# Copyright (C) 2024 Marek Beh?n <kabel at kernel.org>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=omnia-eeprom
+PKG_VERSION:=0.1
+PKG_RELEASE:=1
+
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-v$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=https://gitlab.nic.cz/turris/omnia-eeprom/-/archive/v$(PKG_VERSION)/
+PKG_HASH:=6f949d0b8080adca8bae088774ce615b563ba6ec2807cce97ee6769b4eee7bbf
+
+PKG_MAINTAINER:=Marek Behun <kabel at kernel.org>
+PKG_LICENSE:=GPL-2.0-or-later
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/omnia-eeprom
+  SECTION:=utils
+  CATEGORY:=Utilities
+  URL:=https://gitlab.nic.cz/turris/omnia-eeprom
+  TITLE:=CZ.NIC Turris Omnia EEPROM accessing utility
+  DEPENDS:=@TARGET_mvebu_cortexa9_DEVICE_cznic_turris-omnia +kmod-eeprom-at24
+endef
+
+define Package/omnia-eeprom/description
+This package contains the omnia-eeprom utility, which allows you to display
+and update EEPROM fields on the Turris Omnia router.
+The EEPROM is normally not meant to be updated by users, but there are some
+exceptions where it might be useful.
+One such example is to change the DDR3 speed from the default 1600K mode to
+1333H mode, in order to solve random crashes that occur on some boards with
+newer versions of the U-Boot bootloader (because of bugs in newer versions of
+the DDR training algorithm).
+endef
+
+MAKE_VARS += OMNIA_EEPROM_VERSION="v$(PKG_VERSION)"
+
+TARGET_CFLAGS += -Wall
+
+Build/Compile = $(Build/Compile/Default)
+
+define Package/omnia-eeprom/install
+	$(INSTALL_DIR) $(1)/usr/bin
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/omnia-eeprom $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,omnia-eeprom))
diff --git a/target/linux/mvebu/image/cortexa9.mk b/target/linux/mvebu/image/cortexa9.mk
index 6e49045f68..4a41f2c102 100644
--- a/target/linux/mvebu/image/cortexa9.mk
+++ b/target/linux/mvebu/image/cortexa9.mk
@@ -107,7 +107,8 @@ define Device/cznic_turris-omnia
     mkf2fs e2fsprogs kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 \
     wpad-basic-mbedtls kmod-ath9k kmod-ath10k-ct ath10k-firmware-qca988x-ct \
     kmod-mt7915-firmware partx-utils kmod-i2c-mux-pca954x kmod-leds-turris-omnia \
-    kmod-turris-omnia-mcu kmod-gpio-button-hotplug omnia-mcu-firmware omnia-mcutool
+    kmod-turris-omnia-mcu kmod-gpio-button-hotplug omnia-eeprom omnia-mcu-firmware \
+    omnia-mcutool
   IMAGES := sysupgrade.img.gz
   IMAGE/sysupgrade.img.gz := boot-scr | boot-img | sdcard-img | gzip | append-metadata
   SUPPORTED_DEVICES += armada-385-turris-omnia



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:00 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:00 -0500
Subject: [openwrt/openwrt]  kernel: remove GCC11_NO_ARRAY_BOUNDS
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8068.1732821108.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/4b9739a0f1f0a1c1706102b15a93b3289fa3de9e

commit 4b9739a0f1f0a1c1706102b15a93b3289fa3de9e
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Sat Nov 16 11:01:15 2024 -0800

    kernel: remove GCC11_NO_ARRAY_BOUNDS
    
    This symbol is no longer present.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16770
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit da8abd4a1e86a37ddcd4fa0e6acc5bf8b1b4c70e)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/bcm47xx/config-6.6          | 1 -
 target/linux/bcm4908/config-6.6          | 1 -
 target/linux/bcm53xx/config-6.6          | 1 -
 target/linux/imx/config-6.6              | 1 -
 target/linux/ipq40xx/config-6.6          | 1 -
 target/linux/ipq806x/config-6.6          | 1 -
 target/linux/kirkwood/config-6.6         | 1 -
 target/linux/layerscape/armv7/config-6.6 | 1 -
 target/linux/loongarch64/config-6.6      | 1 -
 target/linux/malta/config-6.6            | 1 -
 target/linux/mediatek/filogic/config-6.6 | 1 -
 target/linux/mediatek/mt7622/config-6.6  | 1 -
 target/linux/mediatek/mt7623/config-6.6  | 1 -
 target/linux/mediatek/mt7629/config-6.6  | 1 -
 target/linux/mpc85xx/config-6.6          | 1 -
 target/linux/mvebu/config-6.6            | 1 -
 target/linux/mxs/config-6.6              | 1 -
 target/linux/qualcommax/config-6.6       | 1 -
 target/linux/sifiveu/config-6.6          | 1 -
 target/linux/starfive/config-6.6         | 1 -
 target/linux/x86/config-6.6              | 1 -
 21 files changed, 21 deletions(-)

diff --git a/target/linux/bcm47xx/config-6.6 b/target/linux/bcm47xx/config-6.6
index 3b795941f3..dcf98603d7 100644
--- a/target/linux/bcm47xx/config-6.6
+++ b/target/linux/bcm47xx/config-6.6
@@ -66,7 +66,6 @@ CONFIG_FS_IOMAP=y
 CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/bcm4908/config-6.6 b/target/linux/bcm4908/config-6.6
index 0c604a1860..10e89cea81 100644
--- a/target/linux/bcm4908/config-6.6
+++ b/target/linux/bcm4908/config-6.6
@@ -94,7 +94,6 @@ CONFIG_FUNCTION_ALIGNMENT_4B=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
diff --git a/target/linux/bcm53xx/config-6.6 b/target/linux/bcm53xx/config-6.6
index 34dcf86e7b..cd62b0df58 100644
--- a/target/linux/bcm53xx/config-6.6
+++ b/target/linux/bcm53xx/config-6.6
@@ -140,7 +140,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
 # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
diff --git a/target/linux/imx/config-6.6 b/target/linux/imx/config-6.6
index f70e7e1501..75ad42c6df 100644
--- a/target/linux/imx/config-6.6
+++ b/target/linux/imx/config-6.6
@@ -194,7 +194,6 @@ CONFIG_FS_MBCACHE=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/ipq40xx/config-6.6 b/target/linux/ipq40xx/config-6.6
index 0ee2f433b1..69c2752894 100644
--- a/target/linux/ipq40xx/config-6.6
+++ b/target/linux/ipq40xx/config-6.6
@@ -165,7 +165,6 @@ CONFIG_FIX_EARLYCON_MEM=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/ipq806x/config-6.6 b/target/linux/ipq806x/config-6.6
index 88ec58e2c9..af5ccb11ac 100644
--- a/target/linux/ipq806x/config-6.6
+++ b/target/linux/ipq806x/config-6.6
@@ -155,7 +155,6 @@ CONFIG_FIX_EARLYCON_MEM=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/kirkwood/config-6.6 b/target/linux/kirkwood/config-6.6
index b3320dac1f..c5cfecd4e3 100644
--- a/target/linux/kirkwood/config-6.6
+++ b/target/linux/kirkwood/config-6.6
@@ -103,7 +103,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
diff --git a/target/linux/layerscape/armv7/config-6.6 b/target/linux/layerscape/armv7/config-6.6
index ee397fc7c6..0a244a85cd 100644
--- a/target/linux/layerscape/armv7/config-6.6
+++ b/target/linux/layerscape/armv7/config-6.6
@@ -232,7 +232,6 @@ CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
 # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
diff --git a/target/linux/loongarch64/config-6.6 b/target/linux/loongarch64/config-6.6
index 46a90c1284..5cbf1177cd 100644
--- a/target/linux/loongarch64/config-6.6
+++ b/target/linux/loongarch64/config-6.6
@@ -285,7 +285,6 @@ CONFIG_FW_CACHE=y
 # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
diff --git a/target/linux/malta/config-6.6 b/target/linux/malta/config-6.6
index 73db6cea21..f6d9049f4d 100644
--- a/target/linux/malta/config-6.6
+++ b/target/linux/malta/config-6.6
@@ -84,7 +84,6 @@ CONFIG_FS_MBCACHE=y
 CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/mediatek/filogic/config-6.6 b/target/linux/mediatek/filogic/config-6.6
index ba472b6ced..936f1009d9 100644
--- a/target/linux/mediatek/filogic/config-6.6
+++ b/target/linux/mediatek/filogic/config-6.6
@@ -168,7 +168,6 @@ CONFIG_FUNCTION_ALIGNMENT_4B=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
diff --git a/target/linux/mediatek/mt7622/config-6.6 b/target/linux/mediatek/mt7622/config-6.6
index e4a9e4b9cb..9440a7bb28 100644
--- a/target/linux/mediatek/mt7622/config-6.6
+++ b/target/linux/mediatek/mt7622/config-6.6
@@ -174,7 +174,6 @@ CONFIG_FUNCTION_ALIGNMENT_4B=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
diff --git a/target/linux/mediatek/mt7623/config-6.6 b/target/linux/mediatek/mt7623/config-6.6
index d04188f20c..dc31c230a2 100644
--- a/target/linux/mediatek/mt7623/config-6.6
+++ b/target/linux/mediatek/mt7623/config-6.6
@@ -240,7 +240,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/mediatek/mt7629/config-6.6 b/target/linux/mediatek/mt7629/config-6.6
index 384311dc71..d74e143c10 100644
--- a/target/linux/mediatek/mt7629/config-6.6
+++ b/target/linux/mediatek/mt7629/config-6.6
@@ -113,7 +113,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
diff --git a/target/linux/mpc85xx/config-6.6 b/target/linux/mpc85xx/config-6.6
index 14d5650fb5..c5563958a8 100644
--- a/target/linux/mpc85xx/config-6.6
+++ b/target/linux/mpc85xx/config-6.6
@@ -86,7 +86,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
diff --git a/target/linux/mvebu/config-6.6 b/target/linux/mvebu/config-6.6
index a4572d8a89..f132884d49 100644
--- a/target/linux/mvebu/config-6.6
+++ b/target/linux/mvebu/config-6.6
@@ -161,7 +161,6 @@ CONFIG_FS_MBCACHE=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/mxs/config-6.6 b/target/linux/mxs/config-6.6
index 76aecd17ff..b4bc5b3051 100644
--- a/target/linux/mxs/config-6.6
+++ b/target/linux/mxs/config-6.6
@@ -92,7 +92,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/qualcommax/config-6.6 b/target/linux/qualcommax/config-6.6
index 1d05868caf..ac2494d749 100644
--- a/target/linux/qualcommax/config-6.6
+++ b/target/linux/qualcommax/config-6.6
@@ -151,7 +151,6 @@ CONFIG_FUNCTION_ALIGNMENT_4B=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
diff --git a/target/linux/sifiveu/config-6.6 b/target/linux/sifiveu/config-6.6
index 2e5474ce2f..8ed8f766c8 100644
--- a/target/linux/sifiveu/config-6.6
+++ b/target/linux/sifiveu/config-6.6
@@ -118,7 +118,6 @@ CONFIG_FS_MBCACHE=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/starfive/config-6.6 b/target/linux/starfive/config-6.6
index 8ebced1165..ef71001663 100644
--- a/target/linux/starfive/config-6.6
+++ b/target/linux/starfive/config-6.6
@@ -190,7 +190,6 @@ CONFIG_FS_MBCACHE=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/x86/config-6.6 b/target/linux/x86/config-6.6
index 3d1c005138..1a68c589a5 100644
--- a/target/linux/x86/config-6.6
+++ b/target/linux/x86/config-6.6
@@ -137,7 +137,6 @@ CONFIG_FUSION_MAX_SGE=128
 CONFIG_FUSION_SPI=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC11_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 # CONFIG_GDS_FORCE_MITIGATION is not set
 CONFIG_GENERIC_ALLOCATOR=y



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:45 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:45 -0500
Subject: [openwrt/openwrt]  base-files: Mount debugfs and pstore with
 nosuid,nodev,noexec
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8071.1732821110.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/7d4be068da502cd68f252cad73d18faf8e59e2a5

commit 7d4be068da502cd68f252cad73d18faf8e59e2a5
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Thu Nov 14 21:46:36 2024 +0100

    base-files: Mount debugfs and pstore with nosuid,nodev,noexec
    
    These permissions are not needed. Systemd also mounts these file systems
    without these permissions on other Linux distributions.
    
    Dropping these permissions should make the system more secure.
    
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    Link: https://github.com/openwrt/openwrt/pull/16960
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
    (cherry picked from commit b88d51898d126d2f918cb476d4158e9fcd62492c)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/base-files/files/etc/init.d/boot | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package/base-files/files/etc/init.d/boot b/package/base-files/files/etc/init.d/boot
index 332a5c96f3..a26d4886b2 100755
--- a/package/base-files/files/etc/init.d/boot
+++ b/package/base-files/files/etc/init.d/boot
@@ -35,9 +35,9 @@ boot() {
 	mkdir -p /tmp/resolv.conf.d
 	touch /tmp/resolv.conf.d/resolv.conf.auto
 	ln -sf /tmp/resolv.conf.d/resolv.conf.auto /tmp/resolv.conf
-	grep -q debugfs /proc/filesystems && /bin/mount -o noatime -t debugfs debugfs /sys/kernel/debug
+	grep -q debugfs /proc/filesystems && /bin/mount -o nosuid,nodev,noexec,noatime -t debugfs debugfs /sys/kernel/debug
 	grep -q bpf /proc/filesystems && /bin/mount -o nosuid,nodev,noexec,noatime,mode=0700 -t bpf bpffs /sys/fs/bpf
-	grep -q pstore /proc/filesystems && /bin/mount -o noatime -t pstore pstore /sys/fs/pstore
+	grep -q pstore /proc/filesystems && /bin/mount -o nosuid,nodev,noexec,noatime -t pstore pstore /sys/fs/pstore
 	[ "$FAILSAFE" = "true" ] && touch /tmp/.failsafe
 
 	touch /tmp/.config_pending



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:16 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:16 -0500
Subject: [openwrt/openwrt]  optee-os-stm32: add OP-TEE for stm32 boards
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8072.1732821113.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/c93e7700d40750261341937433becdc3686ae321

commit c93e7700d40750261341937433becdc3686ae321
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Thu Sep 26 16:19:35 2024 +0200

    optee-os-stm32: add OP-TEE for stm32 boards
    
    Add OP-TEE for stm32 boards, with the first being STM32MP135F-DK.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit fae25d4001bcbae0bb1ce60b676bd421e97d78fc)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/boot/optee-os-stm32/Makefile | 49 ++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/package/boot/optee-os-stm32/Makefile b/package/boot/optee-os-stm32/Makefile
new file mode 100644
index 0000000000..9e681127e6
--- /dev/null
+++ b/package/boot/optee-os-stm32/Makefile
@@ -0,0 +1,49 @@
+#
+# Copyright (C) 2024 Bootlin
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_VERSION:=4.3.0
+PKG_RELEASE:=1
+
+PKG_HASH:=390b271905c828d6def9fa6a77bbaa425f3b434d733c8eb18f582ccbc6896096
+PKG_MAINTAINER:=Thomas Richard <thomas.richard at bootlin.com>
+
+OPTEE_USE_INTREE_DTC:=1
+
+include $(INCLUDE_DIR)/kernel.mk
+include $(INCLUDE_DIR)/optee-os.mk
+include $(INCLUDE_DIR)/package.mk
+
+define Optee-os/Default
+  BUILD_TARGET:=stm32
+endef
+
+define Optee-os/stm32mp1
+  BUILD_SUBTARGET:=stm32mp1
+  PLAT:=stm32mp1
+endef
+
+define Optee-os/stm32mp135f-dk
+  $(call Optee-os/stm32mp1)
+  NAME:=STM32MP135F-DK
+  PLAT_FLAVOR:=135F_DK
+endef
+
+OPTEE_TARGETS := stm32mp135f-dk
+
+define Package/optee-os/install/default
+endef
+
+define Build/InstallDev
+	$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
+	$(foreach img,$(OPTEE_IMAGE), \
+		$(CP) $(PKG_BUILD_DIR)/out/arm-plat-$(PLAT)/core/$(img) $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-$(img); \
+	)
+endef
+
+$(eval $(call BuildPackage/Optee-os))



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:32 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:32 -0500
Subject: [openwrt/openwrt]  cryptodev-linux: give a coherent description
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8073.1732821130.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/9d44e00fc564c92bd4f21fdcb30d67d5256e7f59

commit 9d44e00fc564c92bd4f21fdcb30d67d5256e7f59
Author: Paul Donald <newtwen+github at gmail.com>
AuthorDate: Sun Nov 10 19:53:07 2024 +0100

    cryptodev-linux: give a coherent description
    
    For the last ten years, nobody has noticed that this driver doesn't
    actually say what it is for. ;)
    
    Signed-off-by: Paul Donald <newtwen+github at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16910
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
    (cherry picked from commit 3df5966f9453ecefcabc893f6449c8c4f1054aef)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/kernel/cryptodev-linux/Makefile | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/package/kernel/cryptodev-linux/Makefile b/package/kernel/cryptodev-linux/Makefile
index ea1bd24161..611d4ae27a 100644
--- a/package/kernel/cryptodev-linux/Makefile
+++ b/package/kernel/cryptodev-linux/Makefile
@@ -36,8 +36,9 @@ define KernelPackage/cryptodev
 endef
 
 define KernelPackage/cryptodev/description
-  This is a driver for that allows to use the Linux kernel supported
-  hardware ciphers by user-space applications.
+  This driver allows use of the Linux kernel supported hardware-based
+  cryptographic and hash accelerators by user-space applications,
+  via a "/dev/crypto" device.
 endef
 
 define Build/Configure



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:26 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:26 -0500
Subject: [openwrt/openwrt]  kernel: package industrialio-buffer-cb driver
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8074.1732821133.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/27afd9e1ca662724839577cf0815805d6a3971d3

commit 27afd9e1ca662724839577cf0815805d6a3971d3
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Tue Nov 5 10:39:47 2024 +0100

    kernel: package industrialio-buffer-cb driver
    
    It is needed for the stm32/stm32mp1 subtarget.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit b0adf5e0fdc0d4b449bced9191a95bf08124c1ac)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/kernel/linux/modules/iio.mk | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/package/kernel/linux/modules/iio.mk b/package/kernel/linux/modules/iio.mk
index b9bcaad5b2..e98a6830da 100644
--- a/package/kernel/linux/modules/iio.mk
+++ b/package/kernel/linux/modules/iio.mk
@@ -63,6 +63,21 @@ endef
 $(eval $(call KernelPackage,industrialio-hw-consumer))
 
 
+define KernelPackage/industrialio-buffer-cb
+  TITLE:=Provides callback buffer used for push in-kernel interfaces
+  KCONFIG:=CONFIG_IIO_BUFFER_CB
+  FILES:=$(LINUX_DIR)/drivers/iio/buffer/industrialio-buffer-cb.ko
+  AUTOLOAD:=$(call AutoLoad,55,industrialio-triggered-buffer-cb)
+  $(call AddDepends/iio)
+endef
+
+define KernelPackage/industrialio-buffer-cb/description
+ Should be selected by any drivers that do in-kernel push usage.
+endef
+
+$(eval $(call KernelPackage,industrialio-buffer-cb))
+
+
 define KernelPackage/industrialio-triggered-buffer
   TITLE:=Provides helper functions for setting up triggered buffers.
   DEPENDS:=+kmod-iio-kfifo-buf



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:55 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:55 -0500
Subject: [openwrt/openwrt]  ipq807x: order devices alphabetically
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8075.1732821135.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/b1c01cd4b5d0ab8ad8f254836aa3e3c50688a64d

commit b1c01cd4b5d0ab8ad8f254836aa3e3c50688a64d
Author: Rodrigo Balerdi <lanchon at gmail.com>
AuthorDate: Fri Nov 8 17:45:12 2024 -0300

    ipq807x: order devices alphabetically
    
    Alphabetically sort devices in platform.sh
    
    Signed-off-by: Rodrigo Balerdi <lanchon at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16505
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 17f84bba44dbee248b3a79935657a74b21caa280)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh b/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
index 00289dcfe6..70657629fc 100644
--- a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
+++ b/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh
@@ -189,9 +189,6 @@ platform_do_upgrade() {
 		CI_ROOTPART="rootfs"
 		emmc_do_upgrade "$1"
 		;;
-	tplink,eap660hd-v1)
-		tplink_do_upgrade "$1"
-		;;
 	redmi,ax6|\
 	xiaomi,ax3600|\
 	xiaomi,ax9000)
@@ -217,6 +214,9 @@ platform_do_upgrade() {
 		CI_DATAPART="rootfs_data"
 		emmc_do_upgrade "$1"
 		;;
+	tplink,eap660hd-v1)
+		tplink_do_upgrade "$1"
+		;;
 	yuncore,ax880)
 		active="$(fw_printenv -n active)"
 		if [ "$active" -eq "1" ]; then



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:25 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:25 -0500
Subject: [openwrt/openwrt]  hostapd: split long lines
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8076.1732821148.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/69fd722edd3437d29047fce72395c7999572b281

commit 69fd722edd3437d29047fce72395c7999572b281
Author: Leon M. Busch-George <leon at georgemail.eu>
AuthorDate: Mon Feb 19 12:49:28 2024 +0100

    hostapd: split long lines
    
    These two were getting rather long.
    
    Signed-off-by: Leon M. Busch-George <leon at georgemail.eu>
    Link: https://github.com/openwrt/openwrt/pull/16849
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
    (cherry picked from commit 8b6d5874b88bbe2e7a53bcab0e102b8781480880)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/network/services/hostapd/Makefile | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/package/network/services/hostapd/Makefile b/package/network/services/hostapd/Makefile
index 0e3396262d..16dfbff2b0 100644
--- a/package/network/services/hostapd/Makefile
+++ b/package/network/services/hostapd/Makefile
@@ -84,7 +84,11 @@ ifneq ($(CONFIG_DRIVER_11BE_SUPPORT),)
   HOSTAPD_IEEE80211BE:=y
 endif
 
-CORE_DEPENDS = +ucode +libubus +libucode +ucode-mod-fs +ucode-mod-nl80211 +ucode-mod-rtnl +ucode-mod-ubus +ucode-mod-uloop +libblobmsg-json +libudebug
+
+CORE_DEPENDS = +ucode +libucode \
+	+ucode-mod-fs +ucode-mod-nl80211 +ucode-mod-rtnl +ucode-mod-ubus +ucode-mod-uloop \
+	+libubus +libblobmsg-json \
+	+libudebug
 OPENSSL_DEPENDS = +PACKAGE_$(1):libopenssl +PACKAGE_$(1):libopenssl-legacy
 
 DRIVER_MAKEOPTS= \
@@ -716,7 +720,13 @@ define Install/supplicant
 endef
 
 define Package/hostapd-common/install
-	$(INSTALL_DIR) $(1)/etc/capabilities $(1)/etc/rc.button $(1)/etc/hotplug.d/ieee80211 $(1)/etc/init.d $(1)/lib/netifd  $(1)/usr/share/acl.d $(1)/usr/share/hostap
+	$(INSTALL_DIR) \
+	  $(1)/etc/capabilities \
+	  $(1)/etc/rc.button \
+	  $(1)/etc/hotplug.d/ieee80211 \
+	  $(1)/etc/init.d $(1)/lib/netifd \
+	  $(1)/usr/share/acl.d \
+	  $(1)/usr/share/hostap
 	$(INSTALL_BIN) ./files/dhcp-get-server.sh $(1)/lib/netifd/dhcp-get-server.sh
 	$(INSTALL_BIN) ./files/wpad.init $(1)/etc/init.d/wpad
 	$(INSTALL_BIN) ./files/wps-hotplug.sh $(1)/etc/rc.button/wps



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:49 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:49 -0500
Subject: [openwrt/openwrt]  realtek: align kernel config with upstream
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8079.1732821151.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/d4a26ffd1a739e15b797c1b12e4f31a7fa29682f

commit d4a26ffd1a739e15b797c1b12e4f31a7fa29682f
Author: Markus Stockhausen <markus.stockhausen at gmx.de>
AuthorDate: Fri Nov 15 01:32:47 2024 -0500

    realtek: align kernel config with upstream
    
    Since the start of the Realtek target OpenWrt works with RTL83XX as the
    target architecture. Upstream is using MACH_REALTEK_RTL instead. To
    simplify further development align that.
    
    Signed-off-by: Markus Stockhausen <markus.stockhausen at gmx.de>
    Link: https://github.com/openwrt/openwrt/pull/16963
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 65964c42f8744ed8ca09448a155b99e3a99be283)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../realtek/files-6.6/arch/mips/rtl838x/Platform   |  4 +-
 .../realtek/files-6.6/drivers/clk/realtek/Kconfig  |  4 +-
 .../files-6.6/drivers/net/dsa/rtl83xx/Kconfig      |  2 +-
 .../300-mips-add-rtl838x-platform.patch            | 51 ++++++++++++----------
 .../patches-6.6/301-gpio-add-rtl8231-driver.patch  |  2 +-
 ...update-dependencies-for-gpio-realtek-otto.patch | 26 -----------
 ...spi-update-dependency-for-spi-realtek-rtl.patch | 25 -----------
 ...hip-update-dependency-for-irq-realtek-rtl.patch | 25 -----------
 ...dt-update-dependency-for-realtek-otto-wdt.patch | 32 --------------
 ...ethernet-add-support-for-rtl838x-ethernet.patch |  2 +-
 .../realtek/patches-6.6/720-add-rtl-phy.patch      |  2 +-
 target/linux/realtek/rtl838x/config-6.6            |  2 +-
 target/linux/realtek/rtl839x/config-6.6            |  2 +-
 target/linux/realtek/rtl930x/config-6.6            |  2 +-
 target/linux/realtek/rtl931x/config-6.6            |  2 +-
 15 files changed, 39 insertions(+), 144 deletions(-)

diff --git a/target/linux/realtek/files-6.6/arch/mips/rtl838x/Platform b/target/linux/realtek/files-6.6/arch/mips/rtl838x/Platform
index 98f18cac1b..e824dee7b7 100644
--- a/target/linux/realtek/files-6.6/arch/mips/rtl838x/Platform
+++ b/target/linux/realtek/files-6.6/arch/mips/rtl838x/Platform
@@ -1,5 +1,5 @@
 #
 # Realtek RTL838x SoCs
 #
-cflags-$(CONFIG_RTL83XX)   += -I$(srctree)/arch/mips/include/asm/mach-rtl838x/
-load-$(CONFIG_RTL83XX)     += 0xffffffff80100000
+cflags-$(CONFIG_MACH_REALTEK_RTL)   += -I$(srctree)/arch/mips/include/asm/mach-rtl838x/
+load-$(CONFIG_MACH_REALTEK_RTL)     += 0xffffffff80100000
diff --git a/target/linux/realtek/files-6.6/drivers/clk/realtek/Kconfig b/target/linux/realtek/files-6.6/drivers/clk/realtek/Kconfig
index 4cf3cd9633..62b704077a 100644
--- a/target/linux/realtek/files-6.6/drivers/clk/realtek/Kconfig
+++ b/target/linux/realtek/files-6.6/drivers/clk/realtek/Kconfig
@@ -2,13 +2,13 @@
 
 menuconfig COMMON_CLK_REALTEK
 	bool "Support for Realtek's clock controllers"
-	depends on RTL83XX
+	depends on MACH_REALTEK_RTL
 
 if COMMON_CLK_REALTEK
 
 config COMMON_CLK_RTL83XX
 	bool "Clock driver for Realtek RTL83XX"
-	depends on RTL83XX
+	depends on MACH_REALTEK_RTL
 	select SRAM
 	help
 	  This driver adds support for the Realtek RTL83xx series basic clocks.
diff --git a/target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/Kconfig b/target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/Kconfig
index 3124ee8d20..0af4abcfb9 100644
--- a/target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/Kconfig
+++ b/target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/Kconfig
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
 config NET_DSA_RTL83XX
 	tristate "Realtek RTL838x/RTL839x switch support"
-	depends on RTL83XX
+	depends on MACH_REALTEK_RTL
 	select NET_DSA_TAG_TRAILER
 	help
 	  This driver adds support for Realtek RTL83xx series switching.
diff --git a/target/linux/realtek/patches-6.6/300-mips-add-rtl838x-platform.patch b/target/linux/realtek/patches-6.6/300-mips-add-rtl838x-platform.patch
index 7adbbbc517..bb89a7864f 100644
--- a/target/linux/realtek/patches-6.6/300-mips-add-rtl838x-platform.patch
+++ b/target/linux/realtek/patches-6.6/300-mips-add-rtl838x-platform.patch
@@ -9,64 +9,67 @@ configurations for the SoCs, which are introduced in addition.
 
 Submitted-by: Birger Koblitz <git at birger-koblitz.de>
 ---
- arch/mips/Kbuild.platforms                    |  1 +
- arch/mips/Kconfig                             | 57 ++++++++++++++
- 2 files changed, 58 insertions(+)
-
 --- a/arch/mips/Kbuild.platforms
 +++ b/arch/mips/Kbuild.platforms
 @@ -22,6 +22,7 @@ platform-$(CONFIG_MACH_NINTENDO64)	+= n6
  platform-$(CONFIG_PIC32MZDA)		+= pic32/
  platform-$(CONFIG_RALINK)		+= ralink/
  platform-$(CONFIG_MIKROTIK_RB532)	+= rb532/
-+platform-$(CONFIG_RTL83XX)		+= rtl838x/
++platform-$(CONFIG_MACH_REALTEK_RTL)	+= rtl838x/
  platform-$(CONFIG_SGI_IP22)		+= sgi-ip22/
  platform-$(CONFIG_SGI_IP27)		+= sgi-ip27/
  platform-$(CONFIG_SGI_IP28)		+= sgi-ip22/
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -968,8 +968,58 @@ config CAVIUM_OCTEON_SOC
- 		Hikari
- 	  Say Y here for most Octeon reference boards.
+@@ -620,21 +620,23 @@ config RALINK
  
-+config RTL83XX
-+	bool "Realtek based platforms"
-+	select DMA_NONCOHERENT
-+	select IRQ_MIPS_CPU
+ config MACH_REALTEK_RTL
+ 	bool "Realtek RTL838x/RTL839x based machines"
+-	select MIPS_GENERIC
+ 	select DMA_NONCOHERENT
+ 	select IRQ_MIPS_CPU
+-	select CSRC_R4K
+-	select CEVT_R4K
+ 	select SYS_HAS_CPU_MIPS32_R1
+ 	select SYS_HAS_CPU_MIPS32_R2
+ 	select SYS_SUPPORTS_BIG_ENDIAN
+ 	select SYS_SUPPORTS_32BIT_KERNEL
+ 	select SYS_SUPPORTS_MIPS16
+-	select SYS_SUPPORTS_MULTITHREADING
+-	select SYS_SUPPORTS_VPE_LOADER
+ 	select BOOT_RAW
+ 	select PINCTRL
+ 	select USE_OF
 +	select NO_EXCEPT_FILL
-+	select SYS_HAS_CPU_MIPS32_R1
-+	select SYS_HAS_CPU_MIPS32_R2
-+	select SYS_SUPPORTS_BIG_ENDIAN
 +	select SYS_SUPPORTS_HIGHMEM
-+	select SYS_SUPPORTS_32BIT_KERNEL
-+	select SYS_SUPPORTS_MIPS16
 +	select SYS_HAS_EARLY_PRINTK
 +	select SYS_HAS_EARLY_PRINTK_8250
 +	select USE_GENERIC_EARLY_PRINTK_8250
-+	select BOOT_RAW
-+	select PINCTRL
 +	select ARCH_HAS_RESET_CONTROLLER
 +	select RESET_CONTROLLER
-+	select USE_OF
-+
+ 
+ config SGI_IP22
+ 	bool "SGI IP22 (Indy/Indigo2)"
+@@ -970,6 +972,36 @@ config CAVIUM_OCTEON_SOC
+ 
  endchoice
  
 +config RTL838X
 +	bool "Realtek RTL838X based platforms"
-+	depends on RTL83XX
++	depends on MACH_REALTEK_RTL
 +	select CPU_SUPPORTS_CPUFREQ
 +	select MIPS_EXTERNAL_TIMER
 +
 +config RTL839X
 +	bool "Realtek RTL839X based platforms"
-+	depends on RTL83XX
++	depends on MACH_REALTEK_RTL
 +	select CPU_SUPPORTS_CPUFREQ
 +	select MIPS_EXTERNAL_TIMER
 +	select SYS_SUPPORTS_MULTITHREADING
 +
 +config RTL930X
 +	bool "Realtek RTL930X based platforms"
-+	depends on RTL83XX
++	depends on MACH_REALTEK_RTL
 +	select MIPS_CPU_SCACHE
 +	select MIPS_EXTERNAL_TIMER
 +	select SYS_SUPPORTS_MULTITHREADING
diff --git a/target/linux/realtek/patches-6.6/301-gpio-add-rtl8231-driver.patch b/target/linux/realtek/patches-6.6/301-gpio-add-rtl8231-driver.patch
index a177876420..f64e2cf94e 100644
--- a/target/linux/realtek/patches-6.6/301-gpio-add-rtl8231-driver.patch
+++ b/target/linux/realtek/patches-6.6/301-gpio-add-rtl8231-driver.patch
@@ -31,7 +31,7 @@ Submitted-by: John Crispin <john at phrozen.org>
  
 +config GPIO_RTL8231
 +	tristate "RTL8231 GPIO"
-+	depends on RTL83XX
++	depends on MACH_REALTEK_RTL
 +	help
 +	  Say yes here to support Realtek RTL8231 GPIO expansion chips.
 +
diff --git a/target/linux/realtek/patches-6.6/303-gpio-update-dependencies-for-gpio-realtek-otto.patch b/target/linux/realtek/patches-6.6/303-gpio-update-dependencies-for-gpio-realtek-otto.patch
deleted file mode 100644
index 2b466340e6..0000000000
--- a/target/linux/realtek/patches-6.6/303-gpio-update-dependencies-for-gpio-realtek-otto.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 9bac1c20b8f39f2e0e342b087add5093b94feaed Mon Sep 17 00:00:00 2001
-From: INAGAKI Hiroshi <musashino.open at gmail.com>
-Date: Wed, 5 May 2021 22:05:39 +0900
-Subject: realtek: backport gpio-realtek-otto driver from 5.13 to 5.10
-
-This patch backports "gpio-realtek-otto" driver to Kernel 5.10.
-"MACH_REALTEK_RTL" is used as a platform name in upstream, but "RTL838X"
-is used in OpenWrt, so update the dependency by the additional patch.
-
-Submitted-by: INAGAKI Hiroshi <musashino.open at gmail.com>
----
- drivers/gpio/Kconfig                          |   4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
---- a/drivers/gpio/Kconfig
-+++ b/drivers/gpio/Kconfig
-@@ -527,8 +527,8 @@ config GPIO_RDA
- 
- config GPIO_REALTEK_OTTO
- 	tristate "Realtek Otto GPIO support"
--	depends on MACH_REALTEK_RTL
--	default MACH_REALTEK_RTL
-+	depends on RTL83XX
-+	default RTL838X
- 	select GPIO_GENERIC
- 	select GPIOLIB_IRQCHIP
- 	help
diff --git a/target/linux/realtek/patches-6.6/304-spi-update-dependency-for-spi-realtek-rtl.patch b/target/linux/realtek/patches-6.6/304-spi-update-dependency-for-spi-realtek-rtl.patch
deleted file mode 100644
index 01530257b8..0000000000
--- a/target/linux/realtek/patches-6.6/304-spi-update-dependency-for-spi-realtek-rtl.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 0b000cbfe0aa0323bffa855ef8449c0687a4c071 Mon Sep 17 00:00:00 2001
-From: INAGAKI Hiroshi <musashino.open at gmail.com>
-Date: Thu, 6 May 2021 19:30:58 +0900
-Subject: realtek: backport spi-realtek-rtl driver from 5.12 to 5.10
-
-This patch backports "spi-realtek-rtl" driver to Kernel 5.10 from 5.12.
-"MACH_REALTEK_RTL" is used as a platform name in upstream, but "RTL838X"
-is used in OpenWrt, so update the dependency by the additional patch.
-
-Submitted-by: INAGAKI Hiroshi <musashino.open at gmail.com>
----
- drivers/spi/Makefile                          |  2 +-
- 1 files changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/spi/Makefile
-+++ b/drivers/spi/Makefile
-@@ -114,7 +114,7 @@ obj-$(CONFIG_SPI_QUP)			+= spi-qup.o
- obj-$(CONFIG_SPI_ROCKCHIP)		+= spi-rockchip.o
- obj-$(CONFIG_SPI_ROCKCHIP_SFC)		+= spi-rockchip-sfc.o
- obj-$(CONFIG_SPI_RB4XX)			+= spi-rb4xx.o
--obj-$(CONFIG_MACH_REALTEK_RTL)		+= spi-realtek-rtl.o
-+obj-$(CONFIG_RTL83XX)			+= spi-realtek-rtl.o
- obj-$(CONFIG_SPI_RPCIF)			+= spi-rpc-if.o
- obj-$(CONFIG_SPI_RSPI)			+= spi-rspi.o
- obj-$(CONFIG_SPI_RZV2M_CSI)		+= spi-rzv2m-csi.o
diff --git a/target/linux/realtek/patches-6.6/305-irqchip-update-dependency-for-irq-realtek-rtl.patch b/target/linux/realtek/patches-6.6/305-irqchip-update-dependency-for-irq-realtek-rtl.patch
deleted file mode 100644
index 0ecc33376e..0000000000
--- a/target/linux/realtek/patches-6.6/305-irqchip-update-dependency-for-irq-realtek-rtl.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 2cd00b51470a30198b048a5fca48a04db77e29cc Mon Sep 17 00:00:00 2001
-From: INAGAKI Hiroshi <musashino.open at gmail.com>
-Date: Fri, 21 May 2021 23:16:37 +0900
-Subject: [PATCH] realtek: backport irq-realtek-rtl driver from 5.12 to 5.10
-
-This patch backports "irq-realtek-rtl" driver to Kernel 5.10 from 5.12.
-"MACH_REALTEK_RTL" is used as a platform name in upstream, but "RTL838X"
-is used in OpenWrt, so update the dependency by the additional patch.
-
-Submitted-by: INAGAKI Hiroshi <musashino.open at gmail.com>
----
- drivers/irqchip/Makefile                      | 2 +-
- 1 files changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/irqchip/Makefile
-+++ b/drivers/irqchip/Makefile
-@@ -114,7 +114,7 @@ obj-$(CONFIG_LOONGSON_PCH_MSI)		+= irq-l
- obj-$(CONFIG_LOONGSON_PCH_LPC)		+= irq-loongson-pch-lpc.o
- obj-$(CONFIG_MST_IRQ)			+= irq-mst-intc.o
- obj-$(CONFIG_SL28CPLD_INTC)		+= irq-sl28cpld.o
--obj-$(CONFIG_MACH_REALTEK_RTL)		+= irq-realtek-rtl.o
-+obj-$(CONFIG_RTL83XX)			+= irq-realtek-rtl.o
- obj-$(CONFIG_WPCM450_AIC)		+= irq-wpcm450-aic.o
- obj-$(CONFIG_IRQ_IDT3243X)		+= irq-idt3243x.o
- obj-$(CONFIG_APPLE_AIC)			+= irq-apple-aic.o
diff --git a/target/linux/realtek/patches-6.6/307-wdt-update-dependency-for-realtek-otto-wdt.patch b/target/linux/realtek/patches-6.6/307-wdt-update-dependency-for-realtek-otto-wdt.patch
deleted file mode 100644
index c9dab65b72..0000000000
--- a/target/linux/realtek/patches-6.6/307-wdt-update-dependency-for-realtek-otto-wdt.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From b8fc5eecdc5d33cf261986436597b5482ab856da Mon Sep 17 00:00:00 2001
-From: Sander Vanheule <sander at svanheule.net>
-Date: Sun, 14 Nov 2021 19:45:32 +0100
-Subject: [PATCH] realtek: Backport Realtek Otto WDT driver
-
-Add patch submitted upstream to linux-watchdog and replace the MIPS
-architecture symbols. Requires one extra patch for the DIV_ROUND_*
-macros, which have moved to a different header since 5.10.
-
-Submitted-by: Sander Vanheule <sander at svanheule.net>
-Tested-by: Stijn Segers <foss at volatilesystems.org>
-Tested-by: Paul Fertser <fercerpav at gmail.com>
-Tested-by: Stijn Tintel <stijn at linux-ipv6.be>
----
- drivers/watchdog/Kconfig                      | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/drivers/watchdog/Kconfig
-+++ b/drivers/watchdog/Kconfig
-@@ -977,10 +977,10 @@ config RTD119X_WATCHDOG
- 
- config REALTEK_OTTO_WDT
- 	tristate "Realtek Otto MIPS watchdog support"
--	depends on MACH_REALTEK_RTL || COMPILE_TEST
-+	depends on RTL83XX
- 	depends on COMMON_CLK
- 	select WATCHDOG_CORE
--	default MACH_REALTEK_RTL
-+	default RTL83XX
- 	help
- 	  Say Y here to include support for the watchdog timer on Realtek
- 	  RTL838x, RTL839x, RTL930x SoCs. This watchdog has pretimeout
diff --git a/target/linux/realtek/patches-6.6/716-net-ethernet-add-support-for-rtl838x-ethernet.patch b/target/linux/realtek/patches-6.6/716-net-ethernet-add-support-for-rtl838x-ethernet.patch
index 9d79ea565d..e0c10bca63 100644
--- a/target/linux/realtek/patches-6.6/716-net-ethernet-add-support-for-rtl838x-ethernet.patch
+++ b/target/linux/realtek/patches-6.6/716-net-ethernet-add-support-for-rtl838x-ethernet.patch
@@ -29,7 +29,7 @@ Submitted-by: John Crispin <john at phrozen.org>
 +
 +config NET_RTL838X
 +	tristate "Realtek rtl838x Ethernet MAC support"
-+	depends on RTL83XX
++	depends on MACH_REALTEK_RTL
 +	help
 +	  Say Y here if you want to use the Realtek rtl838x Gbps Ethernet MAC.
 +
diff --git a/target/linux/realtek/patches-6.6/720-add-rtl-phy.patch b/target/linux/realtek/patches-6.6/720-add-rtl-phy.patch
index 78a57f0a3e..43d4a7d4fc 100644
--- a/target/linux/realtek/patches-6.6/720-add-rtl-phy.patch
+++ b/target/linux/realtek/patches-6.6/720-add-rtl-phy.patch
@@ -20,7 +20,7 @@ Submitted-by: Birger Koblitz <mail at birger-koblitz.de>
  
 +config REALTEK_SOC_PHY
 +	tristate "Realtek SoC PHYs"
-+	depends on RTL83XX
++	depends on MACH_REALTEK_RTL
 +	help
 +	  Supports the PHYs found in combination with Realtek Switch SoCs
 +
diff --git a/target/linux/realtek/rtl838x/config-6.6 b/target/linux/realtek/rtl838x/config-6.6
index ad2c1b43cc..44c1d7e064 100644
--- a/target/linux/realtek/rtl838x/config-6.6
+++ b/target/linux/realtek/rtl838x/config-6.6
@@ -116,6 +116,7 @@ CONFIG_JFFS2_ZLIB=y
 CONFIG_LEDS_GPIO=y
 CONFIG_LIBFDT=y
 CONFIG_LOCK_DEBUGGING_SUPPORT=y
+CONFIG_MACH_REALTEK_RTL=y
 CONFIG_MARVELL_PHY=y
 CONFIG_MDIO_BUS=y
 CONFIG_MDIO_DEVICE=y
@@ -192,7 +193,6 @@ CONFIG_REGMAP_MMIO=y
 CONFIG_RESET_CONTROLLER=y
 CONFIG_RTL838X=y
 # CONFIG_RTL839X is not set
-CONFIG_RTL83XX=y
 # CONFIG_RTL930X is not set
 CONFIG_SERIAL_MCTRL_GPIO=y
 CONFIG_SERIAL_OF_PLATFORM=y
diff --git a/target/linux/realtek/rtl839x/config-6.6 b/target/linux/realtek/rtl839x/config-6.6
index a357eb3966..630027bf81 100644
--- a/target/linux/realtek/rtl839x/config-6.6
+++ b/target/linux/realtek/rtl839x/config-6.6
@@ -115,6 +115,7 @@ CONFIG_JFFS2_ZLIB=y
 CONFIG_LEDS_GPIO=y
 CONFIG_LIBFDT=y
 CONFIG_LOCK_DEBUGGING_SUPPORT=y
+CONFIG_MACH_REALTEK_RTL=y
 CONFIG_MARVELL_PHY=y
 CONFIG_MDIO_BUS=y
 CONFIG_MDIO_DEVICE=y
@@ -204,7 +205,6 @@ CONFIG_RFS_ACCEL=y
 CONFIG_RPS=y
 # CONFIG_RTL838X is not set
 CONFIG_RTL839X=y
-CONFIG_RTL83XX=y
 # CONFIG_RTL930X is not set
 CONFIG_SERIAL_MCTRL_GPIO=y
 CONFIG_SERIAL_OF_PLATFORM=y
diff --git a/target/linux/realtek/rtl930x/config-6.6 b/target/linux/realtek/rtl930x/config-6.6
index af5f2ca7a3..5a29bdc3c1 100644
--- a/target/linux/realtek/rtl930x/config-6.6
+++ b/target/linux/realtek/rtl930x/config-6.6
@@ -97,6 +97,7 @@ CONFIG_JFFS2_ZLIB=y
 CONFIG_LEDS_GPIO=y
 CONFIG_LIBFDT=y
 CONFIG_LOCK_DEBUGGING_SUPPORT=y
+CONFIG_MACH_REALTEK_RTL=y
 CONFIG_MARVELL_PHY=y
 CONFIG_MDIO_BUS=y
 CONFIG_MDIO_DEVICE=y
@@ -172,7 +173,6 @@ CONFIG_REGMAP_MMIO=y
 CONFIG_RESET_CONTROLLER=y
 # CONFIG_RTL838X is not set
 # CONFIG_RTL839X is not set
-CONFIG_RTL83XX=y
 CONFIG_RTL930X=y
 # CONFIG_RTL931X is not set
 CONFIG_SERIAL_MCTRL_GPIO=y
diff --git a/target/linux/realtek/rtl931x/config-6.6 b/target/linux/realtek/rtl931x/config-6.6
index 736f472029..df235defe8 100644
--- a/target/linux/realtek/rtl931x/config-6.6
+++ b/target/linux/realtek/rtl931x/config-6.6
@@ -106,6 +106,7 @@ CONFIG_KMAP_LOCAL=y
 CONFIG_LEDS_GPIO=y
 CONFIG_LIBFDT=y
 CONFIG_LOCK_DEBUGGING_SUPPORT=y
+CONFIG_MACH_REALTEK_RTL=y
 CONFIG_MARVELL_PHY=y
 CONFIG_MDIO_BUS=y
 CONFIG_MDIO_DEVICE=y
@@ -195,7 +196,6 @@ CONFIG_RFS_ACCEL=y
 CONFIG_RPS=y
 # CONFIG_RTL838X is not set
 # CONFIG_RTL839X is not set
-CONFIG_RTL83XX=y
 CONFIG_RTL930X=y
 CONFIG_RTL931X=y
 CONFIG_SENSORS_GPIO_FAN=y



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:19 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:19 -0500
Subject: [openwrt/openwrt]  mac80211: enable CONFIG_BRCMFMAC_SDIO for stm32
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8080.1732821154.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/911b25d618dab50d84c9881aaedfe98761b006a2

commit 911b25d618dab50d84c9881aaedfe98761b006a2
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Tue Sep 24 18:06:28 2024 +0200

    mac80211: enable CONFIG_BRCMFMAC_SDIO for stm32
    
    All stm32 devices use BCM43430 Wi-Fi interface in SDIO mode.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 456e0aad97413816aee41e68b3d3cfdfadc2fd43)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/kernel/mac80211/broadcom.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/kernel/mac80211/broadcom.mk b/package/kernel/mac80211/broadcom.mk
index a6f42cd19a..444d705ab3 100644
--- a/package/kernel/mac80211/broadcom.mk
+++ b/package/kernel/mac80211/broadcom.mk
@@ -437,6 +437,7 @@ define KernelPackage/brcmfmac/config
 		default y if TARGET_starfive
 		default y if TARGET_rockchip
 		default y if TARGET_sunxi
+		default y if TARGET_stm32
 		default n
 		help
 		  Enable support for cards attached to an SDIO bus.



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:57 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:57 -0500
Subject: [openwrt/openwrt]  kernel: disable drm-i915 module for x86/geode
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8081.1732821156.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/abf78dd5d8cdf874b074fc96a8802f3178d9a32a

commit abf78dd5d8cdf874b074fc96a8802f3178d9a32a
Author: Mieczyslaw Nalewaj <namiltd at yahoo.com>
AuthorDate: Sun Nov 17 08:40:44 2024 +0100

    kernel: disable drm-i915 module for x86/geode
    
    Disable drm-i915 module for target x86/geode.
    
    Fixes: 77cfe8f ("x86: make i915 as a kmod with required firmware")
    Signed-off-by: Mieczyslaw Nalewaj <namiltd at yahoo.com>
    Link: https://github.com/openwrt/openwrt/pull/16977
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 226f74badd61fb1586dd3531835aeaa3bf6fe467)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/kernel/linux/modules/video.mk | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/package/kernel/linux/modules/video.mk b/package/kernel/linux/modules/video.mk
index fc0f038863..f2fa82fd03 100644
--- a/package/kernel/linux/modules/video.mk
+++ b/package/kernel/linux/modules/video.mk
@@ -441,7 +441,8 @@ $(eval $(call KernelPackage,drm-amdgpu))
 define KernelPackage/drm-i915
   SUBMENU:=$(VIDEO_MENU)
   TITLE:=Intel i915 DRM support
-  DEPENDS:=@TARGET_x86 @DISPLAY_SUPPORT +kmod-backlight +kmod-drm-ttm \
+  DEPENDS:=@(TARGET_x86_64||TARGET_x86_generic||TARGET_x86_legacy) \
+	@DISPLAY_SUPPORT +kmod-backlight +kmod-drm-ttm \
 	+kmod-drm-ttm-helper +kmod-drm-kms-helper +kmod-i2c-algo-bit +i915-firmware-dmc \
 	+kmod-drm-display-helper +kmod-drm-buddy +kmod-acpi-video \
 	+kmod-drm-exec +kmod-drm-suballoc-helper



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:31 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:31 -0500
Subject: [openwrt/openwrt]  realtek: rtl83xx: use devm for mutex_init
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8084.1732821159.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/655874713ee32f5f16f038c4291b02da3a018b76

commit 655874713ee32f5f16f038c4291b02da3a018b76
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Sun Nov 10 15:54:14 2024 -0800

    realtek: rtl83xx: use devm for mutex_init
    
    mutex_destroy is missing in remove.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16926
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 1125ed408c7f0d130b5606ab39e4dd98a41d5f0a)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/common.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/common.c b/target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/common.c
index 5468fc0653..fe0980a1be 100644
--- a/target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/common.c
+++ b/target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/common.c
@@ -1492,7 +1492,9 @@ static int __init rtl83xx_sw_probe(struct platform_device *pdev)
 	priv->ds->needs_standalone_vlan_filtering = true;
 	priv->dev = dev;
 
-	mutex_init(&priv->reg_mutex);
+	err = devm_mutex_init(dev, &priv->reg_mutex);
+	if (err)
+		return err;
 
 	priv->family_id = soc_info.family;
 	priv->id = soc_info.id;



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:43 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:43 -0500
Subject: [openwrt/openwrt]  x86: make i915 as a kmod with required firmware
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8085.1732821162.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/756c955a9ca129b55e2b06ac6dab487373d867c7

commit 756c955a9ca129b55e2b06ac6dab487373d867c7
Author: Joe Zheng <joe.zheng at intel.com>
AuthorDate: Sun Aug 25 00:53:01 2024 +0000

    x86: make i915 as a kmod with required firmware
    
    i915 driver requires to load correct firmware to work on latest x86
    GPU, it is more reasonable to make it as a kernel module, so that
    initramfs is not required, and it can also save some space from the
    kernel image comparing being a built-in driver
    
    Signed-off-by: Joe Zheng <joe.zheng at intel.com>
    Link: https://github.com/openwrt/openwrt/pull/16276
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 77cfe8fd15d3d0f77ee16660d06a174f41b53444)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/kernel/linux/modules/video.mk | 42 +++++++++++++++++++++++++++++++++++
 target/linux/x86/64/config-6.6        | 24 --------------------
 target/linux/x86/generic/config-6.6   | 24 --------------------
 target/linux/x86/legacy/config-6.6    | 24 --------------------
 4 files changed, 42 insertions(+), 72 deletions(-)

diff --git a/package/kernel/linux/modules/video.mk b/package/kernel/linux/modules/video.mk
index 8b4585a624..fc0f038863 100644
--- a/package/kernel/linux/modules/video.mk
+++ b/package/kernel/linux/modules/video.mk
@@ -438,6 +438,48 @@ endef
 
 $(eval $(call KernelPackage,drm-amdgpu))
 
+define KernelPackage/drm-i915
+  SUBMENU:=$(VIDEO_MENU)
+  TITLE:=Intel i915 DRM support
+  DEPENDS:=@TARGET_x86 @DISPLAY_SUPPORT +kmod-backlight +kmod-drm-ttm \
+	+kmod-drm-ttm-helper +kmod-drm-kms-helper +kmod-i2c-algo-bit +i915-firmware-dmc \
+	+kmod-drm-display-helper +kmod-drm-buddy +kmod-acpi-video \
+	+kmod-drm-exec +kmod-drm-suballoc-helper
+  KCONFIG:=CONFIG_DRM_I915 \
+	CONFIG_DRM_I915_CAPTURE_ERROR=y \
+	CONFIG_DRM_I915_COMPRESS_ERROR=y \
+	CONFIG_DRM_I915_DEBUG=n \
+	CONFIG_DRM_I915_DEBUG_GUC=n \
+	CONFIG_DRM_I915_DEBUG_MMIO=n \
+	CONFIG_DRM_I915_DEBUG_RUNTIME_PM=n \
+	CONFIG_DRM_I915_DEBUG_VBLANK_EVADE=n \
+	CONFIG_DRM_I915_FENCE_TIMEOUT=10000 \
+	CONFIG_DRM_I915_FORCE_PROBE="" \
+	CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500 \
+	CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS=n \
+	CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000 \
+	CONFIG_DRM_I915_PREEMPT_TIMEOUT=640 \
+	CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500 \
+	CONFIG_DRM_I915_REQUEST_TIMEOUT=20000 \
+	CONFIG_DRM_I915_SELFTEST=n \
+	CONFIG_DRM_I915_STOP_TIMEOUT=100 \
+	CONFIG_DRM_I915_SW_FENCE_CHECK_DAG=n \
+	CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS=n \
+	CONFIG_DRM_I915_TIMESLICE_DURATION=1 \
+	CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250 \
+	CONFIG_DRM_I915_USERPTR=y \
+	CONFIG_DRM_I915_WERROR=n \
+	CONFIG_FB_INTEL=n
+  FILES:=$(LINUX_DIR)/drivers/gpu/drm/i915/i915.ko
+  AUTOLOAD:=$(call AutoProbe,i915)
+endef
+
+define KernelPackage/drm-i915/description
+  Direct Rendering Manager (DRM) support for Intel GPU
+endef
+
+$(eval $(call KernelPackage,drm-i915))
+
 
 define KernelPackage/drm-imx
   SUBMENU:=$(VIDEO_MENU)
diff --git a/target/linux/x86/64/config-6.6 b/target/linux/x86/64/config-6.6
index def4527f77..3475e65287 100644
--- a/target/linux/x86/64/config-6.6
+++ b/target/linux/x86/64/config-6.6
@@ -151,30 +151,6 @@ CONFIG_DRM_FBDEV_EMULATION=y
 CONFIG_DRM_FBDEV_OVERALLOC=100
 CONFIG_DRM_GEM_SHMEM_HELPER=y
 # CONFIG_DRM_HYPERV is not set
-CONFIG_DRM_I915=y
-CONFIG_DRM_I915_CAPTURE_ERROR=y
-CONFIG_DRM_I915_COMPRESS_ERROR=y
-# CONFIG_DRM_I915_DEBUG is not set
-# CONFIG_DRM_I915_DEBUG_GUC is not set
-# CONFIG_DRM_I915_DEBUG_MMIO is not set
-# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
-# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
-CONFIG_DRM_I915_FENCE_TIMEOUT=10000
-CONFIG_DRM_I915_FORCE_PROBE=""
-CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
-# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
-CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000
-CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
-CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500
-CONFIG_DRM_I915_REQUEST_TIMEOUT=20000
-# CONFIG_DRM_I915_SELFTEST is not set
-CONFIG_DRM_I915_STOP_TIMEOUT=100
-# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
-# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
-CONFIG_DRM_I915_TIMESLICE_DURATION=1
-CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
-CONFIG_DRM_I915_USERPTR=y
-# CONFIG_DRM_I915_WERROR is not set
 CONFIG_DRM_KMS_HELPER=y
 CONFIG_DRM_MIPI_DSI=y
 CONFIG_DRM_PANEL=y
diff --git a/target/linux/x86/generic/config-6.6 b/target/linux/x86/generic/config-6.6
index 091584e077..ecbd0aa93e 100644
--- a/target/linux/x86/generic/config-6.6
+++ b/target/linux/x86/generic/config-6.6
@@ -86,30 +86,6 @@ CONFIG_DRM_FBDEV_EMULATION=y
 CONFIG_DRM_FBDEV_OVERALLOC=100
 CONFIG_DRM_GEM_SHMEM_HELPER=y
 # CONFIG_DRM_HYPERV is not set
-CONFIG_DRM_I915=y
-CONFIG_DRM_I915_CAPTURE_ERROR=y
-CONFIG_DRM_I915_COMPRESS_ERROR=y
-# CONFIG_DRM_I915_DEBUG is not set
-# CONFIG_DRM_I915_DEBUG_GUC is not set
-# CONFIG_DRM_I915_DEBUG_MMIO is not set
-# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
-# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
-CONFIG_DRM_I915_FENCE_TIMEOUT=10000
-CONFIG_DRM_I915_FORCE_PROBE=""
-CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
-# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
-CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000
-CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
-CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500
-CONFIG_DRM_I915_REQUEST_TIMEOUT=20000
-# CONFIG_DRM_I915_SELFTEST is not set
-CONFIG_DRM_I915_STOP_TIMEOUT=100
-# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
-# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
-CONFIG_DRM_I915_TIMESLICE_DURATION=1
-CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
-CONFIG_DRM_I915_USERPTR=y
-# CONFIG_DRM_I915_WERROR is not set
 CONFIG_DRM_KMS_HELPER=y
 CONFIG_DRM_MIPI_DSI=y
 CONFIG_DRM_PANEL=y
diff --git a/target/linux/x86/legacy/config-6.6 b/target/linux/x86/legacy/config-6.6
index 8ce9237a21..10511ff08b 100644
--- a/target/linux/x86/legacy/config-6.6
+++ b/target/linux/x86/legacy/config-6.6
@@ -67,30 +67,6 @@ CONFIG_DRM_DISPLAY_HELPER=y
 CONFIG_DRM_EXEC=y
 CONFIG_DRM_FBDEV_EMULATION=y
 CONFIG_DRM_FBDEV_OVERALLOC=100
-CONFIG_DRM_I915=y
-CONFIG_DRM_I915_CAPTURE_ERROR=y
-CONFIG_DRM_I915_COMPRESS_ERROR=y
-# CONFIG_DRM_I915_DEBUG is not set
-# CONFIG_DRM_I915_DEBUG_GUC is not set
-# CONFIG_DRM_I915_DEBUG_MMIO is not set
-# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
-# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
-CONFIG_DRM_I915_FENCE_TIMEOUT=10000
-CONFIG_DRM_I915_FORCE_PROBE=""
-CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
-# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
-CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000
-CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
-CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500
-CONFIG_DRM_I915_REQUEST_TIMEOUT=20000
-# CONFIG_DRM_I915_SELFTEST is not set
-CONFIG_DRM_I915_STOP_TIMEOUT=100
-# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
-# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
-CONFIG_DRM_I915_TIMESLICE_DURATION=1
-CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
-CONFIG_DRM_I915_USERPTR=y
-# CONFIG_DRM_I915_WERROR is not set
 CONFIG_DRM_KMS_HELPER=y
 CONFIG_DRM_MIPI_DSI=y
 CONFIG_DRM_PANEL=y



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:27 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:27 -0500
Subject: [openwrt/openwrt]  lantiq: use more devm for i2c
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8086.1732821170.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/62690e3b51e0ac227cf23e3da2f83e2fca3de6c4

commit 62690e3b51e0ac227cf23e3da2f83e2fca3de6c4
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Fri Oct 18 19:08:02 2024 -0700

    lantiq: use more devm for i2c
    
    i2c_add_numbered_adapter is the wrong function to use here. It requires
    setting nr to some value, otherwise it behaves the same as
    i2c_add_adapter. nr is not set.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16825
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 44824f0b787b13e2f2fccc58256b2c42fa3f9f5d)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch   | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/target/linux/lantiq/patches-6.6/0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch b/target/linux/lantiq/patches-6.6/0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch
index 235e48f6de..1f2f5139d6 100644
--- a/target/linux/lantiq/patches-6.6/0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch
+++ b/target/linux/lantiq/patches-6.6/0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch
@@ -47,7 +47,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  obj-$(CONFIG_I2C_MESON)		+= i2c-meson.o
 --- /dev/null
 +++ b/drivers/i2c/busses/i2c-lantiq.c
-@@ -0,0 +1,745 @@
+@@ -0,0 +1,742 @@
 +
 +/*
 + * Lantiq I2C bus adapter
@@ -658,7 +658,9 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +	}
 +
 +	init_completion(&priv->cmd_complete);
-+	mutex_init(&priv->mutex);
++	ret = devm_mutex_init(&pdev->dev, &priv->mutex);
++	if (ret)
++		return ret;
 +
 +	priv->membase = devm_platform_ioremap_resource(pdev, 0);
 +	if (IS_ERR(priv->membase))
@@ -719,7 +721,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +	clk_activate(priv->clk_gate);
 +
 +	/* add our adapter to the i2c stack */
-+	ret = i2c_add_numbered_adapter(adap);
++	ret = devm_i2c_add_adapter(&pdev->dev, adap);
 +	if (ret) {
 +		dev_err(&pdev->dev, "can't register I2C adapter\n");
 +		goto out;
@@ -737,7 +739,6 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +	ret = ltq_i2c_hw_init(adap);
 +	if (ret) {
 +		dev_err(&pdev->dev, "can't configure adapter\n");
-+		i2c_del_adapter(adap);
 +		platform_set_drvdata(pdev, NULL);
 +		goto out;
 +	} else {
@@ -762,10 +763,6 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +	/* power down the core */
 +	clk_deactivate(priv->clk_gate);
 +
-+	/* remove driver */
-+	i2c_del_adapter(&priv->adap);
-+	kfree(priv);
-+
 +	dev_dbg(&pdev->dev, "removed\n");
 +	platform_set_drvdata(pdev, NULL);
 +



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:22 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:22 -0500
Subject: [openwrt/openwrt]  rampis: mt7621: Edgerouter-X adjust IMAGE_SIZE to
 reflect new kernel size
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8087.1732821175.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/79c711a035e5a98dcb16b1e68d323c865a08db1e

commit 79c711a035e5a98dcb16b1e68d323c865a08db1e
Author: Tim Lunn <tim at feathertop.org>
AuthorDate: Fri Apr 26 11:27:45 2024 +1000

    rampis: mt7621: Edgerouter-X adjust IMAGE_SIZE to reflect new kernel size
    
    IMAGE_SIZE was previously set to kernel1 + ubi size = 256768k, now
    kernel1 is 6MB adjust this value to add 3072k to total image size.
    
    Signed-off-by: Tim Lunn <tim at feathertop.org>
    Link: https://github.com/openwrt/openwrt/pull/15194
    (cherry picked from commit 5b406bccaccadb494cad139b3f69e17ab62d3968)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ramips/image/mt7621.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index bebe40c216..1dc1219d24 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -2834,7 +2834,7 @@ define Device/ubnt_edgerouter_common
   $(Device/dsa-migration)
   $(Device/uimage-lzma-loader)
   DEVICE_VENDOR := Ubiquiti
-  IMAGE_SIZE := 256768k
+  IMAGE_SIZE := 259840k
   FILESYSTEMS := squashfs
   KERNEL_SIZE := 6144k
   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:47 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:47 -0500
Subject: [openwrt/openwrt]  x86: switch config to a tickless kernel
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8088.1732821184.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/4c22224bcc08c9bd18e6e9921280c73e2abcd7c3

commit 4c22224bcc08c9bd18e6e9921280c73e2abcd7c3
Author: John Audia <therealgraysky at proton.me>
AuthorDate: Mon Sep 2 19:53:47 2024 -0400

    x86: switch config to a tickless kernel
    
    This commit fixes and closes #16313.
    
    Switch the x86 kernel's timer to tickless operation which is
    more power efficient since it is not woken up by periodic timer
    interrupts when idle.  Also add several other options for CPU
    idle governors particularly the upstream default for tickless
    kernels, CONFIG_CPU_IDLE_GOV_MENU. Without this commit, my AMD
    Ryzen 7 5800U can only achieve a minimum core frequency of 1,384
    MHz which is over 3x higher than the processor's minimum
    frequency of 400 MHz which is accessible with this modification.
    In addition to the lower clock rate, I have seen a concomitant
    reduction in both idle temps and at-the-wall power consumption.
    
    Summary:
    * Idle CPU freqs dropped from 1,384 MHz to 400 Mhz.
    * Idle power consumption dropped from 7 W avg to 5 W.
    * Idle temps have dropped from 50C on avg to 43C.
    
    There are other well known reasons to switch to a tickless
    timer including: reduced interrupt overhead, better use of CPU
    resources, and reduced latency to name a few.
    
    Build system: x86/64
    Build-tested: x86/64/AMD Cezanne
    Run-tested: x86/64/AMD Cezanne
    
    Signed-off-by: John Audia <therealgraysky at proton.me>
    Link: https://github.com/openwrt/openwrt/pull/16317
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
    (cherry picked from commit 31111680f6fc5f17201b02b8ce656b955be56d7a)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/x86/config-6.6 | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/target/linux/x86/config-6.6 b/target/linux/x86/config-6.6
index b8d38e60fa..3d1c005138 100644
--- a/target/linux/x86/config-6.6
+++ b/target/linux/x86/config-6.6
@@ -48,6 +48,7 @@ CONFIG_COMPAT_32=y
 CONFIG_COMPAT_32BIT_TIME=y
 # CONFIG_COMPAT_VDSO is not set
 CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_CONTEXT_TRACKING_USER_FORCE=y
 # CONFIG_CPU5_WDT is not set
 CONFIG_CPU_FREQ=y
 CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
@@ -61,7 +62,10 @@ CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
 # CONFIG_CPU_FREQ_GOV_USERSPACE is not set
 CONFIG_CPU_FREQ_STAT=y
 CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_HALTPOLL=y
 CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_CPU_IDLE_GOV_TEO=y
 CONFIG_CPU_MITIGATIONS=y
 CONFIG_CPU_SUP_AMD=y
 CONFIG_CPU_SUP_CENTAUR=y
@@ -180,7 +184,6 @@ CONFIG_HW_RANDOM=y
 CONFIG_HW_RANDOM_GEODE=y
 CONFIG_HW_RANDOM_VIA=y
 # CONFIG_HYPERVISOR_GUEST is not set
-CONFIG_HZ_PERIODIC=y
 CONFIG_I8253_LOCK=y
 CONFIG_IA32_FEAT_CTL=y
 # CONFIG_IB700_WDT is not set
@@ -275,6 +278,9 @@ CONFIG_NET_XGRESS=y
 CONFIG_NLS=y
 # CONFIG_NMI_CHECK_CPU is not set
 # CONFIG_NOHIGHMEM is not set
+CONFIG_NO_HZ=y
+CONFIG_NO_HZ_COMMON=y
+CONFIG_NO_HZ_FULL=y
 CONFIG_NR_CPUS=1
 CONFIG_NR_CPUS_DEFAULT=1
 CONFIG_NR_CPUS_RANGE_BEGIN=1
@@ -330,6 +336,8 @@ CONFIG_PTP_1588_CLOCK_OPTIONAL=y
 # CONFIG_PUNIT_ATOM_DEBUG is not set
 CONFIG_RANDSTRUCT_NONE=y
 CONFIG_RATIONAL=y
+CONFIG_RCU_LAZY=y
+CONFIG_RCU_NOCB_CPU_DEFAULT_ALL=y
 CONFIG_RD_BZIP2=y
 CONFIG_RD_GZIP=y
 CONFIG_RETHUNK=y



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:06 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:06 -0500
Subject: [openwrt/openwrt]  mpc85xx: run make kernel_oldconfig
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8091.1732821187.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/7afbe2259985d189a1e77f1d76f664a813c2ddae

commit 7afbe2259985d189a1e77f1d76f664a813c2ddae
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Wed Oct 16 15:17:14 2024 -0700

    mpc85xx: run make kernel_oldconfig
    
    Adjusts the default config to modern kernels.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16847
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 890d47b60a221328bbf05518eedc35ac5bd922f1)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/mpc85xx/config-6.6 | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/target/linux/mpc85xx/config-6.6 b/target/linux/mpc85xx/config-6.6
index 132917bf2b..30a551e55e 100644
--- a/target/linux/mpc85xx/config-6.6
+++ b/target/linux/mpc85xx/config-6.6
@@ -40,6 +40,7 @@ CONFIG_COMPAT_32BIT_TIME=y
 # CONFIG_CORENET_GENERIC is not set
 # CONFIG_CPM2 is not set
 CONFIG_CPU_BIG_ENDIAN=y
+CONFIG_CPU_MITIGATIONS=y
 # CONFIG_CRYPTO_AES_PPC_SPE is not set
 CONFIG_CRYPTO_AUTHENC=y
 CONFIG_CRYPTO_HW=y
@@ -71,6 +72,7 @@ CONFIG_EDAC_SUPPORT=y
 CONFIG_EXCLUSIVE_SYSTEM_RAM=y
 # CONFIG_FIREBOX_T10 is not set
 CONFIG_FIXED_PHY=y
+CONFIG_FORCE_NR_CPUS=y
 CONFIG_FSL_EMB_PERFMON=y
 # CONFIG_FSL_FMAN is not set
 CONFIG_FSL_LBC=y
@@ -84,7 +86,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_BUG=y



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:07 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:07 -0500
Subject: [openwrt/openwrt]  mpc85xx: p1010: add missing symbols
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8092.1732821195.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/ac2d91329ea0c3273e9bd2d6d7bf5092f0d0c23f

commit ac2d91329ea0c3273e9bd2d6d7bf5092f0d0c23f
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Wed Oct 16 15:42:56 2024 -0700

    mpc85xx: p1010: add missing symbols
    
    Since kernel_oldconfig doesn't work properly with it, I ran that first
    and then moved all the config symbols to config-6.6 and found the
    differences.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16847
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit e9dd6da91661612d2330c2b633f3dd55b93218f8)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/mpc85xx/p1010/config-default | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/target/linux/mpc85xx/p1010/config-default b/target/linux/mpc85xx/p1010/config-default
index 5a17e38f5c..22801b9c2b 100644
--- a/target/linux/mpc85xx/p1010/config-default
+++ b/target/linux/mpc85xx/p1010/config-default
@@ -1,11 +1,19 @@
 CONFIG_BR200_WP=y
 CONFIG_CMDLINE_OVERRIDE=y
+CONFIG_CRC16=y
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_ZSTD=y
+CONFIG_DEFAULT_UIMAGE=y
 CONFIG_FIREBOX_T10=y
 # CONFIG_FSL_CORENET_CF is not set
 CONFIG_FSL_IFC=y
 CONFIG_GPIO_74X164=y
+CONFIG_GRO_CELLS=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
 CONFIG_MEMORY=y
-CONFIG_MTD_CFI=y
 CONFIG_MTD_NAND_FSL_IFC=y
 CONFIG_MTD_PHYSMAP=y
 CONFIG_MTD_SPLIT_TPLINK_FW=y
@@ -14,6 +22,7 @@ CONFIG_MTD_UBI=y
 CONFIG_MTD_UBI_BEB_LIMIT=20
 CONFIG_MTD_UBI_BLOCK=y
 CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_NEED_DMA_MAP_STATE=y
 CONFIG_NET_DEVLINK=y
 CONFIG_NET_DSA=y
 CONFIG_NET_DSA_QCA8K=y
@@ -27,7 +36,16 @@ CONFIG_REALTEK_PHY=y
 CONFIG_RED_15W_REV1=y
 CONFIG_REGMAP=y
 CONFIG_REGULATOR=y
+CONFIG_SGL_ALLOC=y
+CONFIG_SPI_BITBANG=y
 CONFIG_SPI_GPIO=y
+CONFIG_SWIOTLB=y
 CONFIG_TL_WDR4900_V1=y
 CONFIG_UBIFS_FS=y
 CONFIG_WS_AP3715I=y
+CONFIG_XXHASH=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZSTD_COMMON=y
+CONFIG_ZSTD_COMPRESS=y
+CONFIG_ZSTD_DECOMPRESS=y



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:28 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:28 -0500
Subject: [openwrt/openwrt]  lantiq: use devm for mutex_init
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8093.1732821197.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/67da3d33f3df328f89780bc0c79e1620dc47267a

commit 67da3d33f3df328f89780bc0c79e1620dc47267a
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Thu Oct 31 12:22:04 2024 -0700

    lantiq: use devm for mutex_init
    
    It's common to avoid calling mutex_destroy when done. It's not correct strictly speaking.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16832
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit fccff963c0a6ba035455daea61566f4d121643e3)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch      | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/target/linux/lantiq/patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch b/target/linux/lantiq/patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch
index 81bf72913b..a396efd990 100644
--- a/target/linux/lantiq/patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch
+++ b/target/linux/lantiq/patches-6.6/0008-MIPS-lantiq-backport-old-timer-code.patch
@@ -186,7 +186,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  obj-y += vmmc.o
 --- /dev/null
 +++ b/arch/mips/lantiq/xway/timer.c
-@@ -0,0 +1,886 @@
+@@ -0,0 +1,888 @@
 +#ifndef CONFIG_SOC_AMAZON_SE
 +
 +#include <linux/kernel.h>
@@ -989,7 +989,9 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +	ltq_w32(0xfff, LQ_GPTU_IRNCR);
 +
 +	memset(&timer_dev, 0, sizeof(timer_dev));
-+	mutex_init(&timer_dev.gptu_mutex);
++	ret = devm_mutex_init(&pdev->dev, &timer_dev.gptu_mutex);
++	if (ret)
++		return ret;
 +
 +	lq_enable_gptu();
 +	timer_dev.number_of_timers = GPTU_ID_CFG * 2;



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:23 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:23 -0500
Subject: [openwrt/openwrt]  kernel: package snd-soc-dmic driver
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8094.1732821200.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/2950e189cebda9c0521c84f86c06aaeb447affe2

commit 2950e189cebda9c0521c84f86c06aaeb447affe2
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Fri Oct 25 15:21:57 2024 +0200

    kernel: package snd-soc-dmic driver
    
    It is needed for the stm32/stm32mp1 subtarget.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit e606366a2e018e0a3b25e3dd4b3a937bb53c70e1)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/kernel/linux/modules/sound.mk | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/package/kernel/linux/modules/sound.mk b/package/kernel/linux/modules/sound.mk
index 623f65ac59..f3e44e01ee 100644
--- a/package/kernel/linux/modules/sound.mk
+++ b/package/kernel/linux/modules/sound.mk
@@ -314,6 +314,17 @@ endef
 $(eval $(call KernelPackage,sound-soc-spdif))
 
 
+define KernelPackage/sound-soc-dmic
+  TITLE:=Generic Digital Microphone CODEC
+  KCONFIG:=CONFIG_SND_SOC_DMIC
+  FILES:=$(LINUX_DIR)/sound/soc/codecs/snd-soc-dmic.ko
+  AUTOLOAD:=$(call AutoProbe,snd-soc-dmic)
+  $(call AddDepends/sound,+kmod-sound-soc-core)
+endef
+
+$(eval $(call KernelPackage,sound-soc-dmic))
+
+
 define KernelPackage/pcspkr
   DEPENDS:=@TARGET_x86 +kmod-input-core
   TITLE:=PC speaker support



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:12 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:12 -0500
Subject: [openwrt/openwrt]  ramips: sync upstream Ralink clock patches
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8095.1732821203.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/2d3ad3553740f63d4fdee211a1ab4c3e22a9291b

commit 2d3ad3553740f63d4fdee211a1ab4c3e22a9291b
Author: Shiji Yang <yangshiji66 at qq.com>
AuthorDate: Fri Nov 22 18:12:12 2024 +0800

    ramips: sync upstream Ralink clock patches
    
    1. Add sdhc clock for MT7620 and MT76x8 SoCs.
    2. Fix clock driver warning for RT2880, RT305x and RT3883.
    
    Link: https://lore.kernel.org/all/20240910044024.120009-1-sergio.paracuellos at gmail.com/
    Signed-off-by: Shiji Yang <yangshiji66 at qq.com>
    Link: https://github.com/openwrt/openwrt/pull/17037
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 7bb99bca3dfd878e6ad950b218c0cb96d36d14f4)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ramips/dts/mt7620a.dtsi               |  27 ++---
 target/linux/ramips/dts/mt7620n.dtsi               |  14 +--
 target/linux/ramips/dts/mt7628an.dtsi              |  23 ++--
 target/linux/ramips/dts/rt3883.dtsi                |  20 ++--
 ...tmips-fix-clock-plan-for-Ralink-SoC-RT38.patch} |  15 ++-
 ...mtmips-fix-clocks-probe-order-in-oldest-r.patch | 124 +++++++++++++++++++++
 ...mtmips-add-mmc-related-clocks-for-SoCs-MT.patch | 101 +++++++++++++++++
 7 files changed, 269 insertions(+), 55 deletions(-)

diff --git a/target/linux/ramips/dts/mt7620a.dtsi b/target/linux/ramips/dts/mt7620a.dtsi
index bcc7f4be3f..93b4286193 100644
--- a/target/linux/ramips/dts/mt7620a.dtsi
+++ b/target/linux/ramips/dts/mt7620a.dtsi
@@ -32,13 +32,6 @@
 		compatible = "mti,cpu-interrupt-controller";
 	};
 
-	mmc_clk: mmc-clock {
-		compatible = "fixed-clock";
-		#clock-cells = <0>;
-		clock-frequency = <48000000>;
-		clock-accuracy = <100>;
-	};
-
 	mmc_reg_1v8: regulator-1v8 {
 		compatible = "regulator-fixed";
 
@@ -80,7 +73,7 @@
 			compatible = "ralink,rt2880-timer";
 			reg = <0x100 0x20>;
 
-			clocks = <&sysc 5>;
+			clocks = <&sysc 7>;
 
 			interrupt-parent = <&intc>;
 			interrupts = <1>;
@@ -90,7 +83,7 @@
 			compatible = "ralink,rt2880-wdt";
 			reg = <0x120 0x10>;
 
-			clocks = <&sysc 6>;
+			clocks = <&sysc 8>;
 
 			resets = <&sysc 8>;
 			reset-names = "wdt";
@@ -122,7 +115,7 @@
 			compatible = "ralink,mt7620a-uart", "ralink,rt2880-uart", "ns16550a";
 			reg = <0x500 0x100>;
 
-			clocks = <&sysc 7>;
+			clocks = <&sysc 9>;
 
 			resets = <&sysc 12>;
 
@@ -216,7 +209,7 @@
 			compatible = "ralink,rt2880-i2c";
 			reg = <0x900 0x100>;
 
-			clocks = <&sysc 8>;
+			clocks = <&sysc 10>;
 
 			resets = <&sysc 16>;
 			reset-names = "i2c";
@@ -234,7 +227,7 @@
 			compatible = "mediatek,mt7620-i2s";
 			reg = <0xa00 0x100>;
 
-			clocks = <&sysc 9>;
+			clocks = <&sysc 11>;
 
 			resets = <&sysc 17>;
 			reset-names = "i2s";
@@ -256,7 +249,7 @@
 			compatible = "ralink,rt2880-spi";
 			reg = <0xb00 0x40>;
 
-			clocks = <&sysc 10>;
+			clocks = <&sysc 12>;
 
 			resets = <&sysc 18>;
 			reset-names = "spi";
@@ -274,7 +267,7 @@
 			compatible = "ralink,rt2880-spi";
 			reg = <0xb40 0x60>;
 
-			clocks = <&sysc 11>;
+			clocks = <&sysc 13>;
 
 			resets = <&sysc 18>;
 			reset-names = "spi";
@@ -292,7 +285,7 @@
 			compatible = "ralink,mt7620a-uart", "ralink,rt2880-uart", "ns16550a";
 			reg = <0xc00 0x100>;
 
-			clocks = <&sysc 12>;
+			clocks = <&sysc 14>;
 
 			resets = <&sysc 19>;
 
@@ -539,7 +532,7 @@
 		cap-mmc-highspeed;
 		cap-sd-highspeed;
 
-		clocks = <&mmc_clk>, <&mmc_clk>;
+		clocks = <&sysc 15>, <&sysc 15>;
 		clock-names = "source", "hclk";
 
 		disable-wp;
@@ -645,7 +638,7 @@
 		compatible = "ralink,rt7620-wmac", "ralink,rt2880-wmac";
 		reg = <0x10180000 0x40000>;
 
-		clocks = <&sysc 13>;
+		clocks = <&sysc 16>;
 
 		interrupt-parent = <&cpuintc>;
 		interrupts = <6>;
diff --git a/target/linux/ramips/dts/mt7620n.dtsi b/target/linux/ramips/dts/mt7620n.dtsi
index b284119961..64dbd0a50e 100644
--- a/target/linux/ramips/dts/mt7620n.dtsi
+++ b/target/linux/ramips/dts/mt7620n.dtsi
@@ -51,7 +51,7 @@
 			compatible = "ralink,rt2880-timer";
 			reg = <0x100 0x20>;
 
-			clocks = <&sysc 5>;
+			clocks = <&sysc 7>;
 
 			interrupt-parent = <&intc>;
 			interrupts = <1>;
@@ -61,7 +61,7 @@
 			compatible = "ralink,rt2880-wdt";
 			reg = <0x120 0x10>;
 
-			clocks = <&sysc 6>;
+			clocks = <&sysc 8>;
 
 			resets = <&sysc 8>;
 			reset-names = "wdt";
@@ -171,7 +171,7 @@
 			compatible = "ralink,rt2880-i2c";
 			reg = <0x900 0x100>;
 
-			clocks = <&sysc 8>;
+			clocks = <&sysc 10>;
 
 			resets = <&sysc 16>;
 			reset-names = "i2c";
@@ -189,7 +189,7 @@
 			compatible = "ralink,rt2880-spi";
 			reg = <0xb00 0x40>;
 
-			clocks = <&sysc 10>;
+			clocks = <&sysc 12>;
 
 			resets = <&sysc 18>;
 			reset-names = "spi";
@@ -207,7 +207,7 @@
 			compatible = "ralink,rt2880-spi";
 			reg = <0xb40 0x60>;
 
-			clocks = <&sysc 11>;
+			clocks = <&sysc 13>;
 
 			resets = <&sysc 18>;
 			reset-names = "spi";
@@ -225,7 +225,7 @@
 			compatible = "ralink,mt7620a-uart", "ralink,rt2880-uart", "ns16550a";
 			reg = <0xc00 0x100>;
 
-			clocks = <&sysc 12>;
+			clocks = <&sysc 14>;
 
 			resets = <&sysc 19>;
 
@@ -372,7 +372,7 @@
 		compatible = "ralink,rt7620-wmac", "ralink,rt2880-wmac";
 		reg = <0x10180000 0x40000>;
 
-		clocks = <&sysc 13>;
+		clocks = <&sysc 16>;
 
 		interrupt-parent = <&cpuintc>;
 		interrupts = <6>;
diff --git a/target/linux/ramips/dts/mt7628an.dtsi b/target/linux/ramips/dts/mt7628an.dtsi
index 445c530815..239211b1e1 100644
--- a/target/linux/ramips/dts/mt7628an.dtsi
+++ b/target/linux/ramips/dts/mt7628an.dtsi
@@ -30,13 +30,6 @@
 		compatible = "mti,cpu-interrupt-controller";
 	};
 
-	mmc_clk: mmc-clock {
-		compatible = "fixed-clock";
-		#clock-cells = <0>;
-		clock-frequency = <48000000>;
-		clock-accuracy = <100>;
-	};
-
 	mmc_reg_1v8: regulator-1v8 {
 		compatible = "regulator-fixed";
 
@@ -121,7 +114,7 @@
 			compatible = "mediatek,mt7621-i2c";
 			reg = <0x900 0x100>;
 
-			clocks = <&sysc 7>;
+			clocks = <&sysc 9>;
 			clock-names = "i2c";
 
 			resets = <&sysc 16>;
@@ -140,7 +133,7 @@
 			compatible = "mediatek,mt7628-i2s";
 			reg = <0xa00 0x100>;
 
-			clocks = <&sysc 8>;
+			clocks = <&sysc 10>;
 
 			resets = <&sysc 17>;
 			reset-names = "i2s";
@@ -162,7 +155,7 @@
 			compatible = "ralink,mt7621-spi";
 			reg = <0xb00 0x100>;
 
-			clocks = <&sysc 9>;
+			clocks = <&sysc 11>;
 			clock-names = "spi";
 
 			resets = <&sysc 18>;
@@ -185,7 +178,7 @@
 			reg-io-width = <4>;
 			no-loopback-test;
 
-			clocks = <&sysc 11>;
+			clocks = <&sysc 13>;
 
 			resets = <&sysc 12>;
 
@@ -204,7 +197,7 @@
 			reg-io-width = <4>;
 			no-loopback-test;
 
-			clocks = <&sysc 12>;
+			clocks = <&sysc 14>;
 
 			resets = <&sysc 19>;
 
@@ -225,7 +218,7 @@
 			reg-io-width = <4>;
 			no-loopback-test;
 
-			clocks = <&sysc 13>;
+			clocks = <&sysc 15>;
 
 			resets = <&sysc 20>;
 
@@ -393,7 +386,7 @@
 		cap-mmc-highspeed;
 		cap-sd-highspeed;
 
-		clocks = <&mmc_clk>, <&mmc_clk>;
+		clocks = <&sysc 16>, <&sysc 16>;
 		clock-names = "source", "hclk";
 
 		disable-wp;
@@ -516,7 +509,7 @@
 		compatible = "mediatek,mt7628-wmac";
 		reg = <0x10300000 0x100000>;
 
-		clocks = <&sysc 14>;
+		clocks = <&sysc 17>;
 
 		interrupt-parent = <&cpuintc>;
 		interrupts = <6>;
diff --git a/target/linux/ramips/dts/rt3883.dtsi b/target/linux/ramips/dts/rt3883.dtsi
index 509d1c21e8..363b1959b6 100644
--- a/target/linux/ramips/dts/rt3883.dtsi
+++ b/target/linux/ramips/dts/rt3883.dtsi
@@ -51,7 +51,7 @@
 			compatible = "ralink,rt2880-timer";
 			reg = <0x100 0x20>;
 
-			clocks = <&sysc 4>;
+			clocks = <&sysc 5>;
 
 			interrupt-parent = <&intc>;
 			interrupts = <1>;
@@ -61,7 +61,7 @@
 			compatible = "ralink,rt2880-wdt";
 			reg = <0x120 0x10>;
 
-			clocks = <&sysc 5>;
+			clocks = <&sysc 6>;
 
 			resets = <&sysc 8>;
 			reset-names = "wdt";
@@ -93,7 +93,7 @@
 			compatible = "ralink,rt3883-uart", "ralink,rt2880-uart", "ns16550a";
 			reg = <0x500 0x100>;
 
-			clocks = <&sysc 6>;
+			clocks = <&sysc 7>;
 
 			resets = <&sysc 12>;
 
@@ -187,7 +187,7 @@
 			compatible = "ralink,rt2880-i2c";
 			reg = <0x900 0x100>;
 
-			clocks = <&sysc 7>;
+			clocks = <&sysc 8>;
 
 			resets = <&sysc 16>;
 			reset-names = "i2c";
@@ -205,7 +205,7 @@
 			compatible = "ralink,rt3883-i2s";
 			reg = <0xa00 0x100>;
 
-			clocks = <&sysc 8>;
+			clocks = <&sysc 9>;
 
 			resets = <&sysc 17>;
 			reset-names = "i2s";
@@ -229,7 +229,7 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 
-			clocks = <&sysc 9>;
+			clocks = <&sysc 10>;
 
 			resets = <&sysc 18>;
 			reset-names = "spi";
@@ -246,7 +246,7 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 
-			clocks = <&sysc 10>;
+			clocks = <&sysc 11>;
 
 			resets = <&sysc 18>;
 			reset-names = "spi";
@@ -261,7 +261,7 @@
 			compatible = "ralink,rt3883-uart", "ralink,rt2880-uart", "ns16550a";
 			reg = <0xc00 0x100>;
 
-			clocks = <&sysc 11>;
+			clocks = <&sysc 12>;
 
 			resets = <&sysc 19>;
 
@@ -343,7 +343,7 @@
 		#size-cells = <0>;
 		reg = <0x10100000 0x10000>;
 
-		clocks = <&sysc 12>;
+		clocks = <&sysc 13>;
 
 		resets = <&sysc 21>;
 		reset-names = "fe";
@@ -463,7 +463,7 @@
 		compatible = "ralink,rt3883-wmac", "ralink,rt2880-wmac";
 		reg = <0x10180000 0x40000>;
 
-		clocks = <&sysc 13>;
+		clocks = <&sysc 14>;
 
 		interrupt-parent = <&cpuintc>;
 		interrupts = <6>;
diff --git a/target/linux/ramips/patches-6.6/100-clk-ralink-mtmips-fix-clock-plan-for-Ralink-SoC-RT3883.patch b/target/linux/ramips/patches-6.6/002-01-v6.13-clk-ralink-mtmips-fix-clock-plan-for-Ralink-SoC-RT38.patch
similarity index 75%
rename from target/linux/ramips/patches-6.6/100-clk-ralink-mtmips-fix-clock-plan-for-Ralink-SoC-RT3883.patch
rename to target/linux/ramips/patches-6.6/002-01-v6.13-clk-ralink-mtmips-fix-clock-plan-for-Ralink-SoC-RT38.patch
index a3d58b78f6..422b6dcfb0 100644
--- a/target/linux/ramips/patches-6.6/100-clk-ralink-mtmips-fix-clock-plan-for-Ralink-SoC-RT3883.patch
+++ b/target/linux/ramips/patches-6.6/002-01-v6.13-clk-ralink-mtmips-fix-clock-plan-for-Ralink-SoC-RT38.patch
@@ -1,6 +1,7 @@
-Subject: [PATCH] clk: ralink: mtmips: fix clock plan for Ralink SoC RT3883
-Date: Tue,  6 Aug 2024 16:29:02 +0200
-Message-Id: <20240806142902.224164-1-sergio.paracuellos at gmail.com>
+From 33239152305567b3e9bf052f71fd4baecd626341 Mon Sep 17 00:00:00 2001
+From: Sergio Paracuellos <sergio.paracuellos at gmail.com>
+Date: Tue, 10 Sep 2024 06:40:22 +0200
+Subject: [PATCH 1/3] clk: ralink: mtmips: fix clock plan for Ralink SoC RT3883
 
 Clock plan for Ralink SoC RT3883 needs an extra 'periph' clock to properly
 set some peripherals that has this clock as their parent. When this driver
@@ -14,6 +15,8 @@ properly working clock plan for this SoC.
 
 Fixes: 6f3b15586eef ("clk: ralink: add clock and reset driver for MTMIPS SoCs")
 Signed-off-by: Sergio Paracuellos <sergio.paracuellos at gmail.com>
+Link: https://lore.kernel.org/r/20240910044024.120009-2-sergio.paracuellos at gmail.com
+Signed-off-by: Stephen Boyd <sboyd at kernel.org>
 ---
  drivers/clk/ralink/clk-mtmips.c | 9 +++++++--
  1 file changed, 7 insertions(+), 2 deletions(-)
@@ -24,7 +27,7 @@ Signed-off-by: Sergio Paracuellos <sergio.paracuellos at gmail.com>
  	CLK_FIXED("xtal", NULL, 40000000)
  };
  
-+static struct mtmips_clk_fixed rt3383_fixed_clocks[] = {
++static struct mtmips_clk_fixed rt3883_fixed_clocks[] = {
 +	CLK_FIXED("xtal", NULL, 40000000),
 +	CLK_FIXED("periph", "xtal", 40000000)
 +};
@@ -38,8 +41,8 @@ Signed-off-by: Sergio Paracuellos <sergio.paracuellos at gmail.com>
  	.num_clk_base = ARRAY_SIZE(rt3883_clks_base),
 -	.clk_fixed = rt305x_fixed_clocks,
 -	.num_clk_fixed = ARRAY_SIZE(rt305x_fixed_clocks),
-+	.clk_fixed = rt3383_fixed_clocks,
-+	.num_clk_fixed = ARRAY_SIZE(rt3383_fixed_clocks),
++	.clk_fixed = rt3883_fixed_clocks,
++	.num_clk_fixed = ARRAY_SIZE(rt3883_fixed_clocks),
  	.clk_factor = NULL,
  	.num_clk_factor = 0,
  	.clk_periph = rt5350_pherip_clks,
diff --git a/target/linux/ramips/patches-6.6/002-02-v6.13-clk-ralink-mtmips-fix-clocks-probe-order-in-oldest-r.patch b/target/linux/ramips/patches-6.6/002-02-v6.13-clk-ralink-mtmips-fix-clocks-probe-order-in-oldest-r.patch
new file mode 100644
index 0000000000..3268a18dac
--- /dev/null
+++ b/target/linux/ramips/patches-6.6/002-02-v6.13-clk-ralink-mtmips-fix-clocks-probe-order-in-oldest-r.patch
@@ -0,0 +1,124 @@
+From d34db686a3d74bd564bfce2ada15011c556269fc Mon Sep 17 00:00:00 2001
+From: Sergio Paracuellos <sergio.paracuellos at gmail.com>
+Date: Tue, 10 Sep 2024 06:40:23 +0200
+Subject: [PATCH 2/3] clk: ralink: mtmips: fix clocks probe order in oldest
+ ralink SoCs
+
+Base clocks are the first in being probed and are real dependencies of the
+rest of fixed, factor and peripheral clocks. For old ralink SoCs RT2880,
+RT305x and RT3883 'xtal' must be defined first since in any other case,
+when fixed clocks are probed they are delayed until 'xtal' is probed so the
+following warning appears:
+
+ WARNING: CPU: 0 PID: 0 at drivers/clk/ralink/clk-mtmips.c:499 rt3883_bus_recalc_rate+0x98/0x138
+ Modules linked in:
+ CPU: 0 PID: 0 Comm: swapper Not tainted 6.6.43 #0
+ Stack : 805e58d0 00000000 00000004 8004f950 00000000 00000004 00000000 00000000
+ 80669c54 80830000 80700000 805ae570 80670068 00000001 80669bf8 00000000
+ 00000000 00000000 805ae570 80669b38 00000020 804db7dc 00000000 00000000
+ 203a6d6d 80669b78 80669e48 70617773 00000000 805ae570 00000000 00000009
+ 00000000 00000001 00000004 00000001 00000000 00000000 83fe43b0 00000000
+ ...
+ Call Trace:
+ [<800065d0>] show_stack+0x64/0xf4
+ [<804bca14>] dump_stack_lvl+0x38/0x60
+ [<800218ac>] __warn+0x94/0xe4
+ [<8002195c>] warn_slowpath_fmt+0x60/0x94
+ [<80259ff8>] rt3883_bus_recalc_rate+0x98/0x138
+ [<80254530>] __clk_register+0x568/0x688
+ [<80254838>] of_clk_hw_register+0x18/0x2c
+ [<8070b910>] rt2880_clk_of_clk_init_driver+0x18c/0x594
+ [<8070b628>] of_clk_init+0x1c0/0x23c
+ [<806fc448>] plat_time_init+0x58/0x18c
+ [<806fdaf0>] time_init+0x10/0x6c
+ [<806f9bc4>] start_kernel+0x458/0x67c
+
+ ---[ end trace 0000000000000000 ]---
+
+When this driver was mainlined we could not find any active users of old
+ralink SoCs so we cannot perform any real tests for them. Now, one user
+of a Belkin f9k1109 version 1 device which uses RT3883 SoC appeared and
+reported some issues in openWRT:
+- https://github.com/openwrt/openwrt/issues/16054
+
+Thus, define a 'rt2880_xtal_recalc_rate()' just returning the expected
+frequency 40Mhz and use it along the old ralink SoCs to have a correct
+boot trace with no warnings and a working clock plan from the beggining.
+
+Fixes: 6f3b15586eef ("clk: ralink: add clock and reset driver for MTMIPS SoCs")
+Signed-off-by: Sergio Paracuellos <sergio.paracuellos at gmail.com>
+Link: https://lore.kernel.org/r/20240910044024.120009-3-sergio.paracuellos at gmail.com
+Signed-off-by: Stephen Boyd <sboyd at kernel.org>
+---
+ drivers/clk/ralink/clk-mtmips.c | 21 +++++++++++++--------
+ 1 file changed, 13 insertions(+), 8 deletions(-)
+
+--- a/drivers/clk/ralink/clk-mtmips.c
++++ b/drivers/clk/ralink/clk-mtmips.c
+@@ -263,10 +263,6 @@ err_clk_unreg:
+ 		.rate = _rate		 \
+ 	}
+ 
+-static struct mtmips_clk_fixed rt305x_fixed_clocks[] = {
+-	CLK_FIXED("xtal", NULL, 40000000)
+-};
+-
+ static struct mtmips_clk_fixed rt3883_fixed_clocks[] = {
+ 	CLK_FIXED("xtal", NULL, 40000000),
+ 	CLK_FIXED("periph", "xtal", 40000000)
+@@ -371,6 +367,12 @@ static inline struct mtmips_clk *to_mtmi
+ 	return container_of(hw, struct mtmips_clk, hw);
+ }
+ 
++static unsigned long rt2880_xtal_recalc_rate(struct clk_hw *hw,
++					     unsigned long parent_rate)
++{
++	return 40000000;
++}
++
+ static unsigned long rt5350_xtal_recalc_rate(struct clk_hw *hw,
+ 					     unsigned long parent_rate)
+ {
+@@ -682,10 +684,12 @@ static unsigned long mt76x8_cpu_recalc_r
+ }
+ 
+ static struct mtmips_clk rt2880_clks_base[] = {
++	{ CLK_BASE("xtal", NULL, rt2880_xtal_recalc_rate) },
+ 	{ CLK_BASE("cpu", "xtal", rt2880_cpu_recalc_rate) }
+ };
+ 
+ static struct mtmips_clk rt305x_clks_base[] = {
++	{ CLK_BASE("xtal", NULL, rt2880_xtal_recalc_rate) },
+ 	{ CLK_BASE("cpu", "xtal", rt305x_cpu_recalc_rate) }
+ };
+ 
+@@ -695,6 +699,7 @@ static struct mtmips_clk rt3352_clks_bas
+ };
+ 
+ static struct mtmips_clk rt3883_clks_base[] = {
++	{ CLK_BASE("xtal", NULL, rt2880_xtal_recalc_rate) },
+ 	{ CLK_BASE("cpu", "xtal", rt3883_cpu_recalc_rate) },
+ 	{ CLK_BASE("bus", "cpu", rt3883_bus_recalc_rate) }
+ };
+@@ -751,8 +756,8 @@ err_clk_unreg:
+ static const struct mtmips_clk_data rt2880_clk_data = {
+ 	.clk_base = rt2880_clks_base,
+ 	.num_clk_base = ARRAY_SIZE(rt2880_clks_base),
+-	.clk_fixed = rt305x_fixed_clocks,
+-	.num_clk_fixed = ARRAY_SIZE(rt305x_fixed_clocks),
++	.clk_fixed = NULL,
++	.num_clk_fixed = 0,
+ 	.clk_factor = rt2880_factor_clocks,
+ 	.num_clk_factor = ARRAY_SIZE(rt2880_factor_clocks),
+ 	.clk_periph = rt2880_pherip_clks,
+@@ -762,8 +767,8 @@ static const struct mtmips_clk_data rt28
+ static const struct mtmips_clk_data rt305x_clk_data = {
+ 	.clk_base = rt305x_clks_base,
+ 	.num_clk_base = ARRAY_SIZE(rt305x_clks_base),
+-	.clk_fixed = rt305x_fixed_clocks,
+-	.num_clk_fixed = ARRAY_SIZE(rt305x_fixed_clocks),
++	.clk_fixed = NULL,
++	.num_clk_fixed = 0,
+ 	.clk_factor = rt305x_factor_clocks,
+ 	.num_clk_factor = ARRAY_SIZE(rt305x_factor_clocks),
+ 	.clk_periph = rt305x_pherip_clks,
diff --git a/target/linux/ramips/patches-6.6/002-03-v6.13-clk-ralink-mtmips-add-mmc-related-clocks-for-SoCs-MT.patch b/target/linux/ramips/patches-6.6/002-03-v6.13-clk-ralink-mtmips-add-mmc-related-clocks-for-SoCs-MT.patch
new file mode 100644
index 0000000000..b90a19b7ca
--- /dev/null
+++ b/target/linux/ramips/patches-6.6/002-03-v6.13-clk-ralink-mtmips-add-mmc-related-clocks-for-SoCs-MT.patch
@@ -0,0 +1,101 @@
+From 198675bbc03d437fb80a35d781ad13d622d0ff68 Mon Sep 17 00:00:00 2001
+From: Sergio Paracuellos <sergio.paracuellos at gmail.com>
+Date: Tue, 10 Sep 2024 06:40:24 +0200
+Subject: [PATCH 3/3] clk: ralink: mtmips: add mmc related clocks for SoCs
+ MT7620, MT7628 and MT7688
+
+Original architecture clock code from where this driver was derived did not
+include nothing related to mmc clocks. OpenWRT people started to use mtk-sd
+upstream driver recently and they were forced to use a dts 'fixed-clock'
+node with 48 MHz clock:
+- https://github.com/openwrt/openwrt/pull/15896
+The proper thing to do to avoid that is to add the mmc related clocks to the
+driver to avoid a dts with fixed clocks nodes. The minimal documentation in
+the mt7620 programming guide says that there is a BBP_PLL clock of 480 MHz
+derived from the 40 MHz XTAL and from there a clock divider by ten produces
+the desired SDHC clock of 48 MHz for the mmc. Hence add a fixed clock 'bbppll'
+and factor clock 'sdhc' ten divider child to properly set the 'mmc' peripheral
+clock with the desired 48 Mhz rate.
+
+Signed-off-by: Sergio Paracuellos <sergio.paracuellos at gmail.com>
+Link: https://lore.kernel.org/r/20240910044024.120009-4-sergio.paracuellos at gmail.com
+Signed-off-by: Stephen Boyd <sboyd at kernel.org>
+---
+ drivers/clk/ralink/clk-mtmips.c | 30 +++++++++++++++++++++++-------
+ 1 file changed, 23 insertions(+), 7 deletions(-)
+
+--- a/drivers/clk/ralink/clk-mtmips.c
++++ b/drivers/clk/ralink/clk-mtmips.c
+@@ -207,6 +207,7 @@ static struct mtmips_clk mt7620_pherip_c
+ 	{ CLK_PERIPH("10000b00.spi", "bus") },
+ 	{ CLK_PERIPH("10000b40.spi", "bus") },
+ 	{ CLK_PERIPH("10000c00.uartlite", "periph") },
++	{ CLK_PERIPH("10130000.mmc", "sdhc") },
+ 	{ CLK_PERIPH("10180000.wmac", "xtal") }
+ };
+ 
+@@ -220,6 +221,7 @@ static struct mtmips_clk mt76x8_pherip_c
+ 	{ CLK_PERIPH("10000c00.uart0", "periph") },
+ 	{ CLK_PERIPH("10000d00.uart1", "periph") },
+ 	{ CLK_PERIPH("10000e00.uart2", "periph") },
++	{ CLK_PERIPH("10130000.mmc", "sdhc") },
+ 	{ CLK_PERIPH("10300000.wmac", "xtal") }
+ };
+ 
+@@ -272,8 +274,13 @@ static struct mtmips_clk_fixed rt3352_fi
+ 	CLK_FIXED("periph", "xtal", 40000000)
+ };
+ 
++static struct mtmips_clk_fixed mt7620_fixed_clocks[] = {
++	CLK_FIXED("bbppll", "xtal", 480000000)
++};
++
+ static struct mtmips_clk_fixed mt76x8_fixed_clocks[] = {
+-	CLK_FIXED("pcmi2s", "xtal", 480000000),
++	CLK_FIXED("bbppll", "xtal", 480000000),
++	CLK_FIXED("pcmi2s", "bbppll", 480000000),
+ 	CLK_FIXED("periph", "xtal", 40000000)
+ };
+ 
+@@ -328,6 +335,15 @@ static struct mtmips_clk_factor rt305x_f
+ 	CLK_FACTOR("bus", "cpu", 1, 3)
+ };
+ 
++static struct mtmips_clk_factor mt7620_factor_clocks[] = {
++	CLK_FACTOR("sdhc", "bbppll", 1, 10)
++};
++
++static struct mtmips_clk_factor mt76x8_factor_clocks[] = {
++	CLK_FACTOR("bus", "cpu", 1, 3),
++	CLK_FACTOR("sdhc", "bbppll", 1, 10)
++};
++
+ static int mtmips_register_factor_clocks(struct clk_hw_onecell_data *clk_data,
+ 					 struct mtmips_clk_priv *priv)
+ {
+@@ -811,10 +827,10 @@ static const struct mtmips_clk_data rt53
+ static const struct mtmips_clk_data mt7620_clk_data = {
+ 	.clk_base = mt7620_clks_base,
+ 	.num_clk_base = ARRAY_SIZE(mt7620_clks_base),
+-	.clk_fixed = NULL,
+-	.num_clk_fixed = 0,
+-	.clk_factor = NULL,
+-	.num_clk_factor = 0,
++	.clk_fixed = mt7620_fixed_clocks,
++	.num_clk_fixed = ARRAY_SIZE(mt7620_fixed_clocks),
++	.clk_factor = mt7620_factor_clocks,
++	.num_clk_factor = ARRAY_SIZE(mt7620_factor_clocks),
+ 	.clk_periph = mt7620_pherip_clks,
+ 	.num_clk_periph = ARRAY_SIZE(mt7620_pherip_clks),
+ };
+@@ -824,8 +840,8 @@ static const struct mtmips_clk_data mt76
+ 	.num_clk_base = ARRAY_SIZE(mt76x8_clks_base),
+ 	.clk_fixed = mt76x8_fixed_clocks,
+ 	.num_clk_fixed = ARRAY_SIZE(mt76x8_fixed_clocks),
+-	.clk_factor = rt305x_factor_clocks,
+-	.num_clk_factor = ARRAY_SIZE(rt305x_factor_clocks),
++	.clk_factor = mt76x8_factor_clocks,
++	.num_clk_factor = ARRAY_SIZE(mt76x8_factor_clocks),
+ 	.clk_periph = mt76x8_pherip_clks,
+ 	.num_clk_periph = ARRAY_SIZE(mt76x8_pherip_clks),
+ };



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:02 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:02 -0500
Subject: [openwrt/openwrt]  dropbear: use config_get_bool enable
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8098.1732821211.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/908975850dbc0aa3db25c1045f42ec12e23c06df

commit 908975850dbc0aa3db25c1045f42ec12e23c06df
Author: Sergey Ponomarev <stokito at gmail.com>
AuthorDate: Tue May 28 02:50:09 2024 +0300

    dropbear: use config_get_bool enable
    
    The config_get_bool also works with on/off, yes/no, true/false.
    Add 'main' section name. This will make it easier to change settings from uci.
    Add a link to documentation.
    
    Signed-off-by: Sergey Ponomarev <stokito at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/15579
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 4511fa4b30f73185597990ce563bbf3f96385292)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/network/services/dropbear/Makefile              | 2 +-
 package/network/services/dropbear/files/dropbear.config | 4 +++-
 package/network/services/dropbear/files/dropbear.init   | 2 +-
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/package/network/services/dropbear/Makefile b/package/network/services/dropbear/Makefile
index e9f3bd693c..1918e7dec6 100644
--- a/package/network/services/dropbear/Makefile
+++ b/package/network/services/dropbear/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dropbear
 PKG_VERSION:=2024.85
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:= \
diff --git a/package/network/services/dropbear/files/dropbear.config b/package/network/services/dropbear/files/dropbear.config
index 2139ba0bbe..7eb5975449 100644
--- a/package/network/services/dropbear/files/dropbear.config
+++ b/package/network/services/dropbear/files/dropbear.config
@@ -1,4 +1,6 @@
-config dropbear
+# See https://openwrt.org/docs/guide-user/base-system/dropbear
+config dropbear main
+	option enable '1'
 	option PasswordAuth 'on'
 	option RootPasswordAuth 'on'
 	option Port         '22'
diff --git a/package/network/services/dropbear/files/dropbear.init b/package/network/services/dropbear/files/dropbear.init
index 708fabd326..395237f9bc 100755
--- a/package/network/services/dropbear/files/dropbear.init
+++ b/package/network/services/dropbear/files/dropbear.init
@@ -361,7 +361,7 @@ dropbear_instance()
 load_interfaces()
 {
 	local enable
-	config_get enable "$1" enable 1
+	config_get_bool enable "$1" enable 1
 	[ "${enable}" = "1" ] || return 0
 
 	local direct_iface iface



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:01 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:01 -0500
Subject: [openwrt/openwrt]  kernel: filter out compiler opts from config
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8099.1732821215.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/7142e35777248710635f0152ccee2fba78325395

commit 7142e35777248710635f0152ccee2fba78325395
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Wed Oct 2 15:25:35 2024 -0700

    kernel: filter out compiler opts from config
    
    These get dynamically set based on compiler version. Not relevant for
    targets.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16770
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit cd92cbddf8c473507a9af290c99f2aef8c368784)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/airoha/an7581/config-6.6        | 3 ---
 target/linux/airoha/en7523/config-6.6        | 3 ---
 target/linux/apm821xx/config-6.6             | 3 ---
 target/linux/archs38/config-6.6              | 3 ---
 target/linux/at91/sam9x/config-6.6           | 3 ---
 target/linux/at91/sama5/config-6.6           | 3 ---
 target/linux/at91/sama7/config-6.6           | 3 ---
 target/linux/ath79/config-6.6                | 3 ---
 target/linux/bcm27xx/bcm2708/config-6.6      | 3 ---
 target/linux/bcm27xx/bcm2709/config-6.6      | 3 ---
 target/linux/bcm27xx/bcm2710/config-6.6      | 3 ---
 target/linux/bcm27xx/bcm2711/config-6.6      | 3 ---
 target/linux/bcm27xx/bcm2712/config-6.6      | 3 ---
 target/linux/bcm47xx/config-6.6              | 2 --
 target/linux/bcm4908/config-6.6              | 2 --
 target/linux/bcm53xx/config-6.6              | 2 --
 target/linux/bmips/bcm6318/config-6.6        | 3 ---
 target/linux/bmips/bcm63268/config-6.6       | 3 ---
 target/linux/bmips/bcm6328/config-6.6        | 3 ---
 target/linux/bmips/bcm6358/config-6.6        | 3 ---
 target/linux/bmips/bcm6362/config-6.6        | 3 ---
 target/linux/bmips/bcm6368/config-6.6        | 3 ---
 target/linux/d1/config-6.6                   | 2 --
 target/linux/gemini/config-6.6               | 3 ---
 target/linux/generic/config-filter           | 3 +++
 target/linux/imx/config-6.6                  | 2 --
 target/linux/ipq40xx/config-6.6              | 2 --
 target/linux/ipq806x/config-6.6              | 2 --
 target/linux/ixp4xx/config-6.6               | 3 ---
 target/linux/kirkwood/config-6.6             | 2 --
 target/linux/lantiq/config-6.6               | 3 ---
 target/linux/layerscape/armv7/config-6.6     | 2 --
 target/linux/layerscape/armv8_64b/config-6.6 | 3 ---
 target/linux/loongarch64/config-6.6          | 2 --
 target/linux/malta/config-6.6                | 2 --
 target/linux/mediatek/filogic/config-6.6     | 2 --
 target/linux/mediatek/mt7622/config-6.6      | 2 --
 target/linux/mediatek/mt7623/config-6.6      | 2 --
 target/linux/mediatek/mt7629/config-6.6      | 2 --
 target/linux/mpc85xx/config-6.6              | 2 --
 target/linux/mvebu/config-6.6                | 2 --
 target/linux/mxs/config-6.6                  | 2 --
 target/linux/octeon/config-6.6               | 3 ---
 target/linux/omap/config-6.6                 | 3 ---
 target/linux/pistachio/config-6.6            | 3 ---
 target/linux/qoriq/config-6.6                | 3 ---
 target/linux/qualcommax/config-6.6           | 2 --
 target/linux/ramips/mt7620/config-6.6        | 3 ---
 target/linux/ramips/mt7621/config-6.6        | 3 ---
 target/linux/ramips/mt76x8/config-6.6        | 3 ---
 target/linux/ramips/rt288x/config-6.6        | 3 ---
 target/linux/ramips/rt305x/config-6.6        | 3 ---
 target/linux/ramips/rt3883/config-6.6        | 3 ---
 target/linux/rockchip/armv8/config-6.6       | 3 ---
 target/linux/sifiveu/config-6.6              | 2 --
 target/linux/siflower/sf19a2890/config-6.6   | 3 ---
 target/linux/starfive/config-6.6             | 2 --
 target/linux/tegra/config-6.6                | 3 ---
 target/linux/x86/config-6.6                  | 2 --
 target/linux/zynq/config-6.6                 | 3 ---
 60 files changed, 3 insertions(+), 155 deletions(-)

diff --git a/target/linux/airoha/an7581/config-6.6 b/target/linux/airoha/an7581/config-6.6
index 5001de9b19..b26cbeeb33 100644
--- a/target/linux/airoha/an7581/config-6.6
+++ b/target/linux/airoha/an7581/config-6.6
@@ -111,8 +111,6 @@ CONFIG_CAVIUM_ERRATUM_30115=y
 CONFIG_CAVIUM_TX2_ERRATUM_219=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 # CONFIG_CFS_BANDWIDTH is not set
 CONFIG_CGROUPS=y
 CONFIG_CGROUP_CPUACCT=y
@@ -232,7 +230,6 @@ CONFIG_FUNCTION_ALIGNMENT_4B=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 # CONFIG_FW_LOADER_USER_HELPER is not set
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
diff --git a/target/linux/airoha/en7523/config-6.6 b/target/linux/airoha/en7523/config-6.6
index ce93f7d9ff..a40b61696a 100644
--- a/target/linux/airoha/en7523/config-6.6
+++ b/target/linux/airoha/en7523/config-6.6
@@ -45,8 +45,6 @@ CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
 CONFIG_CACHE_L2X0=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE="rootfstype=squashfs,jffs2"
 CONFIG_CMDLINE_FROM_BOOTLOADER=y
@@ -102,7 +100,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
diff --git a/target/linux/apm821xx/config-6.6 b/target/linux/apm821xx/config-6.6
index 33e586632c..a9c9a952c8 100644
--- a/target/linux/apm821xx/config-6.6
+++ b/target/linux/apm821xx/config-6.6
@@ -34,8 +34,6 @@ CONFIG_BOOKE=y
 CONFIG_BOOKE_OR_40x=y
 CONFIG_BOOKE_WDT=y
 # CONFIG_CANYONLANDS is not set
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE="rootfstype=squashfs noinitrd"
 CONFIG_CMDLINE_FROM_BOOTLOADER=y
@@ -83,7 +81,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/archs38/config-6.6 b/target/linux/archs38/config-6.6
index 6298ce9e46..dab1b855b9 100644
--- a/target/linux/archs38/config-6.6
+++ b/target/linux/archs38/config-6.6
@@ -47,8 +47,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16
 CONFIG_BLK_DEV_RAM_SIZE=4096
 CONFIG_BLK_DEV_SD=y
 CONFIG_BUFFER_HEAD=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLK_HSDK=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_COMMON_CLK=y
@@ -103,7 +101,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CSUM=y
diff --git a/target/linux/at91/sam9x/config-6.6 b/target/linux/at91/sam9x/config-6.6
index d5cfa5f753..2631f0feea 100644
--- a/target/linux/at91/sam9x/config-6.6
+++ b/target/linux/at91/sam9x/config-6.6
@@ -44,8 +44,6 @@ CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y
 CONFIG_BLK_PM=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_COMMON_CLK=y
 CONFIG_COMMON_CLK_AT91=y
@@ -109,7 +107,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/at91/sama5/config-6.6 b/target/linux/at91/sama5/config-6.6
index 04eee7a210..d04e10f9e1 100644
--- a/target/linux/at91/sama5/config-6.6
+++ b/target/linux/at91/sama5/config-6.6
@@ -54,8 +54,6 @@ CONFIG_BLK_PM=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_CACHE_L2X0=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMA=y
 CONFIG_CMA_ALIGNMENT=8
@@ -181,7 +179,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/at91/sama7/config-6.6 b/target/linux/at91/sama7/config-6.6
index e3455c5e37..c69cbdf767 100644
--- a/target/linux/at91/sama7/config-6.6
+++ b/target/linux/at91/sama7/config-6.6
@@ -45,8 +45,6 @@ CONFIG_BUFFER_HEAD=y
 # CONFIG_CACHE_L2X0 is not set
 CONFIG_CAN=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMA=y
 CONFIG_CMA_ALIGNMENT=9
@@ -162,7 +160,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/ath79/config-6.6 b/target/linux/ath79/config-6.6
index 92057c343c..c43dbfd719 100644
--- a/target/linux/ath79/config-6.6
+++ b/target/linux/ath79/config-6.6
@@ -14,8 +14,6 @@ CONFIG_AT803X_PHY=y
 CONFIG_ATH79=y
 CONFIG_ATH79_WDT=y
 CONFIG_BLK_MQ_PCI=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE="rootfstype=squashfs,jffs2"
@@ -58,7 +56,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/bcm27xx/bcm2708/config-6.6 b/target/linux/bcm27xx/bcm2708/config-6.6
index 4872e44642..b587b5d719 100644
--- a/target/linux/bcm27xx/bcm2708/config-6.6
+++ b/target/linux/bcm27xx/bcm2708/config-6.6
@@ -55,8 +55,6 @@ CONFIG_BRCM_CHAR_DRIVERS=y
 CONFIG_BUFFER_HEAD=y
 # CONFIG_CACHE_L2X0 is not set
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLK_BCM2711_DVP=y
 CONFIG_CLK_BCM2835=y
@@ -172,7 +170,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/bcm27xx/bcm2709/config-6.6 b/target/linux/bcm27xx/bcm2709/config-6.6
index 23e93241df..4a295d52c8 100644
--- a/target/linux/bcm27xx/bcm2709/config-6.6
+++ b/target/linux/bcm27xx/bcm2709/config-6.6
@@ -69,8 +69,6 @@ CONFIG_BROADCOM_PHY=y
 CONFIG_BUFFER_HEAD=y
 # CONFIG_CACHE_L2X0 is not set
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLK_BCM2711_DVP=y
 CONFIG_CLK_BCM2835=y
@@ -211,7 +209,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/bcm27xx/bcm2710/config-6.6 b/target/linux/bcm27xx/bcm2710/config-6.6
index 5b7d6ae4f1..97f2f110b0 100644
--- a/target/linux/bcm27xx/bcm2710/config-6.6
+++ b/target/linux/bcm27xx/bcm2710/config-6.6
@@ -85,8 +85,6 @@ CONFIG_CAVIUM_ERRATUM_23154=y
 CONFIG_CAVIUM_ERRATUM_27456=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLK_BCM2711_DVP=y
 CONFIG_CLK_BCM2835=y
@@ -218,7 +216,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
diff --git a/target/linux/bcm27xx/bcm2711/config-6.6 b/target/linux/bcm27xx/bcm2711/config-6.6
index 270763549a..f9b7469607 100644
--- a/target/linux/bcm27xx/bcm2711/config-6.6
+++ b/target/linux/bcm27xx/bcm2711/config-6.6
@@ -84,8 +84,6 @@ CONFIG_CAVIUM_ERRATUM_23154=y
 CONFIG_CAVIUM_ERRATUM_27456=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLK_BCM2711_DVP=y
 CONFIG_CLK_BCM2835=y
@@ -219,7 +217,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_NUMA=y
diff --git a/target/linux/bcm27xx/bcm2712/config-6.6 b/target/linux/bcm27xx/bcm2712/config-6.6
index a5eb6c4d0e..5abc41ff68 100644
--- a/target/linux/bcm27xx/bcm2712/config-6.6
+++ b/target/linux/bcm27xx/bcm2712/config-6.6
@@ -110,8 +110,6 @@ CONFIG_BUFFER_HEAD=y
 CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLK_BCM2711_DVP=y
 CONFIG_CLK_BCM2835=y
@@ -262,7 +260,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_NUMA=y
diff --git a/target/linux/bcm47xx/config-6.6 b/target/linux/bcm47xx/config-6.6
index dcf98603d7..ec549f6e33 100644
--- a/target/linux/bcm47xx/config-6.6
+++ b/target/linux/bcm47xx/config-6.6
@@ -27,8 +27,6 @@ CONFIG_BCMA_PFLASH=y
 CONFIG_BCMA_SFLASH=y
 # CONFIG_BGMAC_BCMA is not set
 CONFIG_BLK_MQ_PCI=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE="noinitrd console=ttyS0,115200"
diff --git a/target/linux/bcm4908/config-6.6 b/target/linux/bcm4908/config-6.6
index 10e89cea81..02eb2f2ce6 100644
--- a/target/linux/bcm4908/config-6.6
+++ b/target/linux/bcm4908/config-6.6
@@ -49,8 +49,6 @@ CONFIG_BLK_PM=y
 CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLK_BCM_63XX=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE="earlycon=bcm63xx_uart,0xff800640 console=ttyS0,115200"
diff --git a/target/linux/bcm53xx/config-6.6 b/target/linux/bcm53xx/config-6.6
index cd62b0df58..9e3211801c 100644
--- a/target/linux/bcm53xx/config-6.6
+++ b/target/linux/bcm53xx/config-6.6
@@ -73,8 +73,6 @@ CONFIG_BOUNCE=y
 CONFIG_BROADCOM_PHY=y
 CONFIG_CACHE_L2X0=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y
 CONFIG_CLKSRC_MMIO=y
 # CONFIG_CLK_BCM_NS2 is not set
diff --git a/target/linux/bmips/bcm6318/config-6.6 b/target/linux/bmips/bcm6318/config-6.6
index 665e7f2847..ae4516cdcc 100644
--- a/target/linux/bmips/bcm6318/config-6.6
+++ b/target/linux/bmips/bcm6318/config-6.6
@@ -17,8 +17,6 @@ CONFIG_BCM7038_WDT=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_BLK_PM=y
 CONFIG_BMIPS_GENERIC=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 # CONFIG_CLK_BCM63268_TIMER is not set
 CONFIG_CLK_BCM_63XX_GATE=y
@@ -86,7 +84,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CFE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/bmips/bcm63268/config-6.6 b/target/linux/bmips/bcm63268/config-6.6
index 8e060fd77c..e71c70dce9 100644
--- a/target/linux/bmips/bcm63268/config-6.6
+++ b/target/linux/bmips/bcm63268/config-6.6
@@ -17,8 +17,6 @@ CONFIG_BCM7038_WDT=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_BLK_PM=y
 CONFIG_BMIPS_GENERIC=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLK_BCM63268_TIMER=y
 CONFIG_CLK_BCM_63XX_GATE=y
@@ -87,7 +85,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CFE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/bmips/bcm6328/config-6.6 b/target/linux/bmips/bcm6328/config-6.6
index 95d0ce6c9e..c069c11d9b 100644
--- a/target/linux/bmips/bcm6328/config-6.6
+++ b/target/linux/bmips/bcm6328/config-6.6
@@ -17,8 +17,6 @@ CONFIG_BCM7038_WDT=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_BLK_PM=y
 CONFIG_BMIPS_GENERIC=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 # CONFIG_CLK_BCM63268_TIMER is not set
 CONFIG_CLK_BCM_63XX_GATE=y
@@ -87,7 +85,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CFE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/bmips/bcm6358/config-6.6 b/target/linux/bmips/bcm6358/config-6.6
index 8247e65e34..0b3c0dd701 100644
--- a/target/linux/bmips/bcm6358/config-6.6
+++ b/target/linux/bmips/bcm6358/config-6.6
@@ -15,8 +15,6 @@ CONFIG_BCM7038_WDT=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_BLK_PM=y
 CONFIG_BMIPS_GENERIC=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 # CONFIG_CLK_BCM63268_TIMER is not set
 CONFIG_CLK_BCM_63XX_GATE=y
@@ -84,7 +82,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CFE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/bmips/bcm6362/config-6.6 b/target/linux/bmips/bcm6362/config-6.6
index c47f72c1b6..5e6a936ab1 100644
--- a/target/linux/bmips/bcm6362/config-6.6
+++ b/target/linux/bmips/bcm6362/config-6.6
@@ -17,8 +17,6 @@ CONFIG_BCM7038_WDT=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_BLK_PM=y
 CONFIG_BMIPS_GENERIC=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 # CONFIG_CLK_BCM63268_TIMER is not set
 CONFIG_CLK_BCM_63XX_GATE=y
@@ -87,7 +85,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CFE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/bmips/bcm6368/config-6.6 b/target/linux/bmips/bcm6368/config-6.6
index 204b1628a4..e214d9a0f1 100644
--- a/target/linux/bmips/bcm6368/config-6.6
+++ b/target/linux/bmips/bcm6368/config-6.6
@@ -16,8 +16,6 @@ CONFIG_BCM7038_WDT=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_BLK_PM=y
 CONFIG_BMIPS_GENERIC=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 # CONFIG_CLK_BCM63268_TIMER is not set
 CONFIG_CLK_BCM_63XX_GATE=y
@@ -86,7 +84,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CFE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/d1/config-6.6 b/target/linux/d1/config-6.6
index 5a5b4c3d36..7330cc0e24 100644
--- a/target/linux/d1/config-6.6
+++ b/target/linux/d1/config-6.6
@@ -22,8 +22,6 @@ CONFIG_ASSOCIATIVE_ARRAY=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CLZ_TAB=y
diff --git a/target/linux/gemini/config-6.6 b/target/linux/gemini/config-6.6
index a93297a423..2e590540af 100644
--- a/target/linux/gemini/config-6.6
+++ b/target/linux/gemini/config-6.6
@@ -35,8 +35,6 @@ CONFIG_BOUNCE=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_CACHESTAT_SYSCALL=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMA=y
@@ -187,7 +185,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
 # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GEMINI_ETHERNET=y
 CONFIG_GENERIC_ALLOCATOR=y
diff --git a/target/linux/generic/config-filter b/target/linux/generic/config-filter
index e72c334ee7..274c31ecb0 100644
--- a/target/linux/generic/config-filter
+++ b/target/linux/generic/config-filter
@@ -3,8 +3,11 @@
 # CONFIG_ARM64_CONT_.*_SHIFT is not set
 # CONFIG_AS_.* is not set
 # CONFIG_CC_(CAN|HAS|IS|VERSION)_.* is not set
+# CONFIG_CC_IMPLICIT_FALLTHROUGH is not set
+# CONFIG_CC_NO_ARRAY_BOUNDS is not set
 CONFIG_CLANG_VERSION=.*
 CONFIG_FRAME_WARN=.*
+# CONFIG_GCC10_NO_ARRAY_BOUNDS is not set
 # CONFIG_GCC_VERSION is not set
 # CONFIG_HAVE_(?!(ARCH_TIMER|TCM|SMP)).* is not set
 # CONFIG_INLINE_.* is not set
diff --git a/target/linux/imx/config-6.6 b/target/linux/imx/config-6.6
index 75ad42c6df..fb841686ff 100644
--- a/target/linux/imx/config-6.6
+++ b/target/linux/imx/config-6.6
@@ -44,8 +44,6 @@ CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_PM=y
 CONFIG_CACHE_L2X0=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_IMX_GPT=y
 CONFIG_CLKSRC_MMIO=y
 # CONFIG_CLK_IMX8MM is not set
diff --git a/target/linux/ipq40xx/config-6.6 b/target/linux/ipq40xx/config-6.6
index 69c2752894..d1c181cd0d 100644
--- a/target/linux/ipq40xx/config-6.6
+++ b/target/linux/ipq40xx/config-6.6
@@ -52,8 +52,6 @@ CONFIG_BLK_MQ_PCI=y
 CONFIG_BOUNCE=y
 # CONFIG_CACHE_L2X0 is not set
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_QCOM=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE_PARTITION=y
diff --git a/target/linux/ipq806x/config-6.6 b/target/linux/ipq806x/config-6.6
index af5ccb11ac..bc3761b2e5 100644
--- a/target/linux/ipq806x/config-6.6
+++ b/target/linux/ipq806x/config-6.6
@@ -57,8 +57,6 @@ CONFIG_BLK_MQ_PCI=y
 CONFIG_BOUNCE=y
 # CONFIG_CACHE_L2X0 is not set
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_QCOM=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE_OVERRIDE=y
diff --git a/target/linux/ixp4xx/config-6.6 b/target/linux/ixp4xx/config-6.6
index 960012ada4..84a72c8d5c 100644
--- a/target/linux/ixp4xx/config-6.6
+++ b/target/linux/ixp4xx/config-6.6
@@ -32,8 +32,6 @@ CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_COMMON_CLK=y
@@ -88,7 +86,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
diff --git a/target/linux/kirkwood/config-6.6 b/target/linux/kirkwood/config-6.6
index c5cfecd4e3..751d3e6a1b 100644
--- a/target/linux/kirkwood/config-6.6
+++ b/target/linux/kirkwood/config-6.6
@@ -38,8 +38,6 @@ CONFIG_BLK_MQ_PCI=y
 CONFIG_CACHE_FEROCEON_L2=y
 # CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_COMMON_CLK=y
diff --git a/target/linux/lantiq/config-6.6 b/target/linux/lantiq/config-6.6
index 1890d82ff8..2bc5b92ce8 100644
--- a/target/linux/lantiq/config-6.6
+++ b/target/linux/lantiq/config-6.6
@@ -4,8 +4,6 @@ CONFIG_ARCH_KEEP_MEMBLOCK=y
 CONFIG_ARCH_MMAP_RND_BITS_MAX=15
 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
@@ -44,7 +42,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/layerscape/armv7/config-6.6 b/target/linux/layerscape/armv7/config-6.6
index 0a244a85cd..be8eca1bf7 100644
--- a/target/linux/layerscape/armv7/config-6.6
+++ b/target/linux/layerscape/armv7/config-6.6
@@ -77,8 +77,6 @@ CONFIG_BROADCOM_PHY=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_CACHE_L2X0=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CDROM=y
 CONFIG_CHECKPOINT_RESTORE=y
 CONFIG_CHR_DEV_SG=y
diff --git a/target/linux/layerscape/armv8_64b/config-6.6 b/target/linux/layerscape/armv8_64b/config-6.6
index 3c052edb7d..55b9d9b934 100644
--- a/target/linux/layerscape/armv8_64b/config-6.6
+++ b/target/linux/layerscape/armv8_64b/config-6.6
@@ -110,8 +110,6 @@ CONFIG_CAVIUM_ERRATUM_23154=y
 CONFIG_CAVIUM_ERRATUM_27456=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CHECKPOINT_RESTORE=y
 CONFIG_CHROME_PLATFORMS=y
 CONFIG_CLK_LS1028A_PLLDIG=y
@@ -330,7 +328,6 @@ CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
 # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
 CONFIG_GARP=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
diff --git a/target/linux/loongarch64/config-6.6 b/target/linux/loongarch64/config-6.6
index 5cbf1177cd..57bc7d5691 100644
--- a/target/linux/loongarch64/config-6.6
+++ b/target/linux/loongarch64/config-6.6
@@ -93,8 +93,6 @@ CONFIG_BSD_PROCESS_ACCT_V3=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_BUG_ON_DATA_CORRUPTION=y
 CONFIG_CACHESTAT_SYSCALL=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CDROM=y
 CONFIG_CFS_BANDWIDTH=y
 CONFIG_CGROUPS=y
diff --git a/target/linux/malta/config-6.6 b/target/linux/malta/config-6.6
index f6d9049f4d..a635e2c39e 100644
--- a/target/linux/malta/config-6.6
+++ b/target/linux/malta/config-6.6
@@ -21,8 +21,6 @@ CONFIG_BOARD_SCACHE=y
 CONFIG_BOOT_ELF32=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_BUILTIN_DTB=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLKBLD_I8253=y
 CONFIG_CLKEVT_I8253=y
diff --git a/target/linux/mediatek/filogic/config-6.6 b/target/linux/mediatek/filogic/config-6.6
index 936f1009d9..408ac5483e 100644
--- a/target/linux/mediatek/filogic/config-6.6
+++ b/target/linux/mediatek/filogic/config-6.6
@@ -56,8 +56,6 @@ CONFIG_BUFFER_HEAD=y
 CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE_OVERRIDE=y
diff --git a/target/linux/mediatek/mt7622/config-6.6 b/target/linux/mediatek/mt7622/config-6.6
index 9440a7bb28..ec3be8df9a 100644
--- a/target/linux/mediatek/mt7622/config-6.6
+++ b/target/linux/mediatek/mt7622/config-6.6
@@ -56,8 +56,6 @@ CONFIG_BUFFER_HEAD=y
 CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
 # CONFIG_CMDLINE_OVERRIDE is not set
diff --git a/target/linux/mediatek/mt7623/config-6.6 b/target/linux/mediatek/mt7623/config-6.6
index dc31c230a2..6bc92a09dc 100644
--- a/target/linux/mediatek/mt7623/config-6.6
+++ b/target/linux/mediatek/mt7623/config-6.6
@@ -52,8 +52,6 @@ CONFIG_BOUNCE=y
 CONFIG_BUFFER_HEAD=y
 # CONFIG_CACHE_L2X0 is not set
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE="earlyprintk console=ttyS0,115200 rootfstype=squashfs,jffs2"
diff --git a/target/linux/mediatek/mt7629/config-6.6 b/target/linux/mediatek/mt7629/config-6.6
index d74e143c10..9f57bda3e9 100644
--- a/target/linux/mediatek/mt7629/config-6.6
+++ b/target/linux/mediatek/mt7629/config-6.6
@@ -37,8 +37,6 @@ CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
 CONFIG_CACHE_L2X0=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 # CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set
 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 CONFIG_CHR_DEV_SCH=y
diff --git a/target/linux/mpc85xx/config-6.6 b/target/linux/mpc85xx/config-6.6
index c5563958a8..132917bf2b 100644
--- a/target/linux/mpc85xx/config-6.6
+++ b/target/linux/mpc85xx/config-6.6
@@ -29,8 +29,6 @@ CONFIG_BOOKE_WDT=y
 # CONFIG_BSC9131_RDB is not set
 # CONFIG_BSC9132_QDS is not set
 # CONFIG_C293_PCIE is not set
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CLZ_TAB=y
 CONFIG_CMDLINE="console=ttyS0,115200"
diff --git a/target/linux/mvebu/config-6.6 b/target/linux/mvebu/config-6.6
index f132884d49..bb29d80c5c 100644
--- a/target/linux/mvebu/config-6.6
+++ b/target/linux/mvebu/config-6.6
@@ -57,8 +57,6 @@ CONFIG_BOUNCE=y
 # CONFIG_CACHE_FEROCEON_L2 is not set
 CONFIG_CACHE_L2X0=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
diff --git a/target/linux/mxs/config-6.6 b/target/linux/mxs/config-6.6
index b4bc5b3051..b954ea2548 100644
--- a/target/linux/mxs/config-6.6
+++ b/target/linux/mxs/config-6.6
@@ -32,8 +32,6 @@ CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y
 CONFIG_BLK_PM=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE="console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootwait"
diff --git a/target/linux/octeon/config-6.6 b/target/linux/octeon/config-6.6
index 724361d5ea..cc2dadbe9c 100644
--- a/target/linux/octeon/config-6.6
+++ b/target/linux/octeon/config-6.6
@@ -25,8 +25,6 @@ CONFIG_CAVIUM_OCTEON_LOCK_L2_MEMCPY=y
 CONFIG_CAVIUM_OCTEON_LOCK_L2_TLB=y
 CONFIG_CAVIUM_OCTEON_SOC=y
 CONFIG_CAVIUM_RESERVE32=0
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLONE_BACKWARDS=y
 # CONFIG_COMMON_CLK is not set
@@ -90,7 +88,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/omap/config-6.6 b/target/linux/omap/config-6.6
index f85a68f0aa..5f19df0d8b 100644
--- a/target/linux/omap/config-6.6
+++ b/target/linux/omap/config-6.6
@@ -66,8 +66,6 @@ CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_CACHE_L2X0=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEC_CORE=y
 # CONFIG_CHARGER_TPS65217 is not set
 CONFIG_CLKSRC_MMIO=y
@@ -244,7 +242,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
 CONFIG_GENERIC_BUG=y
diff --git a/target/linux/pistachio/config-6.6 b/target/linux/pistachio/config-6.6
index 80ff36ebbb..69c566a1e8 100644
--- a/target/linux/pistachio/config-6.6
+++ b/target/linux/pistachio/config-6.6
@@ -10,8 +10,6 @@ CONFIG_BLK_DEV_SD=y
 CONFIG_BOARD_SCACHE=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_BUILTIN_DTB=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLKSRC_MIPS_GIC=y
 CONFIG_CLKSRC_PISTACHIO=y
@@ -102,7 +100,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/qoriq/config-6.6 b/target/linux/qoriq/config-6.6
index 750e6c6551..28ece0679f 100644
--- a/target/linux/qoriq/config-6.6
+++ b/target/linux/qoriq/config-6.6
@@ -29,8 +29,6 @@ CONFIG_BOOKE=y
 CONFIG_BOOKE_OR_40x=y
 CONFIG_BOOKE_WDT=y
 CONFIG_BUFFER_HEAD=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLK_QORIQ=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CLZ_TAB=y
@@ -148,7 +146,6 @@ CONFIG_FUNCTION_ERROR_INJECTION=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
diff --git a/target/linux/qualcommax/config-6.6 b/target/linux/qualcommax/config-6.6
index ac2494d749..ac5059682a 100644
--- a/target/linux/qualcommax/config-6.6
+++ b/target/linux/qualcommax/config-6.6
@@ -65,8 +65,6 @@ CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
 CONFIG_CAVIUM_TX2_ERRATUM_219=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_COMMON_CLK=y
 CONFIG_COMMON_CLK_QCOM=y
diff --git a/target/linux/ramips/mt7620/config-6.6 b/target/linux/ramips/mt7620/config-6.6
index 2c95b9c960..edd64a642c 100644
--- a/target/linux/ramips/mt7620/config-6.6
+++ b/target/linux/ramips/mt7620/config-6.6
@@ -6,8 +6,6 @@ CONFIG_ARCH_MMAP_RND_BITS_MAX=15
 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_BLK_MQ_PCI=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CEVT_SYSTICK_QUIRK=y
 CONFIG_CLKEVT_RT3352=y
@@ -60,7 +58,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/ramips/mt7621/config-6.6 b/target/linux/ramips/mt7621/config-6.6
index d1ca85aebd..7a3e68ef45 100644
--- a/target/linux/ramips/mt7621/config-6.6
+++ b/target/linux/ramips/mt7621/config-6.6
@@ -7,8 +7,6 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_AT803X_PHY=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_BOARD_SCACHE=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLKSRC_MIPS_GIC=y
 CONFIG_CLK_MT7621=y
@@ -65,7 +63,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/ramips/mt76x8/config-6.6 b/target/linux/ramips/mt76x8/config-6.6
index bf57a7a330..31dc4a980f 100644
--- a/target/linux/ramips/mt76x8/config-6.6
+++ b/target/linux/ramips/mt76x8/config-6.6
@@ -5,8 +5,6 @@ CONFIG_ARCH_MMAP_RND_BITS_MAX=15
 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_BLK_MQ_PCI=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CEVT_SYSTICK_QUIRK=y
 CONFIG_CLKEVT_RT3352=y
@@ -58,7 +56,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/ramips/rt288x/config-6.6 b/target/linux/ramips/rt288x/config-6.6
index 986bd1ef3e..0c9798b9f3 100644
--- a/target/linux/ramips/rt288x/config-6.6
+++ b/target/linux/ramips/rt288x/config-6.6
@@ -5,8 +5,6 @@ CONFIG_ARCH_MMAP_RND_BITS_MAX=15
 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_BLK_MQ_PCI=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLK_MTMIPS=y
 CONFIG_CLONE_BACKWARDS=y
@@ -51,7 +49,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/ramips/rt305x/config-6.6 b/target/linux/ramips/rt305x/config-6.6
index 9b34b94cff..6f7b7ea2a1 100644
--- a/target/linux/ramips/rt305x/config-6.6
+++ b/target/linux/ramips/rt305x/config-6.6
@@ -4,8 +4,6 @@ CONFIG_ARCH_KEEP_MEMBLOCK=y
 CONFIG_ARCH_MMAP_RND_BITS_MAX=15
 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CEVT_SYSTICK_QUIRK=y
 CONFIG_CLKEVT_RT3352=y
@@ -54,7 +52,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/ramips/rt3883/config-6.6 b/target/linux/ramips/rt3883/config-6.6
index 7b3f6916ac..4b768bfb77 100644
--- a/target/linux/ramips/rt3883/config-6.6
+++ b/target/linux/ramips/rt3883/config-6.6
@@ -6,8 +6,6 @@ CONFIG_ARCH_MMAP_RND_BITS_MAX=15
 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_BLK_MQ_PCI=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLK_MTMIPS=y
 CONFIG_CLONE_BACKWARDS=y
@@ -54,7 +52,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
diff --git a/target/linux/rockchip/armv8/config-6.6 b/target/linux/rockchip/armv8/config-6.6
index fddc85f9d7..56fb2f96a1 100644
--- a/target/linux/rockchip/armv8/config-6.6
+++ b/target/linux/rockchip/armv8/config-6.6
@@ -118,8 +118,6 @@ CONFIG_BUFFER_HEAD=y
 CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
 CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
 CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CHARGER_GPIO=y
 # CONFIG_CHARGER_RK817 is not set
 CONFIG_CLKSRC_MMIO=y
@@ -259,7 +257,6 @@ CONFIG_FUNCTION_ALIGNMENT_4B=y
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
 CONFIG_GENERIC_ALLOCATOR=y
diff --git a/target/linux/sifiveu/config-6.6 b/target/linux/sifiveu/config-6.6
index 8ed8f766c8..595090be19 100644
--- a/target/linux/sifiveu/config-6.6
+++ b/target/linux/sifiveu/config-6.6
@@ -23,8 +23,6 @@ CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_CAVIUM_PTP=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLK_ANALOGBITS_WRPLL_CLN28HPC=y
 CONFIG_CLK_SIFIVE=y
 CONFIG_CLK_SIFIVE_PRCI=y
diff --git a/target/linux/siflower/sf19a2890/config-6.6 b/target/linux/siflower/sf19a2890/config-6.6
index bec75436e0..2e15ca67d4 100644
--- a/target/linux/siflower/sf19a2890/config-6.6
+++ b/target/linux/siflower/sf19a2890/config-6.6
@@ -7,8 +7,6 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_ARM_AMBA=y
 CONFIG_BLK_DEV_LOOP=y
 CONFIG_BOARD_SCACHE=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CEVT_R4K=y
 CONFIG_CLKSRC_MIPS_GIC=y
 CONFIG_CLK_SF19A2890=y
@@ -69,7 +67,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
diff --git a/target/linux/starfive/config-6.6 b/target/linux/starfive/config-6.6
index ef71001663..457fa86b9a 100644
--- a/target/linux/starfive/config-6.6
+++ b/target/linux/starfive/config-6.6
@@ -27,8 +27,6 @@ CONFIG_AUXILIARY_BUS=y
 # CONFIG_AX45MP_L2_CACHE is not set
 # CONFIG_BT_AICUSB is not set
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CHECKPOINT_RESTORE=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLK_ANALOGBITS_WRPLL_CLN28HPC=y
diff --git a/target/linux/tegra/config-6.6 b/target/linux/tegra/config-6.6
index 9cecf9f693..a98d81c92d 100644
--- a/target/linux/tegra/config-6.6
+++ b/target/linux/tegra/config-6.6
@@ -56,8 +56,6 @@ CONFIG_BOUNCE=y
 CONFIG_BUFFER_HEAD=y
 CONFIG_CACHE_L2X0=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CLZ_TAB=y
@@ -210,7 +208,6 @@ CONFIG_FS_MBCACHE=y
 CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
diff --git a/target/linux/x86/config-6.6 b/target/linux/x86/config-6.6
index 1a68c589a5..b3d15bc104 100644
--- a/target/linux/x86/config-6.6
+++ b/target/linux/x86/config-6.6
@@ -33,8 +33,6 @@ CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_BOUNCE=y
 CONFIG_BUFFER_HEAD=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKBLD_I8253=y
 CONFIG_CLKEVT_I8253=y
 CONFIG_CLKSRC_I8253=y
diff --git a/target/linux/zynq/config-6.6 b/target/linux/zynq/config-6.6
index 15716a12cd..69a31d254b 100644
--- a/target/linux/zynq/config-6.6
+++ b/target/linux/zynq/config-6.6
@@ -59,8 +59,6 @@ CONFIG_CACHE_L2X0=y
 CONFIG_CADENCE_TTC_TIMER=y
 CONFIG_CADENCE_WATCHDOG=y
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLKSRC_VERSATILE=y
@@ -191,7 +189,6 @@ CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 CONFIG_FW_LOADER_PAGED_BUF=y
 CONFIG_FW_LOADER_SYSFS=y
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
 CONFIG_GENERIC_BUG=y



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:35 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:35 -0500
Subject: [openwrt/openwrt]  ath79: refactor dts of TP-Link CPE710-v1
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8102.1732821218.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/1e0f790d2381c3c9bf19471b191fdf42cd454441

commit 1e0f790d2381c3c9bf19471b191fdf42cd454441
Author: Tim Noack <tim at noack.id>
AuthorDate: Mon Oct 21 12:21:41 2024 +0000

    ath79: refactor dts of TP-Link CPE710-v1
    
    This is done in preparation of adding support for the CPE710-v2,
    which uses a similiar device tree.
    
    Signed-off-by: Tim Noack <tim at noack.id>
    Link: https://github.com/openwrt/openwrt/pull/16637
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 832cc8ce04122ea726178687b5168187b2465f7f)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../linux/ath79/dts/qca9563_tplink_cpe710-v1.dts   | 151 +--------------------
 ...nk_cpe710-v1.dts => qca9563_tplink_cpe710.dtsi} |  19 +--
 2 files changed, 6 insertions(+), 164 deletions(-)

diff --git a/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts b/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts
index 6d1b58f95f..31e04232ab 100644
--- a/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts
@@ -1,151 +1,13 @@
 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 
-#include "qca956x.dtsi"
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/leds/common.h>
+#include "qca9563_tplink_cpe710.dtsi"
 
 / {
 	model = "TP-Link CPE710 v1";
 	compatible = "tplink,cpe710-v1", "qca,qca9563";
-
-	aliases {
-		label-mac-device = &eth0;
-		led-boot = &led_lan;
-		led-failsafe = &led_lan;
-		led-upgrade = &led_lan;
-	};
-
-	leds {
-		compatible = "gpio-leds";
-
-		led_lan: lan {
-			function = LED_FUNCTION_LAN;
-			color = <LED_COLOR_ID_BLUE>;
-			gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
-		};
-
-		wlan5g {
-			label = "blue:wlan5g";
-			gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
-			linux,default-trigger = "phy0tpt";
-		};
-	};
-
-	keys {
-		compatible = "gpio-keys";
-
-		reset {
-			label = "Reset button";
-			linux,code = <KEY_RESTART>;
-			gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
-			debounce-interval = <60>;
-		};
-	};
-};
-
-&pcie {
-	status = "okay";
-
-	wifi at 0,0 {
-		compatible = "qcom,ath10k";
-		reg = <0x0000 0 0 0 0>;
-		nvmem-cells = <&precal_art_5000>, <&macaddr_info_8>;
-		nvmem-cell-names = "pre-calibration", "mac-address";
-	};
-};
-
-&spi {
-	status = "okay";
-
-	flash at 0 {
-		compatible = "jedec,spi-nor";
-		reg = <0>;
-		spi-max-frequency = <40000000>;
-
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition at 0 {
-				label = "u-boot";
-				reg = <0x000000 0x040000>;
-				read-only;
-			};
-
-			partition at 40000 {
-				label = "u-boot-env";
-				reg = <0x040000 0x010000>;
-			};
-
-			partition at 50000 {
-				label = "partition-table";
-				reg = <0x050000 0x010000>;
-				read-only;
-			};
-
-			info: partition at 60000 {
-				label = "info";
-				reg = <0x060000 0x010000>;
-				read-only;
-
-				nvmem-layout {
-					compatible = "fixed-layout";
-					#address-cells = <1>;
-					#size-cells = <1>;
-
-					macaddr_info_8: macaddr at 8 {
-						reg = <0x8 0x6>;
-					};
-				};
-			};
-
-			partition at 70000 {
-				compatible = "denx,uimage";
-				label = "firmware";
-				reg = <0x070000 0xf50000>;
-			};
-
-			partition at fc0000 {
-				label = "config";
-				reg = <0xfc0000 0x030000>;
-				read-only;
-			};
-
-			partition at ff0000 {
-				label = "art";
-				reg = <0xff0000 0x010000>;
-				read-only;
-
-				nvmem-layout {
-					compatible = "fixed-layout";
-					#address-cells = <1>;
-					#size-cells = <1>;
-
-					precal_art_5000: pre-calibration at 5000 {
-						reg = <0x5000 0x2f20>;
-					};
-				};
-			};
-		};
-	};
-};
-
-&pinmux {
-	mdio_pins: mdio_pins {
-		/* GPIO 10 as MDIO(0x20), GPIO 8 as MDC(0x21) */
-		pinctrl-single,bits = <0x8 0x00200021 0x00ff00ff>;
-	};
 };
 
 &mdio0 {
-	status = "okay";
-
-	pinctrl-names = "default";
-	pinctrl-0 = <&mdio_pins>;
-
 	phy4: ethernet-phy at 4 {
 		reg = <4>;
 		reset-gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
@@ -153,17 +15,6 @@
 };
 
 &eth0 {
-	status = "okay";
-
 	phy-handle = <&phy4>;
 	phy-mode = "sgmii";
-
-	nvmem-cells = <&macaddr_info_8>;
-	nvmem-cell-names = "mac-address";
-
-	qca956x-serdes-fixup;
-
-	gmac-config {
-		device = <&gmac>;
-	};
 };
diff --git a/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts b/target/linux/ath79/dts/qca9563_tplink_cpe710.dtsi
similarity index 90%
copy from target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts
copy to target/linux/ath79/dts/qca9563_tplink_cpe710.dtsi
index 6d1b58f95f..9de36f3b66 100644
--- a/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_cpe710.dtsi
@@ -7,14 +7,11 @@
 #include <dt-bindings/leds/common.h>
 
 / {
-	model = "TP-Link CPE710 v1";
-	compatible = "tplink,cpe710-v1", "qca,qca9563";
-
 	aliases {
-		label-mac-device = &eth0;
 		led-boot = &led_lan;
 		led-failsafe = &led_lan;
 		led-upgrade = &led_lan;
+		label-mac-device = &eth0;
 	};
 
 	leds {
@@ -27,7 +24,8 @@
 		};
 
 		wlan5g {
-			label = "blue:wlan5g";
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_WLAN_5GHZ;
 			gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
 			linux,default-trigger = "phy0tpt";
 		};
@@ -78,6 +76,7 @@
 			partition at 40000 {
 				label = "u-boot-env";
 				reg = <0x040000 0x010000>;
+				read-only;
 			};
 
 			partition at 50000 {
@@ -86,7 +85,7 @@
 				read-only;
 			};
 
-			info: partition at 60000 {
+			partition at 60000 {
 				label = "info";
 				reg = <0x060000 0x010000>;
 				read-only;
@@ -145,19 +144,11 @@
 
 	pinctrl-names = "default";
 	pinctrl-0 = <&mdio_pins>;
-
-	phy4: ethernet-phy at 4 {
-		reg = <4>;
-		reset-gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
-	};
 };
 
 &eth0 {
 	status = "okay";
 
-	phy-handle = <&phy4>;
-	phy-mode = "sgmii";
-
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:03 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:03 -0500
Subject: [openwrt/openwrt]  generic: add CONFIG_FB_INTEL
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8103.1732821221.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/69eecbef91b831da1c2282ad71495ce3e5be8477

commit 69eecbef91b831da1c2282ad71495ce3e5be8477
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Sun Nov 17 19:22:25 2024 +0100

    generic: add CONFIG_FB_INTEL
    
    CONFIG_FB_INTEL is now visible on x86 since i915 driver is packaged as kmod
    now and it stops compilation, so add it to the generic config.
    
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 57daea682e1c6e6da91f92efed717159f9ffffb0)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/generic/config-6.6 | 1 +
 1 file changed, 1 insertion(+)

diff --git a/target/linux/generic/config-6.6 b/target/linux/generic/config-6.6
index d887381414..9eec780b53 100644
--- a/target/linux/generic/config-6.6
+++ b/target/linux/generic/config-6.6
@@ -1927,6 +1927,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
 # CONFIG_FB_IBM_GXT4500 is not set
 # CONFIG_FB_IMSTT is not set
 # CONFIG_FB_IMX is not set
+# CONFIG_FB_INTEL is not set
 # CONFIG_FB_KYRO is not set
 # CONFIG_FB_LE80578 is not set
 # CONFIG_FB_LITTLE_ENDIAN is not set



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:21 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:21 -0500
Subject: [openwrt/openwrt]  murata-nvram: add new package
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8104.1732821223.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/72bf1db35ce614322526c476ee09d76d652813fa

commit 72bf1db35ce614322526c476ee09d76d652813fa
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Thu Oct 10 17:21:16 2024 +0200

    murata-nvram: add new package
    
    This package contains nvram files for Murata's Wi-Fi/Bluetooth modules.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit be937952fdf8f78fb45ea001258074ddb45e0891)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/firmware/murata-nvram/Makefile             | 48 ++++++++++++++++++++++
 .../files/cyfmac43430-sdio.1DX.stm32.txt           | 47 +++++++++++++++++++++
 2 files changed, 95 insertions(+)

diff --git a/package/firmware/murata-nvram/Makefile b/package/firmware/murata-nvram/Makefile
new file mode 100644
index 0000000000..daf382e3bc
--- /dev/null
+++ b/package/firmware/murata-nvram/Makefile
@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2024 Bootlin
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=murata-nvram
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_DATE:=2024-09-28
+PKG_SOURCE_URL:=https://github.com/murata-wireless/cyw-fmac-nvram.git
+PKG_MIRROR_HASH:=e2fc6f1f9898edfd67f5495e615882700f03b42a75efa2e3f4e2d524aed0efb8
+PKG_SOURCE_VERSION:=255819aab07572d87576a13329ef9d4c654167aa
+
+PKG_MAINTAINER:=Thomas Richard <thomas.richard at bootlin.com>
+PKG_LICENSE_FILES:=LICENCE.cypress
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/murata-nvram-default
+  SECTION:=firmware
+  CATEGORY:=Firmware
+  URL:=https://community.murata.com/
+endef
+
+define Build/Compile
+endef
+
+define Package/murata-nvram-43430-sdio
+  $(Package/murata-nvram-default)
+  TITLE:=BCM43430 SDIO NVRAM
+  CONFLICTS:=brcmfmac-nvram-43430-sdio
+endef
+
+define Package/murata-nvram-43430-sdio/install
+	$(INSTALL_DIR) $(1)/lib/firmware/brcm
+	$(INSTALL_DATA)	./files/cyfmac43430-sdio.1DX.stm32.txt \
+		$(1)/lib/firmware/brcm/
+	$(LN) \
+		cyfmac43430-sdio.1DX.stm32.txt \
+		$(1)/lib/firmware/brcm/brcmfmac43430-sdio.st,stm32mp135f-dk.txt
+endef
+
+$(eval $(call BuildPackage,murata-nvram-43430-sdio))
diff --git a/package/firmware/murata-nvram/files/cyfmac43430-sdio.1DX.stm32.txt b/package/firmware/murata-nvram/files/cyfmac43430-sdio.1DX.stm32.txt
new file mode 100755
index 0000000000..f06abf0380
--- /dev/null
+++ b/package/firmware/murata-nvram/files/cyfmac43430-sdio.1DX.stm32.txt
@@ -0,0 +1,47 @@
+# This NVRAM file is based on cyfmac43430-sdio.1DX.txt, except that the muxenab
+# parameter was unset to enable IB IRQ (OOB IRQ is not stable on STM32
+# platforms).
+# 2.4 GHz, 20 MHz BW mode
+manfid=0x2d0
+prodid=0x0726
+vendid=0x14e4
+devid=0x43e2
+boardtype=0x0726
+boardrev=0x1202
+boardnum=22
+macaddr=00:90:4c:c5:12:38
+sromrev=11
+boardflags=0x00404201
+boardflags3=0x08000000
+xtalfreq=37400
+nocrc=1
+ag0=0
+aa2g=1
+ccode=ALL
+#pa0itssit=0x20
+extpagain2g=0
+pa2ga0=-145,6667,-751
+AvVmid_c0=0x0,0xc8
+cckpwroffset0=2
+maxp2ga0=74
+#txpwrbckof=6
+cckbw202gpo=0
+legofdmbw202gpo=0x88888888
+mcsbw202gpo=0xaaaaaaaa
+propbw202gpo=0xdd
+ofdmdigfilttype=18
+ofdmdigfilttypebe=18
+papdmode=1
+papdvalidtest=1
+pacalidx2g=48
+papdepsoffset=-22
+papdendidx=58
+il0macaddr=00:90:4c:c5:12:38
+wl0id=0x431b
+# muxenab defined to enable OOB IRQ. Level sensitive interrupt via WL_HOST_WAKE line. 
+# muxenab=0x10
+#BT COEX deferral limit setting
+#btc_params 8 45000
+#btc_params 10 20000
+#spurconfig=0x3
+# End of NVRAM - do not remove this line #



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:29 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:29 -0500
Subject: [openwrt/openwrt]  mdadm: backport musl patch
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8105.1732821226.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/25427d794288de530a0663b4ab9a8f82da8307d4

commit 25427d794288de530a0663b4ab9a8f82da8307d4
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Sat Nov 9 15:46:26 2024 -0800

    mdadm: backport musl patch
    
    Needed to fix compilation with GCC14.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16912
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 1f3d5858b441cf4e1195b96242dd08d68538e83d)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/utils/mdadm/Makefile                |  2 +-
 package/utils/mdadm/patches/060-gcc14.patch | 24 ++++++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/package/utils/mdadm/Makefile b/package/utils/mdadm/Makefile
index c2778fe351..b521daaefc 100644
--- a/package/utils/mdadm/Makefile
+++ b/package/utils/mdadm/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mdadm
 PKG_VERSION:=4.3
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/utils/raid/mdadm
diff --git a/package/utils/mdadm/patches/060-gcc14.patch b/package/utils/mdadm/patches/060-gcc14.patch
new file mode 100644
index 0000000000..545a40ac0a
--- /dev/null
+++ b/package/utils/mdadm/patches/060-gcc14.patch
@@ -0,0 +1,24 @@
+From 8bda86099089b44129ef6206764f9de47a45f0db Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex at linutronix.de>
+Date: Tue, 12 Mar 2024 11:01:50 +0100
+Subject: [PATCH] util.c: add limits.h include for NAME_MAX definition
+
+Add limits.h include for NAME_MAX definition.
+
+Signed-off-by: Alexander Kanavin <alex at linutronix.de>
+Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk at linux.intel.com>
+---
+ util.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/util.c
++++ b/util.c
+@@ -36,7 +36,7 @@
+ #include	<ctype.h>
+ #include	<dirent.h>
+ #include	<dlfcn.h>
+-
++#include	<limits.h>
+ 
+ /*
+  * following taken from linux/blkpg.h because they aren't



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:56 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:56 -0500
Subject: [openwrt/openwrt]  ipq807x: delete unused legacy eMMC sysupgrade code
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8106.1732821236.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/05989f69d8e68051bc2058f0ae3b2e14264a4504

commit 05989f69d8e68051bc2058f0ae3b2e14264a4504
Author: Rodrigo Balerdi <lanchon at gmail.com>
AuthorDate: Fri Nov 8 17:40:29 2024 -0300

    ipq807x: delete unused legacy eMMC sysupgrade code
    
    All ipq807x devices that were using the legacy 'mmc_do_upgrade' eMMC
    sysupgrade code were ported to the replacement 'emmc_do_upgrade' code.
    
    Signed-off-by: Rodrigo Balerdi <lanchon at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16505
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit 491121288eaa9d20f3db8215a4790e8f0ee1f8ca)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../ipq807x/base-files/lib/upgrade/mmc.sh          | 83 ----------------------
 1 file changed, 83 deletions(-)

diff --git a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/mmc.sh b/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/mmc.sh
deleted file mode 100644
index 21cd7928e3..0000000000
--- a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/mmc.sh
+++ /dev/null
@@ -1,83 +0,0 @@
-#
-# Copyright (C) 2016 lede-project.org
-#
-
-# this can be used as a generic mmc upgrade script
-# just add a device entry in platform.sh, 
-# define "kernelname" and "rootfsname" and call mmc_do_upgrade
-# after the kernel and rootfs flash a loopdev (as overlay) is 
-# setup on top of the rootfs partition
-# for the proper function a padded rootfs image is needed, basically 
-# append "pad-to 64k" to the image definition
-# this is based on the ipq806x zyxel.sh mmc upgrade
-
-. /lib/functions.sh
-
-mmc_do_upgrade() {
-	local tar_file="$1"
-	local rootfs=
-	local kernel=
-
-	[ -z "$kernel" ] && kernel=$(find_mmc_part ${kernelname})
-	[ -z "$rootfs" ] && rootfs=$(find_mmc_part ${rootfsname})
-
-	[ -z "$kernel" ] && echo "Upgrade failed: kernel partition not found! Rebooting..." && reboot -f
-	[ -z "$rootfs" ] && echo "Upgrade failed: rootfs partition not found! Rebooting..." && reboot -f
-
-	mmc_do_flash $tar_file $kernel $rootfs
-
-	return 0
-}
-
-mmc_do_flash() {
-	local tar_file=$1
-	local kernel=$2
-	local rootfs=$3
-	
-	# keep sure its unbound
-	losetup --detach-all || {
-		echo Failed to detach all loop devices. Skip this try.
-		reboot -f
-	}
-
-	# use the first found directory in the tar archive
-	local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$')
-	board_dir=${board_dir%/}
-
-	echo "flashing kernel to $kernel"
-	tar xf $tar_file ${board_dir}/kernel -O >$kernel
-
-	echo "flashing rootfs to ${rootfs}"
-	tar xf $tar_file ${board_dir}/root -O >"${rootfs}"
-
-	# a padded rootfs is needed for overlay fs creation
-	local offset=$(tar xf $tar_file ${board_dir}/root -O | wc -c)
-	[ $offset -lt 65536 ] && {
-		echo Wrong size for rootfs: $offset
-		sleep 10
-		reboot -f
-	}
-
-	# Mount loop for rootfs_data
-	local loopdev="$(losetup -f)"
-	losetup -o $offset $loopdev $rootfs || {
-		echo "Failed to mount looped rootfs_data."
-		sleep 10
-		reboot -f
-	}
-
-	echo "Format new rootfs_data at position ${offset}."
-	mkfs.ext4 -F -L rootfs_data $loopdev
-	mkdir /tmp/new_root
-	mount -t ext4 $loopdev /tmp/new_root && {
-		echo "Saving config to rootfs_data at position ${offset}."
-		cp -v "$UPGRADE_BACKUP" "/tmp/new_root/$BACKUP_FILE"
-		umount /tmp/new_root
-	}
-
-	# Cleanup
-	losetup -d $loopdev >/dev/null 2>&1
-	sync
-	umount -a
-	reboot -f
-}



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:05 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:05 -0500
Subject: [openwrt/openwrt]  odhcp6c: update to Git HEAD (2024-09-25)
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8109.1732821239.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/9a09c5444915d5a7ccfb46c46ec8399484de0fb8

commit 9a09c5444915d5a7ccfb46c46ec8399484de0fb8
Author: He Ping <pinghejk at gmail.com>
AuthorDate: Tue Nov 19 10:41:42 2024 +0800

    odhcp6c: update to Git HEAD (2024-09-25)
    
    b6ae9ffaeb0e odhcp6c: allow to request specific ipv6 prefix
    
    Signed-off-by: He Ping <pinghejk at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/17013
    Signed-off-by: Petr ?tetiar <ynezz at true.cz> [hash, commit]
    (cherry picked from commit b0312c10818f36bc6e61a518bb528d2809562796)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/network/ipv6/odhcp6c/Makefile | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/package/network/ipv6/odhcp6c/Makefile b/package/network/ipv6/odhcp6c/Makefile
index 894f388945..c16ecfa083 100644
--- a/package/network/ipv6/odhcp6c/Makefile
+++ b/package/network/ipv6/odhcp6c/Makefile
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=odhcp6c
-PKG_RELEASE:=20
+PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/project/odhcp6c.git
-PKG_SOURCE_DATE:=2023-05-12
-PKG_SOURCE_VERSION:=bcd283632ac13391aac3ebdd074d1fd832d76fa3
-PKG_MIRROR_HASH:=0c18c578045f9251bd86a5b8fb0518b69c519e83f69907bf76583a2985482508
+PKG_SOURCE_DATE:=2024-09-25
+PKG_SOURCE_VERSION:=b6ae9ffaeb0e18e9fa3d5be62faa8d3c9f340a58
+PKG_MIRROR_HASH:=25499b6a0d403815e6b04869a02d2d5a32582348bff2bc2626559d297425a908
 PKG_MAINTAINER:=Hans Dedecker <dedeckeh at gmail.com>
 PKG_LICENSE:=GPL-2.0
 



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:20 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:20 -0500
Subject: [openwrt/openwrt]  rampis: mt7621: Re-enable Edgerouter-X image
 builds
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8110.1732821242.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/14880209d5c38a9146359ea439783f8c02ea2f7b

commit 14880209d5c38a9146359ea439783f8c02ea2f7b
Author: Tim Lunn <tim at feathertop.org>
AuthorDate: Thu Apr 18 10:53:54 2024 +1000

    rampis: mt7621: Re-enable Edgerouter-X image builds
    
    With the new layout providing 6MB for kernel there will be no issues
    with kernel size affecting build of images.
    
    Re-enable image builds for Edgerouter-X and X-SFP.
    
    Signed-off-by: Tim Lunn <tim at feathertop.org>
    Tested-by: Mauri Sandberg <maukka at ext.kapsi.fi>
    Link: https://github.com/openwrt/openwrt/pull/15194
    (cherry picked from commit 71b4842e3bdaed91cd2daa4b28a208559c3de7c6)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ramips/image/mt7621.mk | 1 -
 1 file changed, 1 deletion(-)

diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index f4dacba894..b9692c5f3a 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -2869,7 +2869,6 @@ define Device/ubnt_edgerouter_common
   DEVICE_COMPAT_MESSAGE :=  Partition table has been changed due to kernel size restrictions. \
     Refer to the wiki page for instructions to migrate to the new layout: \
     https://openwrt.org/toh/ubiquiti/edgerouter_x_er-x_ka
-  DEFAULT := n
 endef
 
 define Device/ubnt_edgerouter-x



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:46 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:46 -0500
Subject: [openwrt/openwrt]  stm32: Remove unnecessary kernel options
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8111.1732821249.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/1b2adb8000244d3488cc83e3f4950ce3dc631544

commit 1b2adb8000244d3488cc83e3f4950ce3dc631544
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sun Nov 24 14:53:47 2024 +0100

    stm32: Remove unnecessary kernel options
    
    These options are filtered out since some weeks, remove them also from
    the new stm32 target.
    
    Fixes: 851e7f77e424 ("stm32: add new stm32 target")
    Link: https://github.com/openwrt/openwrt/pull/17058
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit ea2c860225b8bbda98ed0526dc670825866835b6)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/stm32/stm32mp1/config-6.6 | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/target/linux/stm32/stm32mp1/config-6.6 b/target/linux/stm32/stm32mp1/config-6.6
index 946649ef9b..e19abcc7dc 100644
--- a/target/linux/stm32/stm32mp1/config-6.6
+++ b/target/linux/stm32/stm32mp1/config-6.6
@@ -70,8 +70,6 @@ CONFIG_BOUNCE=y
 CONFIG_BUFFER_HEAD=y
 # CONFIG_CACHE_L2X0 is not set
 CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_CC_NO_ARRAY_BOUNDS=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLKSRC_STM32=y
@@ -189,7 +187,6 @@ CONFIG_FUNCTION_ALIGNMENT=0
 CONFIG_FWNODE_MDIO=y
 CONFIG_FW_CACHE=y
 # CONFIG_FW_LOADER_USER_HELPER is not set
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
 CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_GENERIC_ARCH_TOPOLOGY=y
 CONFIG_GENERIC_BUG=y



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:48 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:48 -0500
Subject: [openwrt/openwrt]  ramips: mt76x8: disable unused Ralink systick
 driver
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8112.1732821257.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/0a0950614b7377c23d24999f7d44068e6ee09860

commit 0a0950614b7377c23d24999f7d44068e6ee09860
Author: Shiji Yang <yangshiji66 at qq.com>
AuthorDate: Sun Nov 3 12:30:21 2024 +0800

    ramips: mt76x8: disable unused Ralink systick driver
    
    The mt76x8 series SoCs use the MIPS generic systick timer. Sync the
    upstream Ralink systick driver changes and disable it for mt76x8
    target to reduce the kernel size.
    
    Signed-off-by: Shiji Yang <yangshiji66 at qq.com>
    Link: https://github.com/openwrt/openwrt/pull/16844
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 0c57510cedeff9caf795930ff86a436aa54bcc6d)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ramips/mt7620/config-6.6              |   2 +-
 target/linux/ramips/mt76x8/config-6.6              |   6 +-
 ...-drivers-ralink-Add-Ralink-System-Tick-Co.patch | 384 +++++++++++++++++++++
 ...t_mode-to-enable-disable-the-cevt-r4k-irq.patch |  36 +-
 ...312-MIPS-ralink-add-cpu-frequency-scaling.patch |  35 +-
 ...o-not-select-illegal-access-driver-by-def.patch |   4 +-
 target/linux/ramips/rt305x/config-6.6              |   2 +-
 7 files changed, 426 insertions(+), 43 deletions(-)

diff --git a/target/linux/ramips/mt7620/config-6.6 b/target/linux/ramips/mt7620/config-6.6
index edd64a642c..3e1ef761e0 100644
--- a/target/linux/ramips/mt7620/config-6.6
+++ b/target/linux/ramips/mt7620/config-6.6
@@ -8,7 +8,6 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_CEVT_R4K=y
 CONFIG_CEVT_SYSTICK_QUIRK=y
-CONFIG_CLKEVT_RT3352=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLK_MTMIPS=y
 CONFIG_CLONE_BACKWARDS=y
@@ -180,6 +179,7 @@ CONFIG_PINCTRL_MTK_MTMIPS=y
 CONFIG_PREEMPT_NONE_BUILD=y
 CONFIG_PTP_1588_CLOCK_OPTIONAL=y
 CONFIG_RALINK=y
+CONFIG_RALINK_TIMER=y
 CONFIG_RALINK_WDT=y
 CONFIG_RANDSTRUCT_NONE=y
 CONFIG_RATIONAL=y
diff --git a/target/linux/ramips/mt76x8/config-6.6 b/target/linux/ramips/mt76x8/config-6.6
index 31dc4a980f..f40d18efcc 100644
--- a/target/linux/ramips/mt76x8/config-6.6
+++ b/target/linux/ramips/mt76x8/config-6.6
@@ -6,9 +6,6 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_CEVT_R4K=y
-CONFIG_CEVT_SYSTICK_QUIRK=y
-CONFIG_CLKEVT_RT3352=y
-CONFIG_CLKSRC_MMIO=y
 CONFIG_CLK_MTMIPS=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE="rootfstype=squashfs,jffs2"
@@ -173,6 +170,7 @@ CONFIG_PINCTRL_MTK_MTMIPS=y
 CONFIG_PREEMPT_NONE_BUILD=y
 CONFIG_PTP_1588_CLOCK_OPTIONAL=y
 CONFIG_RALINK=y
+# CONFIG_RALINK_TIMER is not set
 # CONFIG_RALINK_WDT is not set
 CONFIG_RANDSTRUCT_NONE=y
 CONFIG_RATIONAL=y
@@ -215,8 +213,6 @@ CONFIG_SYS_SUPPORTS_MIPS16=y
 CONFIG_SYS_SUPPORTS_ZBOOT=y
 CONFIG_TARGET_ISA_REV=2
 CONFIG_TICK_CPU_ACCOUNTING=y
-CONFIG_TIMER_OF=y
-CONFIG_TIMER_PROBE=y
 CONFIG_TINY_SRCU=y
 CONFIG_USB_SUPPORT=y
 CONFIG_USE_OF=y
diff --git a/target/linux/ramips/patches-6.6/001-v6.13-clocksource-drivers-ralink-Add-Ralink-System-Tick-Co.patch b/target/linux/ramips/patches-6.6/001-v6.13-clocksource-drivers-ralink-Add-Ralink-System-Tick-Co.patch
new file mode 100644
index 0000000000..cd2a90826c
--- /dev/null
+++ b/target/linux/ramips/patches-6.6/001-v6.13-clocksource-drivers-ralink-Add-Ralink-System-Tick-Co.patch
@@ -0,0 +1,384 @@
+From 57cbfd333c9d65bfab1a06b49c75536ee28dc2ce Mon Sep 17 00:00:00 2001
+From: Sergio Paracuellos <sergio.paracuellos at gmail.com>
+Date: Mon, 28 Oct 2024 21:36:43 +0100
+Subject: clocksource/drivers/ralink: Add Ralink System Tick Counter driver
+
+System Tick Counter is present on Ralink SoCs RT3352 and MT7620. This
+driver has been in 'arch/mips/ralink' directory since the beggining of
+Ralink architecture support. However, it can be moved into a more proper
+place in 'drivers/clocksource'. Hence add it here adding also support for
+compile test targets and reducing LOC in architecture code folder.
+
+Signed-off-by: Sergio Paracuellos <sergio.paracuellos at gmail.com>
+Link: https://lore.kernel.org/r/20241028203643.191268-2-sergio.paracuellos at gmail.com
+Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
+---
+ arch/mips/ralink/Kconfig           |   7 --
+ arch/mips/ralink/Makefile          |   2 -
+ arch/mips/ralink/cevt-rt3352.c     | 153 -------------------------------------
+ drivers/clocksource/Kconfig        |   9 +++
+ drivers/clocksource/Makefile       |   1 +
+ drivers/clocksource/timer-ralink.c | 150 ++++++++++++++++++++++++++++++++++++
+ 6 files changed, 160 insertions(+), 162 deletions(-)
+ delete mode 100644 arch/mips/ralink/cevt-rt3352.c
+ create mode 100644 drivers/clocksource/timer-ralink.c
+
+--- a/arch/mips/ralink/Kconfig
++++ b/arch/mips/ralink/Kconfig
+@@ -1,13 +1,6 @@
+ # SPDX-License-Identifier: GPL-2.0
+ if RALINK
+ 
+-config CLKEVT_RT3352
+-	bool
+-	depends on SOC_RT305X || SOC_MT7620
+-	default y
+-	select TIMER_OF
+-	select CLKSRC_MMIO
+-
+ config RALINK_ILL_ACC
+ 	bool
+ 	depends on SOC_RT305X
+--- a/arch/mips/ralink/Makefile
++++ b/arch/mips/ralink/Makefile
+@@ -10,8 +10,6 @@ ifndef CONFIG_MIPS_GIC
+ 	obj-y += clk.o timer.o
+ endif
+ 
+-obj-$(CONFIG_CLKEVT_RT3352) += cevt-rt3352.o
+-
+ obj-$(CONFIG_RALINK_ILL_ACC) += ill_acc.o
+ 
+ obj-$(CONFIG_IRQ_INTC) += irq.o
+--- a/arch/mips/ralink/cevt-rt3352.c
++++ /dev/null
+@@ -1,153 +0,0 @@
+-/*
+- * This file is subject to the terms and conditions of the GNU General Public
+- * License.  See the file "COPYING" in the main directory of this archive
+- * for more details.
+- *
+- * Copyright (C) 2013 by John Crispin <john at phrozen.org>
+- */
+-
+-#include <linux/clockchips.h>
+-#include <linux/clocksource.h>
+-#include <linux/interrupt.h>
+-#include <linux/reset.h>
+-#include <linux/init.h>
+-#include <linux/time.h>
+-#include <linux/of.h>
+-#include <linux/of_irq.h>
+-#include <linux/of_address.h>
+-
+-#include <asm/mach-ralink/ralink_regs.h>
+-
+-#define SYSTICK_FREQ		(50 * 1000)
+-
+-#define SYSTICK_CONFIG		0x00
+-#define SYSTICK_COMPARE		0x04
+-#define SYSTICK_COUNT		0x08
+-
+-/* route systick irq to mips irq 7 instead of the r4k-timer */
+-#define CFG_EXT_STK_EN		0x2
+-/* enable the counter */
+-#define CFG_CNT_EN		0x1
+-
+-struct systick_device {
+-	void __iomem *membase;
+-	struct clock_event_device dev;
+-	int irq_requested;
+-	int freq_scale;
+-};
+-
+-static int systick_set_oneshot(struct clock_event_device *evt);
+-static int systick_shutdown(struct clock_event_device *evt);
+-
+-static int systick_next_event(unsigned long delta,
+-				struct clock_event_device *evt)
+-{
+-	struct systick_device *sdev;
+-	u32 count;
+-
+-	sdev = container_of(evt, struct systick_device, dev);
+-	count = ioread32(sdev->membase + SYSTICK_COUNT);
+-	count = (count + delta) % SYSTICK_FREQ;
+-	iowrite32(count, sdev->membase + SYSTICK_COMPARE);
+-
+-	return 0;
+-}
+-
+-static void systick_event_handler(struct clock_event_device *dev)
+-{
+-	/* noting to do here */
+-}
+-
+-static irqreturn_t systick_interrupt(int irq, void *dev_id)
+-{
+-	struct clock_event_device *dev = (struct clock_event_device *) dev_id;
+-
+-	dev->event_handler(dev);
+-
+-	return IRQ_HANDLED;
+-}
+-
+-static struct systick_device systick = {
+-	.dev = {
+-		/*
+-		 * cevt-r4k uses 300, make sure systick
+-		 * gets used if available
+-		 */
+-		.rating			= 310,
+-		.features		= CLOCK_EVT_FEAT_ONESHOT,
+-		.set_next_event		= systick_next_event,
+-		.set_state_shutdown	= systick_shutdown,
+-		.set_state_oneshot	= systick_set_oneshot,
+-		.event_handler		= systick_event_handler,
+-	},
+-};
+-
+-static int systick_shutdown(struct clock_event_device *evt)
+-{
+-	struct systick_device *sdev;
+-
+-	sdev = container_of(evt, struct systick_device, dev);
+-
+-	if (sdev->irq_requested)
+-		free_irq(systick.dev.irq, &systick.dev);
+-	sdev->irq_requested = 0;
+-	iowrite32(0, systick.membase + SYSTICK_CONFIG);
+-
+-	return 0;
+-}
+-
+-static int systick_set_oneshot(struct clock_event_device *evt)
+-{
+-	const char *name = systick.dev.name;
+-	struct systick_device *sdev;
+-	int irq = systick.dev.irq;
+-
+-	sdev = container_of(evt, struct systick_device, dev);
+-
+-	if (!sdev->irq_requested) {
+-		if (request_irq(irq, systick_interrupt,
+-				IRQF_PERCPU | IRQF_TIMER, name, &systick.dev))
+-			pr_err("Failed to request irq %d (%s)\n", irq, name);
+-	}
+-	sdev->irq_requested = 1;
+-	iowrite32(CFG_EXT_STK_EN | CFG_CNT_EN,
+-		  systick.membase + SYSTICK_CONFIG);
+-
+-	return 0;
+-}
+-
+-static int __init ralink_systick_init(struct device_node *np)
+-{
+-	int ret;
+-
+-	systick.membase = of_iomap(np, 0);
+-	if (!systick.membase)
+-		return -ENXIO;
+-
+-	systick.dev.name = np->name;
+-	clockevents_calc_mult_shift(&systick.dev, SYSTICK_FREQ, 60);
+-	systick.dev.max_delta_ns = clockevent_delta2ns(0x7fff, &systick.dev);
+-	systick.dev.max_delta_ticks = 0x7fff;
+-	systick.dev.min_delta_ns = clockevent_delta2ns(0x3, &systick.dev);
+-	systick.dev.min_delta_ticks = 0x3;
+-	systick.dev.irq = irq_of_parse_and_map(np, 0);
+-	if (!systick.dev.irq) {
+-		pr_err("%pOFn: request_irq failed", np);
+-		return -EINVAL;
+-	}
+-
+-	ret = clocksource_mmio_init(systick.membase + SYSTICK_COUNT, np->name,
+-				    SYSTICK_FREQ, 301, 16,
+-				    clocksource_mmio_readl_up);
+-	if (ret)
+-		return ret;
+-
+-	clockevents_register_device(&systick.dev);
+-
+-	pr_info("%pOFn: running - mult: %d, shift: %d\n",
+-			np, systick.dev.mult, systick.dev.shift);
+-
+-	return 0;
+-}
+-
+-TIMER_OF_DECLARE(systick, "ralink,cevt-systick", ralink_systick_init);
+--- a/drivers/clocksource/Kconfig
++++ b/drivers/clocksource/Kconfig
+@@ -732,4 +732,13 @@ config GOLDFISH_TIMER
+ 	help
+ 	  Support for the timer/counter of goldfish-rtc
+ 
++config RALINK_TIMER
++	bool "Ralink System Tick Counter"
++	depends on SOC_RT305X || SOC_MT7620 || COMPILE_TEST
++	select CLKSRC_MMIO
++	select TIMER_OF
++	help
++	  Enables support for system tick counter present on
++	  Ralink SoCs RT3352 and MT7620.
++
+ endmenu
+--- a/drivers/clocksource/Makefile
++++ b/drivers/clocksource/Makefile
+@@ -89,3 +89,4 @@ obj-$(CONFIG_MSC313E_TIMER)		+= timer-ms
+ obj-$(CONFIG_GOLDFISH_TIMER)		+= timer-goldfish.o
+ obj-$(CONFIG_GXP_TIMER)			+= timer-gxp.o
+ obj-$(CONFIG_CLKSRC_LOONGSON1_PWM)	+= timer-loongson1-pwm.o
++obj-$(CONFIG_RALINK_TIMER)		+= timer-ralink.o
+--- /dev/null
++++ b/drivers/clocksource/timer-ralink.c
+@@ -0,0 +1,150 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * Ralink System Tick Counter driver present on RT3352 and MT7620 SoCs.
++ *
++ * Copyright (C) 2013 by John Crispin <john at phrozen.org>
++ */
++
++#include <linux/clockchips.h>
++#include <linux/clocksource.h>
++#include <linux/interrupt.h>
++#include <linux/reset.h>
++#include <linux/init.h>
++#include <linux/time.h>
++#include <linux/of.h>
++#include <linux/of_irq.h>
++#include <linux/of_address.h>
++
++#define SYSTICK_FREQ		(50 * 1000)
++
++#define SYSTICK_CONFIG		0x00
++#define SYSTICK_COMPARE		0x04
++#define SYSTICK_COUNT		0x08
++
++/* route systick irq to mips irq 7 instead of the r4k-timer */
++#define CFG_EXT_STK_EN		0x2
++/* enable the counter */
++#define CFG_CNT_EN		0x1
++
++struct systick_device {
++	void __iomem *membase;
++	struct clock_event_device dev;
++	int irq_requested;
++	int freq_scale;
++};
++
++static int systick_set_oneshot(struct clock_event_device *evt);
++static int systick_shutdown(struct clock_event_device *evt);
++
++static int systick_next_event(unsigned long delta,
++			      struct clock_event_device *evt)
++{
++	struct systick_device *sdev;
++	u32 count;
++
++	sdev = container_of(evt, struct systick_device, dev);
++	count = ioread32(sdev->membase + SYSTICK_COUNT);
++	count = (count + delta) % SYSTICK_FREQ;
++	iowrite32(count, sdev->membase + SYSTICK_COMPARE);
++
++	return 0;
++}
++
++static void systick_event_handler(struct clock_event_device *dev)
++{
++	/* noting to do here */
++}
++
++static irqreturn_t systick_interrupt(int irq, void *dev_id)
++{
++	struct clock_event_device *dev = (struct clock_event_device *)dev_id;
++
++	dev->event_handler(dev);
++
++	return IRQ_HANDLED;
++}
++
++static struct systick_device systick = {
++	.dev = {
++		/*
++		 * cevt-r4k uses 300, make sure systick
++		 * gets used if available
++		 */
++		.rating			= 310,
++		.features		= CLOCK_EVT_FEAT_ONESHOT,
++		.set_next_event		= systick_next_event,
++		.set_state_shutdown	= systick_shutdown,
++		.set_state_oneshot	= systick_set_oneshot,
++		.event_handler		= systick_event_handler,
++	},
++};
++
++static int systick_shutdown(struct clock_event_device *evt)
++{
++	struct systick_device *sdev;
++
++	sdev = container_of(evt, struct systick_device, dev);
++
++	if (sdev->irq_requested)
++		free_irq(systick.dev.irq, &systick.dev);
++	sdev->irq_requested = 0;
++	iowrite32(0, systick.membase + SYSTICK_CONFIG);
++
++	return 0;
++}
++
++static int systick_set_oneshot(struct clock_event_device *evt)
++{
++	const char *name = systick.dev.name;
++	struct systick_device *sdev;
++	int irq = systick.dev.irq;
++
++	sdev = container_of(evt, struct systick_device, dev);
++
++	if (!sdev->irq_requested) {
++		if (request_irq(irq, systick_interrupt,
++				IRQF_PERCPU | IRQF_TIMER, name, &systick.dev))
++			pr_err("Failed to request irq %d (%s)\n", irq, name);
++	}
++	sdev->irq_requested = 1;
++	iowrite32(CFG_EXT_STK_EN | CFG_CNT_EN,
++		  systick.membase + SYSTICK_CONFIG);
++
++	return 0;
++}
++
++static int __init ralink_systick_init(struct device_node *np)
++{
++	int ret;
++
++	systick.membase = of_iomap(np, 0);
++	if (!systick.membase)
++		return -ENXIO;
++
++	systick.dev.name = np->name;
++	clockevents_calc_mult_shift(&systick.dev, SYSTICK_FREQ, 60);
++	systick.dev.max_delta_ns = clockevent_delta2ns(0x7fff, &systick.dev);
++	systick.dev.max_delta_ticks = 0x7fff;
++	systick.dev.min_delta_ns = clockevent_delta2ns(0x3, &systick.dev);
++	systick.dev.min_delta_ticks = 0x3;
++	systick.dev.irq = irq_of_parse_and_map(np, 0);
++	if (!systick.dev.irq) {
++		pr_err("%pOFn: request_irq failed", np);
++		return -EINVAL;
++	}
++
++	ret = clocksource_mmio_init(systick.membase + SYSTICK_COUNT, np->name,
++				    SYSTICK_FREQ, 301, 16,
++				    clocksource_mmio_readl_up);
++	if (ret)
++		return ret;
++
++	clockevents_register_device(&systick.dev);
++
++	pr_info("%pOFn: running - mult: %d, shift: %d\n",
++			np, systick.dev.mult, systick.dev.shift);
++
++	return 0;
++}
++
++TIMER_OF_DECLARE(systick, "ralink,cevt-systick", ralink_systick_init);
diff --git a/target/linux/ramips/patches-6.6/311-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch b/target/linux/ramips/patches-6.6/311-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch
index 36925b8326..d59a71af88 100644
--- a/target/linux/ramips/patches-6.6/311-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch
+++ b/target/linux/ramips/patches-6.6/311-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch
@@ -1,13 +1,11 @@
-From ce3d4a4111a5f7e6b4e74bceae5faa6ce388e8ec Mon Sep 17 00:00:00 2001
 From: John Crispin <blogic at openwrt.org>
 Date: Sun, 14 Jul 2013 23:08:11 +0200
-Subject: [PATCH 05/53] MIPS: use set_mode() to enable/disable the cevt-r4k
- irq
+Subject: [PATCH 1/2] MIPS: use set_mode() to enable/disable the cevt-r4k irq
 
 Signed-off-by: John Crispin <blogic at openwrt.org>
 ---
  arch/mips/kernel/cevt-r4k.c | 43 +++++++++++++++++++++++++++++++++++++
- arch/mips/ralink/Kconfig    |  5 +++++
+ drivers/clocksource/Kconfig |  5 +++++
  2 files changed, 48 insertions(+)
 
 --- a/arch/mips/kernel/cevt-r4k.c
@@ -96,23 +94,21 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  
  	return 0;
  }
---- a/arch/mips/ralink/Kconfig
-+++ b/arch/mips/ralink/Kconfig
-@@ -1,12 +1,17 @@
- # SPDX-License-Identifier: GPL-2.0
- if RALINK
- 
+--- a/drivers/clocksource/Kconfig
++++ b/drivers/clocksource/Kconfig
+@@ -731,10 +731,15 @@ config GOLDFISH_TIMER
+ 	depends on RTC_DRV_GOLDFISH
+ 	help
+ 	  Support for the timer/counter of goldfish-rtc
++ 
 +config CEVT_SYSTICK_QUIRK
 +	bool
 +	default n
-+
- config CLKEVT_RT3352
- 	bool
- 	depends on SOC_RT305X || SOC_MT7620
- 	default y
- 	select TIMER_OF
- 	select CLKSRC_MMIO
-+	select CEVT_SYSTICK_QUIRK
  
- config RALINK_ILL_ACC
- 	bool
+ config RALINK_TIMER
+ 	bool "Ralink System Tick Counter"
+ 	depends on SOC_RT305X || SOC_MT7620 || COMPILE_TEST
++	select CEVT_SYSTICK_QUIRK
+ 	select CLKSRC_MMIO
+ 	select TIMER_OF
+ 	help
diff --git a/target/linux/ramips/patches-6.6/312-MIPS-ralink-add-cpu-frequency-scaling.patch b/target/linux/ramips/patches-6.6/312-MIPS-ralink-add-cpu-frequency-scaling.patch
index 0d70770941..6acdfff837 100644
--- a/target/linux/ramips/patches-6.6/312-MIPS-ralink-add-cpu-frequency-scaling.patch
+++ b/target/linux/ramips/patches-6.6/312-MIPS-ralink-add-cpu-frequency-scaling.patch
@@ -1,19 +1,26 @@
-From bd30f19a006fb52bac80c6463c49dd2f4159f4ac Mon Sep 17 00:00:00 2001
 From: John Crispin <blogic at openwrt.org>
 Date: Sun, 28 Jul 2013 16:26:41 +0200
-Subject: [PATCH 06/53] MIPS: ralink: add cpu frequency scaling
+Subject: [PATCH 2/2] MIPS: ralink: add cpu frequency scaling
 
 This feature will break udelay() and cause the delay loop to have longer delays
 when the frequency is scaled causing a performance hit.
 
 Signed-off-by: John Crispin <blogic at openwrt.org>
 ---
- arch/mips/ralink/cevt-rt3352.c |   38 ++++++++++++++++++++++++++++++++++++++
- 1 file changed, 38 insertions(+)
+ drivers/clocksource/timer-ralink.c | 117 ++++++++++++++++++++++-------
+ 1 file changed, 89 insertions(+), 28 deletions(-)
 
---- a/arch/mips/ralink/cevt-rt3352.c
-+++ b/arch/mips/ralink/cevt-rt3352.c
-@@ -29,6 +29,10 @@
+--- a/drivers/clocksource/timer-ralink.c
++++ b/drivers/clocksource/timer-ralink.c
+@@ -5,6 +5,7 @@
+  * Copyright (C) 2013 by John Crispin <john at phrozen.org>
+  */
+ 
++#include <asm/mach-ralink/ralink_regs.h>
+ #include <linux/clockchips.h>
+ #include <linux/clocksource.h>
+ #include <linux/interrupt.h>
+@@ -26,6 +27,10 @@
  /* enable the counter */
  #define CFG_CNT_EN		0x1
  
@@ -24,7 +31,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  struct systick_device {
  	void __iomem *membase;
  	struct clock_event_device dev;
-@@ -36,21 +40,53 @@ struct systick_device {
+@@ -33,21 +38,53 @@ struct systick_device {
  	int freq_scale;
  };
  
@@ -64,7 +71,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 +}
 +
  static int systick_next_event(unsigned long delta,
- 				struct clock_event_device *evt)
+ 			      struct clock_event_device *evt)
  {
  	struct systick_device *sdev;
 -	u32 count;
@@ -83,18 +90,18 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  }
  
  static void systick_event_handler(struct clock_event_device *dev)
-@@ -60,20 +96,25 @@ static void systick_event_handler(struct
+@@ -57,20 +94,25 @@ static void systick_event_handler(struct
  
  static irqreturn_t systick_interrupt(int irq, void *dev_id)
  {
--	struct clock_event_device *dev = (struct clock_event_device *) dev_id;
+-	struct clock_event_device *dev = (struct clock_event_device *)dev_id;
 +	int ret = 0;
 +	struct clock_event_device *cdev;
 +	struct systick_device *sdev;
  
 -	dev->event_handler(dev);
 +	if (read_c0_cause() & STATUSF_IP7) {
-+		cdev = (struct clock_event_device *) dev_id;
++		cdev = (struct clock_event_device *)dev_id;
 +		sdev = container_of(cdev, struct systick_device, dev);
 +
 +		/* Clear Count/Compare Interrupt */
@@ -117,7 +124,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  		.features		= CLOCK_EVT_FEAT_ONESHOT,
  		.set_next_event		= systick_next_event,
  		.set_state_shutdown	= systick_shutdown,
-@@ -91,7 +132,13 @@ static int systick_shutdown(struct clock
+@@ -88,7 +130,13 @@ static int systick_shutdown(struct clock
  	if (sdev->irq_requested)
  		free_irq(systick.dev.irq, &systick.dev);
  	sdev->irq_requested = 0;
@@ -132,7 +139,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  
  	return 0;
  }
-@@ -116,33 +163,46 @@ static int systick_set_oneshot(struct cl
+@@ -113,33 +161,46 @@ static int systick_set_oneshot(struct cl
  	return 0;
  }
  
diff --git a/target/linux/ramips/patches-6.6/316-arch-mips-do-not-select-illegal-access-driver-by-def.patch b/target/linux/ramips/patches-6.6/316-arch-mips-do-not-select-illegal-access-driver-by-def.patch
index 1dc54ccf23..8568041670 100644
--- a/target/linux/ramips/patches-6.6/316-arch-mips-do-not-select-illegal-access-driver-by-def.patch
+++ b/target/linux/ramips/patches-6.6/316-arch-mips-do-not-select-illegal-access-driver-by-def.patch
@@ -11,8 +11,8 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 
 --- a/arch/mips/ralink/Kconfig
 +++ b/arch/mips/ralink/Kconfig
-@@ -14,9 +14,9 @@ config CLKEVT_RT3352
- 	select CEVT_SYSTICK_QUIRK
+@@ -2,9 +2,9 @@
+ if RALINK
  
  config RALINK_ILL_ACC
 -	bool
diff --git a/target/linux/ramips/rt305x/config-6.6 b/target/linux/ramips/rt305x/config-6.6
index 6f7b7ea2a1..33efcba633 100644
--- a/target/linux/ramips/rt305x/config-6.6
+++ b/target/linux/ramips/rt305x/config-6.6
@@ -6,7 +6,6 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_CEVT_R4K=y
 CONFIG_CEVT_SYSTICK_QUIRK=y
-CONFIG_CLKEVT_RT3352=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLK_MTMIPS=y
 CONFIG_CLONE_BACKWARDS=y
@@ -160,6 +159,7 @@ CONFIG_PREEMPT_NONE_BUILD=y
 CONFIG_PTP_1588_CLOCK_OPTIONAL=y
 CONFIG_RALINK=y
 # CONFIG_RALINK_ILL_ACC is not set
+CONFIG_RALINK_TIMER=y
 CONFIG_RALINK_WDT=y
 CONFIG_RANDSTRUCT_NONE=y
 CONFIG_RATIONAL=y



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:36 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:36 -0500
Subject: [openwrt/openwrt]  ath79: add support for TP-Link CPE710-v2
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8115.1732821270.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/0b4d831886689b55e149e276dbca5b780fb6a00e

commit 0b4d831886689b55e149e276dbca5b780fb6a00e
Author: Tim Noack <tim at noack.id>
AuthorDate: Mon Oct 21 12:21:59 2024 +0000

    ath79: add support for TP-Link CPE710-v2
    
    TP-Link CPE710-v2 is an outdoor wireless CPE for 5 GHz with one Ethernet
    port based on the AP152 reference board. Compared to the CPE710-v1, the
    only change observed in hardware is that the mdio address of the ethernet
    physical changed from 0x4 to 0x0.
    
    Specifications:
    - SoC: QCA9563-AL3A MIPS 74kc @ 775MHz, AHB @ 258MHz
    - RAM: 128MiB DDR2 @ 650MHz
    - Flash: 16MiB SPI NOR Based on the GD25Q128
    - Wi-Fi 5Ghz: ath10k chip (802.11ac for up to 867Mbps on 5GHz wireless
      data rate), based on the QCA9896
    - Ethernet: one 1GbE port
    - 23dBi high-gain directional 2?2 MIMO parabolic antenna
    - Power, LAN, WLAN5G Blue LEDs
    
    Flashing instructions:
    Flash factory image through stock firmware WEB UI or through TFTP
    To get to TFTP recovery just hold reset button while powering on for around
    30-40 seconds and release.
    Rename factory image to recovery.bin
    Stock TFTP server IP:192.168.0.100
    Stock device TFTP address:192.168.0.254
    
    Signed-off-by: Tim Noack <tim at noack.id>
    Link: https://github.com/openwrt/openwrt/pull/16637
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 5572e0196a93604716ec36ebb8db6737fc6677aa)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ath79/dts/qca9563_tplink_cpe710-v2.dts  | 20 ++++++++++++++++++++
 .../ath79/generic/base-files/etc/board.d/01_leds     |  3 ++-
 .../ath79/generic/base-files/etc/board.d/02_network  |  1 +
 target/linux/ath79/image/generic-tp-link.mk          | 11 +++++++++++
 4 files changed, 34 insertions(+), 1 deletion(-)

diff --git a/target/linux/ath79/dts/qca9563_tplink_cpe710-v2.dts b/target/linux/ath79/dts/qca9563_tplink_cpe710-v2.dts
new file mode 100644
index 0000000000..fe277fc549
--- /dev/null
+++ b/target/linux/ath79/dts/qca9563_tplink_cpe710-v2.dts
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qca9563_tplink_cpe710.dtsi"
+
+/ {
+	model = "TP-Link CPE710 v2";
+	compatible = "tplink,cpe710-v2", "qca,qca9563";
+};
+
+&mdio0 {
+	phy0: ethernet-phy at 0 {
+		reg = <0>;
+		reset-gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+	};
+};
+
+&eth0 {
+	phy-handle = <&phy0>;
+	phy-mode = "sgmii";
+};
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/01_leds b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
index 0e5731dd74..6409adb78a 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
@@ -222,7 +222,8 @@ openmesh,mr900-v1|\
 openmesh,mr900-v2|\
 openmesh,mr1750-v1|\
 openmesh,mr1750-v2|\
-tplink,cpe710-v1)
+tplink,cpe710-v1|\
+tplink,cpe710-v2)
 	ucidef_set_led_netdev "lan" "LAN" "blue:lan" "eth0"
 	;;
 compex,wpj344-16m|\
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network
index 8f79a3fad8..2bd97442d9 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
@@ -89,6 +89,7 @@ ath79_setup_interfaces()
 	tplink,cpe610-v1|\
 	tplink,cpe610-v2|\
 	tplink,cpe710-v1|\
+	tplink,cpe710-v2|\
 	tplink,eap225-outdoor-v1|\
 	tplink,eap225-outdoor-v3|\
 	tplink,eap225-v1|\
diff --git a/target/linux/ath79/image/generic-tp-link.mk b/target/linux/ath79/image/generic-tp-link.mk
index 643de76f7c..c42338db78 100644
--- a/target/linux/ath79/image/generic-tp-link.mk
+++ b/target/linux/ath79/image/generic-tp-link.mk
@@ -391,6 +391,17 @@ define Device/tplink_cpe710-v1
 endef
 TARGET_DEVICES += tplink_cpe710-v1
 
+define Device/tplink_cpe710-v2
+  $(Device/tplink-safeloader-uimage)
+  SOC := qca9563
+  IMAGE_SIZE := 15680k
+  DEVICE_MODEL := CPE710
+  DEVICE_VARIANT := v2
+  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
+  TPLINK_BOARD_ID := CPE710V2
+endef
+TARGET_DEVICES += tplink_cpe710-v2
+
 define Device/tplink-eap2x5
   $(Device/tplink-safeloader)
   LOADER_TYPE := elf



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:42 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:42 -0500
Subject: [openwrt/openwrt]  linux-firmware: rename packages for i915 firmware
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8116.1732821278.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/f59c665660e54dbf57c82711074a9c483d24b88f

commit f59c665660e54dbf57c82711074a9c483d24b88f
Author: Joe Zheng <joe.zheng at intel.com>
AuthorDate: Fri Sep 20 05:57:34 2024 +0000

    linux-firmware: rename packages for i915 firmware
    
    Change the package name from intel-igpu-firmware-* to i915-firmware-*,
    the prefix "intel-igpu" is misleading, i915 firmware is not only for
    iGPU but also for dGPU now.
    
    Remove the redundant "intel" as i915 is already well known.
    
    More accurate file classification to handle following files correctly:
    
      adlp_dmc.bin
      mtl_huc.bin
      mtl_huc_gsc.bin
      mtl_gsc_1.bin
    
    The pattern in regex is "([[:alnum:]]+)_([[:alnum:]]+)(_[\w-.]+)?\.bin",
    where $1 is the platform, $2 is the firmware type (dmc, guc, huc, etc.),
    and the optional $3 which is revision or other suffix.
    
    Glob first to narrow down the target file set, and then split with "_"
    to extract the firmware type (remove the ".bin" in case there is no $3)
    
    Add package "i915-firmware" as a meta package to install all the i915
    firmwares, it is a balance between simplicity and optimization.
    
    * Installing all the available firmwares as a whole, can support all the
      platforms, not only the current one but also the future ones. The
      price to pay is the increased size.
    * If we want to minimize the storage, we can customize to install the
      necessary ones only, even for the target platform only (e.g. ADL) and
      skip the others. The price to pay is the time to tune.
    
    What I am going to do is:
    
    * Let drm-i915 driver depend on i915-firmware-dmc, which is small and
      can cover most of the old platforms
    * Let the user select i915-firmware to install all the i915 firmwares as
      a whole to cover the latest or future platforms
    
    Signed-off-by: Joe Zheng <joe.zheng at intel.com>
    Link: https://github.com/openwrt/openwrt/pull/16276
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit ca00bafd7e05b3f77e38acac6add223ce46df585)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/firmware/linux-firmware/intel.mk | 56 ++++++++++++++++++++++----------
 1 file changed, 38 insertions(+), 18 deletions(-)

diff --git a/package/firmware/linux-firmware/intel.mk b/package/firmware/linux-firmware/intel.mk
index 225b2aa862..4c9e04cd3d 100644
--- a/package/firmware/linux-firmware/intel.mk
+++ b/package/firmware/linux-firmware/intel.mk
@@ -216,29 +216,49 @@ define Package/e100-firmware/install
 endef
 $(eval $(call BuildPackage,e100-firmware))
 
-Package/intel-igpu-firmware-dmc = $(call Package/firmware-default,Intel iGPU DMC Display MC firmware)
-define Package/intel-igpu-firmware-dmc/install
+i915_deps:=+i915-firmware-dmc +i915-firmware-guc +i915-firmware-huc +i915-firmware-gsc
+Package/i915-firmware = $(call Package/firmware-default,Intel I915 firmware \(meta package\),$(i915_deps),LICENSE.i915)
+define Package/i915-firmware/install
+	true
+endef
+$(eval $(call BuildPackage,i915-firmware))
+
+Package/i915-firmware-dmc = $(call Package/firmware-default,Intel I915 DMC firmware,,LICENSE.i915)
+define Package/i915-firmware-dmc/install
 	$(INSTALL_DIR) $(1)/lib/firmware/i915
-	$(CP) \
-		$(PKG_BUILD_DIR)/i915/*_dmc_*.bin* \
-		$(1)/lib/firmware/i915/
+	for f in $(PKG_BUILD_DIR)/i915/*_dmc*.bin; do                        \
+	  t=`echo $$$${f##*/} | cut -d_ -f2 | cut -d. -f1`;                  \
+	  if [ "$$$$t" = dmc ]; then $(CP) $$$$f $(1)/lib/firmware/i915/; fi \
+	done
 endef
-$(eval $(call BuildPackage,intel-igpu-firmware-dmc))
+$(eval $(call BuildPackage,i915-firmware-dmc))
 
-Package/intel-igpu-firmware-guc = $(call Package/firmware-default,Intel iGPU GUC Graphics MC firmware)
-define Package/intel-igpu-firmware-guc/install
+Package/i915-firmware-guc = $(call Package/firmware-default,Intel I915 GUC firmware,,LICENSE.i915)
+define Package/i915-firmware-guc/install
 	$(INSTALL_DIR) $(1)/lib/firmware/i915
-	$(CP) \
-		$(PKG_BUILD_DIR)/i915/*_guc_*.bin* \
-		$(1)/lib/firmware/i915/
+	for f in $(PKG_BUILD_DIR)/i915/*_guc*.bin; do                        \
+	  t=`echo $$$${f##*/} | cut -d_ -f2 | cut -d. -f1`;                  \
+	  if [ "$$$$t" = guc ]; then $(CP) $$$$f $(1)/lib/firmware/i915/; fi \
+	done
 endef
-$(eval $(call BuildPackage,intel-igpu-firmware-guc))
+$(eval $(call BuildPackage,i915-firmware-guc))
 
-Package/intel-igpu-firmware-huc = $(call Package/firmware-default,Intel iGPU HUC H.265 MC firmware)
-define Package/intel-igpu-firmware-huc/install
+Package/i915-firmware-huc = $(call Package/firmware-default,Intel I915 HUC firmware,,LICENSE.i915)
+define Package/i915-firmware-huc/install
 	$(INSTALL_DIR) $(1)/lib/firmware/i915
-	$(CP) \
-		$(PKG_BUILD_DIR)/i915/*_huc_*.bin* \
-		$(1)/lib/firmware/i915/
+	for f in $(PKG_BUILD_DIR)/i915/*_huc*.bin; do                        \
+	  t=`echo $$$${f##*/} | cut -d_ -f2 | cut -d. -f1`;                  \
+	  if [ "$$$$t" = huc ]; then $(CP) $$$$f $(1)/lib/firmware/i915/; fi \
+	done
+endef
+$(eval $(call BuildPackage,i915-firmware-huc))
+
+Package/i915-firmware-gsc = $(call Package/firmware-default,Intel I915 GSC firmware,,LICENSE.i915)
+define Package/i915-firmware-gsc/install
+	$(INSTALL_DIR) $(1)/lib/firmware/i915
+	for f in $(PKG_BUILD_DIR)/i915/*_gsc*.bin; do                        \
+	  t=`echo $$$${f##*/} | cut -d_ -f2 | cut -d. -f1`;                  \
+	  if [ "$$$$t" = gsc ]; then $(CP) $$$$f $(1)/lib/firmware/i915/; fi \
+	done
 endef
-$(eval $(call BuildPackage,intel-igpu-firmware-huc))
+$(eval $(call BuildPackage,i915-firmware-gsc))



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:32 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:32 -0500
Subject: [openwrt/openwrt]  mxs: run kernel_oldconfig
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8117.1732821281.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/35b7bbf35535aa60997a1d09b3ab15c492f39d59

commit 35b7bbf35535aa60997a1d09b3ab15c492f39d59
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Tue Oct 22 17:07:44 2024 -0700

    mxs: run kernel_oldconfig
    
    small change.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16913
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 55644397cd3cb3d8c77d74c9d22872502d091257)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/mxs/config-6.6 | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/target/linux/mxs/config-6.6 b/target/linux/mxs/config-6.6
index b954ea2548..e01e266c0d 100644
--- a/target/linux/mxs/config-6.6
+++ b/target/linux/mxs/config-6.6
@@ -53,6 +53,7 @@ CONFIG_CPU_IDLE=y
 CONFIG_CPU_IDLE_GOV_LADDER=y
 CONFIG_CPU_IDLE_GOV_MENU=y
 CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_CPU_MITIGATIONS=y
 CONFIG_CPU_PABRT_LEGACY=y
 CONFIG_CPU_PM=y
 CONFIG_CPU_THUMB_CAPABLE=y
@@ -70,6 +71,7 @@ CONFIG_CRYPTO_LIB_GF128MUL=y
 CONFIG_CRYPTO_LIB_SHA1=y
 CONFIG_CRYPTO_LIB_UTILS=y
 CONFIG_DEBUG_ALIGN_RODATA=y
+CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
 CONFIG_DMADEVICES=y
 CONFIG_DMA_ENGINE=y
@@ -84,6 +86,7 @@ CONFIG_EXTCON=y
 CONFIG_FEC=y
 CONFIG_FIXED_PHY=y
 CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_FORCE_NR_CPUS=y
 CONFIG_FS_IOMAP=y
 CONFIG_FS_MBCACHE=y
 CONFIG_FUNCTION_ALIGNMENT=0
@@ -206,6 +209,7 @@ CONFIG_PPS=y
 CONFIG_PREEMPT_NONE_BUILD=y
 CONFIG_PTP_1588_CLOCK=y
 CONFIG_PTP_1588_CLOCK_OPTIONAL=y
+CONFIG_RANDSTRUCT_NONE=y
 CONFIG_RATIONAL=y
 CONFIG_REGULATOR=y
 CONFIG_REGULATOR_FIXED_VOLTAGE=y
@@ -231,6 +235,7 @@ CONFIG_SPI=y
 CONFIG_SPI_MASTER=y
 CONFIG_SPI_MXS=y
 CONFIG_SPLIT_PTLOCK_CPUS=999999
+CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
 CONFIG_STMP3XXX_RTC_WATCHDOG=y
 CONFIG_STMP_DEVICE=y
 CONFIG_SWPHY=y



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:56 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:56 -0500
Subject: [openwrt/openwrt]  apk: mark package as broken to hide it by default
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8118.1732821289.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/17bdccb4a52049ee06142c0b5fbc2001bc519a3a

commit 17bdccb4a52049ee06142c0b5fbc2001bc519a3a
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Wed Nov 27 08:32:01 2024 +0000

    apk: mark package as broken to hide it by default
    
    During the last OpenWrt developer meeting 2024-11-26 it was decided,
    that 24.10 will be the last release using opkg package manager and thus
    apk won't be supported, so make it explicit and mark apk package manager
    as broken.
    
    References: https://openwrt.org/meetings/20241126#release_2410
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/system/apk/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/system/apk/Makefile b/package/system/apk/Makefile
index 3e2066e269..8242e12ee9 100644
--- a/package/system/apk/Makefile
+++ b/package/system/apk/Makefile
@@ -27,7 +27,7 @@ define Package/apk/default
   SECTION:=base
   CATEGORY:=Base system
   TITLE:=apk package manager
-  DEPENDS:=+zlib
+  DEPENDS:=@BROKEN +zlib
   URL:=$(PKG_SOURCE_URL)
   PROVIDES:=apk
 endef



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:28 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:28 -0500
Subject: [openwrt/openwrt]  kernel: add kmod-media-controller dependency for
 kmod-usb-audio
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8119.1732821291.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/e654d55446a505dd59c1deb1b0a3f87a983dfdf4

commit e654d55446a505dd59c1deb1b0a3f87a983dfdf4
Author: Thomas Richard <thomas.richard at bootlin.com>
AuthorDate: Tue Nov 5 11:23:36 2024 +0100

    kernel: add kmod-media-controller dependency for kmod-usb-audio
    
    The snd-usb-audio drivers uses media controller if media controller is set.
    So add kmod-media-controller as dependency.
    
    Signed-off-by: Thomas Richard <thomas.richard at bootlin.com>
    Link: https://github.com/openwrt/openwrt/pull/16716
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 109592524663ae8bbda47e4ad51a124153a1c903)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 package/kernel/linux/modules/usb.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/kernel/linux/modules/usb.mk b/package/kernel/linux/modules/usb.mk
index 458c8c4ba6..466c547e8a 100644
--- a/package/kernel/linux/modules/usb.mk
+++ b/package/kernel/linux/modules/usb.mk
@@ -576,6 +576,7 @@ define KernelPackage/usb-audio
 	CONFIG_SND_USB_AUDIO
   $(call AddDepends/usb)
   $(call AddDepends/sound)
+  DEPENDS+=kmod-media-controller
   FILES:= \
 	$(LINUX_DIR)/sound/usb/snd-usbmidi-lib.ko \
 	$(LINUX_DIR)/sound/usb/snd-usb-audio.ko



From lede-commits at lists.infradead.org  Thu Nov 28 10:58:13 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:58:13 -0500
Subject: [openwrt/openwrt]  x86: add all ports to the Gowin 1U default network
 config
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8122.1732821294.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/8eb07120a24b372f3a3be90fca58893eceeecfbe

commit 8eb07120a24b372f3a3be90fca58893eceeecfbe
Author: Til Kaiser <mail at tk154.de>
AuthorDate: Fri Nov 15 16:49:14 2024 +0100

    x86: add all ports to the Gowin 1U default network config
    
    Commit e52c57bb1b30375e0bcc5523db76a672a4a8b4a4 renamed all
    network ports to match the faceplate of the Gowin 1U Rack
    Mount Server and added the br-lan bridge for the eth* ports.
    
    This commit adds the PoE port to the br-lan bridge and a
    br-wan bridge for the two SFP ports so that all ports are
    part of the default network configuration.
    
    Signed-off-by: Til Kaiser <mail at tk154.de>
    Link: https://github.com/openwrt/openwrt/pull/16965
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    (cherry picked from commit 75af6a0d736a696ca726cb44d813791858c29f0c)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/x86/base-files/etc/board.d/02_network | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/linux/x86/base-files/etc/board.d/02_network b/target/linux/x86/base-files/etc/board.d/02_network
index dc744db05d..b3d1855764 100644
--- a/target/linux/x86/base-files/etc/board.d/02_network
+++ b/target/linux/x86/base-files/etc/board.d/02_network
@@ -58,7 +58,7 @@ gowin-solution-co-ltd-gw-mb-u01)
 		ucidef_set_network_device_path_port "sfp2" "$sfp_device/$sfp_port" "0"
 	fi
 
-	ucidef_set_interface_lan "eth1 eth2 eth3 eth4"
+	ucidef_set_interfaces_lan_wan "eth1 eth2 eth3 eth4 poe" "sfp1 sfp2"
 	;;
 pc-engines-apu1|pc-engines-apu2|pc-engines-apu3)
 	ucidef_set_interfaces_lan_wan "eth1 eth2" "eth0"



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:24 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:24 -0500
Subject: [openwrt/openwrt]  menuconfig: add help description for Stack
 Smashing Protection options
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8123.1732821297.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/f05d49cfbda927a618123ccc787b52640baed5e3

commit f05d49cfbda927a618123ccc787b52640baed5e3
Author: Marius Dinu <m95d+git at psihoexpert.ro>
AuthorDate: Sat Nov 9 19:20:47 2024 +0200

    menuconfig: add help description for Stack Smashing Protection options
    
    Descriptions taken from:
    https://wiki.osdev.org/Stack_Smashing_Protector
    
    Signed-off-by: Marius Dinu <m95d+git at psihoexpert.ro>
    Link: https://github.com/openwrt/openwrt/pull/16897
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
    (cherry picked from commit cbf7be9fb37baaaf7ee5c2b6315028bd47c764bc)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 config/Config-build.in | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/config/Config-build.in b/config/Config-build.in
index 41c1daccd9..481be0bb6c 100644
--- a/config/Config-build.in
+++ b/config/Config-build.in
@@ -295,12 +295,22 @@ menu "Global build settings"
 		  Enable GCC Stack Smashing Protection (SSP) for userspace applications
 		config PKG_CC_STACKPROTECTOR_NONE
 			bool "None"
+			help
+				No stack smashing protection.
 		config PKG_CC_STACKPROTECTOR_REGULAR
 			bool "Regular"
+			help
+				Protects functions with vulnerable objects.
+				This includes functions with buffers larger than 8 bytes or calls to alloca.
 		config PKG_CC_STACKPROTECTOR_STRONG
 			bool "Strong"
+			help
+				Like Regular, but also protects functions with
+				local arrays or references to local frame addresses.
 		config PKG_CC_STACKPROTECTOR_ALL
 			bool "All"
+			help
+				Protects all functions.
 	endchoice
 
 	choice
@@ -310,10 +320,18 @@ menu "Global build settings"
 		  Enable GCC Stack-Smashing Protection (SSP) for the kernel
 		config KERNEL_CC_STACKPROTECTOR_NONE
 			bool "None"
+			help
+				No stack smashing protection.
 		config KERNEL_CC_STACKPROTECTOR_REGULAR
 			bool "Regular"
+			help
+				Protects functions with vulnerable objects.
+				This includes functions with buffers larger than 8 bytes or calls to alloca.
 		config KERNEL_CC_STACKPROTECTOR_STRONG
 			bool "Strong"
+			help
+				Like Regular, but also protects functions with
+				local arrays or references to local frame addresses.
 	endchoice
 
 	config KERNEL_STACKPROTECTOR



From lede-commits at lists.infradead.org  Thu Nov 28 10:57:23 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 13:57:23 -0500
Subject: [openwrt/openwrt]  ramips: mt7621: add missing regulator-boot-on
In-Reply-To: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
References: <173282022873.175778.8826983051558320669@git-01.infra.openwrt.org>
Message-ID: <mailman.8124.1732821300.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/68465e524bb8134ac514b4257c5cd5c1cb97dd83

commit 68465e524bb8134ac514b4257c5cd5c1cb97dd83
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Wed Nov 6 13:23:35 2024 -0800

    ramips: mt7621: add missing regulator-boot-on
    
    What seems to be happening is that the kernel requests an ACTIVE_LOW
    gpio initially and sets it to high later based on gpios in dts.
    
    This seems to break some devices where the bootloader sets it to high.
    
    Fixes: e612900ae0 ("ramips: mt7621: convert usb power to regulators")
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16877
    Signed-off-by: Robert Marko <robimarko at gmail.com>
    (cherry picked from commit a7bc6bf7dba98c77724cb8284d21a9c77c263d56)
    Link: https://github.com/openwrt/openwrt/pull/17097
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts          | 1 +
 target/linux/ramips/dts/mt7621_humax_e10.dts                 | 1 +
 target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi | 1 +
 target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts        | 1 +
 target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts        | 1 +
 5 files changed, 5 insertions(+)

diff --git a/target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts b/target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts
index 00ff80e3ca..cba4ceae72 100644
--- a/target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts
+++ b/target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts
@@ -87,6 +87,7 @@
 		regulator-max-microvolt = <5000000>;
 		gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
 		enable-active-high;
+		regulator-boot-on;
 	};
 };
 
diff --git a/target/linux/ramips/dts/mt7621_humax_e10.dts b/target/linux/ramips/dts/mt7621_humax_e10.dts
index 7ba772d5e5..fd66578eaf 100644
--- a/target/linux/ramips/dts/mt7621_humax_e10.dts
+++ b/target/linux/ramips/dts/mt7621_humax_e10.dts
@@ -63,6 +63,7 @@
 		regulator-max-microvolt = <5000000>;
 		gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
 		enable-active-high;
+		regulator-boot-on;
 	};
 };
 
diff --git a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi
index 4a3de8cfba..7429ce673d 100644
--- a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi
+++ b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-7xx.dtsi
@@ -22,6 +22,7 @@
 		regulator-max-microvolt = <5000000>;
 		gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
 		enable-active-high;
+		regulator-boot-on;
 	};
 };
 
diff --git a/target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts b/target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts
index 88894325b5..2a556190d0 100644
--- a/target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts
+++ b/target/linux/ramips/dts/mt7621_zyxel_lte3301-plus.dts
@@ -103,6 +103,7 @@
 		regulator-max-microvolt = <5000000>;
 		gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
 		enable-active-high;
+		regulator-boot-on;
 	};
 };
 
diff --git a/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts b/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts
index e6ff5ecf6a..2d06b949f2 100644
--- a/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts
+++ b/target/linux/ramips/dts/mt7621_zyxel_lte5398-m904.dts
@@ -101,6 +101,7 @@
 		regulator-max-microvolt = <5000000>;
 		gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
 		enable-active-high;
+		regulator-boot-on;
 	};
 };
 



From lede-commits at lists.infradead.org  Thu Nov 28 13:11:17 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 16:11:17 -0500
Subject: [openwrt/openwrt]  mediatek: filogic: add KTD2026/7 driver to Acer
 Connect Vero W6m
In-Reply-To: <173282827620.419507.12544336100025098729@git-01.infra.openwrt.org>
References: <173282827620.419507.12544336100025098729@git-01.infra.openwrt.org>
Message-ID: <mailman.8145.1732828308.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/e44180d45cc4aa24d2d8df55de49b3627ea4d168

commit e44180d45cc4aa24d2d8df55de49b3627ea4d168
Author: George Oldfort <openwrt at 10099.de>
AuthorDate: Tue Nov 26 15:14:56 2024 +0100

    mediatek: filogic: add KTD2026/7 driver to Acer Connect Vero W6m
    
    This commit adds kmod-leds-ktd202x to the OpenWrt image for the device
    "Acer Connect Vero W6m" which is equipped with one KTD2026 controlling the
    device's status LED via I2C.
    
    Signed-off-by: George Oldfort <openwrt at 10099.de>
    Link: https://github.com/openwrt/openwrt/pull/16860
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/mediatek/image/filogic.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index 3a36fbc46b..672790f1a7 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -186,7 +186,7 @@ define Device/acer_vero-w6m
   DEVICE_DTS := mt7986a-acer-vero-w6m
   DEVICE_DTS_DIR := ../dts
   DEVICE_DTS_LOADADDR := 0x47000000
-  DEVICE_PACKAGES := kmod-mt7915e kmod-mt7916-firmware kmod-mt7986-firmware mt7986-wo-firmware e2fsprogs f2fsck mkf2fs
+  DEVICE_PACKAGES := kmod-leds-ktd202x kmod-mt7915e kmod-mt7916-firmware kmod-mt7986-firmware mt7986-wo-firmware e2fsprogs f2fsck mkf2fs
   IMAGES := sysupgrade.bin
   KERNEL := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
   KERNEL_INITRAMFS := kernel-bin | lzma | \



From lede-commits at lists.infradead.org  Thu Nov 28 13:11:16 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 16:11:16 -0500
Subject: [openwrt/openwrt]  generic: backport support for KTD2026/7 rgb(w) led
 controller
In-Reply-To: <173282827620.419507.12544336100025098729@git-01.infra.openwrt.org>
References: <173282827620.419507.12544336100025098729@git-01.infra.openwrt.org>
Message-ID: <mailman.8146.1732828308.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/56d97fff55f3d384eeb00b021c43fecb380a5bdd

commit 56d97fff55f3d384eeb00b021c43fecb380a5bdd
Author: George Oldfort <openwrt at 10099.de>
AuthorDate: Tue Nov 26 15:04:45 2024 +0100

    generic: backport support for KTD2026/7 rgb(w) led controller
    
    This commit adds the Linux kernel mainline driver "leds-ktd202x" for the
    KinetIC KTD2026 and KTD2027 RGB/RBGW controller with I2C interface that was
    introduced in kernel version 6.7, last changed in mainline on 2024-05-31.
    
    At least the Acer Connect Vero W6m (a variant of the Acer Predator Connect
    W6 without 2.5G eth1 port, usb3 port, and the 6 on-board gpio RGB LEDs) is
    equipped with a KTD2026 (and a single RGB LED attached to it used by the
    stock firmware as status LED), and maybe other router devices also are.
    
    Signed-off-by: George Oldfort <openwrt at 10099.de>
    Link: https://github.com/openwrt/openwrt/pull/16860
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/kernel/linux/modules/leds.mk               |  18 +
 .../860-v6.7-leds-add-ktd202x-driver.patch         | 682 +++++++++++++++++++++
 ...202x-get-device-properties-through-fwnode.patch | 221 +++++++
 ...td202x-i2c-id-tables-for-ktd2026-and-2027.patch |  49 ++
 ...rgb-leds-ktd202x-initialize-mutex-earlier.patch |  62 ++
 5 files changed, 1032 insertions(+)

diff --git a/package/kernel/linux/modules/leds.mk b/package/kernel/linux/modules/leds.mk
index 8b24cb0ef8..0c42895bb2 100644
--- a/package/kernel/linux/modules/leds.mk
+++ b/package/kernel/linux/modules/leds.mk
@@ -147,6 +147,24 @@ endef
 $(eval $(call KernelPackage,leds-apu))
 
 
+define KernelPackage/leds-ktd202x
+  SUBMENU:=LED modules
+  TITLE:=LED support for KTD202x Chips
+  DEPENDS:=+kmod-i2c-core +kmod-regmap-i2c
+  KCONFIG:=CONFIG_LEDS_KTD202X
+  FILES:= $(LINUX_DIR)/drivers/leds/rgb/leds-ktd202x.ko
+  AUTOLOAD:=$(call AutoProbe,leds-ktd202x,1)
+endef
+
+define KernelPackage/leds-ktd202x/description
+  This option enables support for the Kinetic KTD2026/KTD2027
+  RGB/White LED driver found in different BQ mobile phones.
+  It is a 3 or 4 channel LED driver programmed via an I2C interface.
+endef
+
+$(eval $(call KernelPackage,leds-ktd202x))
+
+
 define KernelPackage/leds-mlxcpld
   SUBMENU:=$(LEDS_MENU)
   TITLE:=LED support for the Mellanox boards
diff --git a/target/linux/generic/backport-6.6/860-v6.7-leds-add-ktd202x-driver.patch b/target/linux/generic/backport-6.6/860-v6.7-leds-add-ktd202x-driver.patch
new file mode 100644
index 0000000000..fb767c5d99
--- /dev/null
+++ b/target/linux/generic/backport-6.6/860-v6.7-leds-add-ktd202x-driver.patch
@@ -0,0 +1,682 @@
+From 0ebdb7210943eb345992bea9892adbd15a206193 Mon Sep 17 00:00:00 2001
+From: Andr? Apitzsch <git at apitzsch.eu>
+Date: Mon, 2 Oct 2023 18:48:28 +0200
+Subject: leds: Add ktd202x driver
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This commit adds support for Kinetic KTD2026/7 RGB/White LED driver.
+
+Signed-off-by: Andr? Apitzsch <git at apitzsch.eu>
+Link: https://lore.kernel.org/r/20231002-ktd202x-v6-2-26be8eefeb88 at apitzsch.eu
+Signed-off-by: Lee Jones <lee at kernel.org>
+---
+ drivers/leds/rgb/Kconfig        |  13 +
+ drivers/leds/rgb/Makefile       |   1 +
+ drivers/leds/rgb/leds-ktd202x.c | 625 ++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 639 insertions(+)
+ create mode 100644 drivers/leds/rgb/leds-ktd202x.c
+
+(limited to 'drivers/leds/rgb')
+
+--- a/drivers/leds/rgb/Kconfig
++++ b/drivers/leds/rgb/Kconfig
+@@ -14,6 +14,19 @@ config LEDS_GROUP_MULTICOLOR
+ 	  To compile this driver as a module, choose M here: the module
+ 	  will be called leds-group-multicolor.
+ 
++config LEDS_KTD202X
++	tristate "LED support for KTD202x Chips"
++	depends on I2C
++	depends on OF
++	select REGMAP_I2C
++	help
++	  This option enables support for the Kinetic KTD2026/KTD2027
++	  RGB/White LED driver found in different BQ mobile phones.
++	  It is a 3 or 4 channel LED driver programmed via an I2C interface.
++
++	  To compile this driver as a module, choose M here: the module
++	  will be called leds-ktd202x.
++
+ config LEDS_PWM_MULTICOLOR
+ 	tristate "PWM driven multi-color LED Support"
+ 	depends on PWM
+--- a/drivers/leds/rgb/Makefile
++++ b/drivers/leds/rgb/Makefile
+@@ -1,6 +1,7 @@
+ # SPDX-License-Identifier: GPL-2.0
+ 
+ obj-$(CONFIG_LEDS_GROUP_MULTICOLOR)	+= leds-group-multicolor.o
++obj-$(CONFIG_LEDS_KTD202X)		+= leds-ktd202x.o
+ obj-$(CONFIG_LEDS_PWM_MULTICOLOR)	+= leds-pwm-multicolor.o
+ obj-$(CONFIG_LEDS_QCOM_LPG)		+= leds-qcom-lpg.o
+ obj-$(CONFIG_LEDS_MT6370_RGB)		+= leds-mt6370-rgb.o
+--- /dev/null
++++ b/drivers/leds/rgb/leds-ktd202x.c
+@@ -0,0 +1,625 @@
++// SPDX-License-Identifier: GPL-2.0-or-later
++/*
++ * Kinetic KTD2026/7 RGB/White LED driver with I2C interface
++ *
++ * Copyright 2023 Andr? Apitzsch <git at apitzsch.eu>
++ *
++ * Datasheet: https://www.kinet-ic.com/uploads/KTD2026-7-04h.pdf
++ */
++
++#include <linux/i2c.h>
++#include <linux/led-class-multicolor.h>
++#include <linux/module.h>
++#include <linux/mutex.h>
++#include <linux/of.h>
++#include <linux/of_device.h>
++#include <linux/regmap.h>
++#include <linux/regulator/consumer.h>
++
++#define KTD2026_NUM_LEDS 3
++#define KTD2027_NUM_LEDS 4
++#define KTD202X_MAX_LEDS 4
++
++/* Register bank */
++#define KTD202X_REG_RESET_CONTROL	0x00
++#define KTD202X_REG_FLASH_PERIOD	0x01
++#define KTD202X_REG_PWM1_TIMER		0x02
++#define KTD202X_REG_PWM2_TIMER		0x03
++#define KTD202X_REG_CHANNEL_CTRL	0x04
++#define KTD202X_REG_TRISE_FALL		0x05
++#define KTD202X_REG_LED_IOUT(x)		(0x06 + (x))
++
++/* Register 0 */
++#define KTD202X_TIMER_SLOT_CONTROL_TSLOT1	0x00
++#define KTD202X_TIMER_SLOT_CONTROL_TSLOT2	0x01
++#define KTD202X_TIMER_SLOT_CONTROL_TSLOT3	0x02
++#define KTD202X_TIMER_SLOT_CONTROL_TSLOT4	0x03
++#define KTD202X_RSTR_RESET			0x07
++
++#define KTD202X_ENABLE_CTRL_WAKE	0x00 /* SCL High & SDA High */
++#define KTD202X_ENABLE_CTRL_SLEEP	0x08 /* SCL High & SDA Toggling */
++
++#define KTD202X_TRISE_FALL_SCALE_NORMAL		0x00
++#define KTD202X_TRISE_FALL_SCALE_SLOW_X2	0x20
++#define KTD202X_TRISE_FALL_SCALE_SLOW_X4	0x40
++#define KTD202X_TRISE_FALL_SCALE_FAST_X8	0x60
++
++/* Register 1 */
++#define KTD202X_FLASH_PERIOD_256_MS_LOG_RAMP	0x00
++
++/* Register 2-3 */
++#define KTD202X_FLASH_ON_TIME_0_4_PERCENT	0x01
++
++/* Register 4 */
++#define KTD202X_CHANNEL_CTRL_MASK(x) (BIT(2 * (x)) | BIT(2 * (x) + 1))
++#define KTD202X_CHANNEL_CTRL_OFF 0x00
++#define KTD202X_CHANNEL_CTRL_ON(x) BIT(2 * (x))
++#define KTD202X_CHANNEL_CTRL_PWM1(x) BIT(2 * (x) + 1)
++#define KTD202X_CHANNEL_CTRL_PWM2(x) (BIT(2 * (x)) | BIT(2 * (x) + 1))
++
++/* Register 5 */
++#define KTD202X_RAMP_TIMES_2_MS			0x00
++
++/* Register 6-9 */
++#define KTD202X_LED_CURRENT_10_mA		0x4f
++
++#define KTD202X_FLASH_PERIOD_MIN_MS 256
++#define KTD202X_FLASH_PERIOD_STEP_MS 128
++#define KTD202X_FLASH_PERIOD_MAX_STEPS 126
++#define KTD202X_FLASH_ON_MAX 256
++
++#define KTD202X_MAX_BRIGHTNESS 192
++
++static const struct reg_default ktd202x_reg_defaults[] = {
++	{ KTD202X_REG_RESET_CONTROL, KTD202X_TIMER_SLOT_CONTROL_TSLOT1 |
++		KTD202X_ENABLE_CTRL_WAKE | KTD202X_TRISE_FALL_SCALE_NORMAL },
++	{ KTD202X_REG_FLASH_PERIOD, KTD202X_FLASH_PERIOD_256_MS_LOG_RAMP },
++	{ KTD202X_REG_PWM1_TIMER, KTD202X_FLASH_ON_TIME_0_4_PERCENT },
++	{ KTD202X_REG_PWM2_TIMER, KTD202X_FLASH_ON_TIME_0_4_PERCENT },
++	{ KTD202X_REG_CHANNEL_CTRL, KTD202X_CHANNEL_CTRL_OFF },
++	{ KTD202X_REG_TRISE_FALL, KTD202X_RAMP_TIMES_2_MS },
++	{ KTD202X_REG_LED_IOUT(0), KTD202X_LED_CURRENT_10_mA },
++	{ KTD202X_REG_LED_IOUT(1), KTD202X_LED_CURRENT_10_mA },
++	{ KTD202X_REG_LED_IOUT(2), KTD202X_LED_CURRENT_10_mA },
++	{ KTD202X_REG_LED_IOUT(3), KTD202X_LED_CURRENT_10_mA },
++};
++
++struct ktd202x_led {
++	struct ktd202x *chip;
++	union {
++		struct led_classdev cdev;
++		struct led_classdev_mc mcdev;
++	};
++	u32 index;
++};
++
++struct ktd202x {
++	struct mutex mutex;
++	struct regulator_bulk_data regulators[2];
++	struct device *dev;
++	struct regmap *regmap;
++	bool enabled;
++	int num_leds;
++	struct ktd202x_led leds[] __counted_by(num_leds);
++};
++
++static int ktd202x_chip_disable(struct ktd202x *chip)
++{
++	int ret;
++
++	if (!chip->enabled)
++		return 0;
++
++	regmap_write(chip->regmap, KTD202X_REG_RESET_CONTROL, KTD202X_ENABLE_CTRL_SLEEP);
++
++	ret = regulator_bulk_disable(ARRAY_SIZE(chip->regulators), chip->regulators);
++	if (ret) {
++		dev_err(chip->dev, "Failed to disable regulators: %d\n", ret);
++		return ret;
++	}
++
++	chip->enabled = false;
++	return 0;
++}
++
++static int ktd202x_chip_enable(struct ktd202x *chip)
++{
++	int ret;
++
++	if (chip->enabled)
++		return 0;
++
++	ret = regulator_bulk_enable(ARRAY_SIZE(chip->regulators), chip->regulators);
++	if (ret) {
++		dev_err(chip->dev, "Failed to enable regulators: %d\n", ret);
++		return ret;
++	}
++	chip->enabled = true;
++
++	ret = regmap_write(chip->regmap, KTD202X_REG_RESET_CONTROL, KTD202X_ENABLE_CTRL_WAKE);
++
++	if (ret) {
++		dev_err(chip->dev, "Failed to enable the chip: %d\n", ret);
++		ktd202x_chip_disable(chip);
++	}
++
++	return ret;
++}
++
++static bool ktd202x_chip_in_use(struct ktd202x *chip)
++{
++	int i;
++
++	for (i = 0; i < chip->num_leds; i++) {
++		if (chip->leds[i].cdev.brightness)
++			return true;
++	}
++
++	return false;
++}
++
++static int ktd202x_brightness_set(struct ktd202x_led *led,
++				  struct mc_subled *subleds,
++				  unsigned int num_channels)
++{
++	bool mode_blink = false;
++	int channel;
++	int state;
++	int ret;
++	int i;
++
++	if (ktd202x_chip_in_use(led->chip)) {
++		ret = ktd202x_chip_enable(led->chip);
++		if (ret)
++			return ret;
++	}
++
++	ret = regmap_read(led->chip->regmap, KTD202X_REG_CHANNEL_CTRL, &state);
++	if (ret)
++		return ret;
++
++	/*
++	 * In multicolor case, assume blink mode if PWM is set for at least one
++	 * channel because another channel cannot be in state ON at the same time
++	 */
++	for (i = 0; i < num_channels; i++) {
++		int channel_state;
++
++		channel = subleds[i].channel;
++		channel_state = (state >> 2 * channel) & KTD202X_CHANNEL_CTRL_MASK(0);
++		if (channel_state == KTD202X_CHANNEL_CTRL_OFF)
++			continue;
++		mode_blink = channel_state == KTD202X_CHANNEL_CTRL_PWM1(0);
++		break;
++	}
++
++	for (i = 0; i < num_channels; i++) {
++		enum led_brightness brightness;
++		int mode;
++
++		brightness = subleds[i].brightness;
++		channel = subleds[i].channel;
++
++		if (brightness) {
++			/* Register expects brightness between 0 and MAX_BRIGHTNESS - 1 */
++			ret = regmap_write(led->chip->regmap, KTD202X_REG_LED_IOUT(channel),
++					   brightness - 1);
++			if (ret)
++				return ret;
++
++			if (mode_blink)
++				mode = KTD202X_CHANNEL_CTRL_PWM1(channel);
++			else
++				mode = KTD202X_CHANNEL_CTRL_ON(channel);
++		} else {
++			mode = KTD202X_CHANNEL_CTRL_OFF;
++		}
++		ret = regmap_update_bits(led->chip->regmap, KTD202X_REG_CHANNEL_CTRL,
++					 KTD202X_CHANNEL_CTRL_MASK(channel), mode);
++		if (ret)
++			return ret;
++	}
++
++	if (!ktd202x_chip_in_use(led->chip))
++		return ktd202x_chip_disable(led->chip);
++
++	return 0;
++}
++
++static int ktd202x_brightness_single_set(struct led_classdev *cdev,
++					 enum led_brightness value)
++{
++	struct ktd202x_led *led = container_of(cdev, struct ktd202x_led, cdev);
++	struct mc_subled info;
++	int ret;
++
++	cdev->brightness = value;
++
++	mutex_lock(&led->chip->mutex);
++
++	info.brightness = value;
++	info.channel = led->index;
++	ret = ktd202x_brightness_set(led, &info, 1);
++
++	mutex_unlock(&led->chip->mutex);
++
++	return ret;
++}
++
++static int ktd202x_brightness_mc_set(struct led_classdev *cdev,
++				     enum led_brightness value)
++{
++	struct led_classdev_mc *mc = lcdev_to_mccdev(cdev);
++	struct ktd202x_led *led = container_of(mc, struct ktd202x_led, mcdev);
++	int ret;
++
++	cdev->brightness = value;
++
++	mutex_lock(&led->chip->mutex);
++
++	led_mc_calc_color_components(mc, value);
++	ret = ktd202x_brightness_set(led, mc->subled_info, mc->num_colors);
++
++	mutex_unlock(&led->chip->mutex);
++
++	return ret;
++}
++
++static int ktd202x_blink_set(struct ktd202x_led *led, unsigned long *delay_on,
++			     unsigned long *delay_off, struct mc_subled *subleds,
++			     unsigned int num_channels)
++{
++	unsigned long delay_total_ms;
++	int ret, num_steps, on;
++	u8 ctrl_mask = 0;
++	u8 ctrl_pwm1 = 0;
++	u8 ctrl_on = 0;
++	int i;
++
++	mutex_lock(&led->chip->mutex);
++
++	for (i = 0; i < num_channels; i++) {
++		int channel = subleds[i].channel;
++
++		ctrl_mask |= KTD202X_CHANNEL_CTRL_MASK(channel);
++		ctrl_on |= KTD202X_CHANNEL_CTRL_ON(channel);
++		ctrl_pwm1 |= KTD202X_CHANNEL_CTRL_PWM1(channel);
++	}
++
++	/* Never off - brightness is already set, disable blinking */
++	if (!*delay_off) {
++		ret = regmap_update_bits(led->chip->regmap, KTD202X_REG_CHANNEL_CTRL,
++					 ctrl_mask, ctrl_on);
++		goto out;
++	}
++
++	/* Convert into values the HW will understand. */
++
++	/* Integer representation of time of flash period */
++	num_steps = (*delay_on + *delay_off - KTD202X_FLASH_PERIOD_MIN_MS) /
++		    KTD202X_FLASH_PERIOD_STEP_MS;
++	num_steps = clamp(num_steps, 0, KTD202X_FLASH_PERIOD_MAX_STEPS);
++
++	/* Integer representation of percentage of LED ON time */
++	on = (*delay_on * KTD202X_FLASH_ON_MAX) / (*delay_on + *delay_off);
++
++	/* Actually used delay_{on,off} values */
++	delay_total_ms = num_steps * KTD202X_FLASH_PERIOD_STEP_MS + KTD202X_FLASH_PERIOD_MIN_MS;
++	*delay_on = (delay_total_ms * on) / KTD202X_FLASH_ON_MAX;
++	*delay_off = delay_total_ms - *delay_on;
++
++	/* Set timings */
++	ret = regmap_write(led->chip->regmap, KTD202X_REG_FLASH_PERIOD, num_steps);
++	if (ret)
++		goto out;
++
++	ret = regmap_write(led->chip->regmap, KTD202X_REG_PWM1_TIMER, on);
++	if (ret)
++		goto out;
++
++	ret = regmap_update_bits(led->chip->regmap, KTD202X_REG_CHANNEL_CTRL,
++				 ctrl_mask, ctrl_pwm1);
++out:
++	mutex_unlock(&led->chip->mutex);
++	return ret;
++}
++
++static int ktd202x_blink_single_set(struct led_classdev *cdev,
++				    unsigned long *delay_on,
++				    unsigned long *delay_off)
++{
++	struct ktd202x_led *led = container_of(cdev, struct ktd202x_led, cdev);
++	struct mc_subled info;
++	int ret;
++
++	if (!cdev->brightness) {
++		ret = ktd202x_brightness_single_set(cdev, KTD202X_MAX_BRIGHTNESS);
++		if (ret)
++			return ret;
++	}
++
++	/* If no blink specified, default to 1 Hz. */
++	if (!*delay_off && !*delay_on) {
++		*delay_off = 500;
++		*delay_on = 500;
++	}
++
++	/* Never on - just set to off */
++	if (!*delay_on)
++		return ktd202x_brightness_single_set(cdev, LED_OFF);
++
++	info.channel = led->index;
++
++	return ktd202x_blink_set(led, delay_on, delay_off, &info, 1);
++}
++
++static int ktd202x_blink_mc_set(struct led_classdev *cdev,
++				unsigned long *delay_on,
++				unsigned long *delay_off)
++{
++	struct led_classdev_mc *mc = lcdev_to_mccdev(cdev);
++	struct ktd202x_led *led = container_of(mc, struct ktd202x_led, mcdev);
++	int ret;
++
++	if (!cdev->brightness) {
++		ret = ktd202x_brightness_mc_set(cdev, KTD202X_MAX_BRIGHTNESS);
++		if (ret)
++			return ret;
++	}
++
++	/* If no blink specified, default to 1 Hz. */
++	if (!*delay_off && !*delay_on) {
++		*delay_off = 500;
++		*delay_on = 500;
++	}
++
++	/* Never on - just set to off */
++	if (!*delay_on)
++		return ktd202x_brightness_mc_set(cdev, LED_OFF);
++
++	return ktd202x_blink_set(led, delay_on, delay_off, mc->subled_info,
++				 mc->num_colors);
++}
++
++static int ktd202x_setup_led_rgb(struct ktd202x *chip, struct device_node *np,
++				 struct ktd202x_led *led, struct led_init_data *init_data)
++{
++	struct led_classdev *cdev;
++	struct device_node *child;
++	struct mc_subled *info;
++	int num_channels;
++	int i = 0;
++
++	num_channels = of_get_available_child_count(np);
++	if (!num_channels || num_channels > chip->num_leds)
++		return -EINVAL;
++
++	info = devm_kcalloc(chip->dev, num_channels, sizeof(*info), GFP_KERNEL);
++	if (!info)
++		return -ENOMEM;
++
++	for_each_available_child_of_node(np, child) {
++		u32 mono_color;
++		u32 reg;
++		int ret;
++
++		ret = of_property_read_u32(child, "reg", &reg);
++		if (ret != 0 || reg >= chip->num_leds) {
++			dev_err(chip->dev, "invalid 'reg' of %pOFn\n", child);
++			of_node_put(child);
++			return -EINVAL;
++		}
++
++		ret = of_property_read_u32(child, "color", &mono_color);
++		if (ret < 0 && ret != -EINVAL) {
++			dev_err(chip->dev, "failed to parse 'color' of %pOF\n", child);
++			of_node_put(child);
++			return ret;
++		}
++
++		info[i].color_index = mono_color;
++		info[i].channel = reg;
++		info[i].intensity = KTD202X_MAX_BRIGHTNESS;
++		i++;
++	}
++
++	led->mcdev.subled_info = info;
++	led->mcdev.num_colors = num_channels;
++
++	cdev = &led->mcdev.led_cdev;
++	cdev->brightness_set_blocking = ktd202x_brightness_mc_set;
++	cdev->blink_set = ktd202x_blink_mc_set;
++
++	return devm_led_classdev_multicolor_register_ext(chip->dev, &led->mcdev, init_data);
++}
++
++static int ktd202x_setup_led_single(struct ktd202x *chip, struct device_node *np,
++				    struct ktd202x_led *led, struct led_init_data *init_data)
++{
++	struct led_classdev *cdev;
++	u32 reg;
++	int ret;
++
++	ret = of_property_read_u32(np, "reg", &reg);
++	if (ret != 0 || reg >= chip->num_leds) {
++		dev_err(chip->dev, "invalid 'reg' of %pOFn\n", np);
++		return -EINVAL;
++	}
++	led->index = reg;
++
++	cdev = &led->cdev;
++	cdev->brightness_set_blocking = ktd202x_brightness_single_set;
++	cdev->blink_set = ktd202x_blink_single_set;
++
++	return devm_led_classdev_register_ext(chip->dev, &led->cdev, init_data);
++}
++
++static int ktd202x_add_led(struct ktd202x *chip, struct device_node *np, unsigned int index)
++{
++	struct ktd202x_led *led = &chip->leds[index];
++	struct led_init_data init_data = {};
++	struct led_classdev *cdev;
++	u32 color;
++	int ret;
++
++	/* Color property is optional in single color case */
++	ret = of_property_read_u32(np, "color", &color);
++	if (ret < 0 && ret != -EINVAL) {
++		dev_err(chip->dev, "failed to parse 'color' of %pOF\n", np);
++		return ret;
++	}
++
++	led->chip = chip;
++	init_data.fwnode = of_fwnode_handle(np);
++
++	if (color == LED_COLOR_ID_RGB) {
++		cdev = &led->mcdev.led_cdev;
++		ret = ktd202x_setup_led_rgb(chip, np, led, &init_data);
++	} else {
++		cdev = &led->cdev;
++		ret = ktd202x_setup_led_single(chip, np, led, &init_data);
++	}
++
++	if (ret) {
++		dev_err(chip->dev, "unable to register %s\n", cdev->name);
++		return ret;
++	}
++
++	cdev->max_brightness = KTD202X_MAX_BRIGHTNESS;
++
++	return 0;
++}
++
++static int ktd202x_probe_dt(struct ktd202x *chip)
++{
++	struct device_node *np = dev_of_node(chip->dev), *child;
++	int count;
++	int i = 0;
++
++	chip->num_leds = (int)(unsigned long)of_device_get_match_data(chip->dev);
++
++	count = of_get_available_child_count(np);
++	if (!count || count > chip->num_leds)
++		return -EINVAL;
++
++	regmap_write(chip->regmap, KTD202X_REG_RESET_CONTROL, KTD202X_RSTR_RESET);
++
++	/* Allow the device to execute the complete reset */
++	usleep_range(200, 300);
++
++	for_each_available_child_of_node(np, child) {
++		int ret = ktd202x_add_led(chip, child, i);
++
++		if (ret) {
++			of_node_put(child);
++			return ret;
++		}
++		i++;
++	}
++
++	return 0;
++}
++
++static const struct regmap_config ktd202x_regmap_config = {
++	.reg_bits = 8,
++	.val_bits = 8,
++	.max_register = 0x09,
++	.cache_type = REGCACHE_FLAT,
++	.reg_defaults = ktd202x_reg_defaults,
++	.num_reg_defaults = ARRAY_SIZE(ktd202x_reg_defaults),
++};
++
++static int ktd202x_probe(struct i2c_client *client)
++{
++	struct device *dev = &client->dev;
++	struct ktd202x *chip;
++	int count;
++	int ret;
++
++	count = device_get_child_node_count(dev);
++	if (!count || count > KTD202X_MAX_LEDS)
++		return dev_err_probe(dev, -EINVAL, "Incorrect number of leds (%d)", count);
++
++	chip = devm_kzalloc(dev, struct_size(chip, leds, count), GFP_KERNEL);
++	if (!chip)
++		return -ENOMEM;
++
++	chip->dev = dev;
++	i2c_set_clientdata(client, chip);
++
++	chip->regmap = devm_regmap_init_i2c(client, &ktd202x_regmap_config);
++	if (IS_ERR(chip->regmap)) {
++		ret = dev_err_probe(dev, PTR_ERR(chip->regmap),
++				    "Failed to allocate register map.\n");
++		return ret;
++	}
++
++	chip->regulators[0].supply = "vin";
++	chip->regulators[1].supply = "vio";
++	ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(chip->regulators), chip->regulators);
++	if (ret < 0) {
++		dev_err_probe(dev, ret, "Failed to request regulators.\n");
++		return ret;
++	}
++
++	ret = regulator_bulk_enable(ARRAY_SIZE(chip->regulators), chip->regulators);
++	if (ret) {
++		dev_err_probe(dev, ret, "Failed to enable regulators.\n");
++		return ret;
++	}
++
++	ret = ktd202x_probe_dt(chip);
++	if (ret < 0) {
++		regulator_bulk_disable(ARRAY_SIZE(chip->regulators), chip->regulators);
++		return ret;
++	}
++
++	ret = regulator_bulk_disable(ARRAY_SIZE(chip->regulators), chip->regulators);
++	if (ret) {
++		dev_err_probe(dev, ret, "Failed to disable regulators.\n");
++		return ret;
++	}
++
++	mutex_init(&chip->mutex);
++
++	return 0;
++}
++
++static void ktd202x_remove(struct i2c_client *client)
++{
++	struct ktd202x *chip = i2c_get_clientdata(client);
++
++	ktd202x_chip_disable(chip);
++
++	mutex_destroy(&chip->mutex);
++}
++
++static void ktd202x_shutdown(struct i2c_client *client)
++{
++	struct ktd202x *chip = i2c_get_clientdata(client);
++
++	/* Reset registers to make sure all LEDs are off before shutdown */
++	regmap_write(chip->regmap, KTD202X_REG_RESET_CONTROL, KTD202X_RSTR_RESET);
++}
++
++static const struct of_device_id ktd202x_match_table[] = {
++	{ .compatible = "kinetic,ktd2026", .data = (void *)KTD2026_NUM_LEDS },
++	{ .compatible = "kinetic,ktd2027", .data = (void *)KTD2027_NUM_LEDS },
++	{},
++};
++MODULE_DEVICE_TABLE(of, ktd202x_match_table);
++
++static struct i2c_driver ktd202x_driver = {
++	.driver = {
++		.name = "leds-ktd202x",
++		.of_match_table = ktd202x_match_table,
++	},
++	.probe = ktd202x_probe,
++	.remove = ktd202x_remove,
++	.shutdown = ktd202x_shutdown,
++};
++module_i2c_driver(ktd202x_driver);
++
++MODULE_AUTHOR("Andr? Apitzsch <git at apitzsch.eu>");
++MODULE_DESCRIPTION("Kinetic KTD2026/7 LED driver");
++MODULE_LICENSE("GPL");
diff --git a/target/linux/generic/backport-6.6/861-v6.10-leds-rgb-leds-ktd202x-get-device-properties-through-fwnode.patch b/target/linux/generic/backport-6.6/861-v6.10-leds-rgb-leds-ktd202x-get-device-properties-through-fwnode.patch
new file mode 100644
index 0000000000..92b20c3b9c
--- /dev/null
+++ b/target/linux/generic/backport-6.6/861-v6.10-leds-rgb-leds-ktd202x-get-device-properties-through-fwnode.patch
@@ -0,0 +1,221 @@
+From f14aa5ea415b8add245e976bfab96a12986c6843 Mon Sep 17 00:00:00 2001
+From: Kate Hsuan <hpa at redhat.com>
+Date: Fri, 31 May 2024 13:41:19 +0200
+Subject: leds: rgb: leds-ktd202x: Get device properties through fwnode to
+ support ACPI
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This LED controller is installed on a Xiaomi pad2 and it is an x86
+platform. The original driver is based on the device tree and can't be
+used for this ACPI based system. This patch migrated the driver to use
+fwnode to access the properties. Moreover, the fwnode API supports the
+device tree so this work won't affect the original implementations.
+
+Signed-off-by: Kate Hsuan <hpa at redhat.com>
+Tested-by: Andr? Apitzsch <git at apitzsch.eu> # on BQ Aquaris M5
+Reviewed-by: Hans de Goede <hdegoede at redhat.com>
+Reviewed-by: Andy Shevchenko <andy at kernel.org>
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Link: https://lore.kernel.org/r/20240531114124.45346-2-hdegoede at redhat.com
+Signed-off-by: Lee Jones <lee at kernel.org>
+---
+ drivers/leds/rgb/Kconfig        |  1 -
+ drivers/leds/rgb/leds-ktd202x.c | 64 ++++++++++++++++++++++-------------------
+ 2 files changed, 34 insertions(+), 31 deletions(-)
+
+(limited to 'drivers/leds/rgb')
+
+--- a/drivers/leds/rgb/Kconfig
++++ b/drivers/leds/rgb/Kconfig
+@@ -17,7 +17,6 @@ config LEDS_GROUP_MULTICOLOR
+ config LEDS_KTD202X
+ 	tristate "LED support for KTD202x Chips"
+ 	depends on I2C
+-	depends on OF
+ 	select REGMAP_I2C
+ 	help
+ 	  This option enables support for the Kinetic KTD2026/KTD2027
+--- a/drivers/leds/rgb/leds-ktd202x.c
++++ b/drivers/leds/rgb/leds-ktd202x.c
+@@ -99,7 +99,7 @@ struct ktd202x {
+ 	struct device *dev;
+ 	struct regmap *regmap;
+ 	bool enabled;
+-	int num_leds;
++	unsigned long num_leds;
+ 	struct ktd202x_led leds[] __counted_by(num_leds);
+ };
+ 
+@@ -381,16 +381,19 @@ static int ktd202x_blink_mc_set(struct l
+ 				 mc->num_colors);
+ }
+ 
+-static int ktd202x_setup_led_rgb(struct ktd202x *chip, struct device_node *np,
++static int ktd202x_setup_led_rgb(struct ktd202x *chip, struct fwnode_handle *fwnode,
+ 				 struct ktd202x_led *led, struct led_init_data *init_data)
+ {
++	struct fwnode_handle *child;
+ 	struct led_classdev *cdev;
+-	struct device_node *child;
+ 	struct mc_subled *info;
+ 	int num_channels;
+ 	int i = 0;
+ 
+-	num_channels = of_get_available_child_count(np);
++	num_channels = 0;
++	fwnode_for_each_available_child_node(fwnode, child)
++		num_channels++;
++
+ 	if (!num_channels || num_channels > chip->num_leds)
+ 		return -EINVAL;
+ 
+@@ -398,22 +401,22 @@ static int ktd202x_setup_led_rgb(struct
+ 	if (!info)
+ 		return -ENOMEM;
+ 
+-	for_each_available_child_of_node(np, child) {
++	fwnode_for_each_available_child_node(fwnode, child) {
+ 		u32 mono_color;
+ 		u32 reg;
+ 		int ret;
+ 
+-		ret = of_property_read_u32(child, "reg", &reg);
++		ret = fwnode_property_read_u32(child, "reg", &reg);
+ 		if (ret != 0 || reg >= chip->num_leds) {
+-			dev_err(chip->dev, "invalid 'reg' of %pOFn\n", child);
+-			of_node_put(child);
+-			return -EINVAL;
++			dev_err(chip->dev, "invalid 'reg' of %pfw\n", child);
++			fwnode_handle_put(child);
++			return ret;
+ 		}
+ 
+-		ret = of_property_read_u32(child, "color", &mono_color);
++		ret = fwnode_property_read_u32(child, "color", &mono_color);
+ 		if (ret < 0 && ret != -EINVAL) {
+-			dev_err(chip->dev, "failed to parse 'color' of %pOF\n", child);
+-			of_node_put(child);
++			dev_err(chip->dev, "failed to parse 'color' of %pfw\n", child);
++			fwnode_handle_put(child);
+ 			return ret;
+ 		}
+ 
+@@ -433,16 +436,16 @@ static int ktd202x_setup_led_rgb(struct
+ 	return devm_led_classdev_multicolor_register_ext(chip->dev, &led->mcdev, init_data);
+ }
+ 
+-static int ktd202x_setup_led_single(struct ktd202x *chip, struct device_node *np,
++static int ktd202x_setup_led_single(struct ktd202x *chip, struct fwnode_handle *fwnode,
+ 				    struct ktd202x_led *led, struct led_init_data *init_data)
+ {
+ 	struct led_classdev *cdev;
+ 	u32 reg;
+ 	int ret;
+ 
+-	ret = of_property_read_u32(np, "reg", &reg);
++	ret = fwnode_property_read_u32(fwnode, "reg", &reg);
+ 	if (ret != 0 || reg >= chip->num_leds) {
+-		dev_err(chip->dev, "invalid 'reg' of %pOFn\n", np);
++		dev_err(chip->dev, "invalid 'reg' of %pfw\n", fwnode);
+ 		return -EINVAL;
+ 	}
+ 	led->index = reg;
+@@ -454,7 +457,7 @@ static int ktd202x_setup_led_single(stru
+ 	return devm_led_classdev_register_ext(chip->dev, &led->cdev, init_data);
+ }
+ 
+-static int ktd202x_add_led(struct ktd202x *chip, struct device_node *np, unsigned int index)
++static int ktd202x_add_led(struct ktd202x *chip, struct fwnode_handle *fwnode, unsigned int index)
+ {
+ 	struct ktd202x_led *led = &chip->leds[index];
+ 	struct led_init_data init_data = {};
+@@ -463,21 +466,21 @@ static int ktd202x_add_led(struct ktd202
+ 	int ret;
+ 
+ 	/* Color property is optional in single color case */
+-	ret = of_property_read_u32(np, "color", &color);
++	ret = fwnode_property_read_u32(fwnode, "color", &color);
+ 	if (ret < 0 && ret != -EINVAL) {
+-		dev_err(chip->dev, "failed to parse 'color' of %pOF\n", np);
++		dev_err(chip->dev, "failed to parse 'color' of %pfw\n", fwnode);
+ 		return ret;
+ 	}
+ 
+ 	led->chip = chip;
+-	init_data.fwnode = of_fwnode_handle(np);
++	init_data.fwnode = fwnode;
+ 
+ 	if (color == LED_COLOR_ID_RGB) {
+ 		cdev = &led->mcdev.led_cdev;
+-		ret = ktd202x_setup_led_rgb(chip, np, led, &init_data);
++		ret = ktd202x_setup_led_rgb(chip, fwnode, led, &init_data);
+ 	} else {
+ 		cdev = &led->cdev;
+-		ret = ktd202x_setup_led_single(chip, np, led, &init_data);
++		ret = ktd202x_setup_led_single(chip, fwnode, led, &init_data);
+ 	}
+ 
+ 	if (ret) {
+@@ -490,15 +493,14 @@ static int ktd202x_add_led(struct ktd202
+ 	return 0;
+ }
+ 
+-static int ktd202x_probe_dt(struct ktd202x *chip)
++static int ktd202x_probe_fw(struct ktd202x *chip)
+ {
+-	struct device_node *np = dev_of_node(chip->dev), *child;
++	struct fwnode_handle *child;
++	struct device *dev = chip->dev;
+ 	int count;
+ 	int i = 0;
+ 
+-	chip->num_leds = (int)(unsigned long)of_device_get_match_data(chip->dev);
+-
+-	count = of_get_available_child_count(np);
++	count = device_get_child_node_count(dev);
+ 	if (!count || count > chip->num_leds)
+ 		return -EINVAL;
+ 
+@@ -507,11 +509,11 @@ static int ktd202x_probe_dt(struct ktd20
+ 	/* Allow the device to execute the complete reset */
+ 	usleep_range(200, 300);
+ 
+-	for_each_available_child_of_node(np, child) {
++	device_for_each_child_node(dev, child) {
+ 		int ret = ktd202x_add_led(chip, child, i);
+ 
+ 		if (ret) {
+-			of_node_put(child);
++			fwnode_handle_put(child);
+ 			return ret;
+ 		}
+ 		i++;
+@@ -554,6 +556,8 @@ static int ktd202x_probe(struct i2c_clie
+ 		return ret;
+ 	}
+ 
++	chip->num_leds = (unsigned long)i2c_get_match_data(client);
++
+ 	chip->regulators[0].supply = "vin";
+ 	chip->regulators[1].supply = "vio";
+ 	ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(chip->regulators), chip->regulators);
+@@ -568,7 +572,7 @@ static int ktd202x_probe(struct i2c_clie
+ 		return ret;
+ 	}
+ 
+-	ret = ktd202x_probe_dt(chip);
++	ret = ktd202x_probe_fw(chip);
+ 	if (ret < 0) {
+ 		regulator_bulk_disable(ARRAY_SIZE(chip->regulators), chip->regulators);
+ 		return ret;
+@@ -605,7 +609,7 @@ static void ktd202x_shutdown(struct i2c_
+ static const struct of_device_id ktd202x_match_table[] = {
+ 	{ .compatible = "kinetic,ktd2026", .data = (void *)KTD2026_NUM_LEDS },
+ 	{ .compatible = "kinetic,ktd2027", .data = (void *)KTD2027_NUM_LEDS },
+-	{},
++	{}
+ };
+ MODULE_DEVICE_TABLE(of, ktd202x_match_table);
+ 
diff --git a/target/linux/generic/backport-6.6/862-v6.10-leds-rgb-leds-ktd202x-i2c-id-tables-for-ktd2026-and-2027.patch b/target/linux/generic/backport-6.6/862-v6.10-leds-rgb-leds-ktd202x-i2c-id-tables-for-ktd2026-and-2027.patch
new file mode 100644
index 0000000000..223ccd8f50
--- /dev/null
+++ b/target/linux/generic/backport-6.6/862-v6.10-leds-rgb-leds-ktd202x-i2c-id-tables-for-ktd2026-and-2027.patch
@@ -0,0 +1,49 @@
+From 75bd07aef47e1a984229e6ec702e8b9aee0226e4 Mon Sep 17 00:00:00 2001
+From: Kate Hsuan <hpa at redhat.com>
+Date: Fri, 31 May 2024 13:41:20 +0200
+Subject: leds: rgb: leds-ktd202x: I2C ID tables for KTD2026 and 2027
+
+Add an i2c_device_id id_table to match manually instantiated
+(non device-tree / ACPI instantiated) KTD202x controllers as
+found on some x86 boards.
+
+This table shows the maximum support LED channel for KTD2026
+(three LEDs) and KTD-2027 (4 LEDs).
+
+Link: https://www.kinet-ic.com/uploads/KTD2026-7-04h.pdf
+Signed-off-by: Kate Hsuan <hpa at redhat.com>
+Reviewed-by: Hans de Goede <hdegoede at redhat.com>
+Reviewed-by: Andy Shevchenko <andy at kernel.org>
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Link: https://lore.kernel.org/r/20240531114124.45346-3-hdegoede at redhat.com
+Signed-off-by: Lee Jones <lee at kernel.org>
+---
+ drivers/leds/rgb/leds-ktd202x.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+(limited to 'drivers/leds/rgb')
+
+--- a/drivers/leds/rgb/leds-ktd202x.c
++++ b/drivers/leds/rgb/leds-ktd202x.c
+@@ -606,6 +606,13 @@ static void ktd202x_shutdown(struct i2c_
+ 	regmap_write(chip->regmap, KTD202X_REG_RESET_CONTROL, KTD202X_RSTR_RESET);
+ }
+ 
++static const struct i2c_device_id ktd202x_id[] = {
++	{"ktd2026", KTD2026_NUM_LEDS},
++	{"ktd2027", KTD2027_NUM_LEDS},
++	{}
++};
++MODULE_DEVICE_TABLE(i2c, ktd202x_id);
++
+ static const struct of_device_id ktd202x_match_table[] = {
+ 	{ .compatible = "kinetic,ktd2026", .data = (void *)KTD2026_NUM_LEDS },
+ 	{ .compatible = "kinetic,ktd2027", .data = (void *)KTD2027_NUM_LEDS },
+@@ -621,6 +628,7 @@ static struct i2c_driver ktd202x_driver
+ 	.probe = ktd202x_probe,
+ 	.remove = ktd202x_remove,
+ 	.shutdown = ktd202x_shutdown,
++	.id_table = ktd202x_id,
+ };
+ module_i2c_driver(ktd202x_driver);
+ 
diff --git a/target/linux/generic/backport-6.6/863-v6.10-leds-rgb-leds-ktd202x-initialize-mutex-earlier.patch b/target/linux/generic/backport-6.6/863-v6.10-leds-rgb-leds-ktd202x-initialize-mutex-earlier.patch
new file mode 100644
index 0000000000..533b0f0e17
--- /dev/null
+++ b/target/linux/generic/backport-6.6/863-v6.10-leds-rgb-leds-ktd202x-initialize-mutex-earlier.patch
@@ -0,0 +1,62 @@
+From e1b08c6f5b92d408a9fcc1030a340caeb9852250 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Fri, 31 May 2024 13:41:21 +0200
+Subject: leds: rgb: leds-ktd202x: Initialize mutex earlier
+
+The mutex must be initialized before the LED class device is registered
+otherwise there is a race where it may get used before it is initialized:
+
+ DEBUG_LOCKS_WARN_ON(lock->magic != lock)
+ WARNING: CPU: 2 PID: 2045 at kernel/locking/mutex.c:587 __mutex_lock
+ ...
+ RIP: 0010:__mutex_lock+0x7db/0xc10
+ ...
+ set_brightness_delayed_set_brightness.part.0+0x17/0x60
+ set_brightness_delayed+0xf1/0x100
+ process_one_work+0x222/0x5a0
+
+Move the mutex_init() call earlier to avoid this race condition and
+switch to devm_mutex_init() to avoid the need to add error-exit
+cleanup to probe() if probe() fails later on.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Reviewed-by: Andy Shevchenko <andy at kernel.org>
+Link: https://lore.kernel.org/r/20240531114124.45346-4-hdegoede at redhat.com
+Signed-off-by: Lee Jones <lee at kernel.org>
+---
+ drivers/leds/rgb/leds-ktd202x.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+(limited to 'drivers/leds/rgb')
+
+--- a/drivers/leds/rgb/leds-ktd202x.c
++++ b/drivers/leds/rgb/leds-ktd202x.c
+@@ -556,6 +556,10 @@ static int ktd202x_probe(struct i2c_clie
+ 		return ret;
+ 	}
+ 
++	ret = devm_mutex_init(dev, &chip->mutex);
++	if (ret)
++		return ret;
++
+ 	chip->num_leds = (unsigned long)i2c_get_match_data(client);
+ 
+ 	chip->regulators[0].supply = "vin";
+@@ -584,8 +588,6 @@ static int ktd202x_probe(struct i2c_clie
+ 		return ret;
+ 	}
+ 
+-	mutex_init(&chip->mutex);
+-
+ 	return 0;
+ }
+ 
+@@ -594,8 +596,6 @@ static void ktd202x_remove(struct i2c_cl
+ 	struct ktd202x *chip = i2c_get_clientdata(client);
+ 
+ 	ktd202x_chip_disable(chip);
+-
+-	mutex_destroy(&chip->mutex);
+ }
+ 
+ static void ktd202x_shutdown(struct i2c_client *client)



From lede-commits at lists.infradead.org  Thu Nov 28 13:19:59 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 16:19:59 -0500
Subject: [openwrt/openwrt]  mediatek: filogic: Cudy WR3000S v1: fix CRLF line
 endings
In-Reply-To: <173282879894.434138.5549945551613959372@git-01.infra.openwrt.org>
References: <173282879894.434138.5549945551613959372@git-01.infra.openwrt.org>
Message-ID: <mailman.8151.1732828802.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/30ae0b3f1e331646054d8110e931dfaa32f7b414

commit 30ae0b3f1e331646054d8110e931dfaa32f7b414
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Wed Nov 27 08:39:46 2024 +0000

    mediatek: filogic: Cudy WR3000S v1: fix CRLF line endings
    
    DTS file for this device seems to be using CRLF line endings, so lets
    convert them into Unix-style LF.
    
    Fixes: faf4b3e0f7a5 ("mediatek: filogic: add support for Cudy WR3000S v1")
    Link: https://github.com/openwrt/openwrt/pull/17096
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
---
 .../linux/mediatek/dts/mt7981b-cudy-wr3000s-v1.dts | 566 ++++++++++-----------
 1 file changed, 283 insertions(+), 283 deletions(-)

diff --git a/target/linux/mediatek/dts/mt7981b-cudy-wr3000s-v1.dts b/target/linux/mediatek/dts/mt7981b-cudy-wr3000s-v1.dts
index a643969494..cf2f79b407 100644
--- a/target/linux/mediatek/dts/mt7981b-cudy-wr3000s-v1.dts
+++ b/target/linux/mediatek/dts/mt7981b-cudy-wr3000s-v1.dts
@@ -1,283 +1,283 @@
-// SPDX-License-Identifier: (GPL-2.0 OR MIT)
-
-/dts-v1/;
-
-#include <dt-bindings/leds/common.h>
-
-#include "mt7981.dtsi"
-
-/ {
-	model = "Cudy WR3000S v1";
-	compatible = "cudy,wr3000s-v1", "mediatek,mt7981-spim-snand-rfb";
-
-	aliases {
-		label-mac-device = &gmac0;
-		led-boot = &led_status;
-		led-failsafe = &led_status;
-		led-running = &led_status;
-		led-upgrade = &led_status;
-		serial0 = &uart0;
-	};
-
-	chosen {
-		stdout-path = "serial0:115200n8";
-	};
-
-	gpio-keys {
-		compatible = "gpio-keys";
-
-		reset {
-			label = "reset";
-			linux,code = <KEY_RESTART>;
-			gpios = <&pio 1 GPIO_ACTIVE_LOW>;
-		};
-
-		wps {
-			label = "wps";
-			linux,code = <KEY_WPS_BUTTON>;
-			gpios = <&pio 0 GPIO_ACTIVE_LOW>;
-		};
-	};
-
-	leds {
-		compatible = "gpio-leds";
-
-		led_status: led at 0 {
-			function = LED_FUNCTION_STATUS;
-			color = <LED_COLOR_ID_WHITE>;
-			gpios = <&pio 10 GPIO_ACTIVE_LOW>;
-		};
-
-
-		led_internet {
-			function = LED_FUNCTION_WAN_ONLINE;
-			color = <LED_COLOR_ID_WHITE>;
-			gpios = <&pio 11 GPIO_ACTIVE_LOW>;
-		};
-
-		led_wps {
-			function = LED_FUNCTION_WPS;
-			color = <LED_COLOR_ID_WHITE>;
-			gpios = <&pio 9 GPIO_ACTIVE_LOW>;
-		};
-
-		led_wlan2g {
-			function = LED_FUNCTION_WLAN_2GHZ;
-			color = <LED_COLOR_ID_WHITE>;
-			gpios = <&pio 6 GPIO_ACTIVE_LOW>;
-			linux,default-trigger = "phy0tpt";
-		};
-
-		led_wlan5g {
-			function = LED_FUNCTION_WLAN_5GHZ;
-			color = <LED_COLOR_ID_WHITE>;
-			gpios = <&pio 7 GPIO_ACTIVE_LOW>;
-			linux,default-trigger = "phy1tpt";
-		};
-	};
-};
-
-&uart0 {
-	status = "okay";
-};
-
-&watchdog {
-	status = "okay";
-};
-
-&eth {
-	pinctrl-names = "default";
-	pinctrl-0 = <&mdio_pins>;
-
-	status = "okay";
-
-	gmac0: mac at 0 {
-		compatible = "mediatek,eth-mac";
-		reg = <0>;
-		phy-mode = "2500base-x";
-
-		nvmem-cell-names = "mac-address";
-		nvmem-cells = <&macaddr_bdinfo_de00 0>;
-
-		fixed-link {
-			speed = <2500>;
-			full-duplex;
-			pause;
-		};
-	};
-};
-
-&mdio_bus {
-	switch: switch at 1f {
-		compatible = "mediatek,mt7531";
-		reg = <31>;
-		reset-gpios = <&pio 39 GPIO_ACTIVE_HIGH>;
-		interrupt-controller;
-		#interrupt-cells = <1>;
-		interrupt-parent = <&pio>;
-		interrupts = <38 IRQ_TYPE_LEVEL_HIGH>;
-	};
-};
-
-&spi0 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&spi0_flash_pins>;
-	status = "okay";
-
-	spi_nand: flash at 0 {
-		#address-cells = <1>;
-		#size-cells = <1>;
-		compatible = "spi-nand";
-		reg = <0>;
-		spi-max-frequency = <52000000>;
-
-		spi-cal-enable;
-		spi-cal-mode = "read-data";
-		spi-cal-datalen = <7>;
-		spi-cal-data = /bits/ 8 <0x53 0x50 0x49 0x4E 0x41 0x4E 0x44>;
-		spi-cal-addrlen = <5>;
-		spi-cal-addr = /bits/ 32 <0x0 0x0 0x0 0x0 0x0>;
-
-		spi-tx-bus-width = <4>;
-		spi-rx-bus-width = <4>;
-		mediatek,nmbm;
-		mediatek,bmt-max-ratio = <1>;
-		mediatek,bmt-max-reserved-blocks = <64>;
-
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition at 0 {
-				label = "BL2";
-				reg = <0x00000 0x0100000>;
-				read-only;
-			};
-
-			partition at 100000 {
-				label = "u-boot-env";
-				reg = <0x0100000 0x0080000>;
-				read-only;
-			};
-
-			factory: partition at 180000 {
-				label = "Factory";
-				reg = <0x180000 0x0200000>;
-				read-only;
-				nvmem-layout {
-					compatible = "fixed-layout";
-					#address-cells = <1>;
-					#size-cells = <1>;
-
-					eeprom_factory_0: eeprom at 0 {
-						reg = <0x0 0x1000>;
-					};
-				};
-			};
-
-			partition at 380000 {
-				label = "bdinfo";
-				reg = <0x380000 0x0040000>;
-				read-only;
-				nvmem-layout {
-					compatible = "fixed-layout";
-					#address-cells = <1>;
-					#size-cells = <1>;
-
-					macaddr_bdinfo_de00: macaddr at de00 {
-						compatible = "mac-base";
-						reg = <0xde00 0x6>;
-						#nvmem-cell-cells = <1>;
-					};
-				};
-			};
-
-			partition at 3C0000 {
-				label = "FIP";
-				reg = <0x3C0000 0x0200000>;
-				read-only;
-			};
-
-			partition at 580000 {
-				label = "ubi";
-				reg = <0x5C0000 0x4000000>;
-				compatible = "linux,ubi";
-			};
-		};
-	};
-};
-
-&pio {
-	spi0_flash_pins: spi0-pins {
-		mux {
-			function = "spi";
-			groups = "spi0", "spi0_wp_hold";
-		};
-		conf-pu {
-			pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
-			drive-strength = <MTK_DRIVE_8mA>;
-			bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
-		};
-
-		conf-pd {
-			pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
-			drive-strength = <MTK_DRIVE_8mA>;
-			bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
-		};
-	};
-};
-
-&switch {
-	ports {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		port at 0 {
-			reg = <0>;
-			label = "wan";
-
-			nvmem-cell-names = "mac-address";
-			nvmem-cells = <&macaddr_bdinfo_de00 1>;
-		};
-
-		port at 1 {
-			reg = <1>;
-			label = "lan1";
-		};
-
-		port at 2 {
-			reg = <2>;
-			label = "lan2";
-		};
-
-		port at 3 {
-			reg = <3>;
-			label = "lan3";
-		};
-
-		port at 4 {
-			reg = <4>;
-			label = "lan4";
-		};
-
-		port at 6 {
-			reg = <6>;
-			label = "cpu";
-			ethernet = <&gmac0>;
-			phy-mode = "2500base-x";
-
-			fixed-link {
-				speed = <2500>;
-				full-duplex;
-				pause;
-			};
-		};
-	};
-};
-
-&wifi {
-	status = "okay";
-	nvmem-cells = <&eeprom_factory_0>;
-	nvmem-cell-names = "eeprom";
-};
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+
+#include "mt7981.dtsi"
+
+/ {
+	model = "Cudy WR3000S v1";
+	compatible = "cudy,wr3000s-v1", "mediatek,mt7981-spim-snand-rfb";
+
+	aliases {
+		label-mac-device = &gmac0;
+		led-boot = &led_status;
+		led-failsafe = &led_status;
+		led-running = &led_status;
+		led-upgrade = &led_status;
+		serial0 = &uart0;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&pio 1 GPIO_ACTIVE_LOW>;
+		};
+
+		wps {
+			label = "wps";
+			linux,code = <KEY_WPS_BUTTON>;
+			gpios = <&pio 0 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led_status: led at 0 {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 10 GPIO_ACTIVE_LOW>;
+		};
+
+
+		led_internet {
+			function = LED_FUNCTION_WAN_ONLINE;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 11 GPIO_ACTIVE_LOW>;
+		};
+
+		led_wps {
+			function = LED_FUNCTION_WPS;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 9 GPIO_ACTIVE_LOW>;
+		};
+
+		led_wlan2g {
+			function = LED_FUNCTION_WLAN_2GHZ;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 6 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy0tpt";
+		};
+
+		led_wlan5g {
+			function = LED_FUNCTION_WLAN_5GHZ;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 7 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy1tpt";
+		};
+	};
+};
+
+&uart0 {
+	status = "okay";
+};
+
+&watchdog {
+	status = "okay";
+};
+
+&eth {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mdio_pins>;
+
+	status = "okay";
+
+	gmac0: mac at 0 {
+		compatible = "mediatek,eth-mac";
+		reg = <0>;
+		phy-mode = "2500base-x";
+
+		nvmem-cell-names = "mac-address";
+		nvmem-cells = <&macaddr_bdinfo_de00 0>;
+
+		fixed-link {
+			speed = <2500>;
+			full-duplex;
+			pause;
+		};
+	};
+};
+
+&mdio_bus {
+	switch: switch at 1f {
+		compatible = "mediatek,mt7531";
+		reg = <31>;
+		reset-gpios = <&pio 39 GPIO_ACTIVE_HIGH>;
+		interrupt-controller;
+		#interrupt-cells = <1>;
+		interrupt-parent = <&pio>;
+		interrupts = <38 IRQ_TYPE_LEVEL_HIGH>;
+	};
+};
+
+&spi0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&spi0_flash_pins>;
+	status = "okay";
+
+	spi_nand: flash at 0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "spi-nand";
+		reg = <0>;
+		spi-max-frequency = <52000000>;
+
+		spi-cal-enable;
+		spi-cal-mode = "read-data";
+		spi-cal-datalen = <7>;
+		spi-cal-data = /bits/ 8 <0x53 0x50 0x49 0x4E 0x41 0x4E 0x44>;
+		spi-cal-addrlen = <5>;
+		spi-cal-addr = /bits/ 32 <0x0 0x0 0x0 0x0 0x0>;
+
+		spi-tx-bus-width = <4>;
+		spi-rx-bus-width = <4>;
+		mediatek,nmbm;
+		mediatek,bmt-max-ratio = <1>;
+		mediatek,bmt-max-reserved-blocks = <64>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "BL2";
+				reg = <0x00000 0x0100000>;
+				read-only;
+			};
+
+			partition at 100000 {
+				label = "u-boot-env";
+				reg = <0x0100000 0x0080000>;
+				read-only;
+			};
+
+			factory: partition at 180000 {
+				label = "Factory";
+				reg = <0x180000 0x0200000>;
+				read-only;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					eeprom_factory_0: eeprom at 0 {
+						reg = <0x0 0x1000>;
+					};
+				};
+			};
+
+			partition at 380000 {
+				label = "bdinfo";
+				reg = <0x380000 0x0040000>;
+				read-only;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_bdinfo_de00: macaddr at de00 {
+						compatible = "mac-base";
+						reg = <0xde00 0x6>;
+						#nvmem-cell-cells = <1>;
+					};
+				};
+			};
+
+			partition at 3C0000 {
+				label = "FIP";
+				reg = <0x3C0000 0x0200000>;
+				read-only;
+			};
+
+			partition at 580000 {
+				label = "ubi";
+				reg = <0x5C0000 0x4000000>;
+				compatible = "linux,ubi";
+			};
+		};
+	};
+};
+
+&pio {
+	spi0_flash_pins: spi0-pins {
+		mux {
+			function = "spi";
+			groups = "spi0", "spi0_wp_hold";
+		};
+		conf-pu {
+			pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
+			drive-strength = <MTK_DRIVE_8mA>;
+			bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
+		};
+
+		conf-pd {
+			pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
+			drive-strength = <MTK_DRIVE_8mA>;
+			bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
+		};
+	};
+};
+
+&switch {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		port at 0 {
+			reg = <0>;
+			label = "wan";
+
+			nvmem-cell-names = "mac-address";
+			nvmem-cells = <&macaddr_bdinfo_de00 1>;
+		};
+
+		port at 1 {
+			reg = <1>;
+			label = "lan1";
+		};
+
+		port at 2 {
+			reg = <2>;
+			label = "lan2";
+		};
+
+		port at 3 {
+			reg = <3>;
+			label = "lan3";
+		};
+
+		port at 4 {
+			reg = <4>;
+			label = "lan4";
+		};
+
+		port at 6 {
+			reg = <6>;
+			label = "cpu";
+			ethernet = <&gmac0>;
+			phy-mode = "2500base-x";
+
+			fixed-link {
+				speed = <2500>;
+				full-duplex;
+				pause;
+			};
+		};
+	};
+};
+
+&wifi {
+	status = "okay";
+	nvmem-cells = <&eeprom_factory_0>;
+	nvmem-cell-names = "eeprom";
+};



From lede-commits at lists.infradead.org  Thu Nov 28 13:36:09 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 16:36:09 -0500
Subject: [openwrt/openwrt]  ramips: move zyimage creation to
 include/image-commands.mk
In-Reply-To: <173282976964.470430.3307982090701624536@git-01.infra.openwrt.org>
References: <173282976964.470430.3307982090701624536@git-01.infra.openwrt.org>
Message-ID: <mailman.8152.1732829778.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/79db5d65ca5a19fb37e7fb428dec798f713a8632

commit 79db5d65ca5a19fb37e7fb428dec798f713a8632
Author: Maxim Anisimov <maxim.anisimov.ua at gmail.com>
AuthorDate: Mon Jun 3 18:52:49 2024 +0300

    ramips: move zyimage creation to include/image-commands.mk
    
    This is required for upcoming Keenetic KN-3911 support
    
    Signed-off-by: Maxim Anisimov <maxim.anisimov.ua at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16830
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 include/image-commands.mk          | 4 ++++
 target/linux/ramips/image/Makefile | 4 ----
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/image-commands.mk b/include/image-commands.mk
index 2568fb3ade..a627ffc202 100644
--- a/include/image-commands.mk
+++ b/include/image-commands.mk
@@ -732,6 +732,10 @@ define Build/zip
 	rm -rf $@.tmp
 endef
 
+define Build/zyimage
+	$(STAGING_DIR_HOST)/bin/zyimage $(1) $@
+endef
+
 define Build/zyxel-ras-image
 	let \
 		newsize="$(call exp_units,$(RAS_ROOTFS_SIZE))"; \
diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile
index 5697176943..53b9c314ef 100644
--- a/target/linux/ramips/image/Makefile
+++ b/target/linux/ramips/image/Makefile
@@ -167,10 +167,6 @@ define Build/wrg-header
 	mv $@.new $@
 endef
 
-define Build/zyimage
-	$(STAGING_DIR_HOST)/bin/zyimage $(1) $@
-endef
-
 define Device/Default
   PROFILES = Default
   BLOCKSIZE := 64k



From lede-commits at lists.infradead.org  Thu Nov 28 13:36:11 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 16:36:11 -0500
Subject: [openwrt/openwrt]  mediatek/filogic: add Keenetic KN-3911 support
In-Reply-To: <173282976964.470430.3307982090701624536@git-01.infra.openwrt.org>
References: <173282976964.470430.3307982090701624536@git-01.infra.openwrt.org>
Message-ID: <mailman.8153.1732829778.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/5a4eb56a7bc7d1d8028d103d50b0dba2ff7808c4

commit 5a4eb56a7bc7d1d8028d103d50b0dba2ff7808c4
Author: Maxim Anisimov <maxim.anisimov.ua at gmail.com>
AuthorDate: Thu Oct 31 10:30:08 2024 +0300

    mediatek/filogic: add Keenetic KN-3911 support
    
    Specification:
     - MT7981 CPU using 2.4GHz and 5GHz WiFi (both AX)
     - 512MB RAM
     - 128MB SPI NAND
     - 2 LEDs (green, orange)
     - 3 buttons (fn, reset, wps)
     - 2 2.5Gbit ethernet ports based on Airoha EN8811H phy
    
    Serial Interface:
     - 3 Pins GND, RX, TX
     - Settings: 115200, 8N1
    
    Notes:
     - The device supports dual boot mode
    
    Flash instruction:
    The only way to flash OpenWrt image is to use tftp recovery mode in U-Boot:
    
    1. Configure PC with static IP 192.168.1.2/24 and tftp server.
    2. Rename "openwrt-mediatek-filogic-keenetic_kn-3911-squashfs-factory.bin"
       to "KN-3911_recovery.bin" and place it in tftp server directory.
    3. Connect PC with ethernet port, press the reset button, power up
       the device and keep button pressed until status led start blinking.
    4. Device will download file from server, write it to flash and reboot.
    
    Signed-off-by: Maxim Anisimov <maxim.anisimov.ua at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16830
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 .../mediatek/dts/mt7981b-keenetic-kn-3911.dts      | 300 +++++++++++++++++++++
 .../filogic/base-files/etc/board.d/02_network      |  13 +-
 .../etc/hotplug.d/ieee80211/11_fix_wifi_mac        |   4 +
 target/linux/mediatek/image/filogic.mk             |  20 ++
 4 files changed, 331 insertions(+), 6 deletions(-)

diff --git a/target/linux/mediatek/dts/mt7981b-keenetic-kn-3911.dts b/target/linux/mediatek/dts/mt7981b-keenetic-kn-3911.dts
new file mode 100644
index 0000000000..8a9bf0f1a9
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7981b-keenetic-kn-3911.dts
@@ -0,0 +1,300 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+
+/dts-v1/;
+
+#include "mt7981.dtsi"
+
+/ {
+	model = "Keenetic KN-3911";
+	compatible = "keenetic,kn-3911", "mediatek,mt7981";
+
+	aliases {
+		label-mac-device = &gmac0;
+		led-boot = &status_led;
+		led-failsafe = &status_led;
+		led-running = &status_led;
+		led-upgrade = &status_led;
+		serial0 = &uart0;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		button-fn {
+			label = "fn";
+			linux,code = <BTN_0>;
+			gpios = <&pio 0 GPIO_ACTIVE_LOW>;
+		};
+
+		button-reset {
+			label = "reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&pio 24 GPIO_ACTIVE_LOW>;
+		};
+
+		button-wps {
+			label = "wps";
+			linux,code = <KEY_WPS_BUTTON>;
+			gpios = <&pio 29 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+
+		status_led: led-0 {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_STATUS;
+			gpios = <&pio 11 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-1 {
+			color = <LED_COLOR_ID_ORANGE>;
+			function = LED_FUNCTION_WPS;
+			gpios = <&pio 12 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	virtual_flash {
+		compatible = "mtd-concat";
+		devices = <&firmware1 &firmware2>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "kernel";
+				reg = <0x0 0x600000>;
+			};
+
+			partition at 400000 {
+				label = "ubi";
+				reg = <0x600000 0x0>;
+			};
+		};
+	};
+};
+
+&uart0 {
+	status = "okay";
+};
+
+&watchdog {
+	status = "okay";
+};
+
+&eth {
+	status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&mdio_pins>;
+
+	gmac0: mac at 0 {
+		compatible = "mediatek,eth-mac";
+		reg = <0>;
+		phy-mode = "2500base-x";
+		phy-handle = <&phy10>;
+		label = "lan";
+
+		nvmem-cell-names = "mac-address";
+		nvmem-cells = <&macaddr_factory_4 0>;
+	};
+
+	gmac1: mac at 1 {
+		compatible = "mediatek,eth-mac";
+		reg = <1>;
+		phy-mode = "2500base-x";
+		phy-handle = <&phy11>;
+		label = "wan";
+
+		nvmem-cell-names = "mac-address";
+		nvmem-cells = <&macaddr_factory_a 0>;
+	};
+};
+
+&mdio_bus {
+	phy10: ethernet-phy at a {
+		reg = <0xa>;
+		interrupt-parent = <&pio>;
+		interrupts = <38 IRQ_TYPE_EDGE_FALLING>;
+		reset-gpios = <&pio 22 GPIO_ACTIVE_LOW>;
+		reset-assert-us = <10000>;
+		reset-deassert-us = <20000>;
+	};
+
+	phy11: ethernet-phy at b {
+		reg = <0xb>;
+		interrupt-parent = <&pio>;
+		interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
+		reset-gpios = <&pio 27 GPIO_ACTIVE_LOW>;
+		reset-assert-us = <10000>;
+		reset-deassert-us = <20000>;
+	};
+};
+
+&pio {
+	spi0_flash_pins: spi0-pins {
+		mux {
+			function = "spi";
+			groups = "spi0", "spi0_wp_hold";
+		};
+
+		conf-pu {
+			pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
+			drive-strength = <MTK_DRIVE_8mA>;
+			bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
+		};
+
+		conf-pd {
+			pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
+			drive-strength = <MTK_DRIVE_8mA>;
+			bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
+		};
+	};
+};
+
+&spi0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&spi0_flash_pins>;
+	status = "okay";
+
+	/* Winbond W25N01GVZEIG (128M) */
+	spi_nand at 0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "spi-nand";
+		reg = <0>;
+
+		spi-max-frequency = <52000000>;
+		spi-tx-buswidth = <4>;
+		spi-rx-buswidth = <4>;
+
+		spi-cal-enable;
+		spi-cal-mode = "read-data";
+		spi-cal-datalen = <7>;
+		spi-cal-data = /bits/ 8 <0x53 0x50 0x49 0x4e 0x41 0x4e 0x44>;
+		spi-cal-addrlen = <5>;
+		spi-cal-addr = /bits/ 32 <0x0 0x0 0x0 0x0 0x0>;
+
+		mediatek,nmbm;
+		mediatek,bmt-max-ratio = <1>;
+		mediatek,bmt-max-reserved-blocks = <64>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			/* bl2 */
+			partition at 0 {
+				label = "preloader";
+				reg = <0x0 0x80000>;
+				read-only;
+			};
+
+			/* fip */
+			partition at 80000 {
+				label = "u-boot";
+				reg = <0x80000 0x200000>;
+				read-only;
+			};
+
+			partition at 280000 {
+				label = "u-config";
+				reg = <0x280000 0x80000>;
+				read-only;
+			};
+
+			partition at 300000 {
+				label = "rf-eeprom";
+				reg = <0x300000 0x200000>;
+				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					eeprom_factory_0: eeprom at 0 {
+						reg = <0x0 0x1000>;
+					};
+
+					/* lan mac */
+					macaddr_factory_4: macaddr at 4 {
+						compatible = "mac-base";
+						reg = <0x4 0x6>;
+						#nvmem-cell-cells = <1>;
+					};
+
+					/* wan mac */
+					macaddr_factory_a: macaddr at a {
+						compatible = "mac-base";
+						reg = <0xa 0x6>;
+						#nvmem-cell-cells = <1>;
+					};
+				};
+			};
+
+			firmware1: partition at 500000 {
+				label = "firmware_1";
+				reg = <0x500000 0x3500000>;
+			};
+
+			partition at 3a00000 {
+				label = "config_1";
+				reg = <0x3a00000 0x80000>;
+				read-only;
+			};
+
+			partition at 3a80000 {
+				label = "dump";
+				reg = <0x3a80000 0x80000>;
+				read-only;
+			};
+
+			partition at 3c00000 {
+				label = "u-state";
+				reg = <0x3c00000 0x20000>;
+				read-only;
+			};
+
+			partition at 3e80000 {
+				label = "u-config_res";
+				reg = <0x3e80000 0x80000>;
+				read-only;
+			};
+
+			partition at 3f00000 {
+				label = "rf-eeprom_res";
+				reg = <0x3f00000 0x200000>;
+				read-only;
+			};
+
+			firmware2: partition at 4100000 {
+				label = "firmware_2";
+				reg = <0x4140000 0x3500000>;
+			};
+
+			partition at 7600000 {
+				label = "config_2";
+				reg = <0x7600000 0x80000>;
+				read-only;
+			};
+		};
+	};
+};
+
+&wifi {
+	nvmem-cell-names = "eeprom";
+	nvmem-cells = <&eeprom_factory_0>;
+	status = "okay";
+};
+
+&sgmiisys0 {
+	/delete-node/ mediatek,pnswap;
+};
diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
index 1480dbcbc7..953d96d09c 100644
--- a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
@@ -90,6 +90,13 @@ mediatek_setup_interfaces()
 	dlink,aquila-pro-ai-m30-a1)
 		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" internet
 		;;
+	keenetic,kn-3911|\
+	smartrg,sdg-8622|\
+	smartrg,sdg-8632|\
+	smartrg,sdg-8733a|\
+	yuncore,ax835)
+		ucidef_set_interfaces_lan_wan lan wan
+		;;
 	mediatek,mt7986a-rfb)
 		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 lan6" "eth1 wan"
 		;;
@@ -102,12 +109,6 @@ mediatek_setup_interfaces()
 	mercusys,mr90x-v1)
 		ucidef_set_interfaces_lan_wan "lan0 lan1 lan2" eth1
 		;;
-	smartrg,sdg-8622|\
-	smartrg,sdg-8632|\
-	smartrg,sdg-8733a|\
-	yuncore,ax835)
-		ucidef_set_interfaces_lan_wan lan wan
-		;;
 	tplink,tl-xdr6086|\
 	wavlink,wl-wn586x3)
 		ucidef_set_interfaces_lan_wan "lan1 lan2" eth1
diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
index 5e83a167de..a3b7671223 100644
--- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
+++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
@@ -115,6 +115,10 @@ case "$board" in
 	jdcloud,re-cp-03)
 		[ "$PHYNBR" = "1" ] && mmc_get_mac_binary factory 0xa > /sys${DEVPATH}/macaddress
 		;;
+	keenetic,kn-3911)
+		[ "$PHYNBR" = "1" ] && \
+			macaddr_setbit_la "$(mtd_get_mac_binary rf-eeprom 0x4)" > /sys${DEVPATH}/macaddress
+		;;
 	mercusys,mr90x-v1|\
 	tplink,re6000xd)
 		addr=$(get_mac_binary "/tmp/tp_data/default-mac" 0)
diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index 672790f1a7..ddd23f4d64 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -887,6 +887,26 @@ define Device/jdcloud_re-cp-03
 endef
 TARGET_DEVICES += jdcloud_re-cp-03
 
+define Device/keenetic_kn-3911
+  DEVICE_VENDOR := Keenetic
+  DEVICE_MODEL := KN-3911
+  DEVICE_DTS := mt7981b-keenetic-kn-3911
+  DEVICE_DTS_DIR := ../dts
+  DEVICE_PACKAGES := kmod-mt7915e kmod-mt7981-firmware mt7981-wo-firmware kmod-phy-airoha-en8811h
+  UBINIZE_OPTS := -E 5
+  BLOCKSIZE := 128k
+  PAGESIZE := 2048
+  KERNEL_SIZE := 6144k
+  IMAGE_SIZE := 108544k
+  KERNEL := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb | \
+	append-squashfs4-fakeroot
+  IMAGES += factory.bin
+  IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | \
+	append-ubi | check-size | zyimage -d 0x803911 -v "KN-3911"
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+endef
+TARGET_DEVICES += keenetic_kn-3911
+
 define Device/mediatek_mt7981-rfb
   DEVICE_VENDOR := MediaTek
   DEVICE_MODEL := MT7981 rfb



From lede-commits at lists.infradead.org  Thu Nov 28 13:36:10 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Thu, 28 Nov 2024 16:36:10 -0500
Subject: [openwrt/openwrt]  mediatek/filogic: enable mtd virtual concat
 support
In-Reply-To: <173282976964.470430.3307982090701624536@git-01.infra.openwrt.org>
References: <173282976964.470430.3307982090701624536@git-01.infra.openwrt.org>
Message-ID: <mailman.8156.1732829779.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/0d651dd302cf2b6968268f27a084363b9b398760

commit 0d651dd302cf2b6968268f27a084363b9b398760
Author: Maxim Anisimov <maxim.anisimov.ua at gmail.com>
AuthorDate: Thu Oct 31 12:27:54 2024 +0300

    mediatek/filogic: enable mtd virtual concat support
    
    This is required for upcoming Keenetic KN-3911 support
    
    Signed-off-by: Maxim Anisimov <maxim.anisimov.ua at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16830
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/mediatek/filogic/config-6.6 | 1 +
 1 file changed, 1 insertion(+)

diff --git a/target/linux/mediatek/filogic/config-6.6 b/target/linux/mediatek/filogic/config-6.6
index 408ac5483e..85e7367f41 100644
--- a/target/linux/mediatek/filogic/config-6.6
+++ b/target/linux/mediatek/filogic/config-6.6
@@ -269,6 +269,7 @@ CONFIG_MTD_UBI_BLOCK=y
 CONFIG_MTD_UBI_FASTMAP=y
 CONFIG_MTD_UBI_NVMEM=y
 CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_VIRT_CONCAT=y
 # CONFIG_MTK_CMDQ is not set
 CONFIG_MTK_CPUX_TIMER=y
 # CONFIG_MTK_CQDMA is not set



From lede-commits at lists.infradead.org  Fri Nov 29 02:32:00 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 29 Nov 2024 05:32:00 -0500
Subject: [openwrt/openwrt]  image: apk: dont fail on removing a package that
 doesnt exist
In-Reply-To: <173287632010.1979568.10376847720967284121@git-01.infra.openwrt.org>
References: <173287632010.1979568.10376847720967284121@git-01.infra.openwrt.org>
Message-ID: <mailman.8365.1732876324.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/55dfe3fcea88c108c8b89e96138975965e60bc08

commit 55dfe3fcea88c108c8b89e96138975965e60bc08
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Thu Nov 28 19:16:23 2024 +0100

    image: apk: dont fail on removing a package that doesnt exist
    
    Currently, in case when a package in the device package list is marked with
    the "-"" prefix meaning that its supposed to be removed for that device but
    it was not actually previously built it will cause the APK to error out it
    and thus image generation will also fail.
    
    So, lets do what OPKG build step does and supress the error with the "-"
    prefix in make.
    
    Fixes: #17103
    Fixes: d788ab376f85 ("build: add APK package build capabilities")
    Link: https://github.com/openwrt/openwrt/pull/17106
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 include/image.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/image.mk b/include/image.mk
index 70dc8e069b..fd6f76b277 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -373,7 +373,7 @@ ifneq ($(CONFIG_USE_APK),)
 	rm -rf $(mkfs_cur_target_dir)
 	$(CP) $(TARGET_DIR_ORIG) $(mkfs_cur_target_dir)
 	$(if $(mkfs_packages_remove), \
-		$(apk_target) del $(mkfs_packages_remove))
+		-$(apk_target) del $(mkfs_packages_remove))
 	$(if $(mkfs_packages_add), \
 		$(apk_target) add $(mkfs_packages_add))
 else



From lede-commits at lists.infradead.org  Fri Nov 29 02:32:40 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 29 Nov 2024 05:32:40 -0500
Subject: [openwrt/openwrt]  apk: build static
In-Reply-To: <173287636029.1981444.16746123192530393302@git-01.infra.openwrt.org>
References: <173287636029.1981444.16746123192530393302@git-01.infra.openwrt.org>
Message-ID: <mailman.8366.1732876364.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/39b0f081ecaf4fb9acc622d694dc52293a4dda1f

commit 39b0f081ecaf4fb9acc622d694dc52293a4dda1f
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Thu Nov 28 13:15:29 2024 -0800

    apk: build static
    
    libapk as a library is used nowhere else and makes no sense to link it
    shared. By linking static, we can take advantage of LTO and get the size
    reduced further.
    
    Some numbers locally:
    
    Before:
    
    168K staging_dir/target-mips_24kc_musl/root-ath79/usr/bin/apk*
    252K staging_dir/target-mips_24kc_musl/root-ath79/usr/lib/libapk.so.2.99.0*
    
    Static:
    344K staging_dir/target-mips_24kc_musl/root-ath79/usr/bin/apk*
    
    Static + LTO:
    305K staging_dir/target-mips_24kc_musl/root-ath79/usr/bin/apk*
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/17109
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/system/apk/Makefile | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/package/system/apk/Makefile b/package/system/apk/Makefile
index 693c008df9..a8d4f0b050 100644
--- a/package/system/apk/Makefile
+++ b/package/system/apk/Makefile
@@ -1,7 +1,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=apk
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_URL=https://gitlab.alpinelinux.org/alpine/apk-tools.git
 PKG_SOURCE_PROTO:=git
@@ -53,10 +53,12 @@ MESON_HOST_VARS+=VERSION=$(PKG_VERSION)
 MESON_VARS+=VERSION=$(PKG_VERSION)
 
 MESON_COMMON_ARGS = \
+	-Db_lto=true \
 	-Dcompressed-help=false \
 	-Ddocs=disabled \
 	-Dhelp=enabled \
 	-Dlua_version=5.1 \
+	-Ddefault_library=static \
 	-Durl_backend=wget \
 	-Dzstd=false
 
@@ -81,9 +83,6 @@ define Package/apk/default/install
 	$(INSTALL_DIR) $(1)/usr/bin
 	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/apk $(1)/usr/bin/apk
 
-	$(INSTALL_DIR) $(1)/usr/lib
-	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libapk.so.* $(1)/usr/lib/
-
 	$(INSTALL_DIR) $(1)/etc/apk/repositories.d
 	$(INSTALL_DATA) ./files/customfeeds.list $(1)/etc/apk/repositories.d/customfeeds.list
 endef



From lede-commits at lists.infradead.org  Fri Nov 29 03:29:54 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 29 Nov 2024 06:29:54 -0500
Subject: [openwrt/openwrt]  tools: ccache update to 4.10.2
In-Reply-To: <173287979327.2091458.9015708169261854055@git-01.infra.openwrt.org>
References: <173287979327.2091458.9015708169261854055@git-01.infra.openwrt.org>
Message-ID: <mailman.8385.1732879831.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/c981096416737a3029ee92aca61cdeda31f311e1

commit c981096416737a3029ee92aca61cdeda31f311e1
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Thu Nov 28 16:30:07 2024 +0000

    tools: ccache update to 4.10.2
    
    Fixes since 4.10:
    
     * Fixed detection of Fmt version 11 and newer.
     * Fixed prefix command lookup from PATH.
    
    Suggested-by: Jen Wolf <jenwolf at protonmail.com>
    Link: https://github.com/openwrt/openwrt/pull/17105
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
    (cherry picked from commit 08f12283c7436814cdd10d93b5cb913f49acad3e)
---
 tools/ccache/Makefile                       | 4 ++--
 tools/ccache/patches/100-honour-copts.patch | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/ccache/Makefile b/tools/ccache/Makefile
index 47c24a5c98..447bc3ea43 100644
--- a/tools/ccache/Makefile
+++ b/tools/ccache/Makefile
@@ -7,11 +7,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ccache
-PKG_VERSION:=4.10
+PKG_VERSION:=4.10.2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/ccache/ccache/releases/download/v$(PKG_VERSION)
-PKG_HASH:=16972ba62c8499045edc3ae7d7b8a0b419a961567f5ff0f01bf5a44194204775
+PKG_HASH:=108100960bb7e64573ea925af2ee7611701241abb36ce0aae3354528403a7d87
 
 include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/cmake.mk
diff --git a/tools/ccache/patches/100-honour-copts.patch b/tools/ccache/patches/100-honour-copts.patch
index a40665ea25..c07c8ce8eb 100644
--- a/tools/ccache/patches/100-honour-copts.patch
+++ b/tools/ccache/patches/100-honour-copts.patch
@@ -1,6 +1,6 @@
 --- a/src/ccache/ccache.cpp
 +++ b/src/ccache/ccache.cpp
-@@ -1906,6 +1906,7 @@ get_manifest_key(Context& ctx, Hash& has
+@@ -1914,6 +1914,7 @@ get_manifest_key(Context& ctx, Hash& has
      "OBJCPLUS_INCLUDE_PATH",        // Clang
      "CLANG_CONFIG_FILE_SYSTEM_DIR", // Clang
      "CLANG_CONFIG_FILE_USER_DIR",   // Clang



From lede-commits at lists.infradead.org  Fri Nov 29 03:29:53 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 29 Nov 2024 06:29:53 -0500
Subject: [openwrt/openwrt]  mediatek: filogic: Cudy WR3000S v1: fix CRLF line
 endings
In-Reply-To: <173287979327.2091458.9015708169261854055@git-01.infra.openwrt.org>
References: <173287979327.2091458.9015708169261854055@git-01.infra.openwrt.org>
Message-ID: <mailman.8386.1732879831.1089.lede-commits@lists.infradead.org>

ynezz pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/de8a1a1e3adfb2085189f2a7de576ca4e6484afe

commit de8a1a1e3adfb2085189f2a7de576ca4e6484afe
Author: Petr ?tetiar <ynezz at true.cz>
AuthorDate: Wed Nov 27 08:39:46 2024 +0000

    mediatek: filogic: Cudy WR3000S v1: fix CRLF line endings
    
    DTS file for this device seems to be using CRLF line endings, so lets
    convert them into Unix-style LF.
    
    Fixes: faf4b3e0f7a5 ("mediatek: filogic: add support for Cudy WR3000S v1")
    Link: https://github.com/openwrt/openwrt/pull/17096
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
    (cherry picked from commit 30ae0b3f1e331646054d8110e931dfaa32f7b414)
---
 .../linux/mediatek/dts/mt7981b-cudy-wr3000s-v1.dts | 566 ++++++++++-----------
 1 file changed, 283 insertions(+), 283 deletions(-)

diff --git a/target/linux/mediatek/dts/mt7981b-cudy-wr3000s-v1.dts b/target/linux/mediatek/dts/mt7981b-cudy-wr3000s-v1.dts
index a643969494..cf2f79b407 100644
--- a/target/linux/mediatek/dts/mt7981b-cudy-wr3000s-v1.dts
+++ b/target/linux/mediatek/dts/mt7981b-cudy-wr3000s-v1.dts
@@ -1,283 +1,283 @@
-// SPDX-License-Identifier: (GPL-2.0 OR MIT)
-
-/dts-v1/;
-
-#include <dt-bindings/leds/common.h>
-
-#include "mt7981.dtsi"
-
-/ {
-	model = "Cudy WR3000S v1";
-	compatible = "cudy,wr3000s-v1", "mediatek,mt7981-spim-snand-rfb";
-
-	aliases {
-		label-mac-device = &gmac0;
-		led-boot = &led_status;
-		led-failsafe = &led_status;
-		led-running = &led_status;
-		led-upgrade = &led_status;
-		serial0 = &uart0;
-	};
-
-	chosen {
-		stdout-path = "serial0:115200n8";
-	};
-
-	gpio-keys {
-		compatible = "gpio-keys";
-
-		reset {
-			label = "reset";
-			linux,code = <KEY_RESTART>;
-			gpios = <&pio 1 GPIO_ACTIVE_LOW>;
-		};
-
-		wps {
-			label = "wps";
-			linux,code = <KEY_WPS_BUTTON>;
-			gpios = <&pio 0 GPIO_ACTIVE_LOW>;
-		};
-	};
-
-	leds {
-		compatible = "gpio-leds";
-
-		led_status: led at 0 {
-			function = LED_FUNCTION_STATUS;
-			color = <LED_COLOR_ID_WHITE>;
-			gpios = <&pio 10 GPIO_ACTIVE_LOW>;
-		};
-
-
-		led_internet {
-			function = LED_FUNCTION_WAN_ONLINE;
-			color = <LED_COLOR_ID_WHITE>;
-			gpios = <&pio 11 GPIO_ACTIVE_LOW>;
-		};
-
-		led_wps {
-			function = LED_FUNCTION_WPS;
-			color = <LED_COLOR_ID_WHITE>;
-			gpios = <&pio 9 GPIO_ACTIVE_LOW>;
-		};
-
-		led_wlan2g {
-			function = LED_FUNCTION_WLAN_2GHZ;
-			color = <LED_COLOR_ID_WHITE>;
-			gpios = <&pio 6 GPIO_ACTIVE_LOW>;
-			linux,default-trigger = "phy0tpt";
-		};
-
-		led_wlan5g {
-			function = LED_FUNCTION_WLAN_5GHZ;
-			color = <LED_COLOR_ID_WHITE>;
-			gpios = <&pio 7 GPIO_ACTIVE_LOW>;
-			linux,default-trigger = "phy1tpt";
-		};
-	};
-};
-
-&uart0 {
-	status = "okay";
-};
-
-&watchdog {
-	status = "okay";
-};
-
-&eth {
-	pinctrl-names = "default";
-	pinctrl-0 = <&mdio_pins>;
-
-	status = "okay";
-
-	gmac0: mac at 0 {
-		compatible = "mediatek,eth-mac";
-		reg = <0>;
-		phy-mode = "2500base-x";
-
-		nvmem-cell-names = "mac-address";
-		nvmem-cells = <&macaddr_bdinfo_de00 0>;
-
-		fixed-link {
-			speed = <2500>;
-			full-duplex;
-			pause;
-		};
-	};
-};
-
-&mdio_bus {
-	switch: switch at 1f {
-		compatible = "mediatek,mt7531";
-		reg = <31>;
-		reset-gpios = <&pio 39 GPIO_ACTIVE_HIGH>;
-		interrupt-controller;
-		#interrupt-cells = <1>;
-		interrupt-parent = <&pio>;
-		interrupts = <38 IRQ_TYPE_LEVEL_HIGH>;
-	};
-};
-
-&spi0 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&spi0_flash_pins>;
-	status = "okay";
-
-	spi_nand: flash at 0 {
-		#address-cells = <1>;
-		#size-cells = <1>;
-		compatible = "spi-nand";
-		reg = <0>;
-		spi-max-frequency = <52000000>;
-
-		spi-cal-enable;
-		spi-cal-mode = "read-data";
-		spi-cal-datalen = <7>;
-		spi-cal-data = /bits/ 8 <0x53 0x50 0x49 0x4E 0x41 0x4E 0x44>;
-		spi-cal-addrlen = <5>;
-		spi-cal-addr = /bits/ 32 <0x0 0x0 0x0 0x0 0x0>;
-
-		spi-tx-bus-width = <4>;
-		spi-rx-bus-width = <4>;
-		mediatek,nmbm;
-		mediatek,bmt-max-ratio = <1>;
-		mediatek,bmt-max-reserved-blocks = <64>;
-
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition at 0 {
-				label = "BL2";
-				reg = <0x00000 0x0100000>;
-				read-only;
-			};
-
-			partition at 100000 {
-				label = "u-boot-env";
-				reg = <0x0100000 0x0080000>;
-				read-only;
-			};
-
-			factory: partition at 180000 {
-				label = "Factory";
-				reg = <0x180000 0x0200000>;
-				read-only;
-				nvmem-layout {
-					compatible = "fixed-layout";
-					#address-cells = <1>;
-					#size-cells = <1>;
-
-					eeprom_factory_0: eeprom at 0 {
-						reg = <0x0 0x1000>;
-					};
-				};
-			};
-
-			partition at 380000 {
-				label = "bdinfo";
-				reg = <0x380000 0x0040000>;
-				read-only;
-				nvmem-layout {
-					compatible = "fixed-layout";
-					#address-cells = <1>;
-					#size-cells = <1>;
-
-					macaddr_bdinfo_de00: macaddr at de00 {
-						compatible = "mac-base";
-						reg = <0xde00 0x6>;
-						#nvmem-cell-cells = <1>;
-					};
-				};
-			};
-
-			partition at 3C0000 {
-				label = "FIP";
-				reg = <0x3C0000 0x0200000>;
-				read-only;
-			};
-
-			partition at 580000 {
-				label = "ubi";
-				reg = <0x5C0000 0x4000000>;
-				compatible = "linux,ubi";
-			};
-		};
-	};
-};
-
-&pio {
-	spi0_flash_pins: spi0-pins {
-		mux {
-			function = "spi";
-			groups = "spi0", "spi0_wp_hold";
-		};
-		conf-pu {
-			pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
-			drive-strength = <MTK_DRIVE_8mA>;
-			bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
-		};
-
-		conf-pd {
-			pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
-			drive-strength = <MTK_DRIVE_8mA>;
-			bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
-		};
-	};
-};
-
-&switch {
-	ports {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		port at 0 {
-			reg = <0>;
-			label = "wan";
-
-			nvmem-cell-names = "mac-address";
-			nvmem-cells = <&macaddr_bdinfo_de00 1>;
-		};
-
-		port at 1 {
-			reg = <1>;
-			label = "lan1";
-		};
-
-		port at 2 {
-			reg = <2>;
-			label = "lan2";
-		};
-
-		port at 3 {
-			reg = <3>;
-			label = "lan3";
-		};
-
-		port at 4 {
-			reg = <4>;
-			label = "lan4";
-		};
-
-		port at 6 {
-			reg = <6>;
-			label = "cpu";
-			ethernet = <&gmac0>;
-			phy-mode = "2500base-x";
-
-			fixed-link {
-				speed = <2500>;
-				full-duplex;
-				pause;
-			};
-		};
-	};
-};
-
-&wifi {
-	status = "okay";
-	nvmem-cells = <&eeprom_factory_0>;
-	nvmem-cell-names = "eeprom";
-};
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+
+#include "mt7981.dtsi"
+
+/ {
+	model = "Cudy WR3000S v1";
+	compatible = "cudy,wr3000s-v1", "mediatek,mt7981-spim-snand-rfb";
+
+	aliases {
+		label-mac-device = &gmac0;
+		led-boot = &led_status;
+		led-failsafe = &led_status;
+		led-running = &led_status;
+		led-upgrade = &led_status;
+		serial0 = &uart0;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&pio 1 GPIO_ACTIVE_LOW>;
+		};
+
+		wps {
+			label = "wps";
+			linux,code = <KEY_WPS_BUTTON>;
+			gpios = <&pio 0 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led_status: led at 0 {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 10 GPIO_ACTIVE_LOW>;
+		};
+
+
+		led_internet {
+			function = LED_FUNCTION_WAN_ONLINE;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 11 GPIO_ACTIVE_LOW>;
+		};
+
+		led_wps {
+			function = LED_FUNCTION_WPS;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 9 GPIO_ACTIVE_LOW>;
+		};
+
+		led_wlan2g {
+			function = LED_FUNCTION_WLAN_2GHZ;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 6 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy0tpt";
+		};
+
+		led_wlan5g {
+			function = LED_FUNCTION_WLAN_5GHZ;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&pio 7 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy1tpt";
+		};
+	};
+};
+
+&uart0 {
+	status = "okay";
+};
+
+&watchdog {
+	status = "okay";
+};
+
+&eth {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mdio_pins>;
+
+	status = "okay";
+
+	gmac0: mac at 0 {
+		compatible = "mediatek,eth-mac";
+		reg = <0>;
+		phy-mode = "2500base-x";
+
+		nvmem-cell-names = "mac-address";
+		nvmem-cells = <&macaddr_bdinfo_de00 0>;
+
+		fixed-link {
+			speed = <2500>;
+			full-duplex;
+			pause;
+		};
+	};
+};
+
+&mdio_bus {
+	switch: switch at 1f {
+		compatible = "mediatek,mt7531";
+		reg = <31>;
+		reset-gpios = <&pio 39 GPIO_ACTIVE_HIGH>;
+		interrupt-controller;
+		#interrupt-cells = <1>;
+		interrupt-parent = <&pio>;
+		interrupts = <38 IRQ_TYPE_LEVEL_HIGH>;
+	};
+};
+
+&spi0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&spi0_flash_pins>;
+	status = "okay";
+
+	spi_nand: flash at 0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "spi-nand";
+		reg = <0>;
+		spi-max-frequency = <52000000>;
+
+		spi-cal-enable;
+		spi-cal-mode = "read-data";
+		spi-cal-datalen = <7>;
+		spi-cal-data = /bits/ 8 <0x53 0x50 0x49 0x4E 0x41 0x4E 0x44>;
+		spi-cal-addrlen = <5>;
+		spi-cal-addr = /bits/ 32 <0x0 0x0 0x0 0x0 0x0>;
+
+		spi-tx-bus-width = <4>;
+		spi-rx-bus-width = <4>;
+		mediatek,nmbm;
+		mediatek,bmt-max-ratio = <1>;
+		mediatek,bmt-max-reserved-blocks = <64>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "BL2";
+				reg = <0x00000 0x0100000>;
+				read-only;
+			};
+
+			partition at 100000 {
+				label = "u-boot-env";
+				reg = <0x0100000 0x0080000>;
+				read-only;
+			};
+
+			factory: partition at 180000 {
+				label = "Factory";
+				reg = <0x180000 0x0200000>;
+				read-only;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					eeprom_factory_0: eeprom at 0 {
+						reg = <0x0 0x1000>;
+					};
+				};
+			};
+
+			partition at 380000 {
+				label = "bdinfo";
+				reg = <0x380000 0x0040000>;
+				read-only;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_bdinfo_de00: macaddr at de00 {
+						compatible = "mac-base";
+						reg = <0xde00 0x6>;
+						#nvmem-cell-cells = <1>;
+					};
+				};
+			};
+
+			partition at 3C0000 {
+				label = "FIP";
+				reg = <0x3C0000 0x0200000>;
+				read-only;
+			};
+
+			partition at 580000 {
+				label = "ubi";
+				reg = <0x5C0000 0x4000000>;
+				compatible = "linux,ubi";
+			};
+		};
+	};
+};
+
+&pio {
+	spi0_flash_pins: spi0-pins {
+		mux {
+			function = "spi";
+			groups = "spi0", "spi0_wp_hold";
+		};
+		conf-pu {
+			pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
+			drive-strength = <MTK_DRIVE_8mA>;
+			bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
+		};
+
+		conf-pd {
+			pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
+			drive-strength = <MTK_DRIVE_8mA>;
+			bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
+		};
+	};
+};
+
+&switch {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		port at 0 {
+			reg = <0>;
+			label = "wan";
+
+			nvmem-cell-names = "mac-address";
+			nvmem-cells = <&macaddr_bdinfo_de00 1>;
+		};
+
+		port at 1 {
+			reg = <1>;
+			label = "lan1";
+		};
+
+		port at 2 {
+			reg = <2>;
+			label = "lan2";
+		};
+
+		port at 3 {
+			reg = <3>;
+			label = "lan3";
+		};
+
+		port at 4 {
+			reg = <4>;
+			label = "lan4";
+		};
+
+		port at 6 {
+			reg = <6>;
+			label = "cpu";
+			ethernet = <&gmac0>;
+			phy-mode = "2500base-x";
+
+			fixed-link {
+				speed = <2500>;
+				full-duplex;
+				pause;
+			};
+		};
+	};
+};
+
+&wifi {
+	status = "okay";
+	nvmem-cells = <&eeprom_factory_0>;
+	nvmem-cell-names = "eeprom";
+};



From lede-commits at lists.infradead.org  Fri Nov 29 06:02:51 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 29 Nov 2024 09:02:51 -0500
Subject: [openwrt/openwrt]  Revert "ath79: elecom,wab: use nvmem"
In-Reply-To: <173288897168.2473686.13020444595315444219@git-01.infra.openwrt.org>
References: <173288897168.2473686.13020444595315444219@git-01.infra.openwrt.org>
Message-ID: <mailman.8453.1732888975.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/af611bce44d3dcffd47c47f46b95400445498be9

commit af611bce44d3dcffd47c47f46b95400445498be9
Author: INAGAKI Hiroshi <musashino.open at gmail.com>
AuthorDate: Wed Nov 27 10:31:35 2024 +0900

    Revert "ath79: elecom,wab: use nvmem"
    
    This reverts commit 70e41d0205d95386881fa1cdf6ee00f6cca1b3f6.
    
    "ethaddr" is stored into the "u-boot-env" (stock: "Config") partition
    and it's quoted with double-quotations, but that format is not supported
    by the current NVMEM u-boot-env driver (and mac_pton() function) and the
    MAC address won't be parsed to byte array.
    This causes random MAC addresses on the adapters, so revert the above
    commit.
    
    Signed-off-by: INAGAKI Hiroshi <musashino.open at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/17116
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/ath79/dts/qca955x_elecom_wab.dtsi          | 17 ++++-------------
 .../ath79/generic/base-files/etc/board.d/02_network     |  3 +++
 .../base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac  | 10 ++++++++++
 3 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/target/linux/ath79/dts/qca955x_elecom_wab.dtsi b/target/linux/ath79/dts/qca955x_elecom_wab.dtsi
index 53bb5b0141..43e34c6029 100644
--- a/target/linux/ath79/dts/qca955x_elecom_wab.dtsi
+++ b/target/linux/ath79/dts/qca955x_elecom_wab.dtsi
@@ -8,7 +8,6 @@
 
 / {
 	aliases {
-		label-mac-device = &eth0;
 		led-boot = &led_status;
 		led-failsafe = &led_status;
 		led-upgrade = &led_status;
@@ -108,9 +107,6 @@
 	phy-mode = "rgmii-rxid";
 	pll-data = <0xae000000 0x80000101 0x80001313>;
 
-	nvmem-cells = <&macaddr_uboot_ethaddr 0>;
-	nvmem-cell-names = "mac-address";
-
 	gmac-config {
 		device = <&gmac>;
 
@@ -148,8 +144,8 @@
 	wifi at 0,0 {
 		compatible = "qcom,ath10k";
 		reg = <0x0000 0 0 0 0>;
-		nvmem-cells = <&cal_art_5000>, <&macaddr_uboot_ethaddr 1>;
-		nvmem-cell-names = "calibration", "mac-address";
+		nvmem-cells = <&cal_art_5000>;
+		nvmem-cell-names = "calibration";
 	};
 };
 
@@ -173,14 +169,9 @@
 			};
 
 			partition at 40000 {
-				compatible = "u-boot,env";
 				label = "u-boot-env";
 				reg = <0x40000 0x10000>;
 				read-only;
-
-				macaddr_uboot_ethaddr: ethaddr {
-					#nvmem-cell-cells = <1>;
-				};
 			};
 
 			partition at 50000 {
@@ -261,6 +252,6 @@
 &wmac {
 	status = "okay";
 
-	nvmem-cells = <&cal_art_1000>, <&macaddr_uboot_ethaddr 0>;
-	nvmem-cell-names = "calibration", "mac-address";
+	nvmem-cells = <&cal_art_1000>;
+	nvmem-cell-names = "calibration";
 };
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network
index 2bd97442d9..016bd6bb51 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
@@ -717,6 +717,9 @@ ath79_setup_macs()
 		lan_mac=$(mtd_get_mac_ascii devdata "lanmac")
 		wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
 		;;
+	elecom,wab-i1750-ps|\
+	elecom,wab-s1167-ps|\
+	elecom,wab-s600-ps|\
 	engenius,ecb1200|\
 	engenius,ecb1750)
 		lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac b/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
index 6676e4d509..5155d240a8 100644
--- a/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
+++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
@@ -42,6 +42,16 @@ case "$board" in
 		[ "$PHYNBR" -eq 1 ] && \
 			mtd_get_mac_ascii bdcfg "wlanmac" > /sys${DEVPATH}/macaddress
 		;;
+	elecom,wab-i1750-ps|\
+	elecom,wab-s1167-ps|\
+	elecom,wab-s600-ps)
+		# set the 5G MAC address (= ethaddr + 1)
+		[ "$PHYNBR" -eq 0 ] && \
+			macaddr_add "$(mtd_get_mac_ascii u-boot-env ethaddr)" 1 > /sys${DEVPATH}/macaddress
+		# set the 2.4G MAC address (= ethaddr)
+		[ "$PHYNBR" -eq 1 ] && \
+			mtd_get_mac_ascii u-boot-env "ethaddr" > /sys${DEVPATH}/macaddress
+		;;
 	engenius,ecb1200|\
 	engenius,ecb1750)
 		[ "$PHYNBR" -eq 0 ] && \



From lede-commits at lists.infradead.org  Fri Nov 29 09:25:39 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 29 Nov 2024 12:25:39 -0500
Subject: [openwrt/openwrt]  Revert "ath79: elecom,wab: use nvmem"
In-Reply-To: <173290113989.2910711.5587083902508492143@git-01.infra.openwrt.org>
References: <173290113989.2910711.5587083902508492143@git-01.infra.openwrt.org>
Message-ID: <mailman.8532.1732901143.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch openwrt-24.10:
https://git.openwrt.org/d276b4c91a50aeac14f84284c22bb4938881f64a

commit d276b4c91a50aeac14f84284c22bb4938881f64a
Author: INAGAKI Hiroshi <musashino.open at gmail.com>
AuthorDate: Wed Nov 27 10:31:35 2024 +0900

    Revert "ath79: elecom,wab: use nvmem"
    
    This reverts commit 70e41d0205d95386881fa1cdf6ee00f6cca1b3f6.
    
    "ethaddr" is stored into the "u-boot-env" (stock: "Config") partition
    and it's quoted with double-quotations, but that format is not supported
    by the current NVMEM u-boot-env driver (and mac_pton() function) and the
    MAC address won't be parsed to byte array.
    This causes random MAC addresses on the adapters, so revert the above
    commit.
    
    Signed-off-by: INAGAKI Hiroshi <musashino.open at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/17116
    (cherry picked from commit af611bce44d3dcffd47c47f46b95400445498be9)
    Link: https://github.com/openwrt/openwrt/pull/17117
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/ath79/dts/qca955x_elecom_wab.dtsi          | 17 ++++-------------
 .../ath79/generic/base-files/etc/board.d/02_network     |  3 +++
 .../base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac  | 10 ++++++++++
 3 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/target/linux/ath79/dts/qca955x_elecom_wab.dtsi b/target/linux/ath79/dts/qca955x_elecom_wab.dtsi
index 53bb5b0141..43e34c6029 100644
--- a/target/linux/ath79/dts/qca955x_elecom_wab.dtsi
+++ b/target/linux/ath79/dts/qca955x_elecom_wab.dtsi
@@ -8,7 +8,6 @@
 
 / {
 	aliases {
-		label-mac-device = &eth0;
 		led-boot = &led_status;
 		led-failsafe = &led_status;
 		led-upgrade = &led_status;
@@ -108,9 +107,6 @@
 	phy-mode = "rgmii-rxid";
 	pll-data = <0xae000000 0x80000101 0x80001313>;
 
-	nvmem-cells = <&macaddr_uboot_ethaddr 0>;
-	nvmem-cell-names = "mac-address";
-
 	gmac-config {
 		device = <&gmac>;
 
@@ -148,8 +144,8 @@
 	wifi at 0,0 {
 		compatible = "qcom,ath10k";
 		reg = <0x0000 0 0 0 0>;
-		nvmem-cells = <&cal_art_5000>, <&macaddr_uboot_ethaddr 1>;
-		nvmem-cell-names = "calibration", "mac-address";
+		nvmem-cells = <&cal_art_5000>;
+		nvmem-cell-names = "calibration";
 	};
 };
 
@@ -173,14 +169,9 @@
 			};
 
 			partition at 40000 {
-				compatible = "u-boot,env";
 				label = "u-boot-env";
 				reg = <0x40000 0x10000>;
 				read-only;
-
-				macaddr_uboot_ethaddr: ethaddr {
-					#nvmem-cell-cells = <1>;
-				};
 			};
 
 			partition at 50000 {
@@ -261,6 +252,6 @@
 &wmac {
 	status = "okay";
 
-	nvmem-cells = <&cal_art_1000>, <&macaddr_uboot_ethaddr 0>;
-	nvmem-cell-names = "calibration", "mac-address";
+	nvmem-cells = <&cal_art_1000>;
+	nvmem-cell-names = "calibration";
 };
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network
index 2bd97442d9..016bd6bb51 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
@@ -717,6 +717,9 @@ ath79_setup_macs()
 		lan_mac=$(mtd_get_mac_ascii devdata "lanmac")
 		wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
 		;;
+	elecom,wab-i1750-ps|\
+	elecom,wab-s1167-ps|\
+	elecom,wab-s600-ps|\
 	engenius,ecb1200|\
 	engenius,ecb1750)
 		lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac b/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
index 6676e4d509..5155d240a8 100644
--- a/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
+++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
@@ -42,6 +42,16 @@ case "$board" in
 		[ "$PHYNBR" -eq 1 ] && \
 			mtd_get_mac_ascii bdcfg "wlanmac" > /sys${DEVPATH}/macaddress
 		;;
+	elecom,wab-i1750-ps|\
+	elecom,wab-s1167-ps|\
+	elecom,wab-s600-ps)
+		# set the 5G MAC address (= ethaddr + 1)
+		[ "$PHYNBR" -eq 0 ] && \
+			macaddr_add "$(mtd_get_mac_ascii u-boot-env ethaddr)" 1 > /sys${DEVPATH}/macaddress
+		# set the 2.4G MAC address (= ethaddr)
+		[ "$PHYNBR" -eq 1 ] && \
+			mtd_get_mac_ascii u-boot-env "ethaddr" > /sys${DEVPATH}/macaddress
+		;;
 	engenius,ecb1200|\
 	engenius,ecb1750)
 		[ "$PHYNBR" -eq 0 ] && \



From lede-commits at lists.infradead.org  Fri Nov 29 12:45:15 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 29 Nov 2024 15:45:15 -0500
Subject: [openwrt/openwrt]  build: ensure silent Make behavior for json
 scripts
In-Reply-To: <173291311583.3391137.8633970233857460179@git-01.infra.openwrt.org>
References: <173291311583.3391137.8633970233857460179@git-01.infra.openwrt.org>
Message-ID: <mailman.8569.1732913120.1089.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/6d5c434b1419f2c5c84549d5ef48b73f52f9e9d6

commit 6d5c434b1419f2c5c84549d5ef48b73f52f9e9d6
Author: Michael Pratt <mcpratt at pm.me>
AuthorDate: Fri Nov 24 05:10:12 2023 -0500

    build: ensure silent Make behavior for json scripts
    
    Run the invocation of Make with verbosity in order to
    prevent the printing of Makefile level and subtarget status.
    e.g.  make[3] -C target/linux val.DEFAULT_PACKAGES val.ARCH_PACKAGES
    
    Remove piping of stderr, which is only useful when using
    the "communicate" method over the "run" method,
    and this script would not be written to handle a captured error anyway.
    
    For error testing, stdout and stderr can be set to a file object
    with the open() function like this:
    
    out = open('json_out', 'w')
    err = open('json_err', 'w')
    
    ...
    ...
    stdout=out,
    stderr=err,
    
    Signed-off-by: Michael Pratt <mcpratt at pm.me>
    (cherry picked from commit fd3376c5eeccc1f1753483ed31ffff03808ce31d)
---
 scripts/json_overview_image_info.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/json_overview_image_info.py b/scripts/json_overview_image_info.py
index 89b7d4fe20..0d2cf7f1ef 100755
--- a/scripts/json_overview_image_info.py
+++ b/scripts/json_overview_image_info.py
@@ -55,9 +55,9 @@ if output:
             "target/linux/",
             "val.DEFAULT_PACKAGES",
             "val.ARCH_PACKAGES",
+            "V=s",
         ],
         stdout=PIPE,
-        stderr=PIPE,
         check=True,
         env=environ.copy().update({"TOPDIR": Path().cwd()}),
         universal_newlines=True,



From lede-commits at lists.infradead.org  Fri Nov 29 12:45:16 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Fri, 29 Nov 2024 15:45:16 -0500
Subject: [openwrt/openwrt]  build: profiles.json: add kernel version
 information
In-Reply-To: <173291311583.3391137.8633970233857460179@git-01.infra.openwrt.org>
References: <173291311583.3391137.8633970233857460179@git-01.infra.openwrt.org>
Message-ID: <mailman.8570.1732913124.1089.lede-commits@lists.infradead.org>

ansuel pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/db554fd4502b2e9fb2ff669a9fbd65573f0b2007

commit db554fd4502b2e9fb2ff669a9fbd65573f0b2007
Author: Eric Fahlgren <ericfahlgren at gmail.com>
AuthorDate: Fri Nov 22 09:00:25 2024 -0800

    build: profiles.json: add kernel version information
    
    Currently downstream tools like ASU lack information about kernel
    version to find out the relevant kmod build folder on downloads server.
    
    So lets fix it by providing a new `linux_kernel` JSON array which would
    for the start provide Linux kernel version, revision and vermagic
    information.
    
      "linux_kernel": {
         "release": "1",
         "vermagic": "b57450c07d3a786158c3601fc5cee57d",
         "version": "6.6.61"
       },
    
    Fixes: openwrt/openwrt#17036
    Fixes: efahl/owut#9
    Co-developed-by: Petr ?tetiar <ynezz at true.cz>
    Signed-off-by: Eric Fahlgren <ericfahlgren at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/17042
    Signed-off-by: Petr ?tetiar <ynezz at true.cz>
    (cherry picked from commit c857145e034f623e31ab2028049a547ecd94ce85)
---
 scripts/json_overview_image_info.py | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/scripts/json_overview_image_info.py b/scripts/json_overview_image_info.py
index 0d2cf7f1ef..96921c2743 100755
--- a/scripts/json_overview_image_info.py
+++ b/scripts/json_overview_image_info.py
@@ -47,7 +47,13 @@ for device_id, profile in output.get("profiles", {}).items():
 
 
 if output:
-    default_packages, output["arch_packages"] = run(
+    (
+        default_packages,
+        output["arch_packages"],
+        linux_version,
+        linux_release,
+        linux_vermagic,
+    ) = run(
         [
             "make",
             "--no-print-directory",
@@ -55,6 +61,9 @@ if output:
             "target/linux/",
             "val.DEFAULT_PACKAGES",
             "val.ARCH_PACKAGES",
+            "val.LINUX_VERSION",
+            "val.LINUX_RELEASE",
+            "val.LINUX_VERMAGIC",
             "V=s",
         ],
         stdout=PIPE,
@@ -64,7 +73,11 @@ if output:
     ).stdout.splitlines()
 
     output["default_packages"] = sorted(default_packages.split())
-
+    output["linux_kernel"] = {
+        "version": linux_version,
+        "release": linux_release,
+        "vermagic": linux_vermagic,
+    }
     output_path.write_text(json.dumps(output, sort_keys=True, separators=(",", ":")))
 else:
     print("JSON info file script could not find any JSON files for target")



From lede-commits at lists.infradead.org  Sat Nov 30 08:57:51 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 30 Nov 2024 11:57:51 -0500
Subject: [openwrt/openwrt]  linux-firmware: realtek: add RTL8812AU/RTL8821AU
 firmware
In-Reply-To: <173298587087.2504452.3368312356959661950@git-01.infra.openwrt.org>
References: <173298587087.2504452.3368312356959661950@git-01.infra.openwrt.org>
Message-ID: <mailman.8669.1732985875.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/c48a48e65889e00df598757cca1f6226ac173e89

commit c48a48e65889e00df598757cca1f6226ac173e89
Author: Marty Jones <mj8263788 at gmail.com>
AuthorDate: Mon Nov 11 17:17:27 2024 -0500

    linux-firmware: realtek: add RTL8812AU/RTL8821AU firmware
    
    This adds firmware support for the RTL8812AU/RTL8821AU USB wireless adapters.
    
    Signed-off-by: Marty Jones <mj8263788 at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/17079
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/firmware/linux-firmware/realtek.mk | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/package/firmware/linux-firmware/realtek.mk b/package/firmware/linux-firmware/realtek.mk
index c2ab1c9d0d..749d93be3e 100644
--- a/package/firmware/linux-firmware/realtek.mk
+++ b/package/firmware/linux-firmware/realtek.mk
@@ -140,6 +140,20 @@ define Package/rtl8761bu-firmware/install
 endef
 $(eval $(call BuildPackage,rtl8761bu-firmware))
 
+Package/rtl8812a-firmware = $(call Package/firmware-default,RealTek RTL8812AU firmware)
+define Package/rtl8812a-firmware/install
+	$(INSTALL_DIR) $(1)/lib/firmware/rtw88
+	$(INSTALL_DATA) $(PKG_BUILD_DIR)/rtw88/rtw8812a_fw.bin $(1)/lib/firmware/rtw88
+endef
+$(eval $(call BuildPackage,rtl8812a-firmware))
+
+Package/rtl8821a-firmware = $(call Package/firmware-default,RealTek RTL8821AU firmware)
+define Package/rtl8821a-firmware/install
+	$(INSTALL_DIR) $(1)/lib/firmware/rtw88
+	$(INSTALL_DATA) $(PKG_BUILD_DIR)/rtw88/rtw8821a_fw.bin $(1)/lib/firmware/rtw88
+endef
+$(eval $(call BuildPackage,rtl8821a-firmware))
+
 Package/rtl8821ae-firmware = $(call Package/firmware-default,RealTek RTL8821AE firmware,,LICENCE.rtlwifi_firmware.txt)
 define Package/rtl8821ae-firmware/install
 	$(INSTALL_DIR) $(1)/lib/firmware/rtlwifi



From lede-commits at lists.infradead.org  Sat Nov 30 08:57:53 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 30 Nov 2024 11:57:53 -0500
Subject: [openwrt/openwrt]  mac80211: realtek: add RTL8812au/RTL8821au support
In-Reply-To: <173298587087.2504452.3368312356959661950@git-01.infra.openwrt.org>
References: <173298587087.2504452.3368312356959661950@git-01.infra.openwrt.org>
Message-ID: <mailman.8673.1732985879.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/ac8d30a645965ad4e1f1ca9b71e49613166b8a29

commit ac8d30a645965ad4e1f1ca9b71e49613166b8a29
Author: Marty Jones <mj8263788 at gmail.com>
AuthorDate: Sun Oct 13 17:15:53 2024 -0400

    mac80211: realtek: add RTL8812au/RTL8821au support
    
    This adds support for RTL8812au/RTL8821au USB adapters.
    Run-tested: x86/64/rockchip
    USB adapters tested: Alfa AWUS036ACS, D-Link DWA-171 A1.
    
    Signed-off-by: Marty Jones <mj8263788 at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/17079
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/kernel/mac80211/realtek.mk | 49 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/package/kernel/mac80211/realtek.mk b/package/kernel/mac80211/realtek.mk
index 4a6f10cddc..6ac4b1aee9 100644
--- a/package/kernel/mac80211/realtek.mk
+++ b/package/kernel/mac80211/realtek.mk
@@ -4,6 +4,7 @@ PKG_DRIVERS += \
 	rtl8723bs rtl8821ae rtl8xxxu rtw88 rtw88-pci rtw88-usb rtw88-sdio rtw88-8821c \
 	rtw88-8822b rtw88-8822c rtw88-8723x rtw88-8723d rtw88-8821ce rtw88-8821cu \
 	rtw88-8822be rtw88-8822bu rtw88-8822ce rtw88-8822cu rtw88-8723de rtw88-8723ds \
+	rtw88-88xxa rtw88-8821a rtw88-8812a rtw88-8821au rtw88-8812au \
 	rtw88-8723du rtw89 rtw89-pci rtw89-8851be rtw89-8852ae rtw89-8852b-common \
 	rtw89-8852be rtw89-8852ce rtw89-8922ae
 
@@ -48,6 +49,11 @@ config-$(call config_package,rtw88-8723d) += RTW88_8723D
 config-$(call config_package,rtw88-8723de) += RTW88_8723DE
 config-$(call config_package,rtw88-8723ds) += RTW88_8723DS
 config-$(call config_package,rtw88-8723du) += RTW88_8723DU
+config-$(call config_package,rtw88-88xxa) += RTW88_88XXA
+config-$(call config_package,rtw88-8821a) += RTW88_8821A
+config-$(call config_package,rtw88-8812a) += RTW88_8812A
+config-$(call config_package,rtw88-8821au) += RTW88_8821AU
+config-$(call config_package,rtw88-8812au) += RTW88_8812AU
 config-$(CONFIG_PACKAGE_RTW88_DEBUG) += RTW88_DEBUG
 config-$(CONFIG_PACKAGE_RTW88_DEBUGFS) += RTW88_DEBUGFS
 
@@ -255,6 +261,33 @@ define KernelPackage/rtw88-usb
   HIDDEN:=1
 endef
 
+define KernelPackage/rtw88-88xxa
+  $(call KernelPackage/mac80211/Default)
+  TITLE:=Realtek RTL8812A/RTL8821A family support
+  DEPENDS+= + at DRIVER_11AC_SUPPORT +kmod-rtw88-usb
+  FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtw88/rtw88_88xxa.ko
+  AUTOLOAD:=$(call AutoProbe,rtw88_88xxa)
+  HIDDEN:=1
+endef
+
+define KernelPackage/rtw88-8821a
+  $(call KernelPackage/mac80211/Default)
+  TITLE:=Realtek RTL8821A family support
+  DEPENDS+= +kmod-rtw88-88xxa
+  FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtw88/rtw88_8821a.ko
+  AUTOLOAD:=$(call AutoProbe,rtw88_8821a)
+  HIDDEN:=1
+endef
+
+define KernelPackage/rtw88-8812a
+  $(call KernelPackage/mac80211/Default)
+  TITLE:=Realtek RTL8812A family support
+  DEPENDS+= +kmod-rtw88-88xxa
+  FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtw88/rtw88_8812a.ko
+  AUTOLOAD:=$(call AutoProbe,rtw88_8812a)
+  HIDDEN:=1
+endef
+
 define KernelPackage/rtw88-8821c
   $(call KernelPackage/mac80211/Default)
   TITLE:=Realtek RTL8821C family support
@@ -300,6 +333,22 @@ define KernelPackage/rtw88-8723d
   HIDDEN:=1
 endef
 
+define KernelPackage/rtw88-8821au
+  $(call KernelPackage/mac80211/Default)
+  TITLE:=Realtek RTL8821AU support
+  DEPENDS+= +kmod-rtw88-8821a +rtl8821a-firmware
+  FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtw88/rtw88_8821au.ko
+  AUTOLOAD:=$(call AutoProbe,rtw88_8821au)
+endef
+
+define KernelPackage/rtw88-8812au
+  $(call KernelPackage/mac80211/Default)
+  TITLE:=Realtek RTL8812AU support
+  DEPENDS+= +kmod-rtw88-8812a +rtl8812a-firmware
+  FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtw88/rtw88_8812au.ko
+  AUTOLOAD:=$(call AutoProbe,rtw88_8812au)
+endef
+
 define KernelPackage/rtw88-8821ce
   $(call KernelPackage/mac80211/Default)
   TITLE:=Realtek RTL8821CE support



From lede-commits at lists.infradead.org  Sat Nov 30 08:57:50 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 30 Nov 2024 11:57:50 -0500
Subject: [openwrt/openwrt]  linux-firmware: update to 20241110
In-Reply-To: <173298587087.2504452.3368312356959661950@git-01.infra.openwrt.org>
References: <173298587087.2504452.3368312356959661950@git-01.infra.openwrt.org>
Message-ID: <mailman.8674.1732985882.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/24c8f06807181a5fb3a63a74e5ee73d68c6d59f0

commit 24c8f06807181a5fb3a63a74e5ee73d68c6d59f0
Author: Marty Jones <mj8263788 at gmail.com>
AuthorDate: Mon Nov 11 16:52:43 2024 -0500

    linux-firmware: update to 20241110
    
    linux-firmware update to 20241110
    Move WCN6750 firmware to the device-specific subdir
    
    git log --no-merges --pretty=oneline --abbrev-commit 20241110...20241017
    
    1dbc4cfa rtl_bt: Update RTL8852BT/RTL8852BE-VT BT USB FW to 0x04D7_63F7
    8a976e23 cnm: update chips&media wave521c firmware.
    3636204f mediatek MT7920: update bluetooth firmware to 20241104091246
    6627b025 linux-firmware: update firmware for MT7920 WiFi device
    554c4761 copy-firmware.sh: Run check_whence.py only if in a git repo
    1486d9aa cirrus: cs35l56: Add firmware for Cirrus CS35L56 for various Dell laptops
    c99eeb4d amdgpu: update DMCUB to v9.0.10.0 for DCN351
    b6bfff1a rtw89: 8852a: update fw to v0.13.36.2
    ddf25515 rtw88: Add firmware v52.14.0 for RTL8812AU
    dbb219d7 i915: Update Xe2LPD DMC to v2.23
    937e463b linux-firmware: update firmware for mediatek bluetooth chip (MT7925)
    62ee1c4b linux-firmware: update firmware for MT7925 WiFi device
    a142ad72 WHENCE: Add sof-tolg for mt8195
    fe16af92  linux-firmware: Update firmware file for Intel BlazarI core
    c69bd749 qcom: Add link for QCS6490 GPU firmware
    f4f5689f qcom: update gpu firmwares for qcs615 chipset
    a6f3ab98 cirrus: cs35l56: Update firmware for Cirrus Amps for some HP laptops
    048795ee ath11k: move WCN6750 firmware to the device-specific subdir
    8a7bde2c xe: Update LNL GSC to v104.0.0.1263
    e0ee2f91 i915: Update MTL/ARL GSC to v102.1.15.1926
    987607d6 amdgpu: DMCUB updates for various AMDGPU ASICs
    f9a502ab mediatek: Add sof-tolg for mt8195
    1c289f28 i915: Add Xe3LPD DMC
    c2379c61 cnm: update chips&media wave521c firmware.
    71f8f3e0 linux-firmware: Add firmware for Cirrus CS35L41
    65c4b9b7 linux-firmware: Update firmware file for Intel BlazarU core
    4f397306 Makefile: error out of 'install' if COPYOPTS is set
    2f046411 check_whence.py: skip some validation if git ls-files fails
    feb324e3 qcom: Add Audio firmware for X1E80100 CRD/QCPs
    3d45353e amdgpu: DMCUB updates forvarious AMDGPU ASICs
    c569ca45 brcm: replace NVRAM for Jetson TX1
    
    Signed-off-by: Marty Jones <mj8263788 at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/17079
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/firmware/linux-firmware/Makefile      | 4 ++--
 package/firmware/linux-firmware/qca_ath11k.mk | 6 +++++-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/package/firmware/linux-firmware/Makefile b/package/firmware/linux-firmware/Makefile
index de69360aff..433ff03a21 100644
--- a/package/firmware/linux-firmware/Makefile
+++ b/package/firmware/linux-firmware/Makefile
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=linux-firmware
-PKG_VERSION:=20241017
+PKG_VERSION:=20241110
 PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=@KERNEL/linux/kernel/firmware
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_HASH:=a26c38ef5a83272f2b98ce8bf8ca1865a852a3deea49ce5a8dd804b914351273
+PKG_HASH:=32e6d3eb5c7fcb69fe5d58976c6deafa0d6552719c6e74835064aff049d25bd7
 
 PKG_MAINTAINER:=Felix Fietkau <nbd at nbd.name>
 
diff --git a/package/firmware/linux-firmware/qca_ath11k.mk b/package/firmware/linux-firmware/qca_ath11k.mk
index 3571198d1b..9fdd611948 100644
--- a/package/firmware/linux-firmware/qca_ath11k.mk
+++ b/package/firmware/linux-firmware/qca_ath11k.mk
@@ -10,7 +10,11 @@ Package/ath11k-firmware-wcn6750 = $(call Package/firmware-default,WCN6750 ath11k
 define Package/ath11k-firmware-wcn6750/install
 	$(INSTALL_DIR) $(1)/lib/firmware/ath11k/WCN6750/hw1.0
 	$(INSTALL_DATA) \
-		$(PKG_BUILD_DIR)/ath11k/WCN6750/hw1.0/* $(1)/lib/firmware/ath11k/WCN6750/hw1.0/
+		$(PKG_BUILD_DIR)/ath11k/WCN6750/hw1.0/board-2.bin $(1)/lib/firmware/ath11k/WCN6750/hw1.0/
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/ath11k/WCN6750/hw1.0/Notice.txt $(1)/lib/firmware/ath11k/WCN6750/hw1.0/
+	$(INSTALL_DATA) \
+	        $(PKG_BUILD_DIR)/ath11k/WCN6750/hw1.0/sc7280/wpss.mbn $(1)/lib/firmware/ath11k/WCN6750/hw1.0/
 endef
 $(eval $(call BuildPackage,ath11k-firmware-wcn6750))
 



From lede-commits at lists.infradead.org  Sat Nov 30 09:20:40 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 30 Nov 2024 12:20:40 -0500
Subject: [openwrt/openwrt]  ath79: Unify Sophos AP15/AP15C dts files
In-Reply-To: <173298724076.2579122.11314130659039073637@git-01.infra.openwrt.org>
References: <173298724076.2579122.11314130659039073637@git-01.infra.openwrt.org>
Message-ID: <mailman.8677.1732987244.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/22899e77a9927aacf02cc8da47aea8605c78b12f

commit 22899e77a9927aacf02cc8da47aea8605c78b12f
Author: Christoph Krapp <achterin at gmail.com>
AuthorDate: Sun Nov 17 23:01:00 2024 +0100

    ath79: Unify Sophos AP15/AP15C dts files
    
    The recently added AP15C dts file only differs by the definition of the
    reset button. Unify the shared definition into a dtsi to reduce code
    duplication.
    
    Signed-off-by: Christoph Krapp <achterin at gmail.com>
    Tested-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
    Link: https://github.com/openwrt/openwrt/pull/16998
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/ath79/dts/qca9557_sophos_ap15.dts     | 142 +--------------------
 ...57_sophos_ap15.dts => qca9557_sophos_ap15.dtsi} |   3 -
 target/linux/ath79/dts/qca9557_sophos_ap15c.dts    | 142 +--------------------
 3 files changed, 2 insertions(+), 285 deletions(-)

diff --git a/target/linux/ath79/dts/qca9557_sophos_ap15.dts b/target/linux/ath79/dts/qca9557_sophos_ap15.dts
index 773b423cde..d6c0a65ebe 100644
--- a/target/linux/ath79/dts/qca9557_sophos_ap15.dts
+++ b/target/linux/ath79/dts/qca9557_sophos_ap15.dts
@@ -1,148 +1,8 @@
 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 
-#include "qca955x.dtsi"
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/leds/common.h>
+#include "qca9557_sophos_ap15.dtsi"
 
 / {
 	compatible = "sophos,ap15", "qca,qca9557";
 	model = "Sophos AP15";
-
-	aliases {
-		led-boot = &led_status_green;
-		led-failsafe = &led_status_yellow;
-		led-running = &led_status_green;
-		led-upgrade = &led_status_yellow;
-		label-mac-device = &eth0;
-	};
-
-	chosen {
-		bootargs = "console=ttyS0,115200n8";
-	};
-
-	leds {
-		compatible = "gpio-leds";
-
-		led_status_green: status_green {
-			function = LED_FUNCTION_STATUS;
-			color = <LED_COLOR_ID_GREEN>;
-			gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
-			default-state = "on";
-		};
-
-		led_status_yellow: status_yellow {
-			function = LED_FUNCTION_STATUS;
-			color = <LED_COLOR_ID_YELLOW>;
-			gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
-		};
-	};
-};
-
-&spi {
-	status = "okay";
-
-	flash at 0 {
-		compatible = "jedec,spi-nor";
-		reg = <0>;
-		spi-max-frequency = <25000000>;
-
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition at 0 {
-				label = "u-boot";
-				reg = <0x000000 0x040000>;
-				read-only;
-			};
-
-			partition at 40000 {
-				label = "u-boot-env";
-				reg = <0x040000 0x010000>;
-			};
-
-			partition at 50000 {
-				label = "art";
-				reg = <0x050000 0x010000>;
-				read-only;
-
-				nvmem-layout {
-					compatible = "fixed-layout";
-					#address-cells = <1>;
-					#size-cells = <1>;
-
-					cal_art_1000: calibration at 1000 {
-						reg = <0x1000 0x440>;
-					};
-				};
-			};
-
-			partition at 60000 {
-				label = "config";
-				reg = <0x060000 0x010000>;
-				read-only;
-
-				nvmem-layout {
-					compatible = "fixed-layout";
-					#address-cells = <1>;
-					#size-cells = <1>;
-
-					macaddr_config_201a: macaddr at 201a {
-						reg = <0x201a 0x6>;
-					};
-				};
-			};
-
-			partition at 70000 {
-				compatible = "denx,uimage";
-				label = "firmware";
-				reg = <0x070000 0xf90000>;
-			};
-		};
-	};
-};
-
-&mdio0 {
-	status = "okay";
-
-	phy-mask = <0x10>;
-
-	phy4: ethernet-phy at 4 {
-		reg = <4>;
-		eee-broken-100tx;
-		eee-broken-1000t;
-	};
-};
-
-&eth0 {
-	status = "okay";
-
-	pll-data = <0xa6000000 0xa0000101 0xa0001313>;
-
-	nvmem-cells = <&macaddr_config_201a>;
-	nvmem-cell-names = "mac-address";
-
-	phy-mode = "rgmii-id";
-	phy-handle = <&phy4>;
-
-	gmac_config: gmac-config {
-		device = <&gmac>;
-
-		rgmii-enabled = <1>;
-
-		rxdv-delay = <3>;
-		rxd-delay = <3>;
-		txen-delay = <3>;
-		txd-delay = <3>;
-	};
-};
-
-&wmac {
-	status = "okay";
-
-	nvmem-cells = <&cal_art_1000>;
-	nvmem-cell-names = "calibration";
 };
diff --git a/target/linux/ath79/dts/qca9557_sophos_ap15.dts b/target/linux/ath79/dts/qca9557_sophos_ap15.dtsi
similarity index 97%
copy from target/linux/ath79/dts/qca9557_sophos_ap15.dts
copy to target/linux/ath79/dts/qca9557_sophos_ap15.dtsi
index 773b423cde..c5ac5e3d9d 100644
--- a/target/linux/ath79/dts/qca9557_sophos_ap15.dts
+++ b/target/linux/ath79/dts/qca9557_sophos_ap15.dtsi
@@ -7,9 +7,6 @@
 #include <dt-bindings/leds/common.h>
 
 / {
-	compatible = "sophos,ap15", "qca,qca9557";
-	model = "Sophos AP15";
-
 	aliases {
 		led-boot = &led_status_green;
 		led-failsafe = &led_status_yellow;
diff --git a/target/linux/ath79/dts/qca9557_sophos_ap15c.dts b/target/linux/ath79/dts/qca9557_sophos_ap15c.dts
index 68d02e97a5..464bdd5a45 100644
--- a/target/linux/ath79/dts/qca9557_sophos_ap15c.dts
+++ b/target/linux/ath79/dts/qca9557_sophos_ap15c.dts
@@ -1,27 +1,11 @@
 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 
-#include "qca955x.dtsi"
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/leds/common.h>
+#include "qca9557_sophos_ap15.dtsi"
 
 / {
 	compatible = "sophos,ap15c", "qca,qca9557";
 	model = "Sophos AP15C";
 
-	aliases {
-		led-boot = &led_status_green;
-		led-failsafe = &led_status_yellow;
-		led-running = &led_status_green;
-		led-upgrade = &led_status_yellow;
-		label-mac-device = &eth0;
-	};
-
-	chosen {
-		bootargs = "console=ttyS0,115200n8";
-	};
-
 	keys {
 		compatible = "gpio-keys";
 
@@ -32,128 +16,4 @@
 			debounce-interval = <60>;
 		};
 	};
-
-	leds {
-		compatible = "gpio-leds";
-
-		led_status_green: status_green {
-			function = LED_FUNCTION_STATUS;
-			color = <LED_COLOR_ID_GREEN>;
-			gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
-			default-state = "on";
-		};
-
-		led_status_yellow: status_yellow {
-			function = LED_FUNCTION_STATUS;
-			color = <LED_COLOR_ID_YELLOW>;
-			gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
-		};
-	};
-};
-
-&spi {
-	status = "okay";
-
-	flash at 0 {
-		compatible = "jedec,spi-nor";
-		reg = <0>;
-		spi-max-frequency = <25000000>;
-
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition at 0 {
-				label = "u-boot";
-				reg = <0x000000 0x040000>;
-				read-only;
-			};
-
-			partition at 40000 {
-				label = "u-boot-env";
-				reg = <0x040000 0x010000>;
-			};
-
-			partition at 50000 {
-				label = "art";
-				reg = <0x050000 0x010000>;
-				read-only;
-
-				nvmem-layout {
-					compatible = "fixed-layout";
-					#address-cells = <1>;
-					#size-cells = <1>;
-
-					cal_art_1000: calibration at 1000 {
-						reg = <0x1000 0x440>;
-					};
-				};
-			};
-
-			partition at 60000 {
-				label = "config";
-				reg = <0x060000 0x010000>;
-				read-only;
-
-				nvmem-layout {
-					compatible = "fixed-layout";
-					#address-cells = <1>;
-					#size-cells = <1>;
-
-					macaddr_config_201a: macaddr at 201a {
-						reg = <0x201a 0x6>;
-					};
-				};
-			};
-
-			partition at 70000 {
-				compatible = "denx,uimage";
-				label = "firmware";
-				reg = <0x070000 0xf90000>;
-			};
-		};
-	};
-};
-
-&mdio0 {
-	status = "okay";
-
-	phy-mask = <0x10>;
-
-	phy4: ethernet-phy at 4 {
-		reg = <4>;
-		eee-broken-100tx;
-		eee-broken-1000t;
-	};
-};
-
-&eth0 {
-	status = "okay";
-
-	pll-data = <0xa6000000 0xa0000101 0xa0001313>;
-
-	nvmem-cells = <&macaddr_config_201a>;
-	nvmem-cell-names = "mac-address";
-
-	phy-mode = "rgmii-id";
-	phy-handle = <&phy4>;
-
-	gmac_config: gmac-config {
-		device = <&gmac>;
-
-		rgmii-enabled = <1>;
-
-		rxdv-delay = <3>;
-		rxd-delay = <3>;
-		txen-delay = <3>;
-		txd-delay = <3>;
-	};
-};
-
-&wmac {
-	status = "okay";
-
-	nvmem-cells = <&cal_art_1000>;
-	nvmem-cell-names = "calibration";
 };



From lede-commits at lists.infradead.org  Sat Nov 30 09:40:46 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 30 Nov 2024 12:40:46 -0500
Subject: [openwrt/openwrt]  mediatek: MERCUSYS MR90X v1: add OpenWrt U-Boot
 (UBI) layout
In-Reply-To: <173298844423.2639881.16256613999772686449@git-01.infra.openwrt.org>
References: <173298844423.2639881.16256613999772686449@git-01.infra.openwrt.org>
Message-ID: <mailman.8682.1732988448.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/ee8df790cae843f11f78511dd9ffac7e80a4d707

commit ee8df790cae843f11f78511dd9ffac7e80a4d707
Author: Mikhail Zhilkin <csharper2005 at gmail.com>
AuthorDate: Sun Oct 20 12:21:33 2024 +0000

    mediatek: MERCUSYS MR90X v1: add OpenWrt U-Boot (UBI) layout
    
    This commit adds OpenWrt U-Boot (UBI) layout support for MERCUSYS MR90X
    v1.
    
    Stock U-Boot UBI size:   50 MiB
    OpenWrt U-boot UBI size: 126 MiB
    
    Install
    -------
    1. Perform steps 1-14 of the OpenWrt installation guide (use OpenWrt
       initramfs-recovery.itb instead of initramfs-kernel.bin at the step 10,
       12 and 14).
    Link: https://openwrt.org/toh/mercusys/mr90x_v1#installation
    
    2. Make backups:
    ```
    cat /dev/mtd0 > /tmp/boot.bin
    cat /dev/mtd5 > /tmp/tp_data.bin
    ```
       Copy /tp_data dir content, /tmp/boot.bin and /tmp/tp_data.bin and to
       your PC using scp. You can also backup the remaining partititons. Copy
       backups to a safe place, they are required for the next steps and stock
       firmware recovery.
    
    3. Reboot to OpenWrt initramfs:
    ```
    reboot
    ```
    
    4. Copy OpenWrt ubi-bl31-uboot.fip, ubi-preloader.bin,
       ubi-squashfs-sysupgrade.itb and MT7986_EEPROM.bin, default-mac (from
       /tp_data backup) to the /tmp folder of the router using scp.
    
    5. Prepare UBI:
    ```
    ubidetach -p /dev/mtd3; ubiformat /dev/mtd3 -y; ubiattach -p /dev/mtd3
    ubimkvol /dev/ubi0 -N fip -t static -s 1MiB
    ubiupdatevol /dev/ubi0_0 /tmp/ubi-bl31-uboot.fip
    ubimkvol /dev/ubi0 -N ubootenv -s 0x1f000
    ubimkvol /dev/ubi0 -N ubootenv2 -s 0x1f000
    ```
    
    6.  Install kmod-mtd-rw and unlock partitions:
    ```
    opkg update && opkg install kmod-mtd-rw
    insmod mtd-rw i_want_a_brick=1
    mtd unlock boot
    mtd unlock bl2
    mtd unlock factory
    ```
    
    7. Prepare "factory" partition:
    ```
    dd if=/dev/zero bs=$((0x8000)) count=1 | tr '\000' '\377' > /tmp/factory.bin
    dd if=/tmp/MT7986_EEPROM.bin of=/tmp/factory.bin conv=notrunc
    dd if=/tmp/default-mac >> /tmp/factory.bin
    ```
    
    8. Write "factory" partition:
    ```
    mtd erase factory
    mtd write /tmp/factory.bin factory
    ```
    
    9. Write preloader partition:
    ```
    mtd erase bl2
    mtd write /tmp/ubi-preloader.bin bl2
    ```
    
    10. Write OpenWrt sysupgrade image:
    ```
    sysupgrade -n /tmp/ubi-squashfs-sysupgrade.itb
    ```
    
    Recovery
    --------
    1. Place OpenWrt initramfs-recovery.itb image (with original name) on the
       tftp server (IP: 192.168.1.254).
    2. Press "reset" button and power on the router. After ~10 sec release the
       button.
    3. Use OpenWrt initramfs system for recovery.
    
    BL2 and FIP recovery
    --------------------
    Use mtk_uartboot and UART connetion if BL2 or FIP in UBI is destroyed:
    Link: https://github.com/981213/mtk_uartboot
    Link: https://openwrt.org/toh/mercusys/mr90x_v1#serial
    
    Return to stock:
    ----------------
    1. Copy "boot" partition backup (boot.bin) to the /tmp dir of the router
       using scp.
    
    2. Install kmod-mtd-rw:
    ```
    opkg update && opkg install kmod-mtd-rw
    ```
    
    3. Restore stock U-Boot:
    ```
       insmod mtd-rw i_want_a_brick=1
       mtd unlock boot
       mtd erase boot
       mtd write /tmp/boot.bin boot
    ```
    
    4. Erase UBI and reboot:
    ```
    mtd erase ubi
    reboot
    ```
    
    5. Open U-Boot web recovery, upload stock firmware image and start
       upgrade.
    Link: http://192.168.1.1
    
    6. Complete steps 1-9 of the OpenWrt installation guide to get root
       rights.
    Link: https://openwrt.org/toh/mercusys/mr90x_v1#installation
    
    7. Upload "tp_data" partition backup (tp_data.bin) to the /tmp folder of
       the router using scp.
    
    8. Restore stock calibrations:
    ```
    mtd write /tmp/tp_data.bin tp_data
    reboot
    ```
    
    9. Perform "factory restore" via stock firmware web interface.
    
    Signed-off-by: Mikhail Zhilkin <csharper2005 at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16744
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/boot/uboot-envtools/files/mediatek_filogic |   1 +
 ...1.dts => mt7986b-mercusys-mr90x-v1-common.dtsi} |  50 +---
 .../mediatek/dts/mt7986b-mercusys-mr90x-v1-ubi.dts | 124 +++++++++
 .../mediatek/dts/mt7986b-mercusys-mr90x-v1.dts     | 290 ++-------------------
 .../filogic/base-files/etc/board.d/01_leds         |   3 +-
 .../filogic/base-files/etc/board.d/02_network      |   3 +-
 .../filogic/base-files/lib/upgrade/platform.sh     |   1 +
 target/linux/mediatek/image/filogic.mk             |  28 ++
 8 files changed, 190 insertions(+), 310 deletions(-)

diff --git a/package/boot/uboot-envtools/files/mediatek_filogic b/package/boot/uboot-envtools/files/mediatek_filogic
index 58db7dad28..5bde699a47 100644
--- a/package/boot/uboot-envtools/files/mediatek_filogic
+++ b/package/boot/uboot-envtools/files/mediatek_filogic
@@ -36,6 +36,7 @@ case "$board" in
 abt,asr3000|\
 h3c,magic-nx30-pro|\
 jcg,q30-pro|\
+mercusys,mr90x-v1-ubi|\
 netcore,n60|\
 nokia,ea0326gmp|\
 qihoo,360t7|\
diff --git a/target/linux/mediatek/dts/mt7986b-mercusys-mr90x-v1.dts b/target/linux/mediatek/dts/mt7986b-mercusys-mr90x-v1-common.dtsi
similarity index 86%
copy from target/linux/mediatek/dts/mt7986b-mercusys-mr90x-v1.dts
copy to target/linux/mediatek/dts/mt7986b-mercusys-mr90x-v1-common.dtsi
index f0a995820e..5522c58af2 100644
--- a/target/linux/mediatek/dts/mt7986b-mercusys-mr90x-v1.dts
+++ b/target/linux/mediatek/dts/mt7986b-mercusys-mr90x-v1-common.dtsi
@@ -8,19 +8,16 @@
 #include "mt7986b.dtsi"
 
 / {
-	compatible = "mercusys,mr90x-v1", "mediatek,mt7986b";
-	model = "MERCUSYS MR90X v1";
-
-	aliases {
-		serial0 = &uart0;
-
+	aliases: aliases {
 		led-boot = &led_status_green;
 		led-failsafe = &led_status_green;
 		led-running = &led_status_green;
 		led-upgrade = &led_status_green;
+
+		serial0 = &uart0;
 	};
 
-	chosen {
+	chosen: chosen {
 		stdout-path = "serial0:115200n8";
 	};
 
@@ -41,7 +38,7 @@
 	leds {
 		compatible = "gpio-leds";
 
-	 	led-0 {
+		led-0 {
 			color = <LED_COLOR_ID_GREEN>;
 			function = LED_FUNCTION_LAN;
 			function-enumerator = <2>;
@@ -229,40 +226,6 @@
 			compatible = "fixed-partitions";
 			#address-cells = <1>;
 			#size-cells = <1>;
-
-			partition at 0 {
-				label = "boot";
-				reg = <0x0 0x200000>;
-				read-only;
-			};
-
-			partition at 200000 {
-				label = "u-boot-env";
-				reg = <0x200000 0x100000>;
-			};
-
-			partition at 300000 {
-				label = "ubi0";
-				reg = <0x300000 0x3200000>;
-			};
-
-			partition at 3500000 {
-				label = "ubi1";
-				reg = <0x3500000 0x3200000>;
-				read-only;
-			};
-
-			partition at 6700000 {
-				label = "userconfig";
-				reg = <0x6700000 0x800000>;
-				read-only;
-			};
-
-			partition at 6f00000 {
-				label = "tp_data";
-				reg = <0x6f00000 0x400000>;
-				read-only;
-			};
 		};
 	};
 };
@@ -281,6 +244,9 @@
 
 &wifi {
 	status = "okay";
+
 	pinctrl-names = "default";
 	pinctrl-0 = <&wf_2g_5g_pins>;
+
+	ieee80211-freq-limit = <2400000 2500000>, <5170000 5835000>;
 };
diff --git a/target/linux/mediatek/dts/mt7986b-mercusys-mr90x-v1-ubi.dts b/target/linux/mediatek/dts/mt7986b-mercusys-mr90x-v1-ubi.dts
new file mode 100644
index 0000000000..cfa195034d
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7986b-mercusys-mr90x-v1-ubi.dts
@@ -0,0 +1,124 @@
+// SPDX-License-Identifier: (GL-2.0 OR MIT)
+
+#include "mt7986b-mercusys-mr90x-v1-common.dtsi"
+
+/ {
+	compatible = "mercusys,mr90x-v1-ubi", "mediatek,mt7986b";
+	model = "MERCUSYS MR90X v1 (UBI)";
+};
+
+&aliases {
+	label-mac-device = &gmac0;
+};
+
+&chosen {
+	bootargs-append = " root=/dev/fit0 rootwait";
+	rootdisk = <&ubi_fit>;
+};
+
+&gmac0 {
+	nvmem-cells = <&macaddr_factory_8000 0>;
+	nvmem-cell-names = "mac-address";
+};
+
+&gmac1 {
+	nvmem-cells = <&macaddr_factory_8000 1>;
+	nvmem-cell-names = "mac-address";
+};
+
+&partitions {
+	partition at 0 {
+		label = "boot";
+		reg = <0x0 0x200000>;
+		read-only;
+
+		compatible = "fixed-partitions";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		partition at 0 {
+			label = "bl2";
+			reg = <0x0 0x100000>;
+			read-only;
+		};
+
+		partition at 100000 {
+			label = "factory";
+			reg = <0x100000 0x100000>;
+			read-only;
+
+			nvmem-layout {
+				compatible = "fixed-layout";
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				eeprom_factory_0: eeprom at 0 {
+					reg = <0x0 0x1000>;
+				};
+
+				macaddr_factory_8000: macaddr at 8000 {
+					compatible = "mac-base";
+					reg = <0x8000 0x6>;
+					#nvmem-cell-cells = <1>;
+				};
+			};
+		};
+	};
+
+	partition at 200000 {
+		compatible = "linux,ubi";
+		reg = <0x200000 0x7e00000>;
+		label = "ubi";
+
+		volumes {
+			ubi_fit: ubi-volume-fit {
+				volname = "fit";
+			};
+
+			ubi_ubootenv: ubi-volume-ubootenv {
+				volname = "ubootenv";
+			};
+
+			ubi_ubootenv2: ubi-volume-ubootenv2 {
+				volname = "ubootenv2";
+			};
+		};
+	};
+};
+
+&trng {
+	status = "okay";
+};
+
+&uart0 {
+	status = "okay";
+};
+
+&ubi_ubootenv {
+	nvmem-layout {
+		compatible = "u-boot,env-redundant-bool";
+	};
+};
+
+&ubi_ubootenv2 {
+	nvmem-layout {
+		compatible = "u-boot,env-redundant-bool";
+	};
+};
+
+&wifi {
+	nvmem-cells = <&eeprom_factory_0>;
+	nvmem-cell-names = "eeprom";
+
+	band at 0 {
+		reg = <0>;
+		nvmem-cells = <&macaddr_factory_8000 0>;
+		nvmem-cell-names = "mac-address";
+	};
+
+	band at 1 {
+		reg = <1>;
+		nvmem-cells = <&macaddr_factory_8000 (-1)>;
+		nvmem-cell-names = "mac-address";
+	};
+};
diff --git a/target/linux/mediatek/dts/mt7986b-mercusys-mr90x-v1.dts b/target/linux/mediatek/dts/mt7986b-mercusys-mr90x-v1.dts
index f0a995820e..16d890a393 100644
--- a/target/linux/mediatek/dts/mt7986b-mercusys-mr90x-v1.dts
+++ b/target/linux/mediatek/dts/mt7986b-mercusys-mr90x-v1.dts
@@ -1,286 +1,44 @@
 // SPDX-License-Identifier: (GL-2.0 OR MIT)
 
-/dts-v1/;
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/leds/common.h>
-
-#include "mt7986b.dtsi"
+#include "mt7986b-mercusys-mr90x-v1-common.dtsi"
 
 / {
 	compatible = "mercusys,mr90x-v1", "mediatek,mt7986b";
 	model = "MERCUSYS MR90X v1";
-
-	aliases {
-		serial0 = &uart0;
-
-		led-boot = &led_status_green;
-		led-failsafe = &led_status_green;
-		led-running = &led_status_green;
-		led-upgrade = &led_status_green;
-	};
-
-	chosen {
-		stdout-path = "serial0:115200n8";
-	};
-
-	memory {
-		reg = <0 0x40000000 0 0x20000000>;
-	};
-
-	keys {
-		compatible = "gpio-keys";
-
-		reset {
-			label = "reset";
-			gpios = <&pio 10 GPIO_ACTIVE_LOW>;
-			linux,code = <KEY_RESTART>;
-		};
-	};
-
-	leds {
-		compatible = "gpio-leds";
-
-	 	led-0 {
-			color = <LED_COLOR_ID_GREEN>;
-			function = LED_FUNCTION_LAN;
-			function-enumerator = <2>;
-			gpios = <&pio 7 GPIO_ACTIVE_LOW>;
-		};
-
-		led-1 {
-			color = <LED_COLOR_ID_GREEN>;
-			function = LED_FUNCTION_LAN;
-			function-enumerator = <1>;
-			gpios = <&pio 9 GPIO_ACTIVE_LOW>;
-		};
-
-		led-2 {
-			color = <LED_COLOR_ID_GREEN>;
-			function = LED_FUNCTION_LAN;
-			function-enumerator = <0>;
-			gpios = <&pio 12 GPIO_ACTIVE_LOW>;
-		};
-
-		led-3 {
-			color = <LED_COLOR_ID_GREEN>;
-			function = LED_FUNCTION_WAN;
-			gpios = <&pio 13 GPIO_ACTIVE_LOW>;
-		};
-
-		led-4 {
-			color = <LED_COLOR_ID_AMBER>;
-			function = LED_FUNCTION_STATUS;
-			gpios = <&pio 16 GPIO_ACTIVE_HIGH>;
-			panic-indicator;
-		};
-
-		led_status_green: led-5 {
-			color = <LED_COLOR_ID_GREEN>;
-			function = LED_FUNCTION_STATUS;
-			gpios = <&pio 17 GPIO_ACTIVE_HIGH>;
-		};
-	};
 };
 
-&crypto {
-	status = "okay";
-};
-
-&eth {
-	status = "okay";
-
-	gmac0: mac at 0 {
-		compatible = "mediatek,eth-mac";
-		reg = <0>;
-		phy-mode = "2500base-x";
-
-		fixed-link {
-			speed = <2500>;
-			full-duplex;
-			pause;
-		};
+&partitions {
+	partition at 0 {
+		label = "boot";
+		reg = <0x0 0x200000>;
+		read-only;
 	};
 
-	gmac1: mac at 1 {
-		compatible = "mediatek,eth-mac";
-		reg = <1>;
-		phy-handle = <&phy6>;
-		phy-mode = "2500base-x";
+	partition at 200000 {
+		label = "u-boot-env";
+		reg = <0x200000 0x100000>;
 	};
 
-	mdio: mdio-bus {
-		#address-cells = <1>;
-		#size-cells = <0>;
+	partition at 300000 {
+		label = "ubi0";
+		reg = <0x300000 0x3200000>;
 	};
-};
-
-&mdio {
-	#address-cells = <1>;
-	#size-cells = <0>;
-
-	reset-gpios = <&pio 6 GPIO_ACTIVE_LOW>;
-	reset-delay-us = <1500000>;
-	reset-post-delay-us = <1000000>;
 
-	/* WAN/LAN 2.5Gbps phy
-	   MaxLinear GPY211C0VC (SLNW8) */
-	phy6: phy at 6 {
-		compatible = "ethernet-phy-ieee802.3-c45";
-		reg = <6>;
+	partition at 3500000 {
+		label = "ubi1";
+		reg = <0x3500000 0x3200000>;
+		read-only;
 	};
 
-	switch: switch at 1f {
-		compatible = "mediatek,mt7531";
-		reg = <31>;
-		reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
+	partition at 6700000 {
+		label = "userconfig";
+		reg = <0x6700000 0x800000>;
+		read-only;
 	};
-};
-
-&switch {
-	ports {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		/* WAN/LAN 1Gbps port */
-		port at 0 {
-			reg = <0>;
-			label = "lan0";
-		};
 
-		/* LAN1 port */
-		port at 1 {
-			reg = <1>;
-			label = "lan1";
-		};
-
-		/* LAN2 port */
-		port at 2 {
-			reg = <2>;
-			label = "lan2";
-		};
-
-		port at 6 {
-			reg = <6>;
-			ethernet = <&gmac0>;
-			phy-mode = "2500base-x";
-
-			fixed-link {
-				speed = <2500>;
-				full-duplex;
-				pause;
-			};
-		};
-	};
-};
-
-&pio {
-	spi_flash_pins: spi-flash-pins-33-to-38 {
-		mux {
-			function = "spi";
-			groups = "spi0", "spi0_wp_hold";
-		};
-		conf-pu {
-			pins = "SPI2_CS", "SPI2_HOLD", "SPI2_WP";
-			drive-strength = <8>;
-			mediatek,pull-up-adv = <0>; /* bias-disable */
-		};
-		conf-pd {
-			pins = "SPI2_CLK", "SPI2_MOSI", "SPI2_MISO";
-			drive-strength = <8>;
-			mediatek,pull-down-adv = <0>; /* bias-disable */
-		};
-	};
-
-	wf_2g_5g_pins: wf_2g_5g-pins {
-		mux {
-			function = "wifi";
-			groups = "wf_2g", "wf_5g";
-		};
-		conf {
-			pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
-			       "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
-			       "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
-			       "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
-			       "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
-			       "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
-			       "WF1_TOP_CLK", "WF1_TOP_DATA";
-			drive-strength = <4>;
-		};
-	};
-};
-
-&spi0 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&spi_flash_pins>;
-	status = "okay";
-
-	spi_nand_flash: flash at 0 {
-		compatible = "spi-nand";
-		#address-cells = <1>;
-		#size-cells = <1>;
-		reg = <0>;
-
-		spi-max-frequency = <20000000>;
-		spi-tx-bus-width = <4>;
-		spi-rx-bus-width = <4>;
-
-		partitions: partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition at 0 {
-				label = "boot";
-				reg = <0x0 0x200000>;
-				read-only;
-			};
-
-			partition at 200000 {
-				label = "u-boot-env";
-				reg = <0x200000 0x100000>;
-			};
-
-			partition at 300000 {
-				label = "ubi0";
-				reg = <0x300000 0x3200000>;
-			};
-
-			partition at 3500000 {
-				label = "ubi1";
-				reg = <0x3500000 0x3200000>;
-				read-only;
-			};
-
-			partition at 6700000 {
-				label = "userconfig";
-				reg = <0x6700000 0x800000>;
-				read-only;
-			};
-
-			partition at 6f00000 {
-				label = "tp_data";
-				reg = <0x6f00000 0x400000>;
-				read-only;
-			};
-		};
+	partition at 6f00000 {
+		label = "tp_data";
+		reg = <0x6f00000 0x400000>;
+		read-only;
 	};
 };
-
-&trng {
-	status = "okay";
-};
-
-&uart0 {
-	status = "okay";
-};
-
-&watchdog {
-	status = "okay";
-};
-
-&wifi {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&wf_2g_5g_pins>;
-};
diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds b/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds
index 38c4b7525b..64df50eb0a 100644
--- a/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds
@@ -49,7 +49,8 @@ glinet,gl-xe3000)
 	ucidef_set_led_netdev "wlan2g" "WLAN2G" "green:wifi2g" "phy0-ap0"
 	ucidef_set_led_netdev "wlan5g" "WLAN5G" "green:wifi5g" "phy1-ap0"
 	;;
-mercusys,mr90x-v1)
+mercusys,mr90x-v1|\
+mercusys,mr90x-v1-ubi)
 	ucidef_set_led_netdev "lan-0" "lan-0" "green:lan-0" "lan0" "link tx rx"
 	ucidef_set_led_netdev "lan-1" "lan-1" "green:lan-1" "lan1" "link tx rx"
 	ucidef_set_led_netdev "lan-2" "lan-2" "green:lan-2" "lan2" "link tx rx"
diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
index 953d96d09c..ba78564402 100644
--- a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
@@ -106,7 +106,8 @@ mediatek_setup_interfaces()
 	mediatek,mt7988a-rfb)
 		ucidef_set_interfaces_lan_wan "lan0 lan1 lan2 lan3 eth2" eth1
 		;;
-	mercusys,mr90x-v1)
+	mercusys,mr90x-v1|\
+	mercusys,mr90x-v1-ubi)
 		ucidef_set_interfaces_lan_wan "lan0 lan1 lan2" eth1
 		;;
 	tplink,tl-xdr6086|\
diff --git a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
index 0040ffbb26..fb48ffc49f 100755
--- a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
@@ -76,6 +76,7 @@ platform_do_upgrade() {
 	jdcloud,re-cp-03|\
 	mediatek,mt7981-rfb|\
 	mediatek,mt7988a-rfb|\
+	mercusys,mr90x-v1-ubi|\
 	nokia,ea0326gmp|\
 	openwrt,one|\
 	netcore,n60|\
diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index ddd23f4d64..5498922f6e 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -1079,6 +1079,34 @@ define Device/mercusys_mr90x-v1
 endef
 TARGET_DEVICES += mercusys_mr90x-v1
 
+define Device/mercusys_mr90x-v1-ubi
+  DEVICE_VENDOR := MERCUSYS
+  DEVICE_MODEL := MR90X v1 (UBI)
+  DEVICE_DTS := mt7986b-mercusys-mr90x-v1-ubi
+  DEVICE_DTS_DIR := ../dts
+  DEVICE_DTC_FLAGS := --pad 4096
+  DEVICE_DTS_LOADADDR := 0x43f00000
+  DEVICE_PACKAGES := kmod-mt7915e kmod-mt7986-firmware mt7986-wo-firmware
+  UBINIZE_OPTS := -E 5
+  BLOCKSIZE := 128k
+  PAGESIZE := 2048
+  KERNEL_IN_UBI := 1
+  UBOOTENV_IN_UBI := 1
+  IMAGES := sysupgrade.itb
+  KERNEL_INITRAMFS_SUFFIX := -recovery.itb
+  KERNEL := kernel-bin | gzip
+  KERNEL_INITRAMFS := kernel-bin | lzma | \
+	fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | \
+	pad-to 64k
+  IMAGE/sysupgrade.itb := append-kernel | \
+	fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-with-rootfs | \
+	append-metadata
+  ARTIFACTS := bl31-uboot.fip preloader.bin
+  ARTIFACT/bl31-uboot.fip := mt7986-bl31-uboot mercusys_mr90x-v1
+  ARTIFACT/preloader.bin := mt7986-bl2 spim-nand-ubi-ddr3
+endef
+TARGET_DEVICES += mercusys_mr90x-v1-ubi
+
 define Device/netcore_n60
   DEVICE_VENDOR := Netcore
   DEVICE_MODEL := N60



From lede-commits at lists.infradead.org  Sat Nov 30 09:40:44 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 30 Nov 2024 12:40:44 -0500
Subject: [openwrt/openwrt]  arm-trusted-firmware-mediatek: add
 mt7986-spim-nand-ddr3 build
In-Reply-To: <173298844423.2639881.16256613999772686449@git-01.infra.openwrt.org>
References: <173298844423.2639881.16256613999772686449@git-01.infra.openwrt.org>
Message-ID: <mailman.8685.1732988449.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/2ea9ede7a8a94bddef599decfe6948c5c20dbfa5

commit 2ea9ede7a8a94bddef599decfe6948c5c20dbfa5
Author: Mikhail Zhilkin <csharper2005 at gmail.com>
AuthorDate: Sun Oct 20 12:20:04 2024 +0000

    arm-trusted-firmware-mediatek: add mt7986-spim-nand-ddr3 build
    
    This commit adds mt7986-spim-nand-ddr3 build required for MERCUSYS MR90X
    v1.
    
    Signed-off-by: Mikhail Zhilkin <csharper2005 at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16744
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/boot/arm-trusted-firmware-mediatek/Makefile | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/package/boot/arm-trusted-firmware-mediatek/Makefile b/package/boot/arm-trusted-firmware-mediatek/Makefile
index 3f70f33784..c8988fa400 100644
--- a/package/boot/arm-trusted-firmware-mediatek/Makefile
+++ b/package/boot/arm-trusted-firmware-mediatek/Makefile
@@ -352,6 +352,15 @@ define Trusted-Firmware-A/mt7986-spim-nand-ddr3
   DDR_TYPE:=ddr3
 endef
 
+define Trusted-Firmware-A/mt7986-spim-nand-ubi-ddr3
+  NAME:=MediaTek MT7986 (SPI-NAND via SPIM using UBI, DDR3)
+  BOOT_DEVICE:=spim-nand
+  BUILD_SUBTARGET:=filogic
+  PLAT:=mt7986
+  DDR_TYPE:=ddr3
+  USE_UBI:=1
+endef
+
 define Trusted-Firmware-A/mt7988-nor-ddr3
   NAME:=MediaTek MT7988 (SPI-NOR, DDR3)
   BOOT_DEVICE:=nor
@@ -531,6 +540,7 @@ TFA_TARGETS:= \
 	mt7986-sdmmc-ddr3 \
 	mt7986-snand-ddr3 \
 	mt7986-spim-nand-ddr3 \
+	mt7986-spim-nand-ubi-ddr3 \
 	mt7986-ram-ddr4 \
 	mt7986-emmc-ddr4 \
 	mt7986-nor-ddr4 \
@@ -570,6 +580,7 @@ TFA_MAKE_FLAGS += \
 	$(if $(RAM_BOOT_UART_DL),RAM_BOOT_UART_DL=1) \
 	$(if $(USE_UBI),UBI=1 $(if $(findstring mt7622,$(PLAT)),OVERRIDE_UBI_START_ADDR=0x80000)) \
 	$(if $(USE_UBI),UBI=1 $(if $(findstring mt7981,$(PLAT)),OVERRIDE_UBI_START_ADDR=0x100000)) \
+	$(if $(USE_UBI),UBI=1 $(if $(findstring mt7986,$(PLAT)),OVERRIDE_UBI_START_ADDR=0x200000)) \
 	$(if $(RAM_BOOT_UART_DL),bl2,all)
 
 define Package/trusted-firmware-a-ram/install



From lede-commits at lists.infradead.org  Sat Nov 30 09:40:45 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 30 Nov 2024 12:40:45 -0500
Subject: [openwrt/openwrt]  uboot-mediatek: add MERCUSYS MR90X v1 support
In-Reply-To: <173298844423.2639881.16256613999772686449@git-01.infra.openwrt.org>
References: <173298844423.2639881.16256613999772686449@git-01.infra.openwrt.org>
Message-ID: <mailman.8686.1732988453.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/77cc4b712700e51f5d779e4e7385639fa4e16ca9

commit 77cc4b712700e51f5d779e4e7385639fa4e16ca9
Author: Mikhail Zhilkin <csharper2005 at gmail.com>
AuthorDate: Sun Oct 20 12:20:51 2024 +0000

    uboot-mediatek: add MERCUSYS MR90X v1 support
    
    Add U-Boot replacement loader for the MERCUSYS MR90X. This is required
    to increase available flash space in OpenWrt.
    
    Signed-off-by: Mikhail Zhilkin <csharper2005 at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/16744
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/boot/uboot-mediatek/Makefile               |  13 +
 .../patches/459-add-mercusys-mr90x-v1.patch        | 343 +++++++++++++++++++++
 2 files changed, 356 insertions(+)

diff --git a/package/boot/uboot-mediatek/Makefile b/package/boot/uboot-mediatek/Makefile
index fa314da399..8fda29afa6 100644
--- a/package/boot/uboot-mediatek/Makefile
+++ b/package/boot/uboot-mediatek/Makefile
@@ -570,6 +570,18 @@ define U-Boot/mt7986_jdcloud_re-cp-03
   DEPENDS:=+trusted-firmware-a-mt7986-emmc-ddr4
 endef
 
+define U-Boot/mt7986_mercusys_mr90x-v1
+  NAME:=MERCUSYS MR90X v1
+  BUILD_SUBTARGET:=filogic
+  BUILD_DEVICES:=mercusys_mr90x-v1-ubi
+  UBOOT_CONFIG:=mt7986_mercusys_mr90x-v1
+  UBOOT_IMAGE:=u-boot.fip
+  BL2_BOOTDEV:=spim-nand-ubi
+  BL2_SOC:=mt7986
+  BL2_DDRTYPE:=ddr3
+  DEPENDS:=+trusted-firmware-a-mt7986-spim-nand-ubi-ddr3
+endef
+
 define U-Boot/mt7986_netcore_n60
   NAME:=Netcore N60
   BUILD_SUBTARGET:=filogic
@@ -847,6 +859,7 @@ UBOOT_TARGETS := \
 	mt7986_bananapi_bpi-r3-mini-snand \
 	mt7986_glinet_gl-mt6000 \
 	mt7986_jdcloud_re-cp-03 \
+	mt7986_mercusys_mr90x-v1 \
 	mt7986_netcore_n60 \
 	mt7986_tplink_tl-xdr4288 \
 	mt7986_tplink_tl-xdr6086 \
diff --git a/package/boot/uboot-mediatek/patches/459-add-mercusys-mr90x-v1.patch b/package/boot/uboot-mediatek/patches/459-add-mercusys-mr90x-v1.patch
new file mode 100644
index 0000000000..4fae619aa1
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/459-add-mercusys-mr90x-v1.patch
@@ -0,0 +1,343 @@
+--- /dev/null
++++ b/configs/mt7986_mercusys_mr90x-v1_defconfig
+@@ -0,0 +1,107 @@
++CONFIG_ARM=y
++CONFIG_SYS_HAS_NONCACHED_MEMORY=y
++CONFIG_POSITION_INDEPENDENT=y
++CONFIG_ARCH_MEDIATEK=y
++CONFIG_TEXT_BASE=0x41e00000
++CONFIG_SYS_MALLOC_F_LEN=0x4000
++CONFIG_NR_DRAM_BANKS=1
++CONFIG_DEFAULT_DEVICE_TREE="mt7986b-mercusys_mr90x-v1"
++CONFIG_OF_LIBFDT_OVERLAY=y
++CONFIG_TARGET_MT7986=y
++CONFIG_PRE_CON_BUF_ADDR=0x4007ef00
++CONFIG_DEBUG_UART_BASE=0x11002000
++CONFIG_DEBUG_UART_CLOCK=40000000
++CONFIG_SYS_LOAD_ADDR=0x46000000
++CONFIG_DEBUG_UART=y
++CONFIG_FIT=y
++CONFIG_BOOTDELAY=30
++CONFIG_AUTOBOOT_KEYED=y
++CONFIG_AUTOBOOT_MENU_SHOW=y
++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986b-mercusys_mr90x-v1.dtb"
++CONFIG_LOGLEVEL=7
++CONFIG_PRE_CONSOLE_BUFFER=y
++CONFIG_LOG=y
++CONFIG_BOARD_LATE_INIT=y
++CONFIG_HUSH_PARSER=y
++CONFIG_SYS_PROMPT="MT7986> "
++CONFIG_CMD_CPU=y
++CONFIG_CMD_LICENSE=y
++CONFIG_CMD_BOOTMENU=y
++CONFIG_CMD_ASKENV=y
++CONFIG_CMD_ERASEENV=y
++CONFIG_CMD_ENV_FLAGS=y
++CONFIG_CMD_STRINGS=y
++CONFIG_CMD_DM=y
++CONFIG_CMD_GPIO=y
++CONFIG_CMD_MTD=y
++CONFIG_CMD_DHCP=y
++CONFIG_CMD_TFTPSRV=y
++CONFIG_CMD_RARP=y
++CONFIG_CMD_PING=y
++CONFIG_CMD_CDP=y
++CONFIG_CMD_SNTP=y
++CONFIG_CMD_DNS=y
++CONFIG_CMD_LINK_LOCAL=y
++CONFIG_CMD_PXE=y
++CONFIG_CMD_CACHE=y
++CONFIG_CMD_PSTORE=y
++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
++CONFIG_CMD_UUID=y
++CONFIG_CMD_HASH=y
++CONFIG_CMD_SMC=y
++CONFIG_CMD_UBI=y
++CONFIG_CMD_UBI_RENAME=y
++CONFIG_OF_EMBED=y
++CONFIG_ENV_OVERWRITE=y
++CONFIG_ENV_IS_IN_UBI=y
++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
++CONFIG_ENV_UBI_PART="ubi"
++CONFIG_ENV_UBI_VOLUME="ubootenv"
++CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2"
++CONFIG_SYS_RELOC_GD_ENV_ADDR=y
++CONFIG_USE_DEFAULT_ENV_FILE=y
++CONFIG_DEFAULT_ENV_FILE="mercusys_mr90x-v1_env"
++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
++CONFIG_VERSION_VARIABLE=y
++CONFIG_NET_RANDOM_ETHADDR=y
++CONFIG_NETCONSOLE=y
++CONFIG_USE_IPADDR=y
++CONFIG_IPADDR="192.168.1.1"
++CONFIG_USE_SERVERIP=y
++CONFIG_SERVERIP="192.168.1.254"
++CONFIG_REGMAP=y
++CONFIG_SYSCON=y
++CONFIG_BUTTON=y
++CONFIG_BUTTON_GPIO=y
++CONFIG_CLK=y
++CONFIG_GPIO_HOG=y
++# CONFIG_I2C is not set
++# CONFIG_MMC is not set
++CONFIG_LED=y
++CONFIG_LED_BLINK=y
++CONFIG_LED_GPIO=y
++CONFIG_MTD=y
++CONFIG_DM_MTD=y
++CONFIG_MTD_SPI_NAND=y
++CONFIG_MTD_UBI_FASTMAP=y
++CONFIG_PHY_FIXED=y
++CONFIG_MEDIATEK_ETH=y
++CONFIG_PHY=y
++CONFIG_PINCTRL=y
++CONFIG_PINCONF=y
++CONFIG_PINCTRL_MT7986=y
++CONFIG_POWER_DOMAIN=y
++CONFIG_MTK_POWER_DOMAIN=y
++CONFIG_DM_REGULATOR=y
++CONFIG_DM_REGULATOR_FIXED=y
++CONFIG_DM_REGULATOR_GPIO=y
++CONFIG_RAM=y
++CONFIG_DM_SERIAL=y
++CONFIG_MTK_SERIAL=y
++CONFIG_SPI=y
++CONFIG_DM_SPI=y
++CONFIG_MTK_SPIM=y
++CONFIG_RANDOM_UUID=y
++CONFIG_ZSTD=y
++CONFIG_HEXDUMP=y
++CONFIG_LMB_MAX_REGIONS=64
+--- /dev/null
++++ b/arch/arm/dts/mt7986b-mercusys_mr90x-v1.dts
+@@ -0,0 +1,174 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * Copyright (c) 2024
++ * Author: Mikhail Zhilkin <csharper2005 at gmail.com>
++ */
++
++/dts-v1/;
++#include "mt7986.dtsi"
++#include <dt-bindings/gpio/gpio.h>
++#include <dt-bindings/input/linux-event-codes.h>
++
++/ {
++	#address-cells = <1>;
++	#size-cells = <1>;
++	model = "MERCUSYS MR90X v1";
++	compatible = "mediatek,mt7986", "mediatek,mt7986-rfb";
++
++	chosen {
++		stdout-path = &uart0;
++		tick-timer = &timer0;
++	};
++
++	memory at 40000000 {
++		device_type = "memory";
++		reg = <0x40000000 0x20000000>;
++	};
++
++	keys {
++		compatible = "gpio-keys";
++
++		reset {
++			label = "reset";
++			linux,code = <KEY_RESTART>;
++			gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
++		};
++	};
++
++	leds {
++		compatible = "gpio-leds";
++
++		led-0 {
++			label = "green:lan2";
++			gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
++		};
++
++		led-1 {
++			label = "green:lan1";
++			gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
++		};
++
++		led-2 {
++			label = "green:lan0";
++			gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
++		};
++
++		led-3 {
++			label = "green:wan";
++			gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
++		};
++
++		led-4 {
++			label = "amber:status";
++			gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
++		};
++
++		led_status_green: led-5 {
++			label = "green:status";
++			gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
++		};
++	};
++};
++
++&uart0 {
++	status = "okay";
++};
++
++&uart1 {
++	pinctrl-names = "default";
++	pinctrl-0 = <&uart1_pins>;
++	status = "disabled";
++};
++
++&eth {
++	status = "okay";
++	mediatek,gmac-id = <0>;
++	phy-mode = "2500base-x";
++	mediatek,switch = "mt7531";
++	reset-gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
++
++	fixed-link {
++		speed = <2500>;
++		full-duplex;
++	};
++};
++
++&pinctrl {
++	spi_flash_pins: spi0-pins-func-1 {
++		mux {
++			function = "flash";
++			groups = "spi0", "spi0_wp_hold";
++		};
++
++		conf-pu {
++			pins = "SPI2_CS", "SPI2_HOLD", "SPI2_WP";
++			drive-strength = <MTK_DRIVE_8mA>;
++			bias-pull-up = <MTK_PUPD_SET_R1R0_00>;
++		};
++
++		conf-pd {
++			pins = "SPI2_CLK", "SPI2_MOSI", "SPI2_MISO";
++			drive-strength = <MTK_DRIVE_8mA>;
++			bias-pull-down = <MTK_PUPD_SET_R1R0_00>;
++		};
++	};
++
++	spic_pins: spi1-pins-func-1 {
++		mux {
++			function = "spi";
++			groups = "spi1_2";
++		};
++	};
++
++	uart1_pins: spi1-pins-func-3 {
++		mux {
++			function = "uart";
++			groups = "uart1_2";
++		};
++	};
++};
++
++&spi0 {
++	#address-cells = <1>;
++	#size-cells = <0>;
++	pinctrl-names = "default";
++	pinctrl-0 = <&spi_flash_pins>;
++	status = "okay";
++	must_tx;
++	enhance_timing;
++	dma_ext;
++	ipm_design;
++	tick_dly = <2>;
++	sample_sel = <0>;
++
++	spi_nand at 1 {
++		compatible = "spi-nand";
++		reg = <1>;
++		spi-max-frequency = <20000000>;
++
++		partitions {
++			compatible = "fixed-partitions";
++			#address-cells = <1>;
++			#size-cells = <1>;
++
++			partition at 0 {
++				reg = <0x0 0x100000>;
++				label = "bl2";
++			};
++
++			partition at 100000 {
++				reg = <0x100000 0x100000>;
++				label = "factory";
++			};
++
++			partition at 200000 {
++				reg = <0x200000 0x7e00000>;
++				label = "ubi";
++			};
++		};
++	};
++};
++
++&watchdog {
++	status = "disabled";
++};
+--- /dev/null
++++ b/mercusys_mr90x-v1_env
+@@ -0,0 +1,53 @@
++ipaddr=192.168.1.1
++serverip=192.168.1.254
++loadaddr=0x46000000
++console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0
++bootargs=console=ttyS0,115200n8 console_msg_format=syslog
++bootcmd=run check_buttons ; run boot_production ; run boot_recovery
++bootconf=config-1
++bootdelay=0
++bootfile=openwrt-mediatek-filogic-mercusys_mr90x-v1-ubi-initramfs-recovery.itb
++bootfile_bl2=openwrt-mediatek-filogic-mercusys_mr90x-v1-ubi-preloader.bin
++bootfile_fip=openwrt-mediatek-filogic-mercusys_mr90x-v1-ubi-bl31-uboot.fip
++bootfile_upg=openwrt-mediatek-filogic-mercusys_mr90x-v1-ubi-squashfs-sysupgrade.itb
++bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
++bootmenu_default=0
++bootmenu_delay=0
++bootmenu_title=      [0;34m( ( ( [1;39mOpenWrt[0;34m ) ) )  [0;36m[SPI-NAND][0m
++bootmenu_0=Initialize environment.=run _firstboot
++bootmenu_0d=Run default boot command.=run boot_default
++bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return
++bootmenu_2=Boot production system from NAND.=run boot_production ; run bootmenu_confirm_return
++bootmenu_3=Boot recovery system from NAND.=run boot_recovery ; run bootmenu_confirm_return
++bootmenu_4=Load production system via TFTP then write to NAND.=noboot=1 ; replacevol=1 ; run boot_tftp_production ; noboot= ; replacevol= ; run bootmenu_confirm_return
++bootmenu_5=Load recovery system via TFTP then write to NAND.=noboot=1 ; replacevol=1 ; run boot_tftp_recovery ; noboot= ; replacevol= ; run bootmenu_confirm_return
++bootmenu_6=[31mLoad BL31+U-Boot FIP via TFTP then write to NAND.[0m=run boot_tftp_write_fip ; run bootmenu_confirm_return
++bootmenu_7=[31mLoad BL2 preloader via TFTP then write to NAND.[0m=run boot_tftp_write_bl2 ; run bootmenu_confirm_return
++bootmenu_8=Reboot.=reset
++bootmenu_9=Reset all settings to factory defaults.=run reset_factory ; reset
++boot_default=run led_boot ; run bootcmd ; run boot_recovery ; replacevol=1 ; run boot_tftp_forever
++boot_production=run led_boot ; run ubi_read_production && bootm $loadaddr#$bootconf
++boot_recovery=run led_boot ; run ubi_read_recovery && bootm $loadaddr#$bootconf
++boot_tftp=run led_boot ; tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf
++boot_tftp_forever=run led_boot ; while true ; do run boot_tftp ; sleep 1 ; done
++boot_tftp_production=run led_boot ; tftpboot $loadaddr $bootfile_upg && test $replacevol = 1 && iminfo $loadaddr && run ubi_write_production ; if test $noboot = 1 ; then else bootm $loadaddr#$bootconf ; fi
++boot_tftp_recovery=run led_boot ; tftpboot $loadaddr $bootfile && test $replacevol = 1 && iminfo $loadaddr && run ubi_write_recovery ; if test $noboot = 1 ; then else bootm $loadaddr#$bootconf ; fi
++boot_tftp_write_fip=run led_boot ; tftpboot $loadaddr $bootfile_fip && run ubi_write_fip && run reset_factory
++boot_tftp_write_bl2=run led_boot ; tftpboot $loadaddr $bootfile_bl2 && run snand_write_bl2
++check_buttons=if button reset ; then run boot_tftp ; fi
++ethaddr_factory=mtd read factory 0x40080000 0x0 0x20000 && env readmem -b ethaddr 0x40088000 0x6 ; setenv ethaddr_factory
++led_boot=led green:status off ; led amber:status on
++reset_factory=mw $loadaddr 0xff 0x1f000 ; ubi write $loadaddr ubootenv 0x1f000 ; ubi write $loadaddr ubootenv2 0x1f000 ; ubi remove rootfs_data
++snand_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr 0x0 0x40000
++ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x1f000 dynamic ; ubi check ubootenv2 || ubi create ubootenv2 0x1f000 dynamic
++ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi
++ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs
++ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery
++ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data
++ubi_write_fip=run ubi_remove_rootfs ; ubi check fip && ubi remove fip ; ubi create fip $filesize static && ubi write $loadaddr fip $filesize
++ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize
++ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize
++_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv
++_firstboot=setenv _firstboot ; run ethaddr_factory ; run _switch_to_menu ; run _init_env ; bootmenu
++_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
++_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title       [33m$ver[0m"



From lede-commits at lists.infradead.org  Sat Nov 30 09:53:30 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 30 Nov 2024 12:53:30 -0500
Subject: [openwrt/openwrt]  ath79: add support for KuWFi N650 CPE
In-Reply-To: <173298921039.2676985.786136815099160213@git-01.infra.openwrt.org>
References: <173298921039.2676985.786136815099160213@git-01.infra.openwrt.org>
Message-ID: <mailman.8687.1732989213.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/dde510cf979e896a622b7ed738009910a27de94e

commit dde510cf979e896a622b7ed738009910a27de94e
Author: Andreas B?hler <dev at aboehler.at>
AuthorDate: Sun Nov 24 19:49:20 2024 +0100

    ath79: add support for KuWFi N650 CPE
    
    The KuWFi N650 is a 5GHz outdoor wireless bridge based on QCA9563.
    
    Specs
    =====
    
    CPU: QCA9563, 775MHz
    RAM: 128MiB
    Flash: 16MiB
    Wireless: QCA9888 (5GHz only)
    Ethernet: 2x GBit (via QCA8337), 48V passive PoE
    
    Installation
    ============
    
    From OEM firmware
    -----------------
    
    The OEM firmware has telnet enabled by default. If not, it can be enabled
    from the firmware web interface. You need a TFTP server on your computer
    and the OpenWrt factory image should be available as "n650factory.bin".
    It is assumed that your computer has the IP 192.168.1.1 and the N650
    192.168.1.20 (default IP address).
    
    1. Connect via Telnet to the device and log in with the default credentials
       "admin:admin"
    2. Exploit the limited interface by typing "ps & /bin/sh"
    3. Press <ENTER> to start the shell
    4. Enter the following commands:
    
    $ cd /tmp
    $ tftp -r n650factory.bin -g 192.168.1.1
    $ cat << EOF > /tmp/openwrt.sh
    #!/bin/sh
    
    IMAGE_NAME="\$1"
    
    if [ ! -e \${IMAGE_NAME} ]; then
      echo "Image file not found: \${IMAGE_NAME}"
      exit 1
    fi
    
    . /usr/sbin/common.sh
    
    kill_remaining TERM
    sleep 3
    kill_remaining KILL
    
    run_ramfs mtd write \${IMAGE_NAME} firmware
    sleep 2
    reboot -f
    EOF
    
    $ chmod +x /tmp/openwrt.sh
    $ /tmp/openwrt.sh n650factory.bin
    
    Once the device reboots, it should load OpenWrt.
    
    From UART
    ---------
    
    UART installation is possible since the serial header is already soldered
    on. The pinout is GND - Tx - Rx - VCC from top to bottom (RJ45 ports are
    at the bottom). Connect with 115200 8N1.
    
    First, boot OpenWrt from TFTP. Enter the following commands in the U-Boot
    shell, assuming your computer has the IP address 192.168.1.1 and a TFTP
    server running where the initramfs image is provided as n650.bin:
    
      setenv ipaddr 192.168.1.20
      setenv serverip 192.168.1.1
      tftpboot 0x84000000 n650.bin
      bootm
    
    Once booted, transfer -loader.bin and -sysupgrade.bin images to the device
    at /tmp. Enter the following commands, replacing the filenames:
    
      mtd write /tmp/loader.bin loader
      sysupgrade /tmp/sysupgrade.bin
    
    Reboot and OpenWrt should load from flash.
    
    Back to Stock
    -------------
    
    Back to stock is only possible if you saved a partition backup before
    installing OpenWrt. Assuming you have fullbackup.bin covering the whole
    flash, you need to prepare the image as follows:
    
    $ dd if=fullbackup.bin of=fwconcat0.bin bs=65536 skip=4 count=212
    $ dd if=fullbackup.bin of=loader.bin bs=65536 skip=216 count=1
    $ dd if=fullbackup.bin of=fwconcat1.bin bs=65536 skip=217 count=22
    $ cat fwconcat0.bin fwconcat1.bin > firmware.bin
    
    Transfer firmware.bin and loader.bin to the OpenWrt device. First, flash
    loader.bin to mtd device loader, then force sysupgrade:
    
    $ mtd write loader.bin loader
    $ sysupgrade -F firmware.bin
    
    The reason for the two-step process is the way the flash layout is designed
    for OpenWrt in contrast to the OEM firmware partition.
    
    Signed-off-by: Andreas B?hler <dev at aboehler.at>
    Link: https://github.com/openwrt/openwrt/pull/17089
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/ath79/dts/qca9563_kuwfi_n650.dts      | 178 +++++++++++++++++++++
 .../generic/base-files/etc/board.d/02_network      |   4 +
 target/linux/ath79/image/generic.mk                |  19 +++
 3 files changed, 201 insertions(+)

diff --git a/target/linux/ath79/dts/qca9563_kuwfi_n650.dts b/target/linux/ath79/dts/qca9563_kuwfi_n650.dts
new file mode 100644
index 0000000000..03801dabb3
--- /dev/null
+++ b/target/linux/ath79/dts/qca9563_kuwfi_n650.dts
@@ -0,0 +1,178 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qca956x.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/mtd/partitions/uimage.h>
+
+/ {
+	model = "KuWFi N650";
+	compatible = "kuwfi,n650", "qca,qca9563";
+
+	aliases {
+		label-mac-device = &eth0;
+		led-boot = &led_green;
+		led-running = &led_green;
+		led-failsafe = &led_blue;
+		led-upgrade = &led_blue;
+	};
+
+	virtual_flash {
+		compatible = "mtd-concat";
+		devices = <&fwconcat0 &fwconcat1>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				reg = <0x0 0x0>;
+				label = "firmware";
+				compatible = "openwrt,uimage", "denx,uimage";
+				openwrt,ih-magic = <IH_MAGIC_OKLI>;
+			};
+		};
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "Reset button";
+			linux,code = <KEY_RESTART>;
+			gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+			debounce-interval = <60>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led_blue: blue {
+			function = LED_FUNCTION_DEBUG;
+			color = <LED_COLOR_ID_BLUE>;
+			gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+		};
+
+		led_green: green {
+			function = LED_FUNCTION_POWER;
+			color = <LED_COLOR_ID_GREEN>;
+			gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
+
+&spi {
+	status = "okay";
+
+	flash at 0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <25000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "u-boot";
+				reg = <0x000000 0x030000>;
+				read-only;
+			};
+
+			partition at 30000 {
+				label = "u-boot-env";
+				reg = <0x030000 0x010000>;
+			};
+
+			fwconcat0: partition at 40000 {
+				label = "fwconcat0";
+				reg = <0x040000 0xd40000>;
+			};
+
+			partition at d80000 {
+				label = "loader";
+				reg = <0xd80000 0x10000>;
+			};
+
+			fwconcat1: partition at d90000 {
+				label = "fwconcat1";
+				reg = <0xd90000 0x160000>;
+			};
+
+			partition at ef0000 {
+				label = "log";
+				reg = <0xef0000 0x0f0000>;
+				read-only;
+			};
+
+			partition at fe0000 {
+				label = "nvram";
+				reg = <0xfe0000 0x010000>;
+				read-only;
+			};
+
+			partition at ff0000 {
+				label = "art";
+				reg = <0xff0000 0x10000>;
+				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr at 0 {
+						compatible = "mac-base";
+						reg = <0x0 0x6>;
+						#nvmem-cell-cells = <1>;
+					};
+
+					precal_art_5000: pre-calibration at 5000 {
+						reg = <0x5000 0x2f20>;
+					};
+				};
+			};
+		};
+	};
+};
+
+&mdio0 {
+	status = "okay";
+
+	phy0: ethernet-phy at 0 {
+		reg = <0>;
+		phy-mode = "sgmii";
+		reset-gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+		qca,mib-poll-interval = <500>;
+
+		qca,ar8327-initvals = <
+			0x04 0x00080080 /* PORT0 PAD MODE CTRL */
+			0x7c 0x0000007e /* PORT0_STATUS */
+		>;
+	};
+};
+
+&eth0 {
+	status = "okay";
+
+	nvmem-cells = <&macaddr_art_0 0>;
+	nvmem-cell-names = "mac-address";
+	phy-handle = <&phy0>;
+	phy-mode = "sgmii";
+};
+
+&pcie {
+	status = "okay";
+
+	wifi at 0,0 {
+		compatible = "pci168c,0056";
+		reg = <0x0000 0 0 0 0>;
+		nvmem-cells = <&precal_art_5000>, <&macaddr_art_0 1>;
+		nvmem-cell-names = "pre-calibration", "mac-address";
+	};
+};
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network
index 016bd6bb51..e987d754f0 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
@@ -401,6 +401,10 @@ ath79_setup_interfaces()
 		ucidef_add_switch "switch0" \
 			"0 at eth0" "1:lan:2" "4:lan:1"
 		;;
+	kuwfi,n650)
+		ucidef_add_switch "switch0" \
+			"0 at eth0" "2:lan:1" "3:lan:2"
+		;;
 	letv,lba-047-ch)
 		ucidef_set_interface_wan "eth0"
 		ucidef_add_switch "switch0" \
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index 0173f5cb16..92f9bc6cdd 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -1963,6 +1963,25 @@ define Device/kuwfi_c910
 endef
 TARGET_DEVICES += kuwfi_c910
 
+define Device/kuwfi_n650
+  $(Device/loader-okli-uimage)
+  SOC := qca9563
+  DEVICE_VENDOR := KuWFi
+  DEVICE_MODEL := N650
+  DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca9888-ct
+  FACTORY_SIZE := 13632k
+  LOADER_FLASH_OFFS := 0x40000
+  KERNEL := kernel-bin | append-dtb | lzma | uImage lzma -M 0x4f4b4c49
+  IMAGE_SIZE := 15040k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
+    append-rootfs | pad-rootfs | check-size | pad-to 13568k | \
+    append-loader-okli-uimage $(1) | pad-to 64k | check-size $$$$(FACTORY_SIZE)
+  ARTIFACTS := loader.bin
+  ARTIFACT/loader.bin := append-loader-okli-uimage $(1) | pad-to 64k
+endef
+TARGET_DEVICES += kuwfi_n650
+
 define Device/letv_lba-047-ch
   $(Device/loader-okli-uimage)
   SOC := qca9531



From lede-commits at lists.infradead.org  Sat Nov 30 09:55:56 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 30 Nov 2024 12:55:56 -0500
Subject: [openwrt/openwrt]  ath79: remove wmac mac address defaults
In-Reply-To: <173298935605.2685098.9950770618003973805@git-01.infra.openwrt.org>
References: <173298935605.2685098.9950770618003973805@git-01.infra.openwrt.org>
Message-ID: <mailman.8690.1732989359.1089.lede-commits@lists.infradead.org>

hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/86f489c02f8250fc898a269e2e8ae9baa7ac4524

commit 86f489c02f8250fc898a269e2e8ae9baa7ac4524
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Sun Jun 23 12:25:34 2024 -0700

    ath79: remove wmac mac address defaults
    
    1002 and 5006 are default addresses as part of the calibration data.
    Don't bother specifying them explicitly.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/17082
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/ath79/dts/ar9331_alfa-network_ap121f.dtsi   |  8 ++------
 target/linux/ath79/dts/ar9344_alfa-network_n5q.dts       |  8 ++------
 target/linux/ath79/dts/ar9344_embeddedwireless_balin.dts |  4 ++--
 target/linux/ath79/dts/qca9531_alcatel_hh40v.dts         |  8 ++------
 target/linux/ath79/dts/qca9531_alfa-network_r36a.dtsi    |  4 ++--
 target/linux/ath79/dts/qca9563_glinet_gl-x1200.dtsi      | 16 ++++------------
 6 files changed, 14 insertions(+), 34 deletions(-)

diff --git a/target/linux/ath79/dts/ar9331_alfa-network_ap121f.dtsi b/target/linux/ath79/dts/ar9331_alfa-network_ap121f.dtsi
index ca0b4131ac..2d9e17bcf8 100644
--- a/target/linux/ath79/dts/ar9331_alfa-network_ap121f.dtsi
+++ b/target/linux/ath79/dts/ar9331_alfa-network_ap121f.dtsi
@@ -116,10 +116,6 @@
 					macaddr_art_0: macaddr at 0 {
 						reg = <0x0 0x6>;
 					};
-
-					macaddr_art_1002: macaddr at 1002 {
-						reg = <0x1002 0x6>;
-					};
 				};
 			};
 
@@ -143,6 +139,6 @@
 &wmac {
 	status = "okay";
 
-	nvmem-cells = <&cal_art_1000>, <&macaddr_art_1002>;
-	nvmem-cell-names = "calibration", "mac-address";
+	nvmem-cells = <&cal_art_1000>;
+	nvmem-cell-names = "calibration";
 };
diff --git a/target/linux/ath79/dts/ar9344_alfa-network_n5q.dts b/target/linux/ath79/dts/ar9344_alfa-network_n5q.dts
index 9f4c95c3d4..8dfcd2ee3a 100644
--- a/target/linux/ath79/dts/ar9344_alfa-network_n5q.dts
+++ b/target/linux/ath79/dts/ar9344_alfa-network_n5q.dts
@@ -154,10 +154,6 @@
 					macaddr_art_6: macaddr at 6 {
 						reg = <0x6 0x6>;
 					};
-
-					macaddr_art_1002: macaddr at 1002 {
-						reg = <0x1002 0x6>;
-					};
 				};
 			};
 
@@ -173,6 +169,6 @@
 &wmac {
 	status = "okay";
 
-	nvmem-cells = <&cal_art_1000>, <&macaddr_art_1002>;
-	nvmem-cell-names = "calibration", "mac-address";
+	nvmem-cells = <&cal_art_1000>;
+	nvmem-cell-names = "calibration";
 };
diff --git a/target/linux/ath79/dts/ar9344_embeddedwireless_balin.dts b/target/linux/ath79/dts/ar9344_embeddedwireless_balin.dts
index a5d684cf99..e2bfd54842 100644
--- a/target/linux/ath79/dts/ar9344_embeddedwireless_balin.dts
+++ b/target/linux/ath79/dts/ar9344_embeddedwireless_balin.dts
@@ -122,8 +122,8 @@
 &wmac {
 	status = "okay";
 
-	nvmem-cells = <&macaddr_art_1002 0>, <&calibration_art_1000>;
-	nvmem-cell-names = "mac-address", "calibration";
+	nvmem-cells = <&calibration_art_1000>;
+	nvmem-cell-names = "calibration";
 };
 
 &pcie {
diff --git a/target/linux/ath79/dts/qca9531_alcatel_hh40v.dts b/target/linux/ath79/dts/qca9531_alcatel_hh40v.dts
index c68b49d6c2..16ba785a23 100644
--- a/target/linux/ath79/dts/qca9531_alcatel_hh40v.dts
+++ b/target/linux/ath79/dts/qca9531_alcatel_hh40v.dts
@@ -140,10 +140,6 @@
 					macaddr_art_6: macaddr at 6 {
 						reg = <0x6 0x6>;
 					};
-
-					macaddr_art_1002: macaddr at 1002 {
-						reg = <0x1002 0x6>;
-					};
 				};
 			};
 		};
@@ -174,6 +170,6 @@
 &wmac {
 	status = "okay";
 
-	nvmem-cells = <&cal_art_1000>, <&macaddr_art_1002>;
-	nvmem-cell-names = "calibration", "mac-address";
+	nvmem-cells = <&cal_art_1000>;
+	nvmem-cell-names = "calibration";
 };
diff --git a/target/linux/ath79/dts/qca9531_alfa-network_r36a.dtsi b/target/linux/ath79/dts/qca9531_alfa-network_r36a.dtsi
index 13a2e28619..48f2eff86a 100644
--- a/target/linux/ath79/dts/qca9531_alfa-network_r36a.dtsi
+++ b/target/linux/ath79/dts/qca9531_alfa-network_r36a.dtsi
@@ -124,6 +124,6 @@
 &wmac {
 	status = "okay";
 
-	nvmem-cells = <&cal_art_1000>, <&macaddr_art_1002 0>;
-	nvmem-cell-names = "calibration", "mac-address";
+	nvmem-cells = <&cal_art_1000>;
+	nvmem-cell-names = "calibration";
 };
diff --git a/target/linux/ath79/dts/qca9563_glinet_gl-x1200.dtsi b/target/linux/ath79/dts/qca9563_glinet_gl-x1200.dtsi
index ab1f8902b1..5f1ef04f0b 100644
--- a/target/linux/ath79/dts/qca9563_glinet_gl-x1200.dtsi
+++ b/target/linux/ath79/dts/qca9563_glinet_gl-x1200.dtsi
@@ -111,14 +111,6 @@
 					macaddr_art_0: macaddr at 0 {
 						reg = <0x0 0x6>;
 					};
-
-					macaddr_art_1002: macaddr at 1002 {
-						reg = <0x1002 0x6>;
-					};
-
-					macaddr_art_5006: macaddr at 5006 {
-						reg = <0x5006 0x6>;
-					};
 				};
 			};
 
@@ -182,8 +174,8 @@
 		compatible = "qcom,ath10k";
 		reg = <0 0 0 0 0>;
 
-		nvmem-cells = <&macaddr_art_5006>, <&calibration_ath10k>;
-		nvmem-cell-names = "mac-address", "pre-calibration";
+		nvmem-cells = <&calibration_ath10k>;
+		nvmem-cell-names = "pre-calibration";
 	};
 };
 
@@ -206,6 +198,6 @@
 &wmac {
 	status = "okay";
 
-	nvmem-cells = <&macaddr_art_1002>, <&calibration_ath9k>;
-	nvmem-cell-names = "mac-address", "calibration";
+	nvmem-cells = <&calibration_ath9k>;
+	nvmem-cell-names = "calibration";
 };



From lede-commits at lists.infradead.org  Sat Nov 30 10:23:32 2024
From: lede-commits at lists.infradead.org (LEDE Commits)
Date: Sat, 30 Nov 2024 13:23:32 -0500
Subject: [openwrt/openwrt]  netifd: check if /sbin/wifi exists before calling
 it
In-Reply-To: <173299101261.2767219.6018521485206476153@git-01.infra.openwrt.org>
References: <173299101261.2767219.6018521485206476153@git-01.infra.openwrt.org>
Message-ID: <mailman.8691.1732991020.1089.lede-commits@lists.infradead.org>

robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/207bfee855320dc938f39e179b1d2e3b008140cb

commit 207bfee855320dc938f39e179b1d2e3b008140cb
Author: Andris PE <neandris at gmail.com>
AuthorDate: Tue Mar 26 21:53:06 2024 +0200

    netifd: check if /sbin/wifi exists before calling it
    
    Avoid harmless error from network script by checking presence of
    now-optional wifi support script, most notably confusing users of x86
    snapshots.
    
    Fixes: #14964
    Signed-off-by: Andris PE <neandris at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/14986
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/network/config/netifd/Makefile                 | 2 +-
 package/network/config/netifd/files/etc/init.d/network | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile
index 82a04adecd..95f1f6f7d1 100644
--- a/package/network/config/netifd/Makefile
+++ b/package/network/config/netifd/Makefile
@@ -1,7 +1,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=netifd
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
diff --git a/package/network/config/netifd/files/etc/init.d/network b/package/network/config/netifd/files/etc/init.d/network
index dc208c4ce0..86340b77e5 100755
--- a/package/network/config/netifd/files/etc/init.d/network
+++ b/package/network/config/netifd/files/etc/init.d/network
@@ -30,12 +30,12 @@ reload_service() {
 
 	init_switch
 	ubus call network reload || rv=1
-	/sbin/wifi reload_legacy
+	[ -x /sbin/wifi ] && /sbin/wifi reload_legacy
 	return $rv
 }
 
 stop_service() {
-	/sbin/wifi down
+	[ -x /sbin/wifi ] && /sbin/wifi down
 	ifdown -a
 	sleep 1
 }



