[openwrt/openwrt] kernel/mediatek: 6.12: fix and refresh patches

LEDE Commits lede-commits at lists.infradead.org
Mon May 26 08:58:52 PDT 2025


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

commit 166d9d5ea2e70891d2cf757ee96de823aeec8c53
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Thu May 8 03:11:52 2025 +0100

    kernel/mediatek: 6.12: fix and refresh patches
    
    Fix patches and refresh for Linux 6.12.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 .../patches-6.12/100-dts-update-mt7622-rfb1.patch  |   6 +-
 .../patches-6.12/112-dts-fix-bpi64-lan-names.patch |   4 +-
 .../patches-6.12/114-dts-bpi64-disable-rtc.patch   |   2 +-
 .../patches-6.12/121-hack-spi-nand-1b-bbm.patch    |   4 +-
 .../131-dts-mt7622-add-snand-support.patch         |   2 +-
 .../140-dts-fix-wmac-support-for-mt7622-rfb1.patch |   4 +-
 .../200-phy-phy-mtk-tphy-Add-hifsys-support.patch  |  10 +-
 .../patches-6.12/330-snand-mtk-bmt-support.patch   |   6 +-
 .../patches-6.12/331-mt7622-rfb1-enable-bmt.patch  |   2 +-
 ...nand-Add-support-for-the-Fidelix-FM35X1GA.patch |   2 +-
 .../patches-6.12/410-bt-mtk-serial-fix.patch       |   4 +-
 .../500-gsw-rtl8367s-mt7622-support.patch          |   4 +-
 ...k-Assert-PERST-for-100ms-for-power-and-cl.patch |   2 +-
 ...ie-mediatek-fix-clearing-interrupt-status.patch |   2 +-
 .../611-pcie-mediatek-gen3-PERST-for-100ms.patch   |   2 +-
 .../737-net-dsa-add-Airoha-AN8855.patch            |  16 +--
 ...t-add-negotiation-of-in-band-capabilities.patch | 123 +++++++++++----------
 ...4-dts-mt7986-add-sound-overlay-for-bpi-r3.patch |   4 +-
 ...-dts-mt7622-bpi-r64-aliases-for-dtoverlay.patch |   2 +-
 .../901-arm-add-cmdline-override.patch             |   8 +-
 .../910-dts-mt7622-bpi-r64-wifi-eeprom.patch       |   2 +-
 .../911-dts-mt7622-bpi-r64-add-rootdisk.patch      |   6 +-
 .../930-spi-mt65xx-enable-sel-clk.patch            |   2 +-
 .../patches-6.12/950-smartrg-i2c-led-driver.patch  |   6 +-
 .../960-asus-hack-u-boot-ignore-mtdparts.patch     |   4 +-
 25 files changed, 119 insertions(+), 110 deletions(-)

diff --git a/target/linux/mediatek/patches-6.12/100-dts-update-mt7622-rfb1.patch b/target/linux/mediatek/patches-6.12/100-dts-update-mt7622-rfb1.patch
index 18bcdf02b7..e00f23aba1 100644
--- a/target/linux/mediatek/patches-6.12/100-dts-update-mt7622-rfb1.patch
+++ b/target/linux/mediatek/patches-6.12/100-dts-update-mt7622-rfb1.patch
@@ -41,7 +41,7 @@
  		device_type = "memory";
  	};
  
-@@ -133,22 +132,22 @@
+@@ -145,22 +144,22 @@
  
  				port at 0 {
  					reg = <0>;
@@ -68,7 +68,7 @@
  				};
  
  				port at 4 {
-@@ -240,7 +239,22 @@
+@@ -264,7 +263,22 @@
  	status = "okay";
  };
  
