From 836a4cc6d3c720d08a4b6f4c39534e6d9de34379 Mon Sep 17 00:00:00 2001 From: John Audia Date: Thu, 19 Jun 2025 10:59:11 -0400 Subject: [PATCH] kernel: bump 6.6 to 6.6.94 Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.94 Removed upstreamed: generic/backport-6.6/421-01-v6.16-spi-bcm63xx-spi-fix-shared-reset.patch[1] generic/backport-6.6/421-02-v6.16-spi-bcm63xx-hsspi-fix-shared-reset.patch[2] generic/backport-6.6/725-01-v6.16-net-dsa-tag_brcm-legacy-fix-pskb_may_pull-length.patch[3] mvebu/patches-6.6/0001-v6.16-pinctrl-armada-37xx-use-correct-OUTPUT_VAL-register-.patch[4] mvebu/patches-6.6/0002-v6.16-pinctrl-armada-37xx-set-GPIO-output-value-before-set.patch[5] Added new back-port: generic/backport-6.6/001-powerpc-kernel-Fix-pcc_save_regs-inclusion.patch[6] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=29abb7fc82443bee273ba4623ce319bf7ba1d43d 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=59d5f3134b5c265df233b7f385bbe718191411be 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=2e02edb66427e3b8752e1f3dd3cfc1bef3f2357b 4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=39ed85ae485d991ffb24d25629a679c0b22e2d8f 5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.94&id=8f0f45a312151a52aae920a091ea4b454ac97caf 6. Addresses a build failure for pcc Build system: x86/64 Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64 Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64 Signed-off-by: John Audia Link: https://github.com/openwrt/openwrt/pull/19183 Signed-off-by: Hauke Mehrtens --- ...c-kernel-Fix-pcc_save_regs-inclusion.patch | 42 ++++++++++++++ ....16-spi-bcm63xx-spi-fix-shared-reset.patch | 32 ---------- ...6-spi-bcm63xx-hsspi-fix-shared-reset.patch | 32 ---------- ...ansmit-from-devices-with-no-checksum.patch | 2 +- ...-software-USO-if-IPv6-extension-head.patch | 2 +- ...kb_gro_receive_list-from-udp-to-core.patch | 2 +- ...HY-package-API-to-support-multiple-g.patch | 4 +- ...pport-for-PHY-package-MMD-read-write.patch | 2 +- ...-add-devm-of_phy_package_join-helper.patch | 2 +- ...whether-link-has-changed-in-c37_read.patch | 6 +- ...brcm-legacy-fix-pskb_may_pull-length.patch | 31 ---------- ...et-stmmac-improve-TX-timer-arm-logic.patch | 2 +- ...c-move-TX-timer-arm-after-DMA-enable.patch | 16 ++--- ...-support-for-PHY-LEDs-polarity-modes.patch | 8 +-- ...rt-active-high-property-for-PHY-LEDs.patch | 4 +- target/linux/generic/kernel-6.6 | 4 +- ...detach-callback-to-struct-phy_driver.patch | 8 +-- ...-negotiation-of-in-band-capabilities.patch | 6 +- ...7xx-use-correct-OUTPUT_VAL-register-.patch | 44 -------------- ...7xx-set-GPIO-output-value-before-set.patch | 58 ------------------- ...nclude-linux-add-phy-ops-for-rtl838x.patch | 2 +- ...genphy_c45_pma_read_ext_abilities-fu.patch | 2 +- 22 files changed, 78 insertions(+), 233 deletions(-) create mode 100644 target/linux/generic/backport-6.6/001-powerpc-kernel-Fix-pcc_save_regs-inclusion.patch delete mode 100644 target/linux/generic/backport-6.6/421-01-v6.16-spi-bcm63xx-spi-fix-shared-reset.patch delete mode 100644 target/linux/generic/backport-6.6/421-02-v6.16-spi-bcm63xx-hsspi-fix-shared-reset.patch delete mode 100644 target/linux/generic/backport-6.6/725-01-v6.16-net-dsa-tag_brcm-legacy-fix-pskb_may_pull-length.patch delete mode 100644 target/linux/mvebu/patches-6.6/0001-v6.16-pinctrl-armada-37xx-use-correct-OUTPUT_VAL-register-.patch delete mode 100644 target/linux/mvebu/patches-6.6/0002-v6.16-pinctrl-armada-37xx-set-GPIO-output-value-before-set.patch diff --git a/target/linux/generic/backport-6.6/001-powerpc-kernel-Fix-pcc_save_regs-inclusion.patch b/target/linux/generic/backport-6.6/001-powerpc-kernel-Fix-pcc_save_regs-inclusion.patch new file mode 100644 index 00000000000..3d3515f5ab7 --- /dev/null +++ b/target/linux/generic/backport-6.6/001-powerpc-kernel-Fix-pcc_save_regs-inclusion.patch @@ -0,0 +1,42 @@ +From 93bd4a80efeb521314485a06d8c21157240497bb Mon Sep 17 00:00:00 2001 +From: Madhavan Srinivasan +Date: Sun, 11 May 2025 09:41:11 +0530 +Subject: powerpc/kernel: Fix ppc_save_regs inclusion in build + +Recent patch fixed an old commit +'fc2a5a6161a2 ("powerpc/64s: ppc_save_regs is now needed for all 64s builds")' +which is to include building of ppc_save_reg.c only when XMON +and KEXEC_CORE and PPC_BOOK3S are enabled. This was valid, since +ppc_save_regs was called only in replay_system_reset() of old +irq.c which was under BOOK3S. + +But there has been multiple refactoring of irq.c and have +added call to ppc_save_regs() from __replay_soft_interrupts +-> replay_soft_interrupts which is part of irq_64.c included +under CONFIG_PPC64. And since ppc_save_regs is called in +CRASH_DUMP path as part of crash_setup_regs in kexec.h, +CONFIG_PPC32 also needs it. + +So with this recent patch which enabled the building of +ppc_save_regs.c caused a build break when none of these +(XMON, KEXEC_CORE, BOOK3S) where enabled as part of config. +Patch to enable building of ppc_save_regs.c by defaults. + +Signed-off-by: Madhavan Srinivasan +Link: https://patch.msgid.link/20250511041111.841158-1-maddy@linux.ibm.com +--- + arch/powerpc/kernel/Makefile | 2 -- + 1 file changed, 2 deletions(-) + +--- a/arch/powerpc/kernel/Makefile ++++ b/arch/powerpc/kernel/Makefile +@@ -165,9 +165,7 @@ endif + + obj64-$(CONFIG_PPC_TRANSACTIONAL_MEM) += tm.o + +-ifneq ($(CONFIG_XMON)$(CONFIG_KEXEC_CORE)$(CONFIG_PPC_BOOK3S),) + obj-y += ppc_save_regs.o +-endif + + obj-$(CONFIG_EPAPR_PARAVIRT) += epapr_paravirt.o epapr_hcalls.o + obj-$(CONFIG_KVM_GUEST) += kvm.o kvm_emul.o diff --git a/target/linux/generic/backport-6.6/421-01-v6.16-spi-bcm63xx-spi-fix-shared-reset.patch b/target/linux/generic/backport-6.6/421-01-v6.16-spi-bcm63xx-spi-fix-shared-reset.patch deleted file mode 100644 index e886350d26d..00000000000 --- a/target/linux/generic/backport-6.6/421-01-v6.16-spi-bcm63xx-spi-fix-shared-reset.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 5ad20e3d8cfe3b2e42bbddc7e0ebaa74479bb589 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= -Date: Thu, 29 May 2025 15:09:14 +0200 -Subject: [PATCH] spi: bcm63xx-spi: fix shared reset -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Some bmips SoCs (bcm6362, bcm63268) share the same SPI reset for both SPI -and HSSPI controllers, so reset shouldn't be exclusive. - -Fixes: 38807adeaf1e ("spi: bcm63xx-spi: add reset support") -Reported-by: Jonas Gorski -Signed-off-by: Álvaro Fernández Rojas -Reviewed-by: Florian Fainelli -Link: https://patch.msgid.link/20250529130915.2519590-2-noltari@gmail.com -Signed-off-by: Mark Brown ---- - drivers/spi/spi-bcm63xx.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/spi/spi-bcm63xx.c -+++ b/drivers/spi/spi-bcm63xx.c -@@ -523,7 +523,7 @@ static int bcm63xx_spi_probe(struct plat - return PTR_ERR(clk); - } - -- reset = devm_reset_control_get_optional_exclusive(dev, NULL); -+ reset = devm_reset_control_get_optional_shared(dev, NULL); - if (IS_ERR(reset)) - return PTR_ERR(reset); - diff --git a/target/linux/generic/backport-6.6/421-02-v6.16-spi-bcm63xx-hsspi-fix-shared-reset.patch b/target/linux/generic/backport-6.6/421-02-v6.16-spi-bcm63xx-hsspi-fix-shared-reset.patch deleted file mode 100644 index 3c30269d079..00000000000 --- a/target/linux/generic/backport-6.6/421-02-v6.16-spi-bcm63xx-hsspi-fix-shared-reset.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 3d6d84c8f2f66d3fd6a43a1e2ce8e6b54c573960 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= -Date: Thu, 29 May 2025 15:09:15 +0200 -Subject: [PATCH] spi: bcm63xx-hsspi: fix shared reset -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Some bmips SoCs (bcm6362, bcm63268) share the same SPI reset for both SPI -and HSSPI controllers, so reset shouldn't be exclusive. - -Fixes: 0eeadddbf09a ("spi: bcm63xx-hsspi: add reset support") -Reported-by: Jonas Gorski -Signed-off-by: Álvaro Fernández Rojas -Reviewed-by: Florian Fainelli -Link: https://patch.msgid.link/20250529130915.2519590-3-noltari@gmail.com -Signed-off-by: Mark Brown ---- - drivers/spi/spi-bcm63xx-hsspi.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/spi/spi-bcm63xx-hsspi.c -+++ b/drivers/spi/spi-bcm63xx-hsspi.c -@@ -745,7 +745,7 @@ static int bcm63xx_hsspi_probe(struct pl - if (IS_ERR(clk)) - return PTR_ERR(clk); - -- reset = devm_reset_control_get_optional_exclusive(dev, NULL); -+ reset = devm_reset_control_get_optional_shared(dev, NULL); - if (IS_ERR(reset)) - return PTR_ERR(reset); - diff --git a/target/linux/generic/backport-6.6/611-01-v6.11-udp-Allow-GSO-transmit-from-devices-with-no-checksum.patch b/target/linux/generic/backport-6.6/611-01-v6.11-udp-Allow-GSO-transmit-from-devices-with-no-checksum.patch index 4cafd27fdcd..8edbce21685 100644 --- a/target/linux/generic/backport-6.6/611-01-v6.11-udp-Allow-GSO-transmit-from-devices-with-no-checksum.patch +++ b/target/linux/generic/backport-6.6/611-01-v6.11-udp-Allow-GSO-transmit-from-devices-with-no-checksum.patch @@ -65,7 +65,7 @@ Signed-off-by: Jakub Kicinski } --- a/net/ipv4/udp_offload.c +++ b/net/ipv4/udp_offload.c -@@ -443,6 +443,14 @@ struct sk_buff *__udp_gso_segment(struct +@@ -448,6 +448,14 @@ struct sk_buff *__udp_gso_segment(struct else uh->check = gso_make_checksum(seg, ~check) ? : CSUM_MANGLED_0; diff --git a/target/linux/generic/backport-6.6/611-03-v6.11-udp-Fall-back-to-software-USO-if-IPv6-extension-head.patch b/target/linux/generic/backport-6.6/611-03-v6.11-udp-Fall-back-to-software-USO-if-IPv6-extension-head.patch index d3df5162ac6..2f75f5c3eea 100644 --- a/target/linux/generic/backport-6.6/611-03-v6.11-udp-Fall-back-to-software-USO-if-IPv6-extension-head.patch +++ b/target/linux/generic/backport-6.6/611-03-v6.11-udp-Fall-back-to-software-USO-if-IPv6-extension-head.patch @@ -71,7 +71,7 @@ Signed-off-by: Jakub Kicinski --- a/net/ipv4/udp_offload.c +++ b/net/ipv4/udp_offload.c -@@ -342,6 +342,12 @@ struct sk_buff *__udp_gso_segment(struct +@@ -343,6 +343,12 @@ struct sk_buff *__udp_gso_segment(struct !(skb_shinfo(gso_skb)->gso_type & SKB_GSO_FRAGLIST))) return ERR_PTR(-EINVAL); diff --git a/target/linux/generic/backport-6.6/621-v6.10-01-net-move-skb_gro_receive_list-from-udp-to-core.patch b/target/linux/generic/backport-6.6/621-v6.10-01-net-move-skb_gro_receive_list-from-udp-to-core.patch index 3904662d1a7..b2c45c1397a 100644 --- a/target/linux/generic/backport-6.6/621-v6.10-01-net-move-skb_gro_receive_list-from-udp-to-core.patch +++ b/target/linux/generic/backport-6.6/621-v6.10-01-net-move-skb_gro_receive_list-from-udp-to-core.patch @@ -65,7 +65,7 @@ Signed-off-by: Paolo Abeni { --- a/net/ipv4/udp_offload.c +++ b/net/ipv4/udp_offload.c -@@ -533,33 +533,6 @@ out: +@@ -538,33 +538,6 @@ out: return segs; } diff --git a/target/linux/generic/backport-6.6/714-v6.8-02-net-phy-extend-PHY-package-API-to-support-multiple-g.patch b/target/linux/generic/backport-6.6/714-v6.8-02-net-phy-extend-PHY-package-API-to-support-multiple-g.patch index 68f855283ee..e7e3c8c75f6 100644 --- a/target/linux/generic/backport-6.6/714-v6.8-02-net-phy-extend-PHY-package-API-to-support-multiple-g.patch +++ b/target/linux/generic/backport-6.6/714-v6.8-02-net-phy-extend-PHY-package-API-to-support-multiple-g.patch @@ -242,7 +242,7 @@ Signed-off-by: David S. Miller refcount_t refcnt; unsigned long flags; size_t priv_size; -@@ -1969,10 +1970,10 @@ int phy_ethtool_get_link_ksettings(struc +@@ -1966,10 +1967,10 @@ int phy_ethtool_get_link_ksettings(struc int phy_ethtool_set_link_ksettings(struct net_device *ndev, const struct ethtool_link_ksettings *cmd); int phy_ethtool_nway_reset(struct net_device *ndev); @@ -255,7 +255,7 @@ Signed-off-by: David S. Miller int __init mdio_bus_init(void); void mdio_bus_exit(void); -@@ -1995,46 +1996,65 @@ int __phy_hwtstamp_set(struct phy_device +@@ -1992,46 +1993,65 @@ int __phy_hwtstamp_set(struct phy_device struct kernel_hwtstamp_config *config, struct netlink_ext_ack *extack); diff --git a/target/linux/generic/backport-6.6/714-v6.8-04-net-phy-add-support-for-PHY-package-MMD-read-write.patch b/target/linux/generic/backport-6.6/714-v6.8-04-net-phy-add-support-for-PHY-package-MMD-read-write.patch index c20d2ec0c01..d42da1b71fe 100644 --- a/target/linux/generic/backport-6.6/714-v6.8-04-net-phy-add-support-for-PHY-package-MMD-read-write.patch +++ b/target/linux/generic/backport-6.6/714-v6.8-04-net-phy-add-support-for-PHY-package-MMD-read-write.patch @@ -171,7 +171,7 @@ Signed-off-by: David S. Miller * @regnum: register number to modify --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -2057,6 +2057,22 @@ static inline int __phy_package_write(st +@@ -2054,6 +2054,22 @@ static inline int __phy_package_write(st return __mdiobus_write(phydev->mdio.bus, addr, regnum, val); } diff --git a/target/linux/generic/backport-6.6/716-v6.9-03-net-phy-add-devm-of_phy_package_join-helper.patch b/target/linux/generic/backport-6.6/716-v6.9-03-net-phy-add-devm-of_phy_package_join-helper.patch index 25f6c5ccdad..1fdd91497b2 100644 --- a/target/linux/generic/backport-6.6/716-v6.9-03-net-phy-add-devm-of_phy_package_join-helper.patch +++ b/target/linux/generic/backport-6.6/716-v6.9-03-net-phy-add-devm-of_phy_package_join-helper.patch @@ -170,7 +170,7 @@ Signed-off-by: David S. Miller refcount_t refcnt; unsigned long flags; size_t priv_size; -@@ -1971,9 +1974,12 @@ int phy_ethtool_set_link_ksettings(struc +@@ -1968,9 +1971,12 @@ int phy_ethtool_set_link_ksettings(struc const struct ethtool_link_ksettings *cmd); int phy_ethtool_nway_reset(struct net_device *ndev); int phy_package_join(struct phy_device *phydev, int base_addr, size_t priv_size); diff --git a/target/linux/generic/backport-6.6/716-v6.9-06-net-phy-provide-whether-link-has-changed-in-c37_read.patch b/target/linux/generic/backport-6.6/716-v6.9-06-net-phy-provide-whether-link-has-changed-in-c37_read.patch index a96b9f1b666..4bb44b921d4 100644 --- a/target/linux/generic/backport-6.6/716-v6.9-06-net-phy-provide-whether-link-has-changed-in-c37_read.patch +++ b/target/linux/generic/backport-6.6/716-v6.9-06-net-phy-provide-whether-link-has-changed-in-c37_read.patch @@ -41,7 +41,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -2615,12 +2615,15 @@ EXPORT_SYMBOL(genphy_read_status); +@@ -2617,12 +2617,15 @@ EXPORT_SYMBOL(genphy_read_status); /** * genphy_c37_read_status - check the link status and update current link state * @phydev: target phy_device struct @@ -58,7 +58,7 @@ Signed-off-by: David S. Miller { int lpa, err, old_link = phydev->link; -@@ -2630,9 +2633,13 @@ int genphy_c37_read_status(struct phy_de +@@ -2632,9 +2635,13 @@ int genphy_c37_read_status(struct phy_de return err; /* why bother the PHY if nothing can have changed */ @@ -89,7 +89,7 @@ Signed-off-by: David S. Miller } --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -1849,7 +1849,7 @@ int genphy_write_mmd_unsupported(struct +@@ -1846,7 +1846,7 @@ int genphy_write_mmd_unsupported(struct /* Clause 37 */ int genphy_c37_config_aneg(struct phy_device *phydev); diff --git a/target/linux/generic/backport-6.6/725-01-v6.16-net-dsa-tag_brcm-legacy-fix-pskb_may_pull-length.patch b/target/linux/generic/backport-6.6/725-01-v6.16-net-dsa-tag_brcm-legacy-fix-pskb_may_pull-length.patch deleted file mode 100644 index 9fa88d2d3f9..00000000000 --- a/target/linux/generic/backport-6.6/725-01-v6.16-net-dsa-tag_brcm-legacy-fix-pskb_may_pull-length.patch +++ /dev/null @@ -1,31 +0,0 @@ -From efdddc4484859082da6c7877ed144c8121c8ea55 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= -Date: Thu, 29 May 2025 14:44:06 +0200 -Subject: [PATCH] net: dsa: tag_brcm: legacy: fix pskb_may_pull length -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -BRCM_LEG_PORT_ID was incorrectly used for pskb_may_pull length. -The correct check is BRCM_LEG_TAG_LEN + VLAN_HLEN, or 10 bytes. - -Fixes: 964dbf186eaa ("net: dsa: tag_brcm: add support for legacy tags") -Signed-off-by: Álvaro Fernández Rojas -Reviewed-by: Florian Fainelli -Link: https://patch.msgid.link/20250529124406.2513779-1-noltari@gmail.com -Signed-off-by: Jakub Kicinski ---- - net/dsa/tag_brcm.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/net/dsa/tag_brcm.c -+++ b/net/dsa/tag_brcm.c -@@ -257,7 +257,7 @@ static struct sk_buff *brcm_leg_tag_rcv( - int source_port; - u8 *brcm_tag; - -- if (unlikely(!pskb_may_pull(skb, BRCM_LEG_PORT_ID))) -+ if (unlikely(!pskb_may_pull(skb, BRCM_LEG_TAG_LEN + VLAN_HLEN))) - return NULL; - - brcm_tag = dsa_etype_header_pos_rx(skb); diff --git a/target/linux/generic/backport-6.6/771-v6.7-01-net-stmmac-improve-TX-timer-arm-logic.patch b/target/linux/generic/backport-6.6/771-v6.7-01-net-stmmac-improve-TX-timer-arm-logic.patch index a7da409aeb7..38907ed0513 100644 --- a/target/linux/generic/backport-6.6/771-v6.7-01-net-stmmac-improve-TX-timer-arm-logic.patch +++ b/target/linux/generic/backport-6.6/771-v6.7-01-net-stmmac-improve-TX-timer-arm-logic.patch @@ -46,7 +46,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c -@@ -2988,13 +2988,25 @@ static void stmmac_tx_timer_arm(struct s +@@ -2993,13 +2993,25 @@ static void stmmac_tx_timer_arm(struct s { struct stmmac_tx_queue *tx_q = &priv->dma_conf.tx_queue[queue]; u32 tx_coal_timer = priv->tx_coal_timer[queue]; diff --git a/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch b/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch index c1f2fa9589a..c9fb4c17c20 100644 --- a/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch +++ b/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch @@ -18,7 +18,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c -@@ -2536,9 +2536,13 @@ static void stmmac_bump_dma_threshold(st +@@ -2541,9 +2541,13 @@ static void stmmac_bump_dma_threshold(st * @priv: driver private structure * @budget: napi budget limiting this functions packet handling * @queue: TX queue index @@ -33,7 +33,7 @@ Signed-off-by: Paolo Abeni { struct stmmac_tx_queue *tx_q = &priv->dma_conf.tx_queue[queue]; struct stmmac_txq_stats *txq_stats = &priv->xstats.txq_stats[queue]; -@@ -2698,7 +2702,7 @@ static int stmmac_tx_clean(struct stmmac +@@ -2703,7 +2707,7 @@ static int stmmac_tx_clean(struct stmmac /* We still have pending packets, let's call for a new scheduling */ if (tx_q->dirty_tx != tx_q->cur_tx) @@ -42,7 +42,7 @@ Signed-off-by: Paolo Abeni u64_stats_update_begin(&txq_stats->napi_syncp); u64_stats_add(&txq_stats->napi.tx_packets, tx_packets); -@@ -5604,6 +5608,7 @@ static int stmmac_napi_poll_tx(struct na +@@ -5609,6 +5613,7 @@ static int stmmac_napi_poll_tx(struct na container_of(napi, struct stmmac_channel, tx_napi); struct stmmac_priv *priv = ch->priv_data; struct stmmac_txq_stats *txq_stats; @@ -50,7 +50,7 @@ Signed-off-by: Paolo Abeni u32 chan = ch->index; int work_done; -@@ -5612,7 +5617,7 @@ static int stmmac_napi_poll_tx(struct na +@@ -5617,7 +5622,7 @@ static int stmmac_napi_poll_tx(struct na u64_stats_inc(&txq_stats->napi.poll); u64_stats_update_end(&txq_stats->napi_syncp); @@ -59,7 +59,7 @@ Signed-off-by: Paolo Abeni work_done = min(work_done, budget); if (work_done < budget && napi_complete_done(napi, work_done)) { -@@ -5623,6 +5628,10 @@ static int stmmac_napi_poll_tx(struct na +@@ -5628,6 +5633,10 @@ static int stmmac_napi_poll_tx(struct na spin_unlock_irqrestore(&ch->lock, flags); } @@ -70,7 +70,7 @@ Signed-off-by: Paolo Abeni return work_done; } -@@ -5631,6 +5640,7 @@ static int stmmac_napi_poll_rxtx(struct +@@ -5636,6 +5645,7 @@ static int stmmac_napi_poll_rxtx(struct struct stmmac_channel *ch = container_of(napi, struct stmmac_channel, rxtx_napi); struct stmmac_priv *priv = ch->priv_data; @@ -78,7 +78,7 @@ Signed-off-by: Paolo Abeni int rx_done, tx_done, rxtx_done; struct stmmac_rxq_stats *rxq_stats; struct stmmac_txq_stats *txq_stats; -@@ -5646,7 +5656,7 @@ static int stmmac_napi_poll_rxtx(struct +@@ -5651,7 +5661,7 @@ static int stmmac_napi_poll_rxtx(struct u64_stats_inc(&txq_stats->napi.poll); u64_stats_update_end(&txq_stats->napi_syncp); @@ -87,7 +87,7 @@ Signed-off-by: Paolo Abeni tx_done = min(tx_done, budget); rx_done = stmmac_rx_zc(priv, budget, chan); -@@ -5671,6 +5681,10 @@ static int stmmac_napi_poll_rxtx(struct +@@ -5676,6 +5686,10 @@ static int stmmac_napi_poll_rxtx(struct spin_unlock_irqrestore(&ch->lock, flags); } diff --git a/target/linux/generic/backport-6.6/835-v6.9-net-phy-add-support-for-PHY-LEDs-polarity-modes.patch b/target/linux/generic/backport-6.6/835-v6.9-net-phy-add-support-for-PHY-LEDs-polarity-modes.patch index 1fe0e3f890c..54932436c74 100644 --- a/target/linux/generic/backport-6.6/835-v6.9-net-phy-add-support-for-PHY-LEDs-polarity-modes.patch +++ b/target/linux/generic/backport-6.6/835-v6.9-net-phy-add-support-for-PHY-LEDs-polarity-modes.patch @@ -28,7 +28,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -3202,6 +3202,7 @@ static int of_phy_led(struct phy_device +@@ -3204,6 +3204,7 @@ static int of_phy_led(struct phy_device struct device *dev = &phydev->mdio.dev; struct led_init_data init_data = {}; struct led_classdev *cdev; @@ -36,7 +36,7 @@ Signed-off-by: Jakub Kicinski struct phy_led *phyled; u32 index; int err; -@@ -3219,6 +3220,21 @@ static int of_phy_led(struct phy_device +@@ -3221,6 +3222,21 @@ static int of_phy_led(struct phy_device if (index > U8_MAX) return -EINVAL; @@ -60,7 +60,7 @@ Signed-off-by: Jakub Kicinski cdev->brightness_set_blocking = phy_led_set_brightness; --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -870,6 +870,15 @@ struct phy_led { +@@ -867,6 +867,15 @@ struct phy_led { #define to_phy_led(d) container_of(d, struct phy_led, led_cdev) @@ -76,7 +76,7 @@ Signed-off-by: Jakub Kicinski /** * struct phy_driver - Driver structure for a particular PHY type * -@@ -1146,6 +1155,19 @@ struct phy_driver { +@@ -1143,6 +1152,19 @@ struct phy_driver { int (*led_hw_control_get)(struct phy_device *dev, u8 index, unsigned long *rules); diff --git a/target/linux/generic/backport-6.6/841-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch b/target/linux/generic/backport-6.6/841-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch index 729a3156233..3d8a15bd1e0 100644 --- a/target/linux/generic/backport-6.6/841-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch +++ b/target/linux/generic/backport-6.6/841-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch @@ -19,7 +19,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -3220,11 +3220,17 @@ static int of_phy_led(struct phy_device +@@ -3222,11 +3222,17 @@ static int of_phy_led(struct phy_device if (index > U8_MAX) return -EINVAL; @@ -39,7 +39,7 @@ Signed-off-by: Paolo Abeni if (!phydev->drv->led_polarity_set) --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -872,8 +872,9 @@ struct phy_led { +@@ -869,8 +869,9 @@ struct phy_led { /* Modes for PHY LED configuration */ enum phy_led_modes { diff --git a/target/linux/generic/kernel-6.6 b/target/linux/generic/kernel-6.6 index c39b5c102aa..a2e954d0020 100644 --- a/target/linux/generic/kernel-6.6 +++ b/target/linux/generic/kernel-6.6 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.6 = .93 -LINUX_KERNEL_HASH-6.6.93 = 0d79ff359635e9f009f1e330deed5f3aefd8c452b80660bffdc504b877797719 +LINUX_VERSION-6.6 = .94 +LINUX_KERNEL_HASH-6.6.94 = 713981ea26b20b476ba4ce880b76b21294576788d5db1c2188b167bcb06ecc56 diff --git a/target/linux/generic/pending-6.6/703-phy-add-detach-callback-to-struct-phy_driver.patch b/target/linux/generic/pending-6.6/703-phy-add-detach-callback-to-struct-phy_driver.patch index a556a9cc407..453abe65c64 100644 --- a/target/linux/generic/pending-6.6/703-phy-add-detach-callback-to-struct-phy_driver.patch +++ b/target/linux/generic/pending-6.6/703-phy-add-detach-callback-to-struct-phy_driver.patch @@ -11,9 +11,9 @@ Signed-off-by: Gabor Juhos --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -1910,6 +1910,9 @@ void phy_detach(struct phy_device *phyde - if (phydev->devlink) - device_link_del(phydev->devlink); +@@ -1912,6 +1912,9 @@ void phy_detach(struct phy_device *phyde + phydev->devlink = NULL; + } + if (phydev->drv && phydev->drv->detach) + phydev->drv->detach(phydev); @@ -23,7 +23,7 @@ Signed-off-by: Gabor Juhos sysfs_remove_link(&dev->dev.kobj, "phydev"); --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -980,6 +980,12 @@ struct phy_driver { +@@ -977,6 +977,12 @@ struct phy_driver { /** @handle_interrupt: Override default interrupt handling */ irqreturn_t (*handle_interrupt)(struct phy_device *phydev); diff --git a/target/linux/mediatek/patches-6.6/739-net-add-negotiation-of-in-band-capabilities.patch b/target/linux/mediatek/patches-6.6/739-net-add-negotiation-of-in-band-capabilities.patch index 44a6aad7f53..b0c78979451 100644 --- a/target/linux/mediatek/patches-6.6/739-net-add-negotiation-of-in-band-capabilities.patch +++ b/target/linux/mediatek/patches-6.6/739-net-add-negotiation-of-in-band-capabilities.patch @@ -826,7 +826,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 { +@@ -797,6 +797,24 @@ struct phy_tdr_config { #define PHY_PAIR_ALL -1 /** @@ -851,7 +851,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 { +@@ -936,6 +954,19 @@ struct phy_driver { int (*get_features)(struct phy_device *phydev); /** @@ -871,7 +871,7 @@ 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) +@@ -1771,6 +1802,9 @@ void phy_stop(struct phy_device *phydev) int phy_config_aneg(struct phy_device *phydev); int phy_start_aneg(struct phy_device *phydev); int phy_aneg_done(struct phy_device *phydev); diff --git a/target/linux/mvebu/patches-6.6/0001-v6.16-pinctrl-armada-37xx-use-correct-OUTPUT_VAL-register-.patch b/target/linux/mvebu/patches-6.6/0001-v6.16-pinctrl-armada-37xx-use-correct-OUTPUT_VAL-register-.patch deleted file mode 100644 index 0d594a20bf1..00000000000 --- a/target/linux/mvebu/patches-6.6/0001-v6.16-pinctrl-armada-37xx-use-correct-OUTPUT_VAL-register-.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 947c93eb29c2a581c0b0b6d5f21af3c2b7ff6d25 Mon Sep 17 00:00:00 2001 -From: Gabor Juhos -Date: Wed, 14 May 2025 21:18:32 +0200 -Subject: [PATCH 1/7] pinctrl: armada-37xx: use correct OUTPUT_VAL register for - GPIOs > 31 - -The controller has two consecutive OUTPUT_VAL registers and both -holds output value for 32 GPIOs. Due to a missing adjustment, the -current code always uses the first register while setting the -output value whereas it should use the second one for GPIOs > 31. - -Add the missing armada_37xx_update_reg() call to adjust the register -according to the 'offset' parameter of the function to fix the issue. - -Cc: stable@vger.kernel.org -Fixes: 6702abb3bf23 ("pinctrl: armada-37xx: Fix direction_output() callback behavior") -Signed-off-by: Imre Kaloz -Reviewed-by: Andrew Lunn -Signed-off-by: Gabor Juhos -Link: https://lore.kernel.org/20250514-pinctrl-a37xx-fixes-v2-1-07e9ac1ab737@gmail.com -Signed-off-by: Linus Walleij ---- - drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c -+++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c -@@ -417,6 +417,7 @@ static int armada_37xx_gpio_direction_ou - unsigned int offset, int value) - { - struct armada_37xx_pinctrl *info = gpiochip_get_data(chip); -+ unsigned int val_offset = offset; - unsigned int reg = OUTPUT_EN; - unsigned int mask, val, ret; - -@@ -429,6 +430,8 @@ static int armada_37xx_gpio_direction_ou - return ret; - - reg = OUTPUT_VAL; -+ armada_37xx_update_reg(®, &val_offset); -+ - val = value ? mask : 0; - regmap_update_bits(info->regmap, reg, mask, val); - diff --git a/target/linux/mvebu/patches-6.6/0002-v6.16-pinctrl-armada-37xx-set-GPIO-output-value-before-set.patch b/target/linux/mvebu/patches-6.6/0002-v6.16-pinctrl-armada-37xx-set-GPIO-output-value-before-set.patch deleted file mode 100644 index 02f42c03246..00000000000 --- a/target/linux/mvebu/patches-6.6/0002-v6.16-pinctrl-armada-37xx-set-GPIO-output-value-before-set.patch +++ /dev/null @@ -1,58 +0,0 @@ -From e6ebd4942981f8ad37189bbb36a3c8495e21ef4c Mon Sep 17 00:00:00 2001 -From: Gabor Juhos -Date: Wed, 14 May 2025 21:18:33 +0200 -Subject: [PATCH 2/7] pinctrl: armada-37xx: set GPIO output value before - setting direction - -Changing the direction before updating the output value in the -OUTPUT_VAL register may result in a glitch on the output line -if the previous value in the OUTPUT_VAL register is different -from the one we want to set. - -In order to avoid that, update the output value before changing -the direction. - -Cc: stable@vger.kernel.org -Fixes: 6702abb3bf23 ("pinctrl: armada-37xx: Fix direction_output() callback behavior") -Signed-off-by: Imre Kaloz -Reviewed-by: Andrew Lunn -Signed-off-by: Gabor Juhos -Link: https://lore.kernel.org/20250514-pinctrl-a37xx-fixes-v2-2-07e9ac1ab737@gmail.com -Signed-off-by: Linus Walleij ---- - drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 15 +++++++-------- - 1 file changed, 7 insertions(+), 8 deletions(-) - ---- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c -+++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c -@@ -417,23 +417,22 @@ static int armada_37xx_gpio_direction_ou - unsigned int offset, int value) - { - struct armada_37xx_pinctrl *info = gpiochip_get_data(chip); -- unsigned int val_offset = offset; -- unsigned int reg = OUTPUT_EN; -+ unsigned int en_offset = offset; -+ unsigned int reg = OUTPUT_VAL; - unsigned int mask, val, ret; - - armada_37xx_update_reg(®, &offset); - mask = BIT(offset); -+ val = value ? mask : 0; - -- ret = regmap_update_bits(info->regmap, reg, mask, mask); -- -+ ret = regmap_update_bits(info->regmap, reg, mask, val); - if (ret) - return ret; - -- reg = OUTPUT_VAL; -- armada_37xx_update_reg(®, &val_offset); -+ reg = OUTPUT_EN; -+ armada_37xx_update_reg(®, &en_offset); - -- val = value ? mask : 0; -- regmap_update_bits(info->regmap, reg, mask, val); -+ regmap_update_bits(info->regmap, reg, mask, mask); - - return 0; - } diff --git a/target/linux/realtek/patches-6.6/706-include-linux-add-phy-ops-for-rtl838x.patch b/target/linux/realtek/patches-6.6/706-include-linux-add-phy-ops-for-rtl838x.patch index 3404d55ed3c..94a7369f573 100644 --- a/target/linux/realtek/patches-6.6/706-include-linux-add-phy-ops-for-rtl838x.patch +++ b/target/linux/realtek/patches-6.6/706-include-linux-add-phy-ops-for-rtl838x.patch @@ -21,7 +21,7 @@ Submitted-by: John Crispin --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -1181,6 +1181,8 @@ struct phy_driver { +@@ -1178,6 +1178,8 @@ struct phy_driver { */ int (*led_polarity_set)(struct phy_device *dev, int index, unsigned long modes); diff --git a/target/linux/siflower/patches-6.6/001-net-phy-c45-add-genphy_c45_pma_read_ext_abilities-fu.patch b/target/linux/siflower/patches-6.6/001-net-phy-c45-add-genphy_c45_pma_read_ext_abilities-fu.patch index 37c7f150809..55532bb5e52 100644 --- a/target/linux/siflower/patches-6.6/001-net-phy-c45-add-genphy_c45_pma_read_ext_abilities-fu.patch +++ b/target/linux/siflower/patches-6.6/001-net-phy-c45-add-genphy_c45_pma_read_ext_abilities-fu.patch @@ -170,7 +170,7 @@ Signed-off-by: Jakub Kicinski /* This is optional functionality. If not supported, we may get an error --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -1896,6 +1896,7 @@ int genphy_c45_an_config_aneg(struct phy +@@ -1893,6 +1893,7 @@ int genphy_c45_an_config_aneg(struct phy int genphy_c45_an_disable_aneg(struct phy_device *phydev); int genphy_c45_read_mdix(struct phy_device *phydev); int genphy_c45_pma_read_abilities(struct phy_device *phydev); -- 2.47.2