[openwrt/openwrt] kernel: bump 6.12 to 6.12.28

LEDE Commits lede-commits at lists.infradead.org
Mon May 12 09:10:10 PDT 2025


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

commit 269a62b217d70514807076b98cec67931a22154b
Author: Mieczyslaw Nalewaj <namiltd at yahoo.com>
AuthorDate: Fri May 9 12:56:32 2025 +0200

    kernel: bump 6.12 to 6.12.28
    
    Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.28
    
    Removed upstreamed:
            generic/pending-6.12/691-net-ipv6-fix-UDPv6-GSO-segmentation-with-NAT.patch[1]
    
    Manually rebased:
            generic/pending-6.12/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch[2]
            generic/hack-6.12/781-usb-net-rndis-support-asr.patch[3]
    
    1. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=6effe1c0fa823d9923f3b77547f201a5bab6c1e5
    2. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=aea3ca60fafbdf0da5c930ff2f4105587deb6753
    3. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=222b6685efe0d8c1cdb078a67bbe806f56d18f94
    
    All other patches automatically rebased.
    
    Build system: x86/64
    Build-tested: x86/64
    Run-tested: x86/64
    
    Signed-off-by: Mieczyslaw Nalewaj <namiltd at yahoo.com>
    Link: https://github.com/openwrt/openwrt/pull/18756
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 ....15-net-ethernet-mediatek-add-EEE-support.patch |  4 +-
 .../linux/generic/hack-6.12/204-module_strip.patch |  8 +-
 ...t-mtk_eth_soc-add-hw-dump-for-forced-rese.patch |  4 +-
 .../hack-6.12/781-usb-net-rndis-support-asr.patch  | 10 +--
 target/linux/generic/kernel-6.12                   |  4 +-
 ...-ipv6-fix-UDPv6-GSO-segmentation-with-NAT.patch | 88 ----------------------
 ...t-mtk_eth_soc-work-around-issue-with-send.patch |  6 +-
 ...t-ethernet-mtk_eth_soc-use-napi_build_skb.patch |  4 +-
 ...t-mtk_eth_soc-add-paths-and-SerDes-modes-.patch | 51 +++++--------
 ...mtk_eth_soc-reduce-rx-ring-size-for-older.patch | 16 ++--
 ...t-mtk_eth_soc-do-not-enable-page-pool-sta.patch |  4 +-
 11 files changed, 49 insertions(+), 150 deletions(-)

