From 5a154a16b622063bae648a235e0f5bdceb09656c Mon Sep 17 00:00:00 2001
From: Langhua Ye <y1248289414@outlook.com>
Date: Thu, 3 Mar 2022 11:27:58 +0800
Subject: [PATCH 1/8] kernel: add support for XMC XM25QH128C

The XMC XM25QH128C is a 16MB SPI NOR chip.
The patch is verified on Ruijie RG-EW3200GX PRO.
Datasheet available at https://www.xmcwh.com/uploads/435/XM25QH128C.pdf

Signed-off-by: Langhua Ye <y1248289414@outlook.com>
---
 .../485-mtd-spi-nor-add-xmc-xm25qh128c.patch  | 22 +++++++++++++++++++
 .../499-mtd-spi-nor-add-xmc-xm25qh128c.patch  | 21 ++++++++++++++++++
 2 files changed, 43 insertions(+)
 create mode 100644 target/linux/generic/pending-5.10/485-mtd-spi-nor-add-xmc-xm25qh128c.patch
 create mode 100644 target/linux/generic/pending-5.4/499-mtd-spi-nor-add-xmc-xm25qh128c.patch

diff --git a/target/linux/generic/pending-5.10/485-mtd-spi-nor-add-xmc-xm25qh128c.patch b/target/linux/generic/pending-5.10/485-mtd-spi-nor-add-xmc-xm25qh128c.patch
new file mode 100644
index 00000000000000..ba654ce4ca84a3
--- /dev/null
+++ b/target/linux/generic/pending-5.10/485-mtd-spi-nor-add-xmc-xm25qh128c.patch
@@ -0,0 +1,22 @@
+From: Langhua Ye <y1248289414@outlook.com>
+Subject: mtd/spi-nor/xmc: add support for XMC XM25QH128C
+
+The XMC XM25QH128C is a 16MB SPI NOR chip. The patch is verified on Ruijie RG-EW3200GX PRO.
+Datasheet available at https://www.xmcwh.com/uploads/435/XM25QH128C.pdf
+
+Submitted-by: Langhua Ye <y1248289414@outlook.com>
+---
+ drivers/mtd/spi-nor/xmc.c                             | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/mtd/spi-nor/xmc.c
++++ b/drivers/mtd/spi-nor/xmc.c
+@@ -14,6 +14,8 @@ static const struct flash_info xmc_parts
+ 			    SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
+ 	{ "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256,
+ 			     SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
++	{ "XM25QH128C", INFO(0x204018, 0, 64 * 1024, 256,
++			     SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
+ };
+ 
+ const struct spi_nor_manufacturer spi_nor_xmc = {
diff --git a/target/linux/generic/pending-5.4/499-mtd-spi-nor-add-xmc-xm25qh128c.patch b/target/linux/generic/pending-5.4/499-mtd-spi-nor-add-xmc-xm25qh128c.patch
new file mode 100644
index 00000000000000..90c7287325d2d6
--- /dev/null
+++ b/target/linux/generic/pending-5.4/499-mtd-spi-nor-add-xmc-xm25qh128c.patch
@@ -0,0 +1,21 @@
+From: Langhua Ye <y1248289414@outlook.com>
+Subject: mtd/spi-nor/xmc: add support for XMC XM25QH128C
+
+The XMC XM25QH128C is a 16MB SPI NOR chip. The patch is verified on Ruijie RG-EW3200GX PRO.
+Datasheet available at https://www.xmcwh.com/uploads/435/XM25QH128C.pdf
+
+Submitted-by: Langhua Ye <y1248289414@outlook.com>
+---
+ drivers/mtd/spi-nor/spi-nor.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/mtd/spi-nor/spi-nor.c
++++ b/drivers/mtd/spi-nor/spi-nor.c
+@@ -2565,6 +2565,7 @@
+ 	/* XMC (Wuhan Xinxin Semiconductor Manufacturing Corp.) */
+ 	{ "XM25QH64A", INFO(0x207017, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
+ 	{ "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
++	{ "XM25QH128C", INFO(0x204018, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
+ 
+ 	/* XTX Technology (Shenzhen) Limited */
+ 	{ "xt25f128b", INFO(0x0B4018, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },

From 6cad41f7803a10340969a1bde5678577fd2b9ac4 Mon Sep 17 00:00:00 2001
From: Andrew Powers-Holmes <aholmes@omnom.net>
Date: Tue, 1 Nov 2022 17:06:32 +1100
Subject: [PATCH 2/8] mt76: add firmware package for mt7916

Add kernel package 'mt7916-firmware' with firmware files for MT7916E devices.

These share the same driver as the MT7915 chipset, but use their own firmware.

Tested using a pair of AsiaRF AW7916-NPD cards.

Signed-off-by: Andrew Powers-Holmes <aholmes@omnom.net>
---
 package/kernel/mt76/Makefile | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/package/kernel/mt76/Makefile b/package/kernel/mt76/Makefile
index 49fb23aedca6c7..707f64095eb99f 100644
--- a/package/kernel/mt76/Makefile
+++ b/package/kernel/mt76/Makefile
@@ -226,6 +226,12 @@ define KernelPackage/mt7915e
   AUTOLOAD:=$(call AutoProbe,mt7915e)
 endef
 
+define KernelPackage/mt7916-firmware
+  $(KernelPackage/mt76-default)
+  DEPENDS+=+kmod-mt7915e
+  TITLE:=MediaTek MT7916 firmware
+endef
+
 define KernelPackage/mt7986-firmware
   $(KernelPackage/mt76-default)
   DEPENDS:=@TARGET_mediatek_filogic
@@ -457,10 +463,15 @@ define KernelPackage/mt7915e/install
 		$(PKG_BUILD_DIR)/firmware/mt7915_wa.bin \
 		$(PKG_BUILD_DIR)/firmware/mt7915_wm.bin \
 		$(PKG_BUILD_DIR)/firmware/mt7915_rom_patch.bin \
+		$(1)/lib/firmware/mediatek
+endef
+
+define KernelPackage/mt7916-firmware/install
+	$(INSTALL_DIR) $(1)/lib/firmware/mediatek
+	cp \
 		$(PKG_BUILD_DIR)/firmware/mt7916_wa.bin \
 		$(PKG_BUILD_DIR)/firmware/mt7916_wm.bin \
 		$(PKG_BUILD_DIR)/firmware/mt7916_rom_patch.bin \
-		$(PKG_BUILD_DIR)/firmware/mt7916_eeprom.bin \
 		$(1)/lib/firmware/mediatek
 endef
 
@@ -514,6 +525,7 @@ $(eval $(call KernelPackage,mt7663-usb-sdio))
 $(eval $(call KernelPackage,mt7663u))
 $(eval $(call KernelPackage,mt7663s))
 $(eval $(call KernelPackage,mt7915e))
+$(eval $(call KernelPackage,mt7916-firmware))
 $(eval $(call KernelPackage,mt7986-firmware))
 $(eval $(call KernelPackage,mt7921-common))
 $(eval $(call KernelPackage,mt7921u))

From 2a88c41d9d4b89bedf7dbdb876423ff962a2994d Mon Sep 17 00:00:00 2001
From: AmadeusGhost <42570690+AmadeusGhost@users.noreply.github.com>
Date: Tue, 8 Nov 2022 23:40:01 +0800
Subject: [PATCH 3/8] r8125: upate to version 9.010.01-1

---
 package/lean/r8125/Makefile                                   | 4 ++--
 .../r8125/patches/030-add-LED-configuration-from-OF.patch     | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/package/lean/r8125/Makefile b/package/lean/r8125/Makefile
index f74b38e7c87dff..19770596eaac1c 100644
--- a/package/lean/r8125/Makefile
+++ b/package/lean/r8125/Makefile
@@ -7,12 +7,12 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=r8125
-PKG_VERSION:=9.009.02-1
+PKG_VERSION:=9.010.01-1
 PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/awesometic/realtek-r8125-dkms/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=e3f0a0a02a4ba847cb962ea7e12c89e3f4ab732944f04ebeb76d4d9711fa8ca6
+PKG_HASH:=81fb9a100e6cefb421557639b476fd03af61a99c55bc8fb03c6e396532bd0944
 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/realtek-$(PKG_NAME)-dkms-$(PKG_VERSION)
 
 PKG_LICENSE:=GPL-2.0-only
diff --git a/package/lean/r8125/patches/030-add-LED-configuration-from-OF.patch b/package/lean/r8125/patches/030-add-LED-configuration-from-OF.patch
index 5f6f1d29b68c88..85dea0d3f53dbd 100644
--- a/package/lean/r8125/patches/030-add-LED-configuration-from-OF.patch
+++ b/package/lean/r8125/patches/030-add-LED-configuration-from-OF.patch
@@ -8,7 +8,7 @@
  #include <linux/if_vlan.h>
  #include <linux/crc32.h>
  #include <linux/interrupt.h>
-@@ -10407,6 +10408,23 @@ rtl8125_setup_mqs_reg(struct rtl8125_private *tp)
+@@ -10425,6 +10426,23 @@ rtl8125_setup_mqs_reg(struct rtl8125_private *tp)
          }
  }
  
@@ -32,7 +32,7 @@
  static void
  rtl8125_init_software_variable(struct net_device *dev)
  {
-@@ -10838,6 +10856,8 @@ rtl8125_init_software_variable(struct net_device *dev)
+@@ -10856,6 +10874,8 @@ rtl8125_init_software_variable(struct net_device *dev)
          if (tp->InitRxDescType == RX_DESC_RING_TYPE_3)
                  tp->rtl8125_rx_config |= EnableRxDescV3;
  

From b8bdcd7170e053f3ae3ca9ba3f4c74dac786e7a5 Mon Sep 17 00:00:00 2001
From: lovehackintosh <92633080+lovehackintosh@users.noreply.github.com>
Date: Fri, 11 Nov 2022 12:05:26 +0800
Subject: [PATCH 4/8] kernel: bump 5.10 to 5.10.154 (#10404)

All patches automatically rebased.

Signed-off-by: Liu Linhui <liulinhui36@gmail.com>
---
 include/kernel-5.10                           |   4 +-
 .../802-usb-xhci-force-msi-renesas-xhci.patch |   2 +-
 ...es-update-table-flags-from-the-commi.patch |   2 +-
 ...ng-with-source-address-failed-policy.patch |   2 +-
 .../485-mtd-spi-nor-add-xmc-xm25qh128c.patch  |  11 ++
 .../patches-5.10/410-bt-mtk-serial-fix.patch  |   2 +-
 .../linux/ramips/dts/mt7621_jdcloud_luban.dts | 149 ++++++++++++++++++
 target/linux/ramips/image/mt7621.mk           |  10 ++
 .../mt7621/base-files/etc/board.d/02_network  |   4 +
 9 files changed, 180 insertions(+), 6 deletions(-)
 create mode 100644 target/linux/generic/pending-5.4/485-mtd-spi-nor-add-xmc-xm25qh128c.patch
 create mode 100644 target/linux/ramips/dts/mt7621_jdcloud_luban.dts

diff --git a/include/kernel-5.10 b/include/kernel-5.10
index 9b74446f8e6bb3..642045110967db 100644
--- a/include/kernel-5.10
+++ b/include/kernel-5.10
@@ -1,2 +1,2 @@
-LINUX_VERSION-5.10 = .153
-LINUX_KERNEL_HASH-5.10.153 = 3cf2e4519fe451caef0ee0a8beac694612267325f7055fc38d6a990a762f1662
+LINUX_VERSION-5.10 = .154
+LINUX_KERNEL_HASH-5.10.154 = c6ae3d4da4324933160260d0f092a40cd27f9ed03449380790afbe6ce91ee688
diff --git a/target/linux/apm821xx/patches-5.10/802-usb-xhci-force-msi-renesas-xhci.patch b/target/linux/apm821xx/patches-5.10/802-usb-xhci-force-msi-renesas-xhci.patch
index ced9b6a1582efb..4ca2946481ff7e 100644
--- a/target/linux/apm821xx/patches-5.10/802-usb-xhci-force-msi-renesas-xhci.patch
+++ b/target/linux/apm821xx/patches-5.10/802-usb-xhci-force-msi-renesas-xhci.patch
@@ -13,7 +13,7 @@ produce a noisy warning.
 
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -291,6 +291,7 @@ static void xhci_pci_quirks(struct devic
+@@ -274,6 +274,7 @@ static void xhci_pci_quirks(struct devic
  	    pdev->device == 0x0015) {
  		xhci->quirks |= XHCI_RESET_ON_RESUME;
  		xhci->quirks |= XHCI_ZERO_64B_REGS;
diff --git a/target/linux/generic/backport-5.10/610-v5.13-10-netfilter-nftables-update-table-flags-from-the-commi.patch b/target/linux/generic/backport-5.10/610-v5.13-10-netfilter-nftables-update-table-flags-from-the-commi.patch
index 352c6094da2f9d..964a94a58aea2d 100644
--- a/target/linux/generic/backport-5.10/610-v5.13-10-netfilter-nftables-update-table-flags-from-the-commi.patch
+++ b/target/linux/generic/backport-5.10/610-v5.13-10-netfilter-nftables-update-table-flags-from-the-commi.patch
@@ -70,7 +70,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  	nft_trans_table_update(trans) = true;
  	list_add_tail(&trans->list, &ctx->net->nft.commit_list);
  	return 0;
-@@ -7921,11 +7925,10 @@ static int nf_tables_commit(struct net *
+@@ -7918,11 +7922,10 @@ static int nf_tables_commit(struct net *
  		switch (trans->msg_type) {
  		case NFT_MSG_NEWTABLE:
  			if (nft_trans_table_update(trans)) {
diff --git a/target/linux/generic/pending-5.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-5.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
index b56e780ea6dbc9..b0efced825d891 100644
--- a/target/linux/generic/pending-5.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
+++ b/target/linux/generic/pending-5.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
@@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  	kfree(net->ipv6.ip6_blk_hole_entry);
  #endif
  	dst_entries_destroy(&net->ipv6.ip6_dst_ops);
-@@ -6474,6 +6523,9 @@ void __init ip6_route_init_special_entri
+@@ -6480,6 +6529,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.4/485-mtd-spi-nor-add-xmc-xm25qh128c.patch b/target/linux/generic/pending-5.4/485-mtd-spi-nor-add-xmc-xm25qh128c.patch
new file mode 100644
index 00000000000000..11571cc1a652b0
--- /dev/null
+++ b/target/linux/generic/pending-5.4/485-mtd-spi-nor-add-xmc-xm25qh128c.patch
@@ -0,0 +1,11 @@
+--- a/drivers/mtd/spi-nor/spi-nor.c
++++ b/drivers/mtd/spi-nor/spi-nor.c
+@@ -2566,6 +2566,7 @@ static const struct flash_info spi_nor_ids[] = {
+ 	/* XMC (Wuhan Xinxin Semiconductor Manufacturing Corp.) */
+ 	{ "XM25QH64A", INFO(0x207017, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
+ 	{ "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
++	{ "XM25QH128C", INFO(0x204018, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
+ 
+ 	/* XTX Technology (Shenzhen) Limited */
+ 	{ "xt25f128b", INFO(0x0B4018, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
+
diff --git a/target/linux/mediatek/patches-5.10/410-bt-mtk-serial-fix.patch b/target/linux/mediatek/patches-5.10/410-bt-mtk-serial-fix.patch
index 6279a8d9070a07..11f4d6ca8b6c9e 100644
--- a/target/linux/mediatek/patches-5.10/410-bt-mtk-serial-fix.patch
+++ b/target/linux/mediatek/patches-5.10/410-bt-mtk-serial-fix.patch
@@ -19,7 +19,7 @@
  	},
  	[PORT_NPCM] = {
  		.name		= "Nuvoton 16550",
-@@ -2723,6 +2723,11 @@ serial8250_do_set_termios(struct uart_po
+@@ -2724,6 +2724,11 @@ serial8250_do_set_termios(struct uart_po
  	unsigned long flags;
  	unsigned int baud, quot, frac = 0;
  
diff --git a/target/linux/ramips/dts/mt7621_jdcloud_luban.dts b/target/linux/ramips/dts/mt7621_jdcloud_luban.dts
new file mode 100644
index 00000000000000..ed1ebed9c6538d
--- /dev/null
+++ b/target/linux/ramips/dts/mt7621_jdcloud_luban.dts
@@ -0,0 +1,149 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7621.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	compatible = "jdcloud,luban", "mediatek,mt7621-soc";
+	model = "JDCloud luban";
+
+	aliases {
+		led-boot = &led_r1;
+		led-failsafe = &led_r1;
+		led-running = &led_g1;
+		led-upgrade = &led_b1;
+		label-mac-device = &gmac0;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8";
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led_r1: led_r1 {
+			label = "led_r1";
+			gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+			default-state = "on";
+		};
+
+		led_b1: led_b1 {
+			label = "led_b1";
+			gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+		};
+
+		led_g1: led_g1 {
+			label = "led_g1";
+			gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RESTART>;
+		};
+
+		wps {
+			label = "wps";
+			gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_WPS_BUTTON>;
+		};
+	};
+};
+
+&spi0 {
+	status = "okay";
+
+	flash@0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <10000000>;
+		broken-flash-reset;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition@0 {
+				label = "u-boot";
+				reg = <0x0 0x40000>;
+				read-only;
+			};
+			
+			partition@40000 {
+				label = "u-boot-env";
+				reg = <0x40000 0x10000>;
+				read-only;
+			};
+			
+			factory: partition@50000 {
+				label = "factory";
+				reg = <0x50000 0x40000>;
+				read-only;
+			};
+			
+			partition@90000 {
+				compatible = "denx,uimage";
+				label = "firmware";
+				reg = <0x90000 0xf70000>;
+			};
+		};
+	};
+};
+
+&state_default {
+	gpio {
+		groups = "i2c", "uart2", "uart3";
+		function = "gpio";
+	};
+};
+
+&sdhci {
+	status = "okay";
+};
+
+&gmac0 {
+	status = "okay";
+	mtd-mac-address = <&factory 0x3fff4>;
+};
+
+&gmac1 {
+	status = "okay";
+	mtd-mac-address = <&factory 0x3fffa>;
+};
+
+&switch0 {
+	status = "disabled";
+};
+
+&hnat {
+	mtketh-wan = "eth1";
+	mtketh-ppd = "eth0";
+	mtketh-lan = "eth0";
+	mtketh-max-gmac = <2>;
+};
+
+&gsw {
+	status = "okay";
+	mediatek,portmap = "llllw";
+};
+
+&pcie {
+	status = "okay";
+};
+
+&pcie1 {
+	wifi@0,0 {
+		compatible = "mediatek,mt76";
+		reg = <0x0000 0 0 0 0>;
+		mediatek,mtd-eeprom = <&factory 0x0>;
+	};
+};
diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index eb723b79d4e7b3..01ebfa72df4afa 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -1816,6 +1816,16 @@ define Device/xiaoyu_xy-c5
 endef
 TARGET_DEVICES += xiaoyu_xy-c5
 
+define Device/jdcloud_luban
+  $(Device/dsa-migration)
+  $(Device/uimage-lzma-loader)
+  IMAGE_SIZE := 15808k
+  DEVICE_VENDOR := jdcloud
+  DEVICE_MODEL := Luban
+  DEVICE_PACKAGES += kmod-mt7915e wpad-openssl uboot-envtools
+endef
+TARGET_DEVICES += jdcloud_luban
+
 define Device/xzwifi_creativebox-v1
   $(Device/dsa-migration)
   IMAGE_SIZE := 32448k
diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
index dab53124c6efdd..04101fd5ae07cb 100644
--- a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
@@ -109,6 +109,10 @@ ramips_setup_interfaces()
 		ucidef_set_interface_lan "lan1 lan2 lan3 lan4"
 		ucidef_set_interface "qtn" ifname "eth1" protocol "static" ipaddr "1.1.1.1" netmask "255.255.255.0"
 		;;
+	jdcloud,luban)
+		ucidef_add_switch "switch0" \
+			"0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6u@eth0" "5u@eth1"
+		;;
 	*)
 		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
 		;;

From 23e2006907e6ecdd26fc4857ec2a688e838bd55c Mon Sep 17 00:00:00 2001
From: lovehackintosh <92633080+lovehackintosh@users.noreply.github.com>
Date: Fri, 11 Nov 2022 12:06:12 +0800
Subject: [PATCH 5/8] kernel: bump 5.15 to 5.15.78 (#10403)

All patches automatically rebased.

Signed-off-by: Liu Linhui <liulinhui36@gmail.com>
---
 include/kernel-5.15                                           | 4 ++--
 ...hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch | 2 +-
 ...-0419-media-v4l2-subdev-add-subdev-wide-state-struct.patch | 2 +-
 ...t-net-dsa-introduce-tagger-owned-storage-for-private.patch | 4 ++--
 ...ake-tagging-protocols-connect-to-individual-switches.patch | 4 ++--
 ...v6-allow-rejecting-with-source-address-failed-policy.patch | 2 +-
 ...211-rockchip-rk3399-add-support-for-Rongpin-King3399.patch | 2 +-
 7 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/include/kernel-5.15 b/include/kernel-5.15
index d5dcb11347423f..d3a43826a6268b 100644
--- a/include/kernel-5.15
+++ b/include/kernel-5.15
@@ -1,2 +1,2 @@
-LINUX_VERSION-5.15 = .77
-LINUX_KERNEL_HASH-5.15.77 = 142f841f33796a84c62fae2f2b96d2120bd8bbf9e0aac4ce157692cdb0afe9f9
+LINUX_VERSION-5.15 = .78
+LINUX_KERNEL_HASH-5.15.78 = 0db99f7347a38c27b8c155f3c9c8b260011aea0a4ded85ee95e6095b1e69a499
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 1d43bf59e04483..99edfa714bbd54 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@raspberrypi.org>
  #define USB_VENDOR_ID_BELKIN		0x050d
  #define USB_DEVICE_ID_FLIP_KVM		0x3201
  
-@@ -1308,6 +1311,9 @@
+@@ -1310,6 +1313,9 @@
  #define USB_VENDOR_ID_XAT	0x2505
  #define USB_DEVICE_ID_XAT_CSR	0x0220
  
diff --git a/target/linux/bcm27xx/patches-5.15/950-0419-media-v4l2-subdev-add-subdev-wide-state-struct.patch b/target/linux/bcm27xx/patches-5.15/950-0419-media-v4l2-subdev-add-subdev-wide-state-struct.patch
index 0dc53424b57e6f..30abd463ec3f0c 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0419-media-v4l2-subdev-add-subdev-wide-state-struct.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0419-media-v4l2-subdev-add-subdev-wide-state-struct.patch
@@ -442,7 +442,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  	if (which == V4L2_SUBDEV_FORMAT_TRY)
  		return v4l2_subdev_get_try_crop(&rsz->sd, sd_state, pad);
  	else
-@@ -791,6 +803,12 @@ static int rkisp1_rsz_register(struct rk
+@@ -795,6 +807,12 @@ static int rkisp1_rsz_register(struct rk
  	struct v4l2_subdev_state state = {
  		.pads = rsz->pad_cfg
  		};
diff --git a/target/linux/generic/backport-5.15/700-net-next-net-dsa-introduce-tagger-owned-storage-for-private.patch b/target/linux/generic/backport-5.15/700-net-next-net-dsa-introduce-tagger-owned-storage-for-private.patch
index fe47c175a4a55d..f2b651f0c6134d 100644
--- a/target/linux/generic/backport-5.15/700-net-next-net-dsa-introduce-tagger-owned-storage-for-private.patch
+++ b/target/linux/generic/backport-5.15/700-net-next-net-dsa-introduce-tagger-owned-storage-for-private.patch
@@ -217,14 +217,14 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  	rtnl_unlock();
  
 @@ -1257,6 +1315,7 @@ static int dsa_port_parse_cpu(struct dsa
+ 	struct dsa_switch *ds = dp->ds;
  	struct dsa_switch_tree *dst = ds->dst;
- 	const struct dsa_device_ops *tag_ops;
  	enum dsa_tag_protocol default_proto;
 +	int err;
  
  	/* Find out which protocol the switch would prefer. */
  	default_proto = dsa_get_tag_protocol(dp, master);
-@@ -1304,6 +1363,12 @@ static int dsa_port_parse_cpu(struct dsa
+@@ -1311,6 +1370,12 @@ static int dsa_port_parse_cpu(struct dsa
  		 */
  		dsa_tag_driver_put(tag_ops);
  	} else {
diff --git a/target/linux/generic/backport-5.15/701-net-dsa-make-tagging-protocols-connect-to-individual-switches.patch b/target/linux/generic/backport-5.15/701-net-dsa-make-tagging-protocols-connect-to-individual-switches.patch
index f682260699dc0d..0c50ae6fb9de9e 100644
--- a/target/linux/generic/backport-5.15/701-net-dsa-make-tagging-protocols-connect-to-individual-switches.patch
+++ b/target/linux/generic/backport-5.15/701-net-dsa-make-tagging-protocols-connect-to-individual-switches.patch
@@ -168,14 +168,14 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
  	return err;
 @@ -1315,7 +1314,6 @@ static int dsa_port_parse_cpu(struct dsa
+ 	struct dsa_switch *ds = dp->ds;
  	struct dsa_switch_tree *dst = ds->dst;
- 	const struct dsa_device_ops *tag_ops;
  	enum dsa_tag_protocol default_proto;
 -	int err;
  
  	/* Find out which protocol the switch would prefer. */
  	default_proto = dsa_get_tag_protocol(dp, master);
-@@ -1363,12 +1361,6 @@ static int dsa_port_parse_cpu(struct dsa
+@@ -1370,12 +1368,6 @@ static int dsa_port_parse_cpu(struct dsa
  		 */
  		dsa_tag_driver_put(tag_ops);
  	} else {
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 ac4396209efb4b..c58e6b545bf402 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
@@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  	kfree(net->ipv6.ip6_blk_hole_entry);
  #endif
  	dst_entries_destroy(&net->ipv6.ip6_dst_ops);
-@@ -6639,6 +6688,9 @@ void __init ip6_route_init_special_entri
+@@ -6645,6 +6694,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/rockchip/patches-5.15/211-rockchip-rk3399-add-support-for-Rongpin-King3399.patch b/target/linux/rockchip/patches-5.15/211-rockchip-rk3399-add-support-for-Rongpin-King3399.patch
index f84f48219b6f29..eff742904c76b2 100644
--- a/target/linux/rockchip/patches-5.15/211-rockchip-rk3399-add-support-for-Rongpin-King3399.patch
+++ b/target/linux/rockchip/patches-5.15/211-rockchip-rk3399-add-support-for-Rongpin-King3399.patch
@@ -6,5 +6,5 @@
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399pro-rock-pi-n10.dtb
 +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-king3399.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb1-v10.dtb
+ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-rock-pi-e25.dtb
  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-mrkaio-m68s.dtb
- dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-nanopi-r5s.dtb

From 46e6f98ffeb68c8d487413622d72093f7b76f33c Mon Sep 17 00:00:00 2001
From: lovehackintosh <92633080+lovehackintosh@users.noreply.github.com>
Date: Fri, 11 Nov 2022 12:06:36 +0800
Subject: [PATCH 6/8] kernel: bump 6.0 to 6.0.8 (#10401)

All patches automatically rebased.

Signed-off-by: Liu Linhui <liulinhui36@gmail.com>
---
 include/kernel-6.0                                            | 4 ++--
 ...v6-allow-rejecting-with-source-address-failed-policy.patch | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/kernel-6.0 b/include/kernel-6.0
index 06e779d2e8cb39..071658852e36af 100644
--- a/include/kernel-6.0
+++ b/include/kernel-6.0
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.0 = .7
-LINUX_KERNEL_HASH-6.0.7 = 67dacc2b78605a56e997f4c08d009be87c98ec66f1870220226c8b3cc676590f
+LINUX_VERSION-6.0 = .8
+LINUX_KERNEL_HASH-6.0.8 = 0de4f83996951c6faf9b2225db4f645882c47b1a09198190f97bd46e5f5fa257
diff --git a/target/linux/generic/pending-6.0/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-6.0/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
index b9e64b46be5ad6..f9d00e3bb6fa23 100644
--- a/target/linux/generic/pending-6.0/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
+++ b/target/linux/generic/pending-6.0/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
@@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  	kfree(net->ipv6.ip6_blk_hole_entry);
  #endif
  	dst_entries_destroy(&net->ipv6.ip6_dst_ops);
-@@ -6624,6 +6673,9 @@ void __init ip6_route_init_special_entri
+@@ -6630,6 +6679,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);

From b48712a2262114f37f7fa6a3c2e4a558d428fba1 Mon Sep 17 00:00:00 2001
From: lovehackintosh <92633080+lovehackintosh@users.noreply.github.com>
Date: Fri, 11 Nov 2022 16:00:59 +0800
Subject: [PATCH 7/8] kernel: bump 5.4 to 5.14.224 (#10406)

All patches automatically rebased.

Signed-off-by: Liu Linhui <liulinhui36@gmail.com>
---
 include/kernel-5.4                                          | 4 ++--
 ...si-core-Add-sysfs-attributes-for-VPD-pages-0h-and-.patch | 6 +++---
 .../400-unlock_mx25l6406e_with_4bit_block_protect.patch     | 2 +-
 .../pending-5.4/485-mtd-spi-nor-add-xmc-xm25qh128c.patch    | 3 +--
 ...-allow-rejecting-with-source-address-failed-policy.patch | 2 +-
 .../ipq806x/patches-5.4/999-03b-qca-nss-ecm-support.patch   | 2 +-
 .../401-mtd-nor-support-mtd-name-from-device-tree.patch     | 4 ++--
 7 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/include/kernel-5.4 b/include/kernel-5.4
index 379fa904b7d330..6c38d179313891 100644
--- a/include/kernel-5.4
+++ b/include/kernel-5.4
@@ -1,2 +1,2 @@
-LINUX_VERSION-5.4 = .223
-LINUX_KERNEL_HASH-5.4.223 = 9ef07f12df6887f196e2e21c197f26854859e6b586aa4bfdd4798f562a717eeb
+LINUX_VERSION-5.4 = .224
+LINUX_KERNEL_HASH-5.4.224 = 8b7df25b5560620eb2776d7b7c67569764b3916ff2f596767f72567b38d13d36
diff --git a/target/linux/generic/backport-5.4/800-v5.5-scsi-core-Add-sysfs-attributes-for-VPD-pages-0h-and-.patch b/target/linux/generic/backport-5.4/800-v5.5-scsi-core-Add-sysfs-attributes-for-VPD-pages-0h-and-.patch
index 2133280e882b46..d963222639c6b6 100644
--- a/target/linux/generic/backport-5.4/800-v5.5-scsi-core-Add-sysfs-attributes-for-VPD-pages-0h-and-.patch
+++ b/target/linux/generic/backport-5.4/800-v5.5-scsi-core-Add-sysfs-attributes-for-VPD-pages-0h-and-.patch
@@ -68,7 +68,7 @@ Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
  	kfree(sdev->inquiry);
  	kfree(sdev);
  
-@@ -891,6 +900,8 @@ static struct bin_attribute dev_attr_vpd
+@@ -899,6 +908,8 @@ static struct bin_attribute dev_attr_vpd
  
  sdev_vpd_pg_attr(pg83);
  sdev_vpd_pg_attr(pg80);
@@ -77,7 +77,7 @@ Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
  
  static ssize_t show_inquiry(struct file *filep, struct kobject *kobj,
  			    struct bin_attribute *bin_attr,
-@@ -1223,12 +1234,18 @@ static umode_t scsi_sdev_bin_attr_is_vis
+@@ -1231,12 +1242,18 @@ static umode_t scsi_sdev_bin_attr_is_vis
  	struct scsi_device *sdev = to_scsi_device(dev);
  
  
@@ -96,7 +96,7 @@ Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
  	return S_IRUGO;
  }
  
-@@ -1271,8 +1288,10 @@ static struct attribute *scsi_sdev_attrs
+@@ -1279,8 +1296,10 @@ static struct attribute *scsi_sdev_attrs
  };
  
  static struct bin_attribute *scsi_sdev_bin_attrs[] = {
diff --git a/target/linux/generic/hack-5.4/400-unlock_mx25l6406e_with_4bit_block_protect.patch b/target/linux/generic/hack-5.4/400-unlock_mx25l6406e_with_4bit_block_protect.patch
index 8112fa7e13da1b..a6d58148430c96 100644
--- a/target/linux/generic/hack-5.4/400-unlock_mx25l6406e_with_4bit_block_protect.patch
+++ b/target/linux/generic/hack-5.4/400-unlock_mx25l6406e_with_4bit_block_protect.patch
@@ -39,7 +39,7 @@
  	{ "mx25u2033e",  INFO(0xc22532, 0, 64 * 1024,   4, SECT_4K) },
  	{ "mx25u3235f",	 INFO(0xc22536, 0, 64 * 1024,  64,
  			 SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
-@@ -5026,6 +5033,9 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -5027,6 +5034,9 @@ int spi_nor_scan(struct spi_nor *nor, co
  	if (info->flags & USE_CLSR)
  		nor->flags |= SNOR_F_USE_CLSR;
  
diff --git a/target/linux/generic/pending-5.4/485-mtd-spi-nor-add-xmc-xm25qh128c.patch b/target/linux/generic/pending-5.4/485-mtd-spi-nor-add-xmc-xm25qh128c.patch
index 11571cc1a652b0..c83b207b909cf1 100644
--- a/target/linux/generic/pending-5.4/485-mtd-spi-nor-add-xmc-xm25qh128c.patch
+++ b/target/linux/generic/pending-5.4/485-mtd-spi-nor-add-xmc-xm25qh128c.patch
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -2566,6 +2566,7 @@ static const struct flash_info spi_nor_ids[] = {
+@@ -2566,6 +2566,7 @@ static const struct flash_info spi_nor_i
  	/* XMC (Wuhan Xinxin Semiconductor Manufacturing Corp.) */
  	{ "XM25QH64A", INFO(0x207017, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
  	{ "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
@@ -8,4 +8,3 @@
  
  	/* XTX Technology (Shenzhen) Limited */
  	{ "xt25f128b", INFO(0x0B4018, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
-
diff --git a/target/linux/generic/pending-5.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-5.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
index 28901d7135dc86..10e58b4907c5fe 100644
--- a/target/linux/generic/pending-5.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
+++ b/target/linux/generic/pending-5.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
@@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  	kfree(net->ipv6.ip6_blk_hole_entry);
  #endif
  	dst_entries_destroy(&net->ipv6.ip6_dst_ops);
-@@ -6428,6 +6477,9 @@ void __init ip6_route_init_special_entri
+@@ -6434,6 +6483,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/ipq806x/patches-5.4/999-03b-qca-nss-ecm-support.patch b/target/linux/ipq806x/patches-5.4/999-03b-qca-nss-ecm-support.patch
index 3fd94c9949ff0a..fd5666a196e34c 100644
--- a/target/linux/ipq806x/patches-5.4/999-03b-qca-nss-ecm-support.patch
+++ b/target/linux/ipq806x/patches-5.4/999-03b-qca-nss-ecm-support.patch
@@ -90,7 +90,7 @@
  #endif
 --- a/drivers/net/tun.c
 +++ b/drivers/net/tun.c
-@@ -2872,6 +2872,8 @@ static int tun_set_iff(struct net *net,
+@@ -2873,6 +2873,8 @@ static int tun_set_iff(struct net *net,
  				     ~(NETIF_F_HW_VLAN_CTAG_TX |
  				       NETIF_F_HW_VLAN_STAG_TX);
  
diff --git a/target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch b/target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch
index cdf0e49b21cfe5..03d53ec8d6a789 100644
--- a/target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch
+++ b/target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch
@@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
 
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -4939,6 +4939,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -4940,6 +4940,7 @@ int spi_nor_scan(struct spi_nor *nor, co
  	struct mtd_info *mtd = &nor->mtd;
  	struct device_node *np = spi_nor_get_flash_node(nor);
  	struct spi_nor_flash_parameter *params = &nor->params;
@@ -18,7 +18,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
  	int ret;
  	int i;
  
-@@ -5001,7 +5002,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -5002,7 +5003,12 @@ int spi_nor_scan(struct spi_nor *nor, co
  	/* Init flash parameters based on flash_info struct and SFDP */
  	spi_nor_init_params(nor);
  

From fced2da821ac828f9ced6ce8e9808f188e8a542f Mon Sep 17 00:00:00 2001
From: AmadeusGhost <42570690+AmadeusGhost@users.noreply.github.com>
Date: Thu, 10 Nov 2022 23:16:18 +0800
Subject: [PATCH 8/8] ramips: fixes typo error in kang

Fixes: 9a383de4afa6ae520147763262e521da97696224
Closed: #10408
---
 .../485-mtd-spi-nor-add-xmc-xm25qh128c.patch  |  10 --
 .../linux/ramips/dts/mt7621_jdcloud_luban.dts | 149 ------------------
 target/linux/ramips/image/mt7621.mk           |  10 --
 .../mt7621/base-files/etc/board.d/02_network  |   8 +-
 4 files changed, 2 insertions(+), 175 deletions(-)
 delete mode 100644 target/linux/generic/pending-5.4/485-mtd-spi-nor-add-xmc-xm25qh128c.patch
 delete mode 100644 target/linux/ramips/dts/mt7621_jdcloud_luban.dts

diff --git a/target/linux/generic/pending-5.4/485-mtd-spi-nor-add-xmc-xm25qh128c.patch b/target/linux/generic/pending-5.4/485-mtd-spi-nor-add-xmc-xm25qh128c.patch
deleted file mode 100644
index c83b207b909cf1..00000000000000
--- a/target/linux/generic/pending-5.4/485-mtd-spi-nor-add-xmc-xm25qh128c.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/drivers/mtd/spi-nor/spi-nor.c
-+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -2566,6 +2566,7 @@ static const struct flash_info spi_nor_i
- 	/* XMC (Wuhan Xinxin Semiconductor Manufacturing Corp.) */
- 	{ "XM25QH64A", INFO(0x207017, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
- 	{ "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
-+	{ "XM25QH128C", INFO(0x204018, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
- 
- 	/* XTX Technology (Shenzhen) Limited */
- 	{ "xt25f128b", INFO(0x0B4018, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
diff --git a/target/linux/ramips/dts/mt7621_jdcloud_luban.dts b/target/linux/ramips/dts/mt7621_jdcloud_luban.dts
deleted file mode 100644
index ed1ebed9c6538d..00000000000000
--- a/target/linux/ramips/dts/mt7621_jdcloud_luban.dts
+++ /dev/null
@@ -1,149 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-
-#include "mt7621.dtsi"
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-
-/ {
-	compatible = "jdcloud,luban", "mediatek,mt7621-soc";
-	model = "JDCloud luban";
-
-	aliases {
-		led-boot = &led_r1;
-		led-failsafe = &led_r1;
-		led-running = &led_g1;
-		led-upgrade = &led_b1;
-		label-mac-device = &gmac0;
-	};
-
-	chosen {
-		bootargs = "console=ttyS0,115200n8";
-	};
-
-	leds {
-		compatible = "gpio-leds";
-
-		led_r1: led_r1 {
-			label = "led_r1";
-			gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
-			default-state = "on";
-		};
-
-		led_b1: led_b1 {
-			label = "led_b1";
-			gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
-		};
-
-		led_g1: led_g1 {
-			label = "led_g1";
-			gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
-		};
-	};
-
-	keys {
-		compatible = "gpio-keys";
-
-		reset {
-			label = "reset";
-			gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
-			linux,code = <KEY_RESTART>;
-		};
-
-		wps {
-			label = "wps";
-			gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
-			linux,code = <KEY_WPS_BUTTON>;
-		};
-	};
-};
-
-&spi0 {
-	status = "okay";
-
-	flash@0 {
-		compatible = "jedec,spi-nor";
-		reg = <0>;
-		spi-max-frequency = <10000000>;
-		broken-flash-reset;
-
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition@0 {
-				label = "u-boot";
-				reg = <0x0 0x40000>;
-				read-only;
-			};
-			
-			partition@40000 {
-				label = "u-boot-env";
-				reg = <0x40000 0x10000>;
-				read-only;
-			};
-			
-			factory: partition@50000 {
-				label = "factory";
-				reg = <0x50000 0x40000>;
-				read-only;
-			};
-			
-			partition@90000 {
-				compatible = "denx,uimage";
-				label = "firmware";
-				reg = <0x90000 0xf70000>;
-			};
-		};
-	};
-};
-
-&state_default {
-	gpio {
-		groups = "i2c", "uart2", "uart3";
-		function = "gpio";
-	};
-};
-
-&sdhci {
-	status = "okay";
-};
-
-&gmac0 {
-	status = "okay";
-	mtd-mac-address = <&factory 0x3fff4>;
-};
-
-&gmac1 {
-	status = "okay";
-	mtd-mac-address = <&factory 0x3fffa>;
-};
-
-&switch0 {
-	status = "disabled";
-};
-
-&hnat {
-	mtketh-wan = "eth1";
-	mtketh-ppd = "eth0";
-	mtketh-lan = "eth0";
-	mtketh-max-gmac = <2>;
-};
-
-&gsw {
-	status = "okay";
-	mediatek,portmap = "llllw";
-};
-
-&pcie {
-	status = "okay";
-};
-
-&pcie1 {
-	wifi@0,0 {
-		compatible = "mediatek,mt76";
-		reg = <0x0000 0 0 0 0>;
-		mediatek,mtd-eeprom = <&factory 0x0>;
-	};
-};
diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index 01ebfa72df4afa..eb723b79d4e7b3 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -1816,16 +1816,6 @@ define Device/xiaoyu_xy-c5
 endef
 TARGET_DEVICES += xiaoyu_xy-c5
 
-define Device/jdcloud_luban
-  $(Device/dsa-migration)
-  $(Device/uimage-lzma-loader)
-  IMAGE_SIZE := 15808k
-  DEVICE_VENDOR := jdcloud
-  DEVICE_MODEL := Luban
-  DEVICE_PACKAGES += kmod-mt7915e wpad-openssl uboot-envtools
-endef
-TARGET_DEVICES += jdcloud_luban
-
 define Device/xzwifi_creativebox-v1
   $(Device/dsa-migration)
   IMAGE_SIZE := 32448k
diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
index 04101fd5ae07cb..ca6285a8569cd2 100644
--- a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network
@@ -35,6 +35,7 @@ ramips_setup_interfaces()
 	jcg,q20|\
 	lenovo,newifi-d1|\
 	mikrotik,routerboard-m33g|\
+	oraybox,x3a|\
 	xiaomi,mi-router-3g|\
 	xiaomi,mi-router-3g-v2|\
 	xiaomi,mi-router-4|\
@@ -109,10 +110,6 @@ ramips_setup_interfaces()
 		ucidef_set_interface_lan "lan1 lan2 lan3 lan4"
 		ucidef_set_interface "qtn" ifname "eth1" protocol "static" ipaddr "1.1.1.1" netmask "255.255.255.0"
 		;;
-	jdcloud,luban)
-		ucidef_add_switch "switch0" \
-			"0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6u@eth0" "5u@eth1"
-		;;
 	*)
 		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
 		;;
@@ -204,8 +201,7 @@ ramips_setup_macs()
 	mikrotik,routerboard-750gr3|\
 	mikrotik,routerboard-760igs|\
 	mikrotik,routerboard-m11g|\
-	mikrotik,routerboard-m33g|\
-	oraybox,x3a)
+	mikrotik,routerboard-m33g)
 		label_mac=$(cat "/sys/firmware/mikrotik/hard_config/mac_base")
 		wan_mac=$label_mac
 		lan_mac=$(macaddr_add $label_mac 1)