@@ -91,7 +91,7 @@
  	/* eMMC is shared pin with parallel NAND */
  	emmc_pins_default: emmc-pins-default {
  		mux {
-@@ -517,11 +531,11 @@
+@@ -541,11 +555,11 @@
  };
  
  &sata {
diff --git a/target/linux/mediatek/patches-6.12/112-dts-fix-bpi64-lan-names.patch b/target/linux/mediatek/patches-6.12/112-dts-fix-bpi64-lan-names.patch
index 7f97ef4aef..d83a89e3f7 100644
--- a/target/linux/mediatek/patches-6.12/112-dts-fix-bpi64-lan-names.patch
+++ b/target/linux/mediatek/patches-6.12/112-dts-fix-bpi64-lan-names.patch
@@ -8,7 +8,7 @@
  	};
  
  	chosen {
-@@ -165,22 +166,22 @@
+@@ -164,22 +165,22 @@
  
  				port at 1 {
  					reg = <1>;
@@ -34,4 +34,4 @@
 +					label = "lan4";
  				};
  
- 				port at 6 {
+ 				port at 5 {
diff --git a/target/linux/mediatek/patches-6.12/114-dts-bpi64-disable-rtc.patch b/target/linux/mediatek/patches-6.12/114-dts-bpi64-disable-rtc.patch
index 50d3023441..05ef32f504 100644
--- a/target/linux/mediatek/patches-6.12/114-dts-bpi64-disable-rtc.patch
+++ b/target/linux/mediatek/patches-6.12/114-dts-bpi64-disable-rtc.patch
@@ -1,6 +1,6 @@
 --- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
 +++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
-@@ -588,6 +588,10 @@
+@@ -599,6 +599,10 @@
  	status = "okay";
  };
  
diff --git a/target/linux/mediatek/patches-6.12/121-hack-spi-nand-1b-bbm.patch b/target/linux/mediatek/patches-6.12/121-hack-spi-nand-1b-bbm.patch
index ff5521c44e..bb5e1a296e 100644
--- a/target/linux/mediatek/patches-6.12/121-hack-spi-nand-1b-bbm.patch
+++ b/target/linux/mediatek/patches-6.12/121-hack-spi-nand-1b-bbm.patch
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/nand/spi/core.c
 +++ b/drivers/mtd/nand/spi/core.c
-@@ -724,7 +724,7 @@ static int spinand_mtd_write(struct mtd_
+@@ -893,7 +893,7 @@ static int spinand_mtd_write(struct mtd_
  static bool spinand_isbad(struct nand_device *nand, const struct nand_pos *pos)
  {
  	struct spinand_device *spinand = nand_to_spinand(nand);
@@ -9,7 +9,7 @@
  	struct nand_page_io_req req = {
  		.pos = *pos,
  		.ooblen = sizeof(marker),
-@@ -735,7 +735,7 @@ static bool spinand_isbad(struct nand_de
+@@ -904,7 +904,7 @@ static bool spinand_isbad(struct nand_de
  
  	spinand_select_target(spinand, pos->target);
  	spinand_read_page(spinand, &req);
diff --git a/target/linux/mediatek/patches-6.12/131-dts-mt7622-add-snand-support.patch b/target/linux/mediatek/patches-6.12/131-dts-mt7622-add-snand-support.patch
index d6e0ab1d41..5f4735caa4 100644
--- a/target/linux/mediatek/patches-6.12/131-dts-mt7622-add-snand-support.patch
+++ b/target/linux/mediatek/patches-6.12/131-dts-mt7622-add-snand-support.patch
@@ -1,6 +1,6 @@
 --- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
 +++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
-@@ -534,6 +534,65 @@
+@@ -558,6 +558,65 @@
  	status = "disabled";
  };
  
diff --git a/target/linux/mediatek/patches-6.12/140-dts-fix-wmac-support-for-mt7622-rfb1.patch b/target/linux/mediatek/patches-6.12/140-dts-fix-wmac-support-for-mt7622-rfb1.patch
index 117d5abde6..7167d1a8ef 100644
--- a/target/linux/mediatek/patches-6.12/140-dts-fix-wmac-support-for-mt7622-rfb1.patch
+++ b/target/linux/mediatek/patches-6.12/140-dts-fix-wmac-support-for-mt7622-rfb1.patch
@@ -1,6 +1,6 @@
 --- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
 +++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
-@@ -575,7 +575,7 @@
+@@ -599,7 +599,7 @@
  				reg = <0x140000 0x0080000>;
  			};
  
@@ -9,7 +9,7 @@
  				label = "Factory";
  				reg = <0x1c0000 0x0100000>;
  			};
-@@ -636,5 +636,6 @@
+@@ -660,5 +660,6 @@
  &wmac {
  	pinctrl-names = "default";
  	pinctrl-0 = <&wmac_pins>;
diff --git a/target/linux/mediatek/patches-6.12/200-phy-phy-mtk-tphy-Add-hifsys-support.patch b/target/linux/mediatek/patches-6.12/200-phy-phy-mtk-tphy-Add-hifsys-support.patch
index e07aa5662b..b3db243a97 100644
--- a/target/linux/mediatek/patches-6.12/200-phy-phy-mtk-tphy-Add-hifsys-support.patch
+++ b/target/linux/mediatek/patches-6.12/200-phy-phy-mtk-tphy-Add-hifsys-support.patch
@@ -18,7 +18,7 @@ Subject: [PATCH] phy: phy-mtk-tphy: Add hifsys-support
  
  #include "phy-mtk-io.h"
  
-@@ -267,6 +269,9 @@
+@@ -271,6 +273,9 @@
  
  #define USER_BUF_LEN(count) min_t(size_t, 8, (count))
  
@@ -28,7 +28,7 @@ Subject: [PATCH] phy: phy-mtk-tphy: Add hifsys-support
  enum mtk_phy_version {
  	MTK_PHY_V1 = 1,
  	MTK_PHY_V2,
-@@ -334,6 +339,7 @@ struct mtk_tphy {
+@@ -339,6 +344,7 @@ struct mtk_tphy {
  	void __iomem *sif_base;	/* only shared sif */
  	const struct mtk_phy_pdata *pdata;
  	struct mtk_phy_instance **phys;
@@ -36,7 +36,7 @@ Subject: [PATCH] phy: phy-mtk-tphy: Add hifsys-support
  	int nphys;
  	int src_ref_clk; /* MHZ, reference clock for slew rate calibrate */
  	int src_coef; /* coefficient for slew rate calibrate */
-@@ -951,6 +957,10 @@ static void pcie_phy_instance_init(struc
+@@ -973,6 +979,10 @@ static void pcie_phy_instance_init(struc
  	if (tphy->pdata->version != MTK_PHY_V1)
  		return;
  
@@ -47,7 +47,7 @@ Subject: [PATCH] phy: phy-mtk-tphy: Add hifsys-support
  	mtk_phy_update_bits(phya + U3P_U3_PHYA_DA_REG0,
  			    P3A_RG_XTAL_EXT_PE1H | P3A_RG_XTAL_EXT_PE2H,
  			    FIELD_PREP(P3A_RG_XTAL_EXT_PE1H, 0x2) |
-@@ -1597,6 +1607,16 @@ static int mtk_tphy_probe(struct platfor
+@@ -1621,6 +1631,16 @@ static int mtk_tphy_probe(struct platfor
  					 &tphy->src_coef);
  	}
  
@@ -62,5 +62,5 @@ Subject: [PATCH] phy: phy-mtk-tphy: Add hifsys-support
 +	}
 +
  	port = 0;
- 	for_each_child_of_node(np, child_np) {
+ 	for_each_child_of_node_scoped(np, child_np) {
  		struct mtk_phy_instance *instance;
diff --git a/target/linux/mediatek/patches-6.12/330-snand-mtk-bmt-support.patch b/target/linux/mediatek/patches-6.12/330-snand-mtk-bmt-support.patch
index 939ec04855..270e447a81 100644
--- a/target/linux/mediatek/patches-6.12/330-snand-mtk-bmt-support.patch
+++ b/target/linux/mediatek/patches-6.12/330-snand-mtk-bmt-support.patch
@@ -8,7 +8,7 @@
  
  static int spinand_read_reg_op(struct spinand_device *spinand, u8 reg, u8 *val)
  {
-@@ -1347,6 +1348,7 @@ static int spinand_probe(struct spi_mem
+@@ -1525,6 +1526,7 @@ static int spinand_probe(struct spi_mem
  	if (ret)
  		return ret;
  
@@ -16,7 +16,7 @@
  	ret = mtd_device_register(mtd, NULL, 0);
  	if (ret)
  		goto err_spinand_cleanup;
-@@ -1354,6 +1356,7 @@ static int spinand_probe(struct spi_mem
+@@ -1532,6 +1534,7 @@ static int spinand_probe(struct spi_mem
  	return 0;
  
  err_spinand_cleanup:
@@ -24,7 +24,7 @@
  	spinand_cleanup(spinand);
  
  	return ret;
-@@ -1372,6 +1375,7 @@ static int spinand_remove(struct spi_mem
+@@ -1550,6 +1553,7 @@ static int spinand_remove(struct spi_mem
  	if (ret)
  		return ret;
  
diff --git a/target/linux/mediatek/patches-6.12/331-mt7622-rfb1-enable-bmt.patch b/target/linux/mediatek/patches-6.12/331-mt7622-rfb1-enable-bmt.patch
index 3e956701cd..81136c9a3b 100644
--- a/target/linux/mediatek/patches-6.12/331-mt7622-rfb1-enable-bmt.patch
+++ b/target/linux/mediatek/patches-6.12/331-mt7622-rfb1-enable-bmt.patch
@@ -1,6 +1,6 @@
 --- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
 +++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
-@@ -548,6 +548,7 @@
+@@ -572,6 +572,7 @@
  		spi-tx-bus-width = <4>;
  		spi-rx-bus-width = <4>;
  		nand-ecc-engine = <&snfi>;
diff --git a/target/linux/mediatek/patches-6.12/340-mtd-spinand-Add-support-for-the-Fidelix-FM35X1GA.patch b/target/linux/mediatek/patches-6.12/340-mtd-spinand-Add-support-for-the-Fidelix-FM35X1GA.patch
index e06e125c46..ee71d49fe1 100644
--- a/target/linux/mediatek/patches-6.12/340-mtd-spinand-Add-support-for-the-Fidelix-FM35X1GA.patch
+++ b/target/linux/mediatek/patches-6.12/340-mtd-spinand-Add-support-for-the-Fidelix-FM35X1GA.patch
@@ -24,7 +24,7 @@ Signed-off-by: Davide Fioravanti <pantanastyle at gmail.com>
  obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
 --- a/drivers/mtd/nand/spi/core.c
 +++ b/drivers/mtd/nand/spi/core.c
-@@ -942,6 +942,7 @@ static const struct spinand_manufacturer
+@@ -1114,6 +1114,7 @@ static const struct spinand_manufacturer
  	&ato_spinand_manufacturer,
  	&esmt_c8_spinand_manufacturer,
  	&etron_spinand_manufacturer,
diff --git a/target/linux/mediatek/patches-6.12/410-bt-mtk-serial-fix.patch b/target/linux/mediatek/patches-6.12/410-bt-mtk-serial-fix.patch
index 1a67286e61..3b5f21f9c8 100644
--- a/target/linux/mediatek/patches-6.12/410-bt-mtk-serial-fix.patch
+++ b/target/linux/mediatek/patches-6.12/410-bt-mtk-serial-fix.patch
@@ -10,7 +10,7 @@
  #define UART_BUG_TXEN	BIT(1)	/* UART has buggy TX IIR status */
 --- a/drivers/tty/serial/8250/8250_port.c
 +++ b/drivers/tty/serial/8250/8250_port.c
-@@ -287,7 +287,7 @@ static const struct serial8250_config ua
+@@ -276,7 +276,7 @@ static const struct serial8250_config ua
  		.tx_loadsz	= 16,
  		.fcr		= UART_FCR_ENABLE_FIFO |
  				  UART_FCR_CLEAR_RCVR | UART_FCR_CLEAR_XMIT,
@@ -19,7 +19,7 @@
  	},
  	[PORT_NPCM] = {
  		.name		= "Nuvoton 16550",
-@@ -2783,6 +2783,11 @@ serial8250_do_set_termios(struct uart_po
+@@ -2730,6 +2730,11 @@ serial8250_do_set_termios(struct uart_po
  	unsigned long flags;
  	unsigned int baud, quot, frac = 0;
  
diff --git a/target/linux/mediatek/patches-6.12/500-gsw-rtl8367s-mt7622-support.patch b/target/linux/mediatek/patches-6.12/500-gsw-rtl8367s-mt7622-support.patch
index 639403807f..72a1464966 100644
--- a/target/linux/mediatek/patches-6.12/500-gsw-rtl8367s-mt7622-support.patch
+++ b/target/linux/mediatek/patches-6.12/500-gsw-rtl8367s-mt7622-support.patch
@@ -1,6 +1,6 @@
 --- a/drivers/net/phy/Kconfig
 +++ b/drivers/net/phy/Kconfig
-@@ -418,6 +418,12 @@ config ROCKCHIP_PHY
+@@ -431,6 +431,12 @@ config ROCKCHIP_PHY
  	help
  	  Currently supports the integrated Ethernet PHY.
  
@@ -15,7 +15,7 @@
  	select CRC16
 --- a/drivers/net/phy/Makefile
 +++ b/drivers/net/phy/Makefile
-@@ -103,6 +103,7 @@ obj-$(CONFIG_REALTEK_PHY)	+= realtek/
+@@ -113,6 +113,7 @@ obj-$(CONFIG_REALTEK_PHY)	+= realtek/
  obj-y				+= rtl8261n/
  obj-$(CONFIG_RENESAS_PHY)	+= uPD60620.o
  obj-$(CONFIG_ROCKCHIP_PHY)	+= rockchip.o
diff --git a/target/linux/mediatek/patches-6.12/601-PCI-mediatek-Assert-PERST-for-100ms-for-power-and-cl.patch b/target/linux/mediatek/patches-6.12/601-PCI-mediatek-Assert-PERST-for-100ms-for-power-and-cl.patch
index 983fde707f..1b18679fb3 100644
--- a/target/linux/mediatek/patches-6.12/601-PCI-mediatek-Assert-PERST-for-100ms-for-power-and-cl.patch
+++ b/target/linux/mediatek/patches-6.12/601-PCI-mediatek-Assert-PERST-for-100ms-for-power-and-cl.patch
@@ -18,7 +18,7 @@ Acked-by: Pali Rohár <pali at kernel.org>
 
 --- a/drivers/pci/controller/pcie-mediatek.c
 +++ b/drivers/pci/controller/pcie-mediatek.c
-@@ -708,6 +708,13 @@ static int mtk_pcie_startup_port_v2(stru
+@@ -700,6 +700,13 @@ static int mtk_pcie_startup_port_v2(stru
  	 */
  	msleep(100);
  
diff --git a/target/linux/mediatek/patches-6.12/610-pcie-mediatek-fix-clearing-interrupt-status.patch b/target/linux/mediatek/patches-6.12/610-pcie-mediatek-fix-clearing-interrupt-status.patch
index 2a49b2275c..accc6a6f16 100644
--- a/target/linux/mediatek/patches-6.12/610-pcie-mediatek-fix-clearing-interrupt-status.patch
+++ b/target/linux/mediatek/patches-6.12/610-pcie-mediatek-fix-clearing-interrupt-status.patch
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/drivers/pci/controller/pcie-mediatek.c
 +++ b/drivers/pci/controller/pcie-mediatek.c
-@@ -607,9 +607,9 @@ static void mtk_pcie_intr_handler(struct
+@@ -599,9 +599,9 @@ static void mtk_pcie_intr_handler(struct
  	if (status & INTX_MASK) {
  		for_each_set_bit_from(bit, &status, PCI_NUM_INTX + INTX_SHIFT) {
  			/* Clear the INTx */
diff --git a/target/linux/mediatek/patches-6.12/611-pcie-mediatek-gen3-PERST-for-100ms.patch b/target/linux/mediatek/patches-6.12/611-pcie-mediatek-gen3-PERST-for-100ms.patch
index 32b4237d82..72437320a0 100644
--- a/target/linux/mediatek/patches-6.12/611-pcie-mediatek-gen3-PERST-for-100ms.patch
+++ b/target/linux/mediatek/patches-6.12/611-pcie-mediatek-gen3-PERST-for-100ms.patch
@@ -1,6 +1,6 @@
 --- a/drivers/pci/controller/pcie-mediatek-gen3.c
 +++ b/drivers/pci/controller/pcie-mediatek-gen3.c
-@@ -375,7 +375,13 @@ static int mtk_pcie_startup_port(struct
+@@ -416,7 +416,13 @@ static int mtk_pcie_startup_port(struct
  	msleep(100);
  
  	/* De-assert reset signals */
diff --git a/target/linux/mediatek/patches-6.12/737-net-dsa-add-Airoha-AN8855.patch b/target/linux/mediatek/patches-6.12/737-net-dsa-add-Airoha-AN8855.patch
index bd70bec4b3..b0adf04a5b 100644
--- a/target/linux/mediatek/patches-6.12/737-net-dsa-add-Airoha-AN8855.patch
+++ b/target/linux/mediatek/patches-6.12/737-net-dsa-add-Airoha-AN8855.patch
@@ -169,7 +169,7 @@ Christian Marangi (9):
 
 --- a/drivers/mfd/Kconfig
 +++ b/drivers/mfd/Kconfig
-@@ -41,6 +41,16 @@ config MFD_ALTERA_SYSMGR
+@@ -53,6 +53,16 @@ config MFD_ALTERA_SYSMGR
  	  using regmap_mmio accesses for ARM32 parts and SMC calls to
  	  EL3 for ARM64 parts.
  
@@ -188,14 +188,14 @@ Christian Marangi (9):
  	select MFD_CORE
 --- a/drivers/mfd/Makefile
 +++ b/drivers/mfd/Makefile
-@@ -7,6 +7,7 @@
- obj-$(CONFIG_MFD_88PM860X)	+= 88pm860x.o
- obj-$(CONFIG_MFD_88PM800)	+= 88pm800.o 88pm80x.o
+@@ -9,6 +9,7 @@ obj-$(CONFIG_MFD_88PM800)	+= 88pm800.o 8
  obj-$(CONFIG_MFD_88PM805)	+= 88pm805.o 88pm80x.o
-+obj-$(CONFIG_MFD_AIROHA_AN8855)	+= airoha-an8855.o
+ obj-$(CONFIG_MFD_88PM886_PMIC)	+= 88pm886.o
  obj-$(CONFIG_MFD_ACT8945A)	+= act8945a.o
++obj-$(CONFIG_MFD_AIROHA_AN8855)	+= airoha-an8855.o
  obj-$(CONFIG_MFD_SM501)		+= sm501.o
  obj-$(CONFIG_ARCH_BCM2835)	+= bcm2835-pm.o
+ obj-$(CONFIG_MFD_BCM590XX)	+= bcm590xx.o
 --- a/drivers/net/dsa/Kconfig
 +++ b/drivers/net/dsa/Kconfig
 @@ -24,6 +24,15 @@ config NET_DSA_LOOP
@@ -254,7 +254,7 @@ Christian Marangi (9):
  obj-$(CONFIG_MDIO_BCM_UNIMAC)		+= mdio-bcm-unimac.o
 --- a/drivers/net/phy/Kconfig
 +++ b/drivers/net/phy/Kconfig
-@@ -147,6 +147,11 @@ config AIROHA_EN8801SC_PHY
+@@ -158,6 +158,11 @@ config AIROHA_EN8801SC_PHY
  	help
  	  Currently supports the Airoha EN8801SC PHY.
  
@@ -268,14 +268,14 @@ Christian Marangi (9):
  	help
 --- a/drivers/net/phy/Makefile
 +++ b/drivers/net/phy/Makefile
-@@ -50,6 +50,7 @@ obj-y				+= $(sfp-obj-y) $(sfp-obj-m)
+@@ -51,6 +51,7 @@ obj-y				+= $(sfp-obj-y) $(sfp-obj-m)
  obj-$(CONFIG_ADIN_PHY)		+= adin.o
  obj-$(CONFIG_ADIN1100_PHY)	+= adin1100.o
  obj-$(CONFIG_AIROHA_EN8801SC_PHY)   += en8801sc.o
 +obj-$(CONFIG_AIR_AN8855_PHY)		+= air_an8855.o
  obj-$(CONFIG_AIR_EN8811H_PHY)   += air_en8811h.o
  obj-$(CONFIG_AMD_PHY)		+= amd.o
- obj-$(CONFIG_AQUANTIA_PHY)	+= aquantia/
+ obj-$(CONFIG_AMCC_QT2025_PHY)	+= qt2025.o
 --- a/drivers/nvmem/Kconfig
 +++ b/drivers/nvmem/Kconfig
 @@ -29,6 +29,17 @@ source "drivers/nvmem/layouts/Kconfig"
diff --git a/target/linux/mediatek/patches-6.12/739-net-add-negotiation-of-in-band-capabilities.patch b/target/linux/mediatek/patches-6.12/739-net-add-negotiation-of-in-band-capabilities.patch
index 44a6aad7f5..0c23c5b405 100644
--- a/target/linux/mediatek/patches-6.12/739-net-add-negotiation-of-in-band-capabilities.patch
+++ b/target/linux/mediatek/patches-6.12/739-net-add-negotiation-of-in-band-capabilities.patch
@@ -131,7 +131,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  static unsigned int phylink_interface_signal_rate(phy_interface_t interface)
  {
  	switch (interface) {
-@@ -1053,6 +1073,15 @@ static void phylink_resolve_an_pause(str
+@@ -988,6 +1008,15 @@ static void phylink_resolve_an_pause(str
  	}
  }
  
@@ -147,7 +147,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  static void phylink_pcs_pre_config(struct phylink_pcs *pcs,
  				   phy_interface_t interface)
  {
-@@ -1106,6 +1135,24 @@ static void phylink_pcs_link_up(struct p
+@@ -1041,6 +1070,24 @@ static void phylink_pcs_link_up(struct p
  		pcs->ops->pcs_link_up(pcs, neg_mode, interface, speed, duplex);
  }
  
@@ -172,7 +172,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  static void phylink_pcs_poll_stop(struct phylink *pl)
  {
  	if (pl->cfg_link_an_mode == MLO_AN_INBAND)
-@@ -1132,13 +1179,13 @@ static void phylink_mac_config(struct ph
+@@ -1082,13 +1129,13 @@ static void phylink_mac_config(struct ph
  
  	phylink_dbg(pl,
  		    "%s: mode=%s/%s/%s adv=%*pb pause=%02x\n",
@@ -188,7 +188,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  }
  
  static void phylink_pcs_an_restart(struct phylink *pl)
-@@ -1146,13 +1193,14 @@ static void phylink_pcs_an_restart(struc
+@@ -1096,13 +1143,14 @@ static void phylink_pcs_an_restart(struc
  	if (pl->pcs && linkmode_test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT,
  					 pl->link_config.advertising) &&
  	    phy_interface_mode_is_8023z(pl->link_config.interface) &&
@@ -205,7 +205,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
   * @interface: interface mode to be used
   * @advertising: adertisement ethtool link mode mask
   *
-@@ -1169,11 +1217,21 @@ static void phylink_pcs_an_restart(struc
+@@ -1119,11 +1167,21 @@ static void phylink_pcs_an_restart(struc
   * Note: this is for cases where the PCS itself is involved in negotiation
   * (e.g. Clause 37, SGMII and similar) not Clause 73.
   */
@@ -231,7 +231,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  
  	switch (interface) {
  	case PHY_INTERFACE_MODE_SGMII:
-@@ -1185,10 +1243,7 @@ static unsigned int phylink_pcs_neg_mode
+@@ -1136,10 +1194,7 @@ static unsigned int phylink_pcs_neg_mode
  		 * inband communication. Note: there exist PHYs that run
  		 * with SGMII but do not send the inband data.
  		 */
@@ -243,7 +243,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  		break;
  
  	case PHY_INTERFACE_MODE_1000BASEX:
-@@ -1199,21 +1254,143 @@ static unsigned int phylink_pcs_neg_mode
+@@ -1150,21 +1205,143 @@ static unsigned int phylink_pcs_neg_mode
  		 * as well, but drivers may not support this, so may
  		 * need to override this.
  		 */
@@ -394,7 +394,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  }
  
  static void phylink_major_config(struct phylink *pl, bool restart,
-@@ -1225,11 +1402,9 @@ static void phylink_major_config(struct
+@@ -1176,11 +1353,9 @@ static void phylink_major_config(struct
  	unsigned int neg_mode;
  	int err;
  
@@ -409,7 +409,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  
  	if (pl->using_mac_select_pcs) {
  		pcs = pl->mac_ops->mac_select_pcs(pl->config, state->interface);
-@@ -1243,10 +1418,17 @@ static void phylink_major_config(struct
+@@ -1194,10 +1369,17 @@ static void phylink_major_config(struct
  		pcs_changed = pcs && pl->pcs != pcs;
  	}
  
@@ -428,7 +428,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  					       state->interface);
  		if (err < 0) {
  			phylink_err(pl, "mac_prepare failed: %pe\n",
-@@ -1280,7 +1462,7 @@ static void phylink_major_config(struct
+@@ -1231,7 +1413,7 @@ static void phylink_major_config(struct
  	if (pl->pcs_state == PCS_STATE_STARTING || pcs_changed)
  		phylink_pcs_enable(pl->pcs);
  
@@ -437,7 +437,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  	if (pl->pcs && pl->pcs->neg_mode)
  		neg_mode = pl->pcs_neg_mode;
  
-@@ -1296,13 +1478,20 @@ static void phylink_major_config(struct
+@@ -1247,13 +1429,20 @@ static void phylink_major_config(struct
  		phylink_pcs_an_restart(pl);
  
  	if (pl->mac_ops->mac_finish) {
@@ -459,7 +459,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  	if (pl->sfp_bus) {
  		rate_kbd = phylink_interface_signal_rate(state->interface);
  		if (rate_kbd)
-@@ -1327,17 +1516,16 @@ static int phylink_change_inband_advert(
+@@ -1278,17 +1467,16 @@ static int phylink_change_inband_advert(
  		return 0;
  
  	phylink_dbg(pl, "%s: mode=%s/%s adv=%*pb pause=%02x\n", __func__,
@@ -481,7 +481,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  	if (pl->pcs->neg_mode)
  		neg_mode = pl->pcs_neg_mode;
  
-@@ -1402,7 +1590,7 @@ static void phylink_mac_initial_config(s
+@@ -1353,7 +1541,7 @@ static void phylink_mac_initial_config(s
  {
  	struct phylink_link_state link_state;
  
@@ -490,7 +490,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  	case MLO_AN_PHY:
  		link_state = pl->phy_state;
  		break;
-@@ -1476,14 +1664,14 @@ static void phylink_link_up(struct phyli
+@@ -1427,14 +1615,14 @@ static void phylink_link_up(struct phyli
  
  	pl->cur_interface = link_state.interface;
  
@@ -507,7 +507,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  				 pl->cur_interface, speed, duplex,
  				 !!(link_state.pause & MLO_PAUSE_TX), rx_pause);
  
-@@ -1503,7 +1691,7 @@ static void phylink_link_down(struct phy
+@@ -1454,7 +1642,7 @@ static void phylink_link_down(struct phy
  
  	if (ndev)
  		netif_carrier_off(ndev);
@@ -516,7 +516,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  				   pl->cur_interface);
  	phylink_info(pl, "Link is Down\n");
  }
-@@ -1530,7 +1718,7 @@ static void phylink_resolve(struct work_
+@@ -1481,7 +1669,7 @@ static void phylink_resolve(struct work_
  		link_state.link = false;
  		retrigger = true;
  	} else {
@@ -525,7 +525,16 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  		case MLO_AN_PHY:
  			link_state = pl->phy_state;
  			phylink_apply_manual_flow(pl, &link_state);
-@@ -1773,7 +1961,7 @@ struct phylink *phylink_create(struct ph
+@@ -1671,7 +1859,7 @@ int phylink_set_fixed_link(struct phylin
+ 	pl->link_config.an_complete = 1;
+ 
+ 	pl->cfg_link_an_mode = MLO_AN_FIXED;
+-	pl->cur_link_an_mode = pl->cfg_link_an_mode;
++	pl->req_link_an_mode = pl->cfg_link_an_mode;
+ 
+ 	return 0;
+ }
+@@ -1766,7 +1954,7 @@ struct phylink *phylink_create(struct ph
  		}
  	}
  
@@ -534,7 +543,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  
  	ret = phylink_register_sfp(pl, fwnode);
  	if (ret < 0) {
-@@ -2236,7 +2424,7 @@ void phylink_start(struct phylink *pl)
+@@ -2242,7 +2430,7 @@ void phylink_start(struct phylink *pl)
  	ASSERT_RTNL();
  
  	phylink_info(pl, "configuring for %s/%s link mode\n",
@@ -543,7 +552,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  		     phy_modes(pl->link_config.interface));
  
  	/* Always set the carrier off */
-@@ -2495,7 +2683,7 @@ int phylink_ethtool_ksettings_get(struct
+@@ -2501,7 +2689,7 @@ int phylink_ethtool_ksettings_get(struct
  
  	linkmode_copy(kset->link_modes.supported, pl->supported);
  
@@ -552,7 +561,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  	case MLO_AN_FIXED:
  		/* We are using fixed settings. Report these as the
  		 * current link settings - and note that these also
-@@ -2526,6 +2714,26 @@ int phylink_ethtool_ksettings_get(struct
+@@ -2532,6 +2720,26 @@ int phylink_ethtool_ksettings_get(struct
  }
  EXPORT_SYMBOL_GPL(phylink_ethtool_ksettings_get);
  
@@ -579,7 +588,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  /**
   * phylink_ethtool_ksettings_set() - set the link settings
   * @pl: a pointer to a &struct phylink returned from phylink_create()
-@@ -2587,7 +2795,7 @@ int phylink_ethtool_ksettings_set(struct
+@@ -2593,7 +2801,7 @@ int phylink_ethtool_ksettings_set(struct
  		/* If we have a fixed link, refuse to change link parameters.
  		 * If the link parameters match, accept them but do nothing.
  		 */
@@ -588,7 +597,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  			if (s->speed != pl->link_config.speed ||
  			    s->duplex != pl->link_config.duplex)
  				return -EINVAL;
-@@ -2603,7 +2811,7 @@ int phylink_ethtool_ksettings_set(struct
+@@ -2609,7 +2817,7 @@ int phylink_ethtool_ksettings_set(struct
  		 * is our default case) but do not allow the advertisement to
  		 * be changed. If the advertisement matches, simply return.
  		 */
@@ -597,7 +606,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  			if (!linkmode_equal(config.advertising,
  					    pl->link_config.advertising))
  				return -EINVAL;
-@@ -2643,7 +2851,7 @@ int phylink_ethtool_ksettings_set(struct
+@@ -2649,7 +2857,7 @@ int phylink_ethtool_ksettings_set(struct
  		linkmode_copy(support, pl->supported);
  		if (phylink_validate(pl, support, &config)) {
  			phylink_err(pl, "validation of %s/%s with support %*pb failed\n",
@@ -606,7 +615,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  				    phy_modes(config.interface),
  				    __ETHTOOL_LINK_MODE_MASK_NBITS, support);
  			return -EINVAL;
-@@ -2661,6 +2869,13 @@ int phylink_ethtool_ksettings_set(struct
+@@ -2667,6 +2875,13 @@ int phylink_ethtool_ksettings_set(struct
  	    phylink_is_empty_linkmode(config.advertising))
  		return -EINVAL;
  
@@ -620,7 +629,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  	mutex_lock(&pl->state_mutex);
  	pl->link_config.speed = config.speed;
  	pl->link_config.duplex = config.duplex;
-@@ -2743,7 +2958,7 @@ int phylink_ethtool_set_pauseparam(struc
+@@ -2749,7 +2964,7 @@ int phylink_ethtool_set_pauseparam(struc
  
  	ASSERT_RTNL();
  
@@ -629,7 +638,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  		return -EOPNOTSUPP;
  
  	if (!phylink_test(pl->supported, Pause) &&
-@@ -3007,7 +3222,7 @@ static int phylink_mii_read(struct phyli
+@@ -3013,7 +3228,7 @@ static int phylink_mii_read(struct phyli
  	struct phylink_link_state state;
  	int val = 0xffff;
  
@@ -638,7 +647,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  	case MLO_AN_FIXED:
  		if (phy_id == 0) {
  			phylink_get_fixed_state(pl, &state);
-@@ -3032,7 +3247,7 @@ static int phylink_mii_read(struct phyli
+@@ -3038,7 +3253,7 @@ static int phylink_mii_read(struct phyli
  static int phylink_mii_write(struct phylink *pl, unsigned int phy_id,
  			     unsigned int reg, unsigned int val)
  {
@@ -647,7 +656,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  	case MLO_AN_FIXED:
  		break;
  
-@@ -3202,10 +3417,11 @@ static phy_interface_t phylink_choose_sf
+@@ -3208,10 +3423,11 @@ static phy_interface_t phylink_choose_sf
  	return interface;
  }
  
@@ -660,7 +669,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  	bool changed = false;
  
  	phylink_dbg(pl, "requesting link mode %s/%s with support %*pb\n",
-@@ -3222,9 +3438,9 @@ static void phylink_sfp_set_config(struc
+@@ -3228,9 +3444,9 @@ static void phylink_sfp_set_config(struc
  		changed = true;
  	}
  
@@ -672,7 +681,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  		pl->link_config.interface = state->interface;
  
  		changed = true;
-@@ -3239,8 +3455,7 @@ static void phylink_sfp_set_config(struc
+@@ -3245,8 +3461,7 @@ static void phylink_sfp_set_config(struc
  		phylink_mac_initial_config(pl, false);
  }
  
@@ -682,7 +691,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  {
  	__ETHTOOL_DECLARE_LINK_MODE_MASK(support1);
  	__ETHTOOL_DECLARE_LINK_MODE_MASK(support);
-@@ -3279,8 +3494,7 @@ static int phylink_sfp_config_phy(struct
+@@ -3285,8 +3500,7 @@ static int phylink_sfp_config_phy(struct
  	ret = phylink_validate(pl, support1, &config);
  	if (ret) {
  		phylink_err(pl,
@@ -692,7 +701,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  			    phy_modes(config.interface),
  			    __ETHTOOL_LINK_MODE_MASK_NBITS, support,
  			    ERR_PTR(ret));
-@@ -3289,7 +3503,7 @@ static int phylink_sfp_config_phy(struct
+@@ -3295,7 +3509,7 @@ static int phylink_sfp_config_phy(struct
  
  	pl->link_port = pl->sfp_port;
  
@@ -701,7 +710,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  
  	return 0;
  }
-@@ -3345,6 +3559,12 @@ static int phylink_sfp_config_optical(st
+@@ -3351,6 +3565,12 @@ static int phylink_sfp_config_optical(st
  	phylink_dbg(pl, "optical SFP: chosen %s interface\n",
  		    phy_modes(interface));
  
@@ -714,7 +723,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  	config.interface = interface;
  
  	/* Ignore errors if we're expecting a PHY to attach later */
-@@ -3358,7 +3578,7 @@ static int phylink_sfp_config_optical(st
+@@ -3364,7 +3584,7 @@ static int phylink_sfp_config_optical(st
  
  	pl->link_port = pl->sfp_port;
  
@@ -723,7 +732,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  
  	return 0;
  }
-@@ -3429,20 +3649,10 @@ static void phylink_sfp_link_up(void *up
+@@ -3435,20 +3655,10 @@ static void phylink_sfp_link_up(void *up
  	phylink_enable_and_run_resolve(pl, PHYLINK_DISABLE_LINK);
  }
  
@@ -744,7 +753,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  	int ret;
  
  	/*
-@@ -3454,17 +3664,12 @@ static int phylink_sfp_connect_phy(void
+@@ -3460,17 +3670,12 @@ static int phylink_sfp_connect_phy(void
  	 */
  	phy_support_asym_pause(phy);
  
@@ -765,7 +774,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  
 --- a/drivers/net/phy/phy.c
 +++ b/drivers/net/phy/phy.c
-@@ -973,6 +973,58 @@ static int phy_check_link_status(struct
+@@ -1049,6 +1049,58 @@ static int phy_check_link_status(struct
  }
  
  /**
@@ -826,7 +835,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
   *
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -800,6 +800,24 @@ struct phy_tdr_config {
+@@ -819,6 +819,24 @@ struct phy_tdr_config {
  #define PHY_PAIR_ALL -1
  
  /**
@@ -851,7 +860,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
   * struct phy_plca_cfg - Configuration of the PLCA (Physical Layer Collision
   * Avoidance) Reconciliation Sublayer.
   *
-@@ -939,6 +957,19 @@ struct phy_driver {
+@@ -958,6 +976,19 @@ struct phy_driver {
  	int (*get_features)(struct phy_device *phydev);
  
  	/**
@@ -871,8 +880,8 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  	 * @get_rate_matching: Get the supported type of rate matching for a
  	 * particular phy interface. This is used by phy consumers to determine
  	 * whether to advertise lower-speed modes for that interface. It is
-@@ -1774,6 +1805,9 @@ void phy_stop(struct phy_device *phydev)
- int phy_config_aneg(struct phy_device *phydev);
+@@ -1842,6 +1873,9 @@ int phy_config_aneg(struct phy_device *p
+ int _phy_start_aneg(struct phy_device *phydev);
  int phy_start_aneg(struct phy_device *phydev);
  int phy_aneg_done(struct phy_device *phydev);
 +unsigned int phy_inband_caps(struct phy_device *phydev,
@@ -883,7 +892,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  bool phy_check_valid(int speed, int duplex, unsigned long *features);
 --- a/drivers/net/phy/bcm84881.c
 +++ b/drivers/net/phy/bcm84881.c
-@@ -223,11 +223,21 @@ static int bcm84881_read_status(struct p
+@@ -235,11 +235,21 @@ static int bcm84881_read_status(struct p
  	return genphy_c45_read_mdix(phydev);
  }
  
@@ -907,7 +916,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  		.get_features	= bcm84881_get_features,
 --- a/drivers/net/phy/marvell.c
 +++ b/drivers/net/phy/marvell.c
-@@ -673,6 +673,48 @@ static int marvell_config_aneg_fiber(str
+@@ -716,6 +716,48 @@ static int marvell_config_aneg_fiber(str
  	return genphy_check_and_restart_aneg(phydev, changed);
  }
  
@@ -956,7 +965,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  static int m88e1111_config_aneg(struct phy_device *phydev)
  {
  	int extsr = phy_read(phydev, MII_M1111_PHY_EXT_SR);
-@@ -3292,6 +3334,8 @@ static struct phy_driver marvell_drivers
+@@ -3667,6 +3709,8 @@ static struct phy_driver marvell_drivers
  		.name = "Marvell 88E1112",
  		/* PHY_GBIT_FEATURES */
  		.probe = marvell_probe,
@@ -965,16 +974,16 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  		.config_init = m88e1112_config_init,
  		.config_aneg = marvell_config_aneg,
  		.config_intr = marvell_config_intr,
-@@ -3312,6 +3356,8 @@ static struct phy_driver marvell_drivers
- 		.name = "Marvell 88E1111",
+@@ -3688,6 +3732,8 @@ static struct phy_driver marvell_drivers
  		/* PHY_GBIT_FEATURES */
+ 		.flags = PHY_POLL_CABLE_TEST,
  		.probe = marvell_probe,
 +		.inband_caps = m88e1111_inband_caps,
 +		.config_inband = m88e1111_config_inband,
  		.config_init = m88e1111gbe_config_init,
  		.config_aneg = m88e1111_config_aneg,
  		.read_status = marvell_read_status,
-@@ -3333,6 +3379,8 @@ static struct phy_driver marvell_drivers
+@@ -3711,6 +3757,8 @@ static struct phy_driver marvell_drivers
  		.name = "Marvell 88E1111 (Finisar)",
  		/* PHY_GBIT_FEATURES */
  		.probe = marvell_probe,
@@ -985,7 +994,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  		.read_status = marvell_read_status,
 --- a/include/linux/phylink.h
 +++ b/include/linux/phylink.h
-@@ -432,6 +432,7 @@ struct phylink_pcs {
+@@ -419,6 +419,7 @@ struct phylink_pcs {
  /**
   * struct phylink_pcs_ops - MAC PCS operations structure.
   * @pcs_validate: validate the link configuration.
@@ -993,7 +1002,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
   * @pcs_enable: enable the PCS.
   * @pcs_disable: disable the PCS.
   * @pcs_pre_config: pre-mac_config method (for errata)
-@@ -445,6 +446,8 @@ struct phylink_pcs {
+@@ -434,6 +435,8 @@ struct phylink_pcs {
  struct phylink_pcs_ops {
  	int (*pcs_validate)(struct phylink_pcs *pcs, unsigned long *supported,
  			    const struct phylink_link_state *state);
@@ -1002,7 +1011,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  	int (*pcs_enable)(struct phylink_pcs *pcs);
  	void (*pcs_disable)(struct phylink_pcs *pcs);
  	void (*pcs_pre_config)(struct phylink_pcs *pcs,
-@@ -481,6 +484,20 @@ int pcs_validate(struct phylink_pcs *pcs
+@@ -471,6 +474,20 @@ int pcs_validate(struct phylink_pcs *pcs
  		 const struct phylink_link_state *state);
  
  /**
@@ -1025,7 +1034,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
   */
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3959,20 +3959,27 @@ static struct mvneta_port *mvneta_pcs_to
+@@ -3960,20 +3960,27 @@ static struct mvneta_port *mvneta_pcs_to
  	return container_of(pcs, struct mvneta_port, phylink_pcs);
  }
  
@@ -1062,7 +1071,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  }
  
  static void mvneta_pcs_get_state(struct phylink_pcs *pcs,
-@@ -4070,7 +4077,7 @@ static void mvneta_pcs_an_restart(struct
+@@ -4071,7 +4078,7 @@ static void mvneta_pcs_an_restart(struct
  }
  
  static const struct phylink_pcs_ops mvneta_phylink_pcs_ops = {
@@ -1073,7 +1082,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  	.pcs_an_restart = mvneta_pcs_an_restart,
 --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
 +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
-@@ -6214,19 +6214,26 @@ static const struct phylink_pcs_ops mvpp
+@@ -6237,19 +6237,26 @@ static const struct phylink_pcs_ops mvpp
  	.pcs_config = mvpp2_xlg_pcs_config,
  };
  
@@ -1108,7 +1117,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  }
  
  static void mvpp2_gmac_pcs_get_state(struct phylink_pcs *pcs,
-@@ -6333,7 +6340,7 @@ static void mvpp2_gmac_pcs_an_restart(st
+@@ -6356,7 +6363,7 @@ static void mvpp2_gmac_pcs_an_restart(st
  }
  
  static const struct phylink_pcs_ops mvpp2_phylink_gmac_pcs_ops = {
@@ -1147,7 +1156,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  static void lynx_pcs_get_state_usxgmii(struct mdio_device *pcs,
  				       struct phylink_link_state *state)
  {
-@@ -307,6 +328,7 @@ static void lynx_pcs_link_up(struct phyl
+@@ -306,6 +327,7 @@ static void lynx_pcs_link_up(struct phyl
  }
  
  static const struct phylink_pcs_ops lynx_pcs_phylink_ops = {
@@ -1189,7 +1198,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  	.pcs_an_restart = mtk_pcs_lynxi_restart_an,
 --- a/drivers/net/pcs/pcs-xpcs.c
 +++ b/drivers/net/pcs/pcs-xpcs.c
-@@ -628,6 +628,33 @@ static int xpcs_validate(struct phylink_
+@@ -608,6 +608,33 @@ static int xpcs_validate(struct phylink_
  	return 0;
  }
  
@@ -1223,7 +1232,7 @@ publishing the in-band capabilities from the BCM84881 PHY driver.
  void xpcs_get_interfaces(struct dw_xpcs *xpcs, unsigned long *interfaces)
  {
  	int i, j;
-@@ -1331,6 +1358,7 @@ static const struct xpcs_id xpcs_id_list
+@@ -1365,6 +1392,7 @@ static const struct dw_xpcs_desc xpcs_de
  
  static const struct phylink_pcs_ops xpcs_phylink_ops = {
  	.pcs_validate = xpcs_validate,
diff --git a/target/linux/mediatek/patches-6.12/864-arm64-dts-mt7986-add-sound-overlay-for-bpi-r3.patch b/target/linux/mediatek/patches-6.12/864-arm64-dts-mt7986-add-sound-overlay-for-bpi-r3.patch
index 3ce6fdd4ad..af47255c78 100644
--- a/target/linux/mediatek/patches-6.12/864-arm64-dts-mt7986-add-sound-overlay-for-bpi-r3.patch
+++ b/target/linux/mediatek/patches-6.12/864-arm64-dts-mt7986-add-sound-overlay-for-bpi-r3.patch
@@ -68,11 +68,11 @@
 +};
 --- a/arch/arm64/boot/dts/mediatek/Makefile
 +++ b/arch/arm64/boot/dts/mediatek/Makefile
-@@ -13,6 +13,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-b
+@@ -18,6 +18,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-b
  dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-nand.dtbo
  dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-nor.dtbo
  dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-sd.dtbo
 +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-respeaker-2mics.dtbo
  dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-rfb.dtb
  dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986b-rfb.dtb
- dtb-$(CONFIG_ARCH_MEDIATEK) += mt8167-pumpkin.dtb
+ dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4.dtb
diff --git a/target/linux/mediatek/patches-6.12/900-dts-mt7622-bpi-r64-aliases-for-dtoverlay.patch b/target/linux/mediatek/patches-6.12/900-dts-mt7622-bpi-r64-aliases-for-dtoverlay.patch
index 6dede02003..5bf729f5b9 100644
--- a/target/linux/mediatek/patches-6.12/900-dts-mt7622-bpi-r64-aliases-for-dtoverlay.patch
+++ b/target/linux/mediatek/patches-6.12/900-dts-mt7622-bpi-r64-aliases-for-dtoverlay.patch
@@ -1,6 +1,6 @@
 --- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
 +++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
-@@ -312,7 +312,7 @@
+@@ -323,7 +323,7 @@
  	/* Attention: GPIO 90 is used to switch between PCIe at 1,0 and
  	 * SATA functions. i.e. output-high: PCIe, output-low: SATA
  	 */
diff --git a/target/linux/mediatek/patches-6.12/901-arm-add-cmdline-override.patch b/target/linux/mediatek/patches-6.12/901-arm-add-cmdline-override.patch
index 7b7c905a0f..001c7bf2f0 100644
--- a/target/linux/mediatek/patches-6.12/901-arm-add-cmdline-override.patch
+++ b/target/linux/mediatek/patches-6.12/901-arm-add-cmdline-override.patch
@@ -1,6 +1,6 @@
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -1568,6 +1568,14 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
+@@ -1505,6 +1505,14 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
  
  endchoice
  
@@ -17,7 +17,7 @@
  	default ""
 --- a/drivers/of/fdt.c
 +++ b/drivers/of/fdt.c
-@@ -1190,6 +1190,17 @@ int __init early_init_dt_scan_chosen(cha
+@@ -1053,6 +1053,17 @@ int __init early_init_dt_scan_chosen(cha
  	if (p != NULL && l > 0)
  		strlcat(cmdline, p, min_t(int, strlen(cmdline) + (int)l, COMMAND_LINE_SIZE));
  
@@ -29,7 +29,7 @@
 +#ifdef CONFIG_CMDLINE_OVERRIDE
 +	p = of_get_flat_dt_prop(node, "bootargs-override", &l);
 +	if (p != NULL && l > 0)
-+		strlcpy(cmdline, p, min((int)l, COMMAND_LINE_SIZE));
++		strscpy(cmdline, p, min((int)l, COMMAND_LINE_SIZE));
 +#endif
 +
  handle_cmdline:
@@ -37,7 +37,7 @@
  	 * CONFIG_CMDLINE is meant to be a default in case nothing else
 --- a/arch/arm64/Kconfig
 +++ b/arch/arm64/Kconfig
-@@ -2309,6 +2309,14 @@ config CMDLINE_FORCE
+@@ -2380,6 +2380,14 @@ config CMDLINE_FORCE
  
  endchoice
  
diff --git a/target/linux/mediatek/patches-6.12/910-dts-mt7622-bpi-r64-wifi-eeprom.patch b/target/linux/mediatek/patches-6.12/910-dts-mt7622-bpi-r64-wifi-eeprom.patch
index 09ce417c35..e6cb16c3d6 100644
--- a/target/linux/mediatek/patches-6.12/910-dts-mt7622-bpi-r64-wifi-eeprom.patch
+++ b/target/linux/mediatek/patches-6.12/910-dts-mt7622-bpi-r64-wifi-eeprom.patch
@@ -1,6 +1,6 @@
 --- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
 +++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
-@@ -639,5 +639,28 @@
+@@ -650,5 +650,28 @@
  };
  
  &wmac {
diff --git a/target/linux/mediatek/patches-6.12/911-dts-mt7622-bpi-r64-add-rootdisk.patch b/target/linux/mediatek/patches-6.12/911-dts-mt7622-bpi-r64-add-rootdisk.patch
index 4f57240fce..28c26db0ed 100644
--- a/target/linux/mediatek/patches-6.12/911-dts-mt7622-bpi-r64-add-rootdisk.patch
+++ b/target/linux/mediatek/patches-6.12/911-dts-mt7622-bpi-r64-add-rootdisk.patch
@@ -10,7 +10,7 @@
  	};
  
  	cpus {
-@@ -234,6 +237,28 @@
+@@ -245,6 +248,28 @@
  	assigned-clocks = <&topckgen CLK_TOP_MSDC30_0_SEL>;
  	assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
  	non-removable;
@@ -39,7 +39,7 @@
  };
  
  &mmc1 {
-@@ -249,6 +274,28 @@
+@@ -260,6 +285,28 @@
  	vqmmc-supply = <&reg_3p3v>;
  	assigned-clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>;
  	assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
@@ -68,7 +68,7 @@
  };
  
  &nandc {
-@@ -282,15 +329,30 @@
+@@ -293,15 +340,30 @@
  				read-only;
  			};
  
diff --git a/target/linux/mediatek/patches-6.12/930-spi-mt65xx-enable-sel-clk.patch b/target/linux/mediatek/patches-6.12/930-spi-mt65xx-enable-sel-clk.patch
index eb25b99eb4..52942c2069 100644
--- a/target/linux/mediatek/patches-6.12/930-spi-mt65xx-enable-sel-clk.patch
+++ b/target/linux/mediatek/patches-6.12/930-spi-mt65xx-enable-sel-clk.patch
@@ -1,6 +1,6 @@
 --- a/drivers/spi/spi-mt65xx.c
 +++ b/drivers/spi/spi-mt65xx.c
-@@ -1228,8 +1228,15 @@ static int mtk_spi_probe(struct platform
+@@ -1237,8 +1237,15 @@ static int mtk_spi_probe(struct platform
  	if (ret < 0)
  		return dev_err_probe(dev, ret, "failed to enable hclk\n");
  
diff --git a/target/linux/mediatek/patches-6.12/950-smartrg-i2c-led-driver.patch b/target/linux/mediatek/patches-6.12/950-smartrg-i2c-led-driver.patch
index 81234f68ea..faa801fc82 100644
--- a/target/linux/mediatek/patches-6.12/950-smartrg-i2c-led-driver.patch
+++ b/target/linux/mediatek/patches-6.12/950-smartrg-i2c-led-driver.patch
@@ -5,7 +5,7 @@
 
 --- a/drivers/leds/Kconfig
 +++ b/drivers/leds/Kconfig
-@@ -911,6 +911,16 @@ source "drivers/leds/flash/Kconfig"
+@@ -977,6 +977,16 @@ source "drivers/leds/flash/Kconfig"
  comment "RGB LED drivers"
  source "drivers/leds/rgb/Kconfig"
  
@@ -24,11 +24,11 @@
  
 --- a/drivers/leds/Makefile
 +++ b/drivers/leds/Makefile
-@@ -78,6 +78,7 @@ obj-$(CONFIG_LEDS_POWERNV)		+= leds-powe
+@@ -81,6 +81,7 @@ obj-$(CONFIG_LEDS_POWERNV)		+= leds-powe
  obj-$(CONFIG_LEDS_PWM)			+= leds-pwm.o
  obj-$(CONFIG_LEDS_REGULATOR)		+= leds-regulator.o
  obj-$(CONFIG_LEDS_SC27XX_BLTC)		+= leds-sc27xx-bltc.o
 +obj-$(CONFIG_LEDS_SMARTRG_LED)		+= leds-smartrg-system.o
+ obj-$(CONFIG_LEDS_SUN50I_A100)		+= leds-sun50i-a100.o
  obj-$(CONFIG_LEDS_ST1202)		+= leds-st1202.o
  obj-$(CONFIG_LEDS_SUNFIRE)		+= leds-sunfire.o
- obj-$(CONFIG_LEDS_SYSCON)		+= leds-syscon.o
diff --git a/target/linux/mediatek/patches-6.12/960-asus-hack-u-boot-ignore-mtdparts.patch b/target/linux/mediatek/patches-6.12/960-asus-hack-u-boot-ignore-mtdparts.patch
index 0fe2b95e8a..40e5fd0589 100644
--- a/target/linux/mediatek/patches-6.12/960-asus-hack-u-boot-ignore-mtdparts.patch
+++ b/target/linux/mediatek/patches-6.12/960-asus-hack-u-boot-ignore-mtdparts.patch
@@ -29,7 +29,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 
 --- a/drivers/mtd/nand/spi/core.c
 +++ b/drivers/mtd/nand/spi/core.c
-@@ -1441,6 +1441,7 @@ static int spinand_remove(struct spi_mem
+@@ -1619,6 +1619,7 @@ static int spinand_remove(struct spi_mem
  
  static const struct spi_device_id spinand_ids[] = {
  	{ .name = "spi-nand" },
@@ -37,7 +37,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	{ /* sentinel */ },
  };
  MODULE_DEVICE_TABLE(spi, spinand_ids);
-@@ -1448,6 +1449,7 @@ MODULE_DEVICE_TABLE(spi, spinand_ids);
+@@ -1626,6 +1627,7 @@ MODULE_DEVICE_TABLE(spi, spinand_ids);
  #ifdef CONFIG_OF
  static const struct of_device_id spinand_of_ids[] = {
  	{ .compatible = "spi-nand" },




More information about the lede-commits mailing list