diff --git a/target/linux/generic/backport-6.12/753-v6.15-net-ethernet-mediatek-add-EEE-support.patch b/target/linux/generic/backport-6.12/753-v6.15-net-ethernet-mediatek-add-EEE-support.patch
index a90a7087db..2dda8b9d03 100644
--- a/target/linux/generic/backport-6.12/753-v6.15-net-ethernet-mediatek-add-EEE-support.patch
+++ b/target/linux/generic/backport-6.12/753-v6.15-net-ethernet-mediatek-add-EEE-support.patch
@@ -15,7 +15,7 @@ Signed-off-by: Qingfang Deng <dqfext at gmail.com>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -786,6 +786,7 @@ static void mtk_mac_link_up(struct phyli
+@@ -782,6 +782,7 @@ static void mtk_mac_link_up(struct phyli
  
  	mcr = mtk_r32(mac->hw, MTK_MAC_MCR(mac->id));
  	mcr &= ~(MAC_MCR_SPEED_100 | MAC_MCR_SPEED_1000 |
@@ -23,7 +23,7 @@ Signed-off-by: Qingfang Deng <dqfext at gmail.com>
  		 MAC_MCR_FORCE_DPX | MAC_MCR_FORCE_TX_FC |
  		 MAC_MCR_FORCE_RX_FC);
  
-@@ -811,6 +812,15 @@ static void mtk_mac_link_up(struct phyli
+@@ -807,6 +808,15 @@ static void mtk_mac_link_up(struct phyli
  	if (rx_pause)
  		mcr |= MAC_MCR_FORCE_RX_FC;
  
diff --git a/target/linux/generic/hack-6.12/204-module_strip.patch b/target/linux/generic/hack-6.12/204-module_strip.patch
index 869a76de41..d999e0992c 100644
--- a/target/linux/generic/hack-6.12/204-module_strip.patch
+++ b/target/linux/generic/hack-6.12/204-module_strip.patch
@@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/include/linux/module.h
 +++ b/include/linux/module.h
-@@ -164,6 +164,7 @@ extern void cleanup_module(void);
+@@ -166,6 +166,7 @@ struct module_kobject *lookup_or_create_
  
  /* Generic info of form tag = "info" */
  #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info)
@@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  /* For userspace: you can also call me... */
  #define MODULE_ALIAS(_alias) MODULE_INFO(alias, _alias)
-@@ -239,12 +240,12 @@ extern void cleanup_module(void);
+@@ -241,12 +242,12 @@ struct module_kobject *lookup_or_create_
   * Author(s), use "Name <email>" or just "Name", for multiple
   * authors use multiple MODULE_AUTHOR() statements/lines.
   */
@@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  /* Creates an alias so file2alias.c can find device table. */
  #define MODULE_DEVICE_TABLE(type, name)					\
  extern typeof(name) __mod_##type##__##name##_device_table		\
-@@ -271,7 +272,9 @@ extern typeof(name) __mod_##type##__##na
+@@ -273,7 +274,9 @@ extern typeof(name) __mod_##type##__##na
   */
  
  #if defined(MODULE) || !defined(CONFIG_SYSFS)
@@ -49,7 +49,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #else
  #define MODULE_VERSION(_version)					\
  	MODULE_INFO(version, _version);					\
-@@ -294,7 +297,7 @@ extern typeof(name) __mod_##type##__##na
+@@ -296,7 +299,7 @@ extern typeof(name) __mod_##type##__##na
  /* Optional firmware file (or files) needed by the module
   * format is simply firmware file name.  Multiple firmware
   * files require multiple MODULE_FIRMWARE() specifiers */
diff --git a/target/linux/generic/hack-6.12/730-net-ethernet-mtk_eth_soc-add-hw-dump-for-forced-rese.patch b/target/linux/generic/hack-6.12/730-net-ethernet-mtk_eth_soc-add-hw-dump-for-forced-rese.patch
index ecba4bf718..d53794effc 100644
--- a/target/linux/generic/hack-6.12/730-net-ethernet-mtk_eth_soc-add-hw-dump-for-forced-rese.patch
+++ b/target/linux/generic/hack-6.12/730-net-ethernet-mtk_eth_soc-add-hw-dump-for-forced-rese.patch
@@ -37,7 +37,7 @@ Signed-off-by: Bo-Cun Chen <bc-bocun.chen at mediatek.com>
  		.glo_cfg	= 0x4604,
  		.rst_idx	= 0x4608,
  		.delay_irq	= 0x460c,
-@@ -3900,6 +3903,56 @@ static void mtk_set_mcr_max_rx(struct mt
+@@ -3904,6 +3907,56 @@ static void mtk_set_mcr_max_rx(struct mt
  		mtk_w32(mac->hw, mcr_new, MTK_MAC_MCR(mac->id));
  }
  
@@ -94,7 +94,7 @@ Signed-off-by: Bo-Cun Chen <bc-bocun.chen at mediatek.com>
  static void mtk_hw_reset(struct mtk_eth *eth)
  {
  	u32 val;
-@@ -4379,6 +4432,8 @@ static void mtk_pending_work(struct work
+@@ -4383,6 +4436,8 @@ static void mtk_pending_work(struct work
  	rtnl_lock();
  	set_bit(MTK_RESETTING, &eth->state);
  
diff --git a/target/linux/generic/hack-6.12/781-usb-net-rndis-support-asr.patch b/target/linux/generic/hack-6.12/781-usb-net-rndis-support-asr.patch
index d5cc7e0a7e..47339b6c22 100644
--- a/target/linux/generic/hack-6.12/781-usb-net-rndis-support-asr.patch
+++ b/target/linux/generic/hack-6.12/781-usb-net-rndis-support-asr.patch
@@ -13,7 +13,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 
 --- a/drivers/net/usb/rndis_host.c
 +++ b/drivers/net/usb/rndis_host.c
-@@ -640,6 +640,16 @@ static const struct driver_info	wwan_rnd
+@@ -630,6 +630,16 @@ static const struct driver_info	zte_rndi
  	.tx_fixup =	rndis_tx_fixup,
  };
  
@@ -30,7 +30,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  /*-------------------------------------------------------------------------*/
  
  static const struct usb_device_id	products [] = {
-@@ -676,6 +686,36 @@ static const struct usb_device_id	produc
+@@ -666,6 +676,36 @@ static const struct usb_device_id	produc
  	USB_INTERFACE_INFO(USB_CLASS_WIRELESS_CONTROLLER, 1, 3),
  	.driver_info = (unsigned long) &rndis_info,
  }, {
@@ -64,6 +64,6 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 +				      USB_CLASS_WIRELESS_CONTROLLER, 1, 3),
 +	.driver_info = (unsigned long) &asr_rndis_info,
 +}, {
- 	/* Mobile Broadband Modem, seen in Novatel Verizon USB730L and
- 	 * Telit FN990A (RNDIS)
- 	 */
+ 	/* Novatel Verizon USB730L */
+ 	USB_INTERFACE_INFO(USB_CLASS_MISC, 4, 1),
+ 	.driver_info = (unsigned long) &rndis_info,
diff --git a/target/linux/generic/kernel-6.12 b/target/linux/generic/kernel-6.12
index f17e5a1410..70a35aa2ae 100644
--- a/target/linux/generic/kernel-6.12
+++ b/target/linux/generic/kernel-6.12
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.12 = .27
-LINUX_KERNEL_HASH-6.12.27 = 8f4655a4cc7f93d72f515bbca54756de26ddaf5949790da6a17f766e3c33dc79
+LINUX_VERSION-6.12 = .28
+LINUX_KERNEL_HASH-6.12.28 = e8a099182562aecff781de72ce769461e706d97af42d740dff20eb450dd5771e
diff --git a/target/linux/generic/pending-6.12/691-net-ipv6-fix-UDPv6-GSO-segmentation-with-NAT.patch b/target/linux/generic/pending-6.12/691-net-ipv6-fix-UDPv6-GSO-segmentation-with-NAT.patch
deleted file mode 100644
index 6bbe2ca880..0000000000
--- a/target/linux/generic/pending-6.12/691-net-ipv6-fix-UDPv6-GSO-segmentation-with-NAT.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From: Felix Fietkau <nbd at nbd.name>
-Date: Sat, 26 Apr 2025 17:18:03 +0200
-Subject: [PATCH] net: ipv6: fix UDPv6 GSO segmentation with NAT
-
-If any address or port is changed, update it in all packets and recalculate
-checksum.
-
-Fixes: 9fd1ff5d2ac7 ("udp: Support UDP fraglist GRO/GSO.")
-Signed-off-by: Felix Fietkau <nbd at nbd.name>
----
-
---- a/net/ipv4/udp_offload.c
-+++ b/net/ipv4/udp_offload.c
-@@ -247,6 +247,62 @@ static struct sk_buff *__udpv4_gso_segme
- 	return segs;
- }
- 
-+static void __udpv6_gso_segment_csum(struct sk_buff *seg,
-+				     struct in6_addr *oldip,
-+				     const struct in6_addr *newip,
-+				     __be16 *oldport, __be16 newport)
-+{
-+	struct udphdr *uh = udp_hdr(seg);
-+
-+	if (ipv6_addr_equal(oldip, newip) && *oldport == newport)
-+		return;
-+
-+	if (uh->check) {
-+		inet_proto_csum_replace16(&uh->check, seg, oldip->s6_addr32,
-+					  newip->s6_addr32, true);
-+
-+		inet_proto_csum_replace2(&uh->check, seg, *oldport, newport,
-+					 false);
-+		if (!uh->check)
-+			uh->check = CSUM_MANGLED_0;
-+	}
-+
-+	*oldip = *newip;
-+	*oldport = newport;
-+}
-+
-+static struct sk_buff *__udpv6_gso_segment_list_csum(struct sk_buff *segs)
-+{
-+	const struct ipv6hdr *iph;
-+	const struct udphdr *uh;
-+	struct ipv6hdr *iph2;
-+	struct sk_buff *seg;
-+	struct udphdr *uh2;
-+
-+	seg = segs;
-+	uh = udp_hdr(seg);
-+	iph = ipv6_hdr(seg);
-+	uh2 = udp_hdr(seg->next);
-+	iph2 = ipv6_hdr(seg->next);
-+
-+	if (!(*(const u32 *)&uh->source ^ *(const u32 *)&uh2->source) &&
-+	    ipv6_addr_equal(&iph->saddr, &iph2->saddr) &&
-+	    ipv6_addr_equal(&iph->daddr, &iph2->daddr))
-+		return segs;
-+
-+	while ((seg = seg->next)) {
-+		uh2 = udp_hdr(seg);
-+		iph2 = ipv6_hdr(seg);
-+
-+		__udpv6_gso_segment_csum(seg, &iph2->saddr, &iph->saddr,
-+					 &uh2->source, uh->source);
-+		__udpv6_gso_segment_csum(seg, &iph2->daddr, &iph->daddr,
-+					 &uh2->dest, uh->dest);
-+	}
-+
-+	return segs;
-+}
-+
- static struct sk_buff *__udp_gso_segment_list(struct sk_buff *skb,
- 					      netdev_features_t features,
- 					      bool is_ipv6)
-@@ -259,7 +315,10 @@ static struct sk_buff *__udp_gso_segment
- 
- 	udp_hdr(skb)->len = htons(sizeof(struct udphdr) + mss);
- 
--	return is_ipv6 ? skb : __udpv4_gso_segment_list_csum(skb);
-+	if (is_ipv6)
-+		return __udpv6_gso_segment_list_csum(skb);
-+	else
-+		return __udpv4_gso_segment_list_csum(skb);
- }
- 
- struct sk_buff *__udp_gso_segment(struct sk_buff *gso_skb,
diff --git a/target/linux/generic/pending-6.12/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch b/target/linux/generic/pending-6.12/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch
index d1c169f055..f4b07485ea 100644
--- a/target/linux/generic/pending-6.12/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch
+++ b/target/linux/generic/pending-6.12/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch
@@ -24,7 +24,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #include <net/page_pool/helpers.h>
  
  #include "mtk_eth_soc.h"
-@@ -1611,12 +1612,28 @@ static void mtk_wake_queue(struct mtk_et
+@@ -1607,12 +1608,28 @@ static void mtk_wake_queue(struct mtk_et
  	}
  }
  
@@ -53,7 +53,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	bool gso = false;
  	int tx_num;
  
-@@ -1638,6 +1655,18 @@ static netdev_tx_t mtk_start_xmit(struct
+@@ -1634,6 +1651,18 @@ static netdev_tx_t mtk_start_xmit(struct
  		return NETDEV_TX_BUSY;
  	}
  
@@ -72,7 +72,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	/* TSO: fill MSS info in tcp checksum field */
  	if (skb_is_gso(skb)) {
  		if (skb_cow_head(skb, 0)) {
-@@ -1653,8 +1682,14 @@ static netdev_tx_t mtk_start_xmit(struct
+@@ -1649,8 +1678,14 @@ static netdev_tx_t mtk_start_xmit(struct
  		}
  	}
  
diff --git a/target/linux/generic/pending-6.12/733-01-net-ethernet-mtk_eth_soc-use-napi_build_skb.patch b/target/linux/generic/pending-6.12/733-01-net-ethernet-mtk_eth_soc-use-napi_build_skb.patch
index 249adae3f0..36c1d499d3 100644
--- a/target/linux/generic/pending-6.12/733-01-net-ethernet-mtk_eth_soc-use-napi_build_skb.patch
+++ b/target/linux/generic/pending-6.12/733-01-net-ethernet-mtk_eth_soc-use-napi_build_skb.patch
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -2155,7 +2155,7 @@ static int mtk_poll_rx(struct napi_struc
+@@ -2151,7 +2151,7 @@ static int mtk_poll_rx(struct napi_struc
  			if (ret != XDP_PASS)
  				goto skip_rx;
  
@@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  			if (unlikely(!skb)) {
  				page_pool_put_full_page(ring->page_pool,
  							page, true);
-@@ -2193,7 +2193,7 @@ static int mtk_poll_rx(struct napi_struc
+@@ -2189,7 +2189,7 @@ static int mtk_poll_rx(struct napi_struc
  			dma_unmap_single(eth->dma_dev, ((u64)trxd.rxd1 | addr64),
  					 ring->buf_size, DMA_FROM_DEVICE);
  
diff --git a/target/linux/generic/pending-6.12/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch b/target/linux/generic/pending-6.12/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch
index 5d9a1c601f..3020f57250 100644
--- a/target/linux/generic/pending-6.12/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch
+++ b/target/linux/generic/pending-6.12/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch
@@ -214,20 +214,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  #include <linux/jhash.h>
  #include <linux/bitfield.h>
  #include <net/dsa.h>
-@@ -270,12 +272,8 @@ static const char * const mtk_clks_sourc
- 	"ethwarp_wocpu2",
- 	"ethwarp_wocpu1",
- 	"ethwarp_wocpu0",
--	"top_usxgmii0_sel",
--	"top_usxgmii1_sel",
- 	"top_sgm0_sel",
- 	"top_sgm1_sel",
--	"top_xfi_phy0_xtal_sel",
--	"top_xfi_phy1_xtal_sel",
- 	"top_eth_gmii_sel",
- 	"top_eth_refck_50m_sel",
- 	"top_eth_sys_200m_sel",
-@@ -518,6 +516,30 @@ static void mtk_setup_bridge_switch(stru
+@@ -514,6 +516,30 @@ static void mtk_setup_bridge_switch(stru
  		MTK_GSW_CFG);
  }
  
@@ -258,7 +245,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  static struct phylink_pcs *mtk_mac_select_pcs(struct phylink_config *config,
  					      phy_interface_t interface)
  {
-@@ -526,6 +548,21 @@ static struct phylink_pcs *mtk_mac_selec
+@@ -522,6 +548,21 @@ static struct phylink_pcs *mtk_mac_selec
  	struct mtk_eth *eth = mac->hw;
  	unsigned int sid;
  
@@ -280,7 +267,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	if (interface == PHY_INTERFACE_MODE_SGMII ||
  	    phy_interface_mode_is_8023z(interface)) {
  		sid = (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_SGMII)) ?
-@@ -577,7 +614,22 @@ static void mtk_mac_config(struct phylin
+@@ -573,7 +614,22 @@ static void mtk_mac_config(struct phylin
  					goto init_err;
  			}
  			break;
@@ -303,7 +290,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  			break;
  		default:
  			goto err_phy;
-@@ -624,8 +676,6 @@ static void mtk_mac_config(struct phylin
+@@ -620,8 +676,6 @@ static void mtk_mac_config(struct phylin
  		val &= ~SYSCFG0_GE_MODE(SYSCFG0_GE_MASK, mac->id);
  		val |= SYSCFG0_GE_MODE(ge_mode, mac->id);
  		regmap_write(eth->ethsys, ETHSYS_SYSCFG0, val);
@@ -312,7 +299,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	}
  
  	/* SGMII */
-@@ -642,21 +692,40 @@ static void mtk_mac_config(struct phylin
+@@ -638,21 +692,40 @@ static void mtk_mac_config(struct phylin
  
  		/* Save the syscfg0 value for mac_finish */
  		mac->syscfg0 = val;
@@ -360,7 +347,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	return;
  
  err_phy:
-@@ -669,6 +738,18 @@ init_err:
+@@ -665,6 +738,18 @@ init_err:
  		mac->id, phy_modes(state->interface), err);
  }
  
@@ -379,7 +366,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  static int mtk_mac_finish(struct phylink_config *config, unsigned int mode,
  			  phy_interface_t interface)
  {
-@@ -677,6 +758,10 @@ static int mtk_mac_finish(struct phylink
+@@ -673,6 +758,10 @@ static int mtk_mac_finish(struct phylink
  	struct mtk_eth *eth = mac->hw;
  	u32 mcr_cur, mcr_new;
  
@@ -390,7 +377,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	/* Enable SGMII */
  	if (interface == PHY_INTERFACE_MODE_SGMII ||
  	    phy_interface_mode_is_8023z(interface))
-@@ -701,10 +786,14 @@ static void mtk_mac_link_down(struct phy
+@@ -697,10 +786,14 @@ static void mtk_mac_link_down(struct phy
  {
  	struct mtk_mac *mac = container_of(config, struct mtk_mac,
  					   phylink_config);
@@ -408,7 +395,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  }
  
  static void mtk_set_queue_speed(struct mtk_eth *eth, unsigned int idx,
-@@ -776,13 +865,11 @@ static void mtk_set_queue_speed(struct m
+@@ -772,13 +865,11 @@ static void mtk_set_queue_speed(struct m
  	mtk_w32(eth, val, soc->reg_map->qdma.qtx_sch + ofs);
  }
  
@@ -426,7 +413,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	u32 mcr;
  
  	mcr = mtk_r32(mac->hw, MTK_MAC_MCR(mac->id));
-@@ -826,9 +913,63 @@ static void mtk_mac_link_up(struct phyli
+@@ -822,9 +913,63 @@ static void mtk_mac_link_up(struct phyli
  	mtk_w32(mac->hw, mcr, MTK_MAC_MCR(mac->id));
  }
  
@@ -490,7 +477,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	.mac_finish = mtk_mac_finish,
  	.mac_link_down = mtk_mac_link_down,
  	.mac_link_up = mtk_mac_link_up,
-@@ -3432,6 +3573,9 @@ static int mtk_open(struct net_device *d
+@@ -3432,6 +3577,9 @@ static int mtk_open(struct net_device *d
  
  	ppe_num = eth->soc->ppe_num;
  
@@ -500,7 +487,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0);
  	if (err) {
  		netdev_err(dev, "%s: could not attach PHY: %d\n", __func__,
-@@ -3582,6 +3726,9 @@ static int mtk_stop(struct net_device *d
+@@ -3582,6 +3730,9 @@ static int mtk_stop(struct net_device *d
  	for (i = 0; i < ARRAY_SIZE(eth->ppe); i++)
  		mtk_ppe_stop(eth->ppe[i]);
  
@@ -510,7 +497,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	return 0;
  }
  
-@@ -4672,6 +4819,7 @@ static const struct net_device_ops mtk_n
+@@ -4672,6 +4823,7 @@ static const struct net_device_ops mtk_n
  static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
  {
  	const __be32 *_id = of_get_property(np, "reg", NULL);
@@ -518,7 +505,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	phy_interface_t phy_mode;
  	struct phylink *phylink;
  	struct mtk_mac *mac;
-@@ -4710,16 +4858,41 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4710,16 +4862,41 @@ static int mtk_add_mac(struct mtk_eth *e
  	mac->id = id;
  	mac->hw = eth;
  	mac->of_node = np;
@@ -568,7 +555,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	}
  
  	memset(mac->hwlro_ip, 0, sizeof(mac->hwlro_ip));
-@@ -4802,8 +4975,21 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4802,8 +4979,21 @@ static int mtk_add_mac(struct mtk_eth *e
  		phy_interface_zero(mac->phylink_config.supported_interfaces);
  		__set_bit(PHY_INTERFACE_MODE_INTERNAL,
  			  mac->phylink_config.supported_interfaces);
@@ -590,7 +577,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	phylink = phylink_create(&mac->phylink_config,
  				 of_fwnode_handle(mac->of_node),
  				 phy_mode, &mtk_phylink_ops);
-@@ -4854,6 +5040,26 @@ free_netdev:
+@@ -4854,6 +5044,26 @@ free_netdev:
  	return err;
  }
  
@@ -617,7 +604,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  void mtk_eth_set_dma_device(struct mtk_eth *eth, struct device *dma_dev)
  {
  	struct net_device *dev, *tmp;
-@@ -5000,7 +5206,8 @@ static int mtk_probe(struct platform_dev
+@@ -5000,7 +5210,8 @@ static int mtk_probe(struct platform_dev
  			regmap_write(cci, 0, 3);
  	}
  
@@ -627,7 +614,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  		err = mtk_sgmii_init(eth);
  
  		if (err)
-@@ -5111,6 +5318,24 @@ static int mtk_probe(struct platform_dev
+@@ -5111,6 +5322,24 @@ static int mtk_probe(struct platform_dev
  		}
  	}
  
@@ -652,7 +639,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT)) {
  		err = devm_request_irq(eth->dev, eth->irq[0],
  				       mtk_handle_irq, 0,
-@@ -5221,6 +5446,11 @@ static void mtk_remove(struct platform_d
+@@ -5221,6 +5450,11 @@ static void mtk_remove(struct platform_d
  		mtk_stop(eth->netdev[i]);
  		mac = netdev_priv(eth->netdev[i]);
  		phylink_disconnect_phy(mac->phylink);
diff --git a/target/linux/generic/pending-6.12/738-01-net-ethernet-mtk_eth_soc-reduce-rx-ring-size-for-older.patch b/target/linux/generic/pending-6.12/738-01-net-ethernet-mtk_eth_soc-reduce-rx-ring-size-for-older.patch
index 41bb14c147..12bb216d93 100644
--- a/target/linux/generic/pending-6.12/738-01-net-ethernet-mtk_eth_soc-reduce-rx-ring-size-for-older.patch
+++ b/target/linux/generic/pending-6.12/738-01-net-ethernet-mtk_eth_soc-reduce-rx-ring-size-for-older.patch
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -5481,7 +5481,7 @@ static const struct mtk_soc_data mt2701_
+@@ -5485,7 +5485,7 @@ static const struct mtk_soc_data mt2701_
  		.desc_size = sizeof(struct mtk_rx_dma),
  		.irq_done_mask = MTK_RX_DONE_INT,
  		.dma_l4_valid = RX_DMA_L4_VALID,
@@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		.dma_max_len = MTK_TX_DMA_BUF_LEN,
  		.dma_len_offset = 16,
  	},
-@@ -5509,7 +5509,7 @@ static const struct mtk_soc_data mt7621_
+@@ -5513,7 +5513,7 @@ static const struct mtk_soc_data mt7621_
  		.desc_size = sizeof(struct mtk_rx_dma),
  		.irq_done_mask = MTK_RX_DONE_INT,
  		.dma_l4_valid = RX_DMA_L4_VALID,
@@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		.dma_max_len = MTK_TX_DMA_BUF_LEN,
  		.dma_len_offset = 16,
  	},
-@@ -5539,7 +5539,7 @@ static const struct mtk_soc_data mt7622_
+@@ -5543,7 +5543,7 @@ static const struct mtk_soc_data mt7622_
  		.desc_size = sizeof(struct mtk_rx_dma),
  		.irq_done_mask = MTK_RX_DONE_INT,
  		.dma_l4_valid = RX_DMA_L4_VALID,
@@ -57,7 +57,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		.dma_max_len = MTK_TX_DMA_BUF_LEN,
  		.dma_len_offset = 16,
  	},
-@@ -5568,7 +5568,7 @@ static const struct mtk_soc_data mt7623_
+@@ -5572,7 +5572,7 @@ static const struct mtk_soc_data mt7623_
  		.desc_size = sizeof(struct mtk_rx_dma),
  		.irq_done_mask = MTK_RX_DONE_INT,
  		.dma_l4_valid = RX_DMA_L4_VALID,
@@ -66,7 +66,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		.dma_max_len = MTK_TX_DMA_BUF_LEN,
  		.dma_len_offset = 16,
  	},
-@@ -5594,7 +5594,7 @@ static const struct mtk_soc_data mt7629_
+@@ -5598,7 +5598,7 @@ static const struct mtk_soc_data mt7629_
  		.desc_size = sizeof(struct mtk_rx_dma),
  		.irq_done_mask = MTK_RX_DONE_INT,
  		.dma_l4_valid = RX_DMA_L4_VALID,
@@ -75,7 +75,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		.dma_max_len = MTK_TX_DMA_BUF_LEN,
  		.dma_len_offset = 16,
  	},
-@@ -5626,7 +5626,7 @@ static const struct mtk_soc_data mt7981_
+@@ -5630,7 +5630,7 @@ static const struct mtk_soc_data mt7981_
  		.dma_l4_valid = RX_DMA_L4_VALID_V2,
  		.dma_max_len = MTK_TX_DMA_BUF_LEN,
  		.dma_len_offset = 16,
@@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	},
  };
  
-@@ -5656,7 +5656,7 @@ static const struct mtk_soc_data mt7986_
+@@ -5660,7 +5660,7 @@ static const struct mtk_soc_data mt7986_
  		.dma_l4_valid = RX_DMA_L4_VALID_V2,
  		.dma_max_len = MTK_TX_DMA_BUF_LEN,
  		.dma_len_offset = 16,
@@ -93,7 +93,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	},
  };
  
-@@ -5709,7 +5709,7 @@ static const struct mtk_soc_data rt5350_
+@@ -5713,7 +5713,7 @@ static const struct mtk_soc_data rt5350_
  		.dma_l4_valid = RX_DMA_L4_VALID_PDMA,
  		.dma_max_len = MTK_TX_DMA_BUF_LEN,
  		.dma_len_offset = 16,
diff --git a/target/linux/generic/pending-6.12/738-02-net-ethernet-mtk_eth_soc-do-not-enable-page-pool-sta.patch b/target/linux/generic/pending-6.12/738-02-net-ethernet-mtk_eth_soc-do-not-enable-page-pool-sta.patch
index f67ebb350a..a8a4dafb0f 100644
--- a/target/linux/generic/pending-6.12/738-02-net-ethernet-mtk_eth_soc-do-not-enable-page-pool-sta.patch
+++ b/target/linux/generic/pending-6.12/738-02-net-ethernet-mtk_eth_soc-do-not-enable-page-pool-sta.patch
@@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	help
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -4587,6 +4587,7 @@ static int mtk_get_sset_count(struct net
+@@ -4591,6 +4591,7 @@ static int mtk_get_sset_count(struct net
  
  static void mtk_ethtool_pp_stats(struct mtk_eth *eth, u64 *data)
  {
@@ -33,7 +33,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	struct page_pool_stats stats = {};
  	int i;
  
-@@ -4599,6 +4600,7 @@ static void mtk_ethtool_pp_stats(struct
+@@ -4603,6 +4604,7 @@ static void mtk_ethtool_pp_stats(struct
  		page_pool_get_stats(ring->page_pool, &stats);
  	}
  	page_pool_ethtool_stats_get(data, &stats);




More information about the lede-commits mailing list