From 269a62b217d70514807076b98cec67931a22154b Mon Sep 17 00:00:00 2001 From: Mieczyslaw Nalewaj Date: Fri, 9 May 2025 12:56:32 +0200 Subject: [PATCH] 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 Link: https://github.com/openwrt/openwrt/pull/18756 Signed-off-by: Robert Marko --- ...et-ethernet-mediatek-add-EEE-support.patch | 4 +- .../generic/hack-6.12/204-module_strip.patch | 8 +- ..._eth_soc-add-hw-dump-for-forced-rese.patch | 4 +- .../781-usb-net-rndis-support-asr.patch | 10 +-- target/linux/generic/kernel-6.12 | 4 +- ...-fix-UDPv6-GSO-segmentation-with-NAT.patch | 88 ------------------- ..._eth_soc-work-around-issue-with-send.patch | 6 +- ...ernet-mtk_eth_soc-use-napi_build_skb.patch | 4 +- ..._eth_soc-add-paths-and-SerDes-modes-.patch | 51 ++++------- ...th_soc-reduce-rx-ring-size-for-older.patch | 16 ++-- ..._eth_soc-do-not-enable-page-pool-sta.patch | 4 +- 11 files changed, 49 insertions(+), 150 deletions(-) delete mode 100644 target/linux/generic/pending-6.12/691-net-ipv6-fix-UDPv6-GSO-segmentation-with-NAT.patch 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 a90a7087db4..2dda8b9d032 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 --- 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 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 869a76de41b..d999e0992c6 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 --- 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 /* 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 " or just "Name", for multiple * authors use multiple MODULE_AUTHOR() statements/lines. */ @@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau /* 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 #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 ecba4bf7180..d53794effce 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 .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 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, ð->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 d5cc7e0a7ef..47339b6c22f 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 --- 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 /*-------------------------------------------------------------------------*/ 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 + 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 f17e5a14105..70a35aa2aef 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 6bbe2ca880e..00000000000 --- 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 -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 ---- - ---- 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 d1c169f0553..f4b07485ea2 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 #include #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 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 /* 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 249adae3f02..36c1d499d33 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 --- 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 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 5d9a1c601fd..3020f57250c 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 #include #include #include -@@ -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 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 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 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 } /* 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 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 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 /* 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 } 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 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 .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 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 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 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 } 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 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 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 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 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 41bb14c147a..12bb216d931 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 --- 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 .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 .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 .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 .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 .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 }, }; -@@ -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 }, }; -@@ -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 f67ebb350af..a8a4dafb0f7 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 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 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); -- 2.47.2