From 12d27e860bd950a6759dca8a11ec2ae2cd0a3a8b Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Sat, 3 Oct 2026 19:53:00 +0800 Subject: [PATCH] kernel: bump 6.12 to 6.12.112 Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.112 Upstream merged patches: - microchipsw/patches-6.12/0087-v6.17-dmaengine-Add-devm_dma_request_chan.patch[1] Manually rebased patches: - generic/backport-6.12/720-05-v6.13-net-phy-mediatek-Move-LED-helper-functions-into-mtk-.patch[2] - generic/pending-6.12/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch[3] - qualcommax/patches-6.12/0185-firmware-qcom_scm-ipq5332-add-support-to-pass-metadata-size.patch[4] - qualcommax/patches-6.12/0803-firmware-qcom_scm-ipq5332-add-msa-lock-unlock-suppor.patch[4] - qualcommax/patches-6.12/0811-firmware-qcom_scm-support-MPD.patch[4] All other patches are automatically refreshed. [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=325ee501c55bd4c5a1f0fb283e7d37a1fcc0c04e [2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=298fddcfd19422cb09861051ff8f8755e15a1372 [3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=8274cdc5f9c57e17ed77fc4ba76212536c840f25 [4] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=7265be88c6569c151dec5dbe7298f84be3fab0a6 Signed-off-by: Shiji Yang Link: https://github.com/openwrt/openwrt/pull/25553 (cherry picked from commit fc4c9e6ff722029993ab937681ba7e9c18680c48) Link: https://github.com/openwrt/openwrt/pull/25502 Signed-off-by: Hauke Mehrtens --- ...or-host-controllers-that-don-t-updat.patch | 2 +- ...Better-coalescing-parameter-defaults.patch | 6 +- ...ce-quirks-for-Freeway-Airmouse-T3-an.patch | 4 +- ...t-Workaround-2-for-Pi4-Ethernet-fail.patch | 2 +- ...m-fan-Add-fan-speed-register-support.patch | 14 ++-- ...et-bcmgenet-Add-eee-module-parameter.patch | 2 +- ...-quirks-add-link-TRB-quirk-for-VL805.patch | 2 +- ...b-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch | 2 +- ...5-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch | 4 +- ...-net-macb-Also-set-DMA-coherent-mask.patch | 24 +++--- ...wc3-Set-DMA-and-coherent-masks-early.patch | 4 +- ...ok-up-preferred-fbdev-node-number-fr.patch | 4 +- ...step_wise-add-support-for-hysteresis.patch | 2 +- ...-add-FS-LS-bus-instance-parkmode-dis.patch | 4 +- ...d-support-for-setting-NAK-enhancemen.patch | 4 +- ...port-for-Raspberry-Pi-RP1-ethernet-c.patch | 4 +- ...pp2-implement-pcs_inband_caps-method.patch | 4 +- ...phy-mediatek-ge-soc-Fix-coding-style.patch | 2 +- ...-ge-soc-Shrink-line-wrapping-to-80-c.patch | 4 +- ...-Move-LED-helper-functions-into-mtk-.patch | 60 ++++++++------ ...-Improve-readability-of-mtk-phy-lib..patch | 2 +- ...et-ethernet-mediatek-add-EEE-support.patch | 6 +- ...y-to-free-deferred-skbs-while-waitin.patch | 4 +- ...-netfilter-add-xt_FLOWOFFLOAD-target.patch | 4 +- ...t-size-the-hashtable-more-adequately.patch | 2 +- .../721-net-add-packet-mangeling.patch | 4 +- .../generic/hack-6.12/902-debloat_proc.patch | 2 +- .../hack-6.12/904-debloat_dma_buf.patch | 2 +- target/linux/generic/kernel-6.12 | 4 +- ...ge_allow_receiption_on_disabled_port.patch | 2 +- .../pending-6.12/630-packet_socket_type.patch | 6 +- .../pending-6.12/655-increase_skb_pad.patch | 2 +- ...ng-with-source-address-failed-policy.patch | 24 +++--- ..._F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch | 4 +- ...ow_offload-handle-netdevice-events-f.patch | 8 +- ...les-ignore-EOPNOTSUPP-on-flowtable-d.patch | 2 +- ...net-mtk_eth_soc-enable-threaded-NAPI.patch | 2 +- ...d-knob-for-filtering-rx-tx-BPDU-pack.patch | 8 +- ..._eth_soc-optimize-dma-ring-address-i.patch | 20 ++--- ..._eth_soc-add-paths-and-SerDes-modes-.patch | 14 ++-- ...th_soc-reduce-rx-ring-size-for-older.patch | 16 ++-- ..._eth_soc-do-not-enable-page-pool-sta.patch | 4 +- ...e-single-creation-of-sysfs-entry-for.patch | 2 +- .../pending-6.12/920-mangle_bootargs.patch | 4 +- ...dsa-add-out-of-band-tagging-protocol.patch | 2 +- .../999-atm-mpoa-intel-dsl-phy-support.patch | 2 +- ...-support-for-ATAGs-rootblock-parsing.patch | 2 +- .../001-MIPS-lantiq-add-pcie-driver.patch | 2 +- ...ernet-mtk_eth_soc-add-mt7987-support.patch | 4 +- ...-dmaengine-Add-devm_dma_request_chan.patch | 81 ------------------- ...Mangle-bootloader-s-kernel-arguments.patch | 2 +- ...step_wise-add-support-for-hysteresis.patch | 2 +- ...01-mvpp2-read-mac-address-from-nvmem.patch | 2 +- .../000-fix-octeon-kernel-build.patch | 2 +- ...32-add-support-to-pass-metadata-size.patch | 10 +-- ...m-ipq5332-add-msa-lock-unlock-suppor.patch | 10 +-- .../0811-firmware-qcom_scm-support-MPD.patch | 10 +-- ...dwmac-rk-Add-GMAC-support-for-RK3528.patch | 2 +- ...dd-integrated_phy_powerdown-operatio.patch | 2 +- 59 files changed, 185 insertions(+), 252 deletions(-) delete mode 100644 target/linux/microchipsw/patches-6.12/0087-v6.17-dmaengine-Add-devm_dma_request_chan.patch diff --git a/target/linux/bcm27xx/patches-6.12/950-0006-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch b/target/linux/bcm27xx/patches-6.12/950-0006-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch index 22c5534188b..072c688e3c7 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0006-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0006-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch @@ -31,7 +31,7 @@ Signed-off-by: Greg Kroah-Hartman --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -453,6 +453,7 @@ static void xhci_pci_quirks(struct devic +@@ -452,6 +452,7 @@ static void xhci_pci_quirks(struct devic if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == PCI_DEVICE_ID_VIA_VL805) { xhci->quirks |= XHCI_LPM_SUPPORT; xhci->quirks |= XHCI_TRB_OVERFETCH; diff --git a/target/linux/bcm27xx/patches-6.12/950-0122-bcmgenet-Better-coalescing-parameter-defaults.patch b/target/linux/bcm27xx/patches-6.12/950-0122-bcmgenet-Better-coalescing-parameter-defaults.patch index a00e2af24a9..3280f3da21a 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0122-bcmgenet-Better-coalescing-parameter-defaults.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0122-bcmgenet-Better-coalescing-parameter-defaults.patch @@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c -@@ -2666,7 +2666,7 @@ static void bcmgenet_init_tx_ring(struct +@@ -2672,7 +2672,7 @@ static void bcmgenet_init_tx_ring(struct bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_PROD_INDEX); bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX); @@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell /* Disable rate control for now */ bcmgenet_tdma_ring_writel(priv, index, flow_period_val, TDMA_FLOW_PERIOD); -@@ -4066,8 +4066,10 @@ static int bcmgenet_probe(struct platfor +@@ -4075,8 +4075,10 @@ static int bcmgenet_probe(struct platfor netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1); /* Set default coalescing parameters */ @@ -38,4 +38,4 @@ Signed-off-by: Phil Elwell + } /* Initialize u64 stats seq counter for 32bit machines */ - for (i = 0; i <= priv->hw_params->rx_queues; i++) + for (i = 0; i <= GENET_MAX_MQ_CNT; i++) { diff --git a/target/linux/bcm27xx/patches-6.12/950-0132-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/target/linux/bcm27xx/patches-6.12/950-0132-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch index 7f8a6cd78dd..485fddbc6f8 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0132-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0132-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch @@ -32,7 +32,7 @@ Signed-off-by: Jonathan Bell #define USB_VENDOR_ID_BELKIN 0x050d #define USB_DEVICE_ID_FLIP_KVM 0x3201 -@@ -1485,6 +1488,9 @@ +@@ -1488,6 +1491,9 @@ #define USB_VENDOR_ID_XIAOMI 0x2717 #define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014 @@ -52,7 +52,7 @@ Signed-off-by: Jonathan Bell { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL }, -@@ -218,6 +219,7 @@ static const struct hid_device_id hid_qu +@@ -219,6 +220,7 @@ static const struct hid_device_id hid_qu { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_GROUP_AUDIO), HID_QUIRK_NOGET }, diff --git a/target/linux/bcm27xx/patches-6.12/950-0133-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch b/target/linux/bcm27xx/patches-6.12/950-0133-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch index c4506f5ef57..993ff5e6af3 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0133-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0133-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch @@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell static inline void bcmgenet_writel(u32 value, void __iomem *offset) { -@@ -2504,6 +2507,11 @@ static void reset_umac(struct bcmgenet_p +@@ -2510,6 +2513,11 @@ static void reset_umac(struct bcmgenet_p bcmgenet_rbuf_ctrl_set(priv, 0); udelay(10); diff --git a/target/linux/bcm27xx/patches-6.12/950-0246-hwmon-pwm-fan-Add-fan-speed-register-support.patch b/target/linux/bcm27xx/patches-6.12/950-0246-hwmon-pwm-fan-Add-fan-speed-register-support.patch index 18a079ffc5b..449301da2e0 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0246-hwmon-pwm-fan-Add-fan-speed-register-support.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0246-hwmon-pwm-fan-Add-fan-speed-register-support.patch @@ -58,15 +58,15 @@ Signed-off-by: Phil Elwell return 0; default: -@@ -470,6 +481,7 @@ static void pwm_fan_cleanup(void *__ctx) +@@ -469,6 +480,7 @@ static void pwm_fan_cleanup(void *__ctx) /* Switch off everything */ ctx->enable_mode = pwm_disable_reg_disable; pwm_fan_power_off(ctx, true); + iounmap(ctx->rpm_regbase); } - static int pwm_fan_probe(struct platform_device *pdev) -@@ -542,10 +554,23 @@ static int pwm_fan_probe(struct platform + static void pwm_fan_timer_cleanup(void *__ctx) +@@ -548,10 +560,23 @@ static int pwm_fan_probe(struct platform return ret; ctx->tach_count = platform_irq_count(pdev); @@ -91,7 +91,7 @@ Signed-off-by: Phil Elwell if (ctx->tach_count) { channel_count++; /* We also have a FAN channel. */ -@@ -576,12 +601,24 @@ static int pwm_fan_probe(struct platform +@@ -582,12 +607,24 @@ static int pwm_fan_probe(struct platform device_property_read_u32_array(dev, "pulses-per-revolution", ctx->pulses_per_revolution, ctx->tach_count); @@ -118,7 +118,7 @@ Signed-off-by: Phil Elwell channels[0] = HWMON_CHANNEL_INFO(pwm, HWMON_PWM_INPUT | HWMON_PWM_ENABLE); -@@ -618,6 +655,8 @@ static int pwm_fan_probe(struct platform +@@ -628,6 +665,8 @@ static int pwm_fan_probe(struct platform mod_timer(&ctx->rpm_timer, jiffies + HZ); channels[1] = &ctx->fan_channel; @@ -127,7 +127,7 @@ Signed-off-by: Phil Elwell } ctx->info.ops = &pwm_fan_hwmon_ops; -@@ -627,12 +666,13 @@ static int pwm_fan_probe(struct platform +@@ -637,12 +676,13 @@ static int pwm_fan_probe(struct platform ctx, &ctx->info, NULL); if (IS_ERR(hwmon)) { dev_err(dev, "Failed to register hwmon device\n"); @@ -143,7 +143,7 @@ Signed-off-by: Phil Elwell ctx->pwm_fan_state = ctx->pwm_fan_max_state; if (IS_ENABLED(CONFIG_THERMAL)) { -@@ -643,12 +683,17 @@ static int pwm_fan_probe(struct platform +@@ -653,12 +693,17 @@ static int pwm_fan_probe(struct platform dev_err(dev, "Failed to register pwm-fan as cooling device: %d\n", ret); diff --git a/target/linux/bcm27xx/patches-6.12/950-0297-net-bcmgenet-Add-eee-module-parameter.patch b/target/linux/bcm27xx/patches-6.12/950-0297-net-bcmgenet-Add-eee-module-parameter.patch index be4feb4c72b..492c1c7ab5d 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0297-net-bcmgenet-Add-eee-module-parameter.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0297-net-bcmgenet-Add-eee-module-parameter.patch @@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell static inline void bcmgenet_writel(u32 value, void __iomem *offset) { -@@ -3352,6 +3355,17 @@ static int bcmgenet_open(struct net_devi +@@ -3358,6 +3361,17 @@ static int bcmgenet_open(struct net_devi bcmgenet_phy_pause_set(dev, priv->rx_pause, priv->tx_pause); diff --git a/target/linux/bcm27xx/patches-6.12/950-0333-xhci-quirks-add-link-TRB-quirk-for-VL805.patch b/target/linux/bcm27xx/patches-6.12/950-0333-xhci-quirks-add-link-TRB-quirk-for-VL805.patch index 55e2b206f1a..7b9ffd42269 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0333-xhci-quirks-add-link-TRB-quirk-for-VL805.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0333-xhci-quirks-add-link-TRB-quirk-for-VL805.patch @@ -24,7 +24,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -454,6 +454,7 @@ static void xhci_pci_quirks(struct devic +@@ -453,6 +453,7 @@ static void xhci_pci_quirks(struct devic xhci->quirks |= XHCI_LPM_SUPPORT; xhci->quirks |= XHCI_TRB_OVERFETCH; xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS; diff --git a/target/linux/bcm27xx/patches-6.12/950-0334-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch b/target/linux/bcm27xx/patches-6.12/950-0334-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch index 11003621779..69e18999655 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0334-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0334-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch @@ -90,7 +90,7 @@ Signed-off-by: Jonathan Bell /* Allow 3 retries for everything but isoc, set CErr = 3 */ --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -455,6 +455,7 @@ static void xhci_pci_quirks(struct devic +@@ -454,6 +454,7 @@ static void xhci_pci_quirks(struct devic xhci->quirks |= XHCI_TRB_OVERFETCH; xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS; xhci->quirks |= XHCI_AVOID_DQ_ON_LINK; diff --git a/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch b/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch index ee83894709e..109bf591945 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch @@ -47,7 +47,7 @@ Signed-off-by: Jonathan Bell /* Device for a quirk */ #define PCI_VENDOR_ID_FRESCO_LOGIC 0x1b73 #define PCI_DEVICE_ID_FRESCO_LOGIC_PDK 0x1000 -@@ -253,6 +255,16 @@ static int xhci_pci_reinit(struct xhci_h +@@ -252,6 +254,16 @@ static int xhci_pci_reinit(struct xhci_h return 0; } @@ -64,7 +64,7 @@ Signed-off-by: Jonathan Bell static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) { struct pci_dev *pdev = to_pci_dev(dev); -@@ -457,6 +469,8 @@ static void xhci_pci_quirks(struct devic +@@ -456,6 +468,8 @@ static void xhci_pci_quirks(struct devic xhci->quirks |= XHCI_AVOID_DQ_ON_LINK; xhci->quirks |= XHCI_VLI_SS_BULK_OUT_BUG; xhci->dma_mask_bits = 36; diff --git a/target/linux/bcm27xx/patches-6.12/950-0347-net-macb-Also-set-DMA-coherent-mask.patch b/target/linux/bcm27xx/patches-6.12/950-0347-net-macb-Also-set-DMA-coherent-mask.patch index d0dd0c03bc3..8dc72b59a02 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0347-net-macb-Also-set-DMA-coherent-mask.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0347-net-macb-Also-set-DMA-coherent-mask.patch @@ -211,7 +211,7 @@ Signed-off-by: Jonathan Bell macb_writel(bp, NCR, ctrl | MACB_BIT(RE)); -@@ -2033,8 +2055,9 @@ static irqreturn_t macb_interrupt(int ir +@@ -2030,8 +2052,9 @@ static irqreturn_t macb_interrupt(int ir queue_writel(queue, ISR, MACB_BIT(TCOMP) | MACB_BIT(TXUBR)); @@ -222,7 +222,7 @@ Signed-off-by: Jonathan Bell wmb(); // ensure softirq can see update } -@@ -2490,6 +2513,11 @@ static netdev_tx_t macb_start_xmit(struc +@@ -2484,6 +2507,11 @@ static netdev_tx_t macb_start_xmit(struc skb_tx_timestamp(skb); spin_lock(&bp->lock); @@ -234,7 +234,7 @@ Signed-off-by: Jonathan Bell macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(TSTART)); spin_unlock(&bp->lock); -@@ -2919,6 +2947,37 @@ static void macb_configure_dma(struct ma +@@ -2913,6 +2941,37 @@ static void macb_configure_dma(struct ma } } @@ -272,7 +272,7 @@ Signed-off-by: Jonathan Bell static void macb_init_hw(struct macb *bp) { u32 config; -@@ -2947,6 +3006,11 @@ static void macb_init_hw(struct macb *bp +@@ -2941,6 +3000,11 @@ static void macb_init_hw(struct macb *bp if (bp->caps & MACB_CAPS_JUMBO) bp->rx_frm_len_mask = MACB_RX_JFRMLEN_MASK; @@ -284,7 +284,7 @@ Signed-off-by: Jonathan Bell macb_configure_dma(bp); /* Enable RX partial store and forward and set watermark */ -@@ -3314,6 +3378,52 @@ static void gem_get_ethtool_strings(stru +@@ -3308,6 +3372,52 @@ static void gem_get_ethtool_strings(stru } } @@ -337,7 +337,7 @@ Signed-off-by: Jonathan Bell static struct net_device_stats *macb_get_stats(struct net_device *dev) { struct macb *bp = netdev_priv(dev); -@@ -3901,6 +4011,8 @@ static const struct ethtool_ops macb_eth +@@ -3895,6 +4005,8 @@ static const struct ethtool_ops macb_eth }; static const struct ethtool_ops gem_ethtool_ops = { @@ -346,7 +346,7 @@ Signed-off-by: Jonathan Bell .get_regs_len = macb_get_regs_len, .get_regs = macb_get_regs, .get_wol = macb_get_wol, -@@ -3910,6 +4022,8 @@ static const struct ethtool_ops gem_etht +@@ -3904,6 +4016,8 @@ static const struct ethtool_ops gem_etht .get_ethtool_stats = gem_get_ethtool_stats, .get_strings = gem_get_ethtool_strings, .get_sset_count = gem_get_sset_count, @@ -355,7 +355,7 @@ Signed-off-by: Jonathan Bell .get_link_ksettings = macb_get_link_ksettings, .set_link_ksettings = macb_set_link_ksettings, .get_ringparam = macb_get_ringparam, -@@ -5231,6 +5345,11 @@ static int macb_probe(struct platform_de +@@ -5225,6 +5339,11 @@ static int macb_probe(struct platform_de } } } @@ -366,8 +366,8 @@ Signed-off-by: Jonathan Bell + spin_lock_init(&bp->lock); spin_lock_init(&bp->stats_lock); - -@@ -5291,6 +5410,21 @@ static int macb_probe(struct platform_de + spin_lock_init(&bp->tsu_clk_lock); +@@ -5286,6 +5405,21 @@ static int macb_probe(struct platform_de else bp->phy_interface = interface; @@ -389,7 +389,7 @@ Signed-off-by: Jonathan Bell /* IP specific init */ err = init(pdev); if (err) -@@ -5367,6 +5501,19 @@ static void macb_remove(struct platform_ +@@ -5362,6 +5496,19 @@ static void macb_remove(struct platform_ } } @@ -409,7 +409,7 @@ Signed-off-by: Jonathan Bell static int __maybe_unused macb_suspend(struct device *dev) { struct net_device *netdev = dev_get_drvdata(dev); -@@ -5639,6 +5786,7 @@ static const struct dev_pm_ops macb_pm_o +@@ -5634,6 +5781,7 @@ static const struct dev_pm_ops macb_pm_o static struct platform_driver macb_driver = { .probe = macb_probe, .remove_new = macb_remove, diff --git a/target/linux/bcm27xx/patches-6.12/950-0348-usb-dwc3-Set-DMA-and-coherent-masks-early.patch b/target/linux/bcm27xx/patches-6.12/950-0348-usb-dwc3-Set-DMA-and-coherent-masks-early.patch index 1f188450ab4..6f0db20b8ee 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0348-usb-dwc3-Set-DMA-and-coherent-masks-early.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0348-usb-dwc3-Set-DMA-and-coherent-masks-early.patch @@ -333,7 +333,7 @@ Signed-off-by: Jonathan Bell /* Global Debug LSP MUX Select */ #define DWC3_GDBGLSPMUX_ENDBC BIT(15) /* Host only */ #define DWC3_GDBGLSPMUX_HOSTSELECT(n) ((n) & 0x3fff) -@@ -1089,6 +1092,7 @@ struct dwc3_scratchpad_array { +@@ -1090,6 +1093,7 @@ struct dwc3_scratchpad_array { * @tx_max_burst_prd: max periodic ESS transmit burst size * @tx_fifo_resize_max_num: max number of fifos allocated during txfifo resize * @clear_stall_protocol: endpoint number that requires a delayed status phase @@ -341,7 +341,7 @@ Signed-off-by: Jonathan Bell * @hsphy_interface: "utmi" or "ulpi" * @connected: true when we're connected to a host, false otherwise * @softconnect: true when gadget connect is called, false when disconnect runs -@@ -1342,6 +1346,7 @@ struct dwc3 { +@@ -1343,6 +1347,7 @@ struct dwc3 { u8 tx_max_burst_prd; u8 tx_fifo_resize_max_num; u8 clear_stall_protocol; diff --git a/target/linux/bcm27xx/patches-6.12/950-0393-drm-fb-helper-Look-up-preferred-fbdev-node-number-fr.patch b/target/linux/bcm27xx/patches-6.12/950-0393-drm-fb-helper-Look-up-preferred-fbdev-node-number-fr.patch index e4f4a6339d2..61331a4c3e4 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0393-drm-fb-helper-Look-up-preferred-fbdev-node-number-fr.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0393-drm-fb-helper-Look-up-preferred-fbdev-node-number-fr.patch @@ -19,7 +19,7 @@ Signed-off-by: Dave Stevenson --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c -@@ -1774,7 +1774,7 @@ __drm_fb_helper_initial_config_and_unloc +@@ -1775,7 +1775,7 @@ __drm_fb_helper_initial_config_and_unloc struct drm_device *dev = fb_helper->dev; struct fb_info *info; unsigned int width, height; @@ -28,7 +28,7 @@ Signed-off-by: Dave Stevenson width = dev->mode_config.max_width; height = dev->mode_config.max_height; -@@ -1808,6 +1808,15 @@ __drm_fb_helper_initial_config_and_unloc +@@ -1809,6 +1809,15 @@ __drm_fb_helper_initial_config_and_unloc * register the fbdev emulation instance in kernel_fb_helper_list. */ mutex_unlock(&fb_helper->lock); diff --git a/target/linux/bcm27xx/patches-6.12/950-0402-drivers-thermal-step_wise-add-support-for-hysteresis.patch b/target/linux/bcm27xx/patches-6.12/950-0402-drivers-thermal-step_wise-add-support-for-hysteresis.patch index b47c4322da4..9f0888323a4 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0402-drivers-thermal-step_wise-add-support-for-hysteresis.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0402-drivers-thermal-step_wise-add-support-for-hysteresis.patch @@ -52,7 +52,7 @@ Signed-off-by: Jürgen Kreileder * a. if the trend is THERMAL_TREND_RAISING, do nothing * b. if the trend is THERMAL_TREND_DROPPING, use lower cooling * state for this trip point, if the cooling state already -@@ -87,19 +87,35 @@ static void thermal_zone_trip_update(str +@@ -85,19 +85,35 @@ static void thermal_zone_trip_update(str int trip_id = thermal_zone_trip_id(tz, trip); struct thermal_instance *instance; bool throttle = false; diff --git a/target/linux/bcm27xx/patches-6.12/950-0413-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch b/target/linux/bcm27xx/patches-6.12/950-0413-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch index 27e442afc00..864b0af1d93 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0413-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0413-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch @@ -45,7 +45,7 @@ Signed-off-by: Jonathan Bell #define DWC3_GUCTL1_RESUME_OPMODE_HS_HOST BIT(10) /* Global Status Register */ -@@ -1144,10 +1145,12 @@ struct dwc3_scratchpad_array { +@@ -1145,10 +1146,12 @@ struct dwc3_scratchpad_array { * generation after resume from suspend. * @ulpi_ext_vbus_drv: Set to confiure the upli chip to drives CPEN pin * VBUS with an external supply. @@ -62,7 +62,7 @@ Signed-off-by: Jonathan Bell * @gfladj_refclk_lpm_sel: set if we need to enable SOF/ITP counter * running based on ref_clk * @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk -@@ -1390,6 +1393,7 @@ struct dwc3 { +@@ -1391,6 +1394,7 @@ struct dwc3 { unsigned ulpi_ext_vbus_drv:1; unsigned parkmode_disable_ss_quirk:1; unsigned parkmode_disable_hs_quirk:1; diff --git a/target/linux/bcm27xx/patches-6.12/950-0524-usb-dwc3-core-add-support-for-setting-NAK-enhancemen.patch b/target/linux/bcm27xx/patches-6.12/950-0524-usb-dwc3-core-add-support-for-setting-NAK-enhancemen.patch index 2f79f27181d..991f10bacae 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0524-usb-dwc3-core-add-support-for-setting-NAK-enhancemen.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0524-usb-dwc3-core-add-support-for-setting-NAK-enhancemen.patch @@ -57,7 +57,7 @@ Signed-off-by: Jonathan Bell #define DWC3_GUCTL1_PARKMODE_DISABLE_SS BIT(17) #define DWC3_GUCTL1_PARKMODE_DISABLE_HS BIT(16) #define DWC3_GUCTL1_PARKMODE_DISABLE_FSLS BIT(15) -@@ -1145,6 +1147,8 @@ struct dwc3_scratchpad_array { +@@ -1146,6 +1148,8 @@ struct dwc3_scratchpad_array { * generation after resume from suspend. * @ulpi_ext_vbus_drv: Set to confiure the upli chip to drives CPEN pin * VBUS with an external supply. @@ -66,7 +66,7 @@ Signed-off-by: Jonathan Bell * @parkmode_disable_ss_quirk: If set, disable park mode feature for all * Superspeed instances. * @parkmode_disable_hs_quirk: If set, disable park mode feature for all -@@ -1391,6 +1395,8 @@ struct dwc3 { +@@ -1392,6 +1396,8 @@ struct dwc3 { unsigned dis_tx_ipgap_linecheck_quirk:1; unsigned resume_hs_terminations:1; unsigned ulpi_ext_vbus_drv:1; diff --git a/target/linux/bcm27xx/patches-6.12/950-0565-net-macb-Add-support-for-Raspberry-Pi-RP1-ethernet-c.patch b/target/linux/bcm27xx/patches-6.12/950-0565-net-macb-Add-support-for-Raspberry-Pi-RP1-ethernet-c.patch index 9d560e48bce..975743741d8 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0565-net-macb-Add-support-for-Raspberry-Pi-RP1-ethernet-c.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0565-net-macb-Add-support-for-Raspberry-Pi-RP1-ethernet-c.patch @@ -15,7 +15,7 @@ Signed-off-by: Dave Stevenson --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c -@@ -5194,6 +5194,17 @@ static const struct macb_config versal_c +@@ -5188,6 +5188,17 @@ static const struct macb_config versal_c .usrio = &macb_default_usrio, }; @@ -33,7 +33,7 @@ Signed-off-by: Dave Stevenson static const struct of_device_id macb_dt_ids[] = { { .compatible = "cdns,at91sam9260-macb", .data = &at91sam9260_config }, { .compatible = "cdns,macb" }, -@@ -5214,6 +5225,7 @@ static const struct of_device_id macb_dt +@@ -5208,6 +5219,7 @@ static const struct of_device_id macb_dt { .compatible = "microchip,mpfs-macb", .data = &mpfs_config }, { .compatible = "microchip,sama7g5-gem", .data = &sama7g5_gem_config }, { .compatible = "microchip,sama7g5-emac", .data = &sama7g5_emac_config }, diff --git a/target/linux/generic/backport-6.12/601-11-v6.14-net-mvpp2-implement-pcs_inband_caps-method.patch b/target/linux/generic/backport-6.12/601-11-v6.14-net-mvpp2-implement-pcs_inband_caps-method.patch index c0ab7ac5e21..46e83b7804b 100644 --- a/target/linux/generic/backport-6.12/601-11-v6.14-net-mvpp2-implement-pcs_inband_caps-method.patch +++ b/target/linux/generic/backport-6.12/601-11-v6.14-net-mvpp2-implement-pcs_inband_caps-method.patch @@ -16,7 +16,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c -@@ -6256,19 +6256,26 @@ static const struct phylink_pcs_ops mvpp +@@ -6257,19 +6257,26 @@ static const struct phylink_pcs_ops mvpp .pcs_config = mvpp2_xlg_pcs_config, }; @@ -51,7 +51,7 @@ Signed-off-by: Jakub Kicinski } static void mvpp2_gmac_pcs_get_state(struct phylink_pcs *pcs, -@@ -6375,7 +6382,7 @@ static void mvpp2_gmac_pcs_an_restart(st +@@ -6376,7 +6383,7 @@ static void mvpp2_gmac_pcs_an_restart(st } static const struct phylink_pcs_ops mvpp2_phylink_gmac_pcs_ops = { diff --git a/target/linux/generic/backport-6.12/720-01-v6.13-net-phy-mediatek-ge-soc-Fix-coding-style.patch b/target/linux/generic/backport-6.12/720-01-v6.13-net-phy-mediatek-ge-soc-Fix-coding-style.patch index 89e757b463d..e4b054cde5e 100644 --- a/target/linux/generic/backport-6.12/720-01-v6.13-net-phy-mediatek-ge-soc-Fix-coding-style.patch +++ b/target/linux/generic/backport-6.12/720-01-v6.13-net-phy-mediatek-ge-soc-Fix-coding-style.patch @@ -77,7 +77,7 @@ Signed-off-by: Andrew Lunn static int mt798x_phy_led_hw_is_supported(struct phy_device *phydev, u8 index, unsigned long rules) -@@ -1415,7 +1417,7 @@ static int mt7988_phy_probe_shared(struc +@@ -1422,7 +1424,7 @@ static int mt7988_phy_probe_shared(struc * LED_C and LED_D respectively. At the same time those pins are used to * bootstrap configuration of the reference clock source (LED_A), * DRAM DDRx16b x2/x1 (LED_B) and boot device (LED_C, LED_D). diff --git a/target/linux/generic/backport-6.12/720-02-v6.13-net-phy-mediatek-ge-soc-Shrink-line-wrapping-to-80-c.patch b/target/linux/generic/backport-6.12/720-02-v6.13-net-phy-mediatek-ge-soc-Shrink-line-wrapping-to-80-c.patch index 7efc1199e6d..bf1472bc02f 100644 --- a/target/linux/generic/backport-6.12/720-02-v6.13-net-phy-mediatek-ge-soc-Shrink-line-wrapping-to-80-c.patch +++ b/target/linux/generic/backport-6.12/720-02-v6.13-net-phy-mediatek-ge-soc-Shrink-line-wrapping-to-80-c.patch @@ -229,7 +229,7 @@ Signed-off-by: Andrew Lunn (blink & (MTK_PHY_LED_BLINK_RX | MTK_PHY_LED_BLINK_TX))) set_bit(bit_netdev, &priv->led_state); else -@@ -1333,17 +1377,23 @@ static int mt798x_phy_led_hw_control_set +@@ -1340,17 +1384,23 @@ static int mt798x_phy_led_hw_control_set if (rules & BIT(TRIGGER_NETDEV_RX)) { blink |= (on & MTK_PHY_LED_ON_LINK) ? @@ -259,7 +259,7 @@ Signed-off-by: Andrew Lunn MTK_PHY_LED_BLINK_TX; } -@@ -1400,7 +1450,8 @@ static int mt7988_phy_fix_leds_polaritie +@@ -1407,7 +1457,8 @@ static int mt7988_phy_fix_leds_polaritie /* Only now setup pinctrl to avoid bogus blinking */ pinctrl = devm_pinctrl_get_select(&phydev->mdio.dev, "gbe-led"); if (IS_ERR(pinctrl)) diff --git a/target/linux/generic/backport-6.12/720-05-v6.13-net-phy-mediatek-Move-LED-helper-functions-into-mtk-.patch b/target/linux/generic/backport-6.12/720-05-v6.13-net-phy-mediatek-Move-LED-helper-functions-into-mtk-.patch index 7cd47d1b7c3..099a80d96cd 100644 --- a/target/linux/generic/backport-6.12/720-05-v6.13-net-phy-mediatek-Move-LED-helper-functions-into-mtk-.patch +++ b/target/linux/generic/backport-6.12/720-05-v6.13-net-phy-mediatek-Move-LED-helper-functions-into-mtk-.patch @@ -226,7 +226,7 @@ Signed-off-by: David S. Miller } static const unsigned long supported_triggers = -@@ -1269,155 +1176,26 @@ static const unsigned long supported_tri +@@ -1269,162 +1176,26 @@ static const unsigned long supported_tri static int mt798x_phy_led_hw_is_supported(struct phy_device *phydev, u8 index, unsigned long rules) { @@ -288,17 +288,24 @@ Signed-off-by: David S. Miller - if (!rules) - return 0; - -- if (on & MTK_PHY_LED_ON_LINK) +- /* TRIGGER_NETDEV_LINK must not be reported together with any of the +- * per-speed rules, the netdev trigger rejects that combination. +- * MTK_PHY_LED_ON_LINK holds every speed this LED can indicate and is what +- * mt798x_phy_led_hw_control_set() programs for TRIGGER_NETDEV_LINK, so +- * report the speed independent rule only when they are all on. +- */ +- if ((on & MTK_PHY_LED_ON_LINK) == MTK_PHY_LED_ON_LINK) { - *rules |= BIT(TRIGGER_NETDEV_LINK); +- } else { +- if (on & MTK_PHY_LED_ON_LINK10) +- *rules |= BIT(TRIGGER_NETDEV_LINK_10); - -- if (on & MTK_PHY_LED_ON_LINK10) -- *rules |= BIT(TRIGGER_NETDEV_LINK_10); +- if (on & MTK_PHY_LED_ON_LINK100) +- *rules |= BIT(TRIGGER_NETDEV_LINK_100); - -- if (on & MTK_PHY_LED_ON_LINK100) -- *rules |= BIT(TRIGGER_NETDEV_LINK_100); -- -- if (on & MTK_PHY_LED_ON_LINK1000) -- *rules |= BIT(TRIGGER_NETDEV_LINK_1000); +- if (on & MTK_PHY_LED_ON_LINK1000) +- *rules |= BIT(TRIGGER_NETDEV_LINK_1000); +- } - - if (on & MTK_PHY_LED_ON_FDX) - *rules |= BIT(TRIGGER_NETDEV_FULL_DUPLEX); @@ -393,7 +400,7 @@ Signed-off-by: David S. Miller }; static bool mt7988_phy_led_get_polarity(struct phy_device *phydev, int led_num) -@@ -1492,14 +1270,6 @@ static int mt7988_phy_probe_shared(struc +@@ -1499,14 +1270,6 @@ static int mt7988_phy_probe_shared(struc return 0; } @@ -408,7 +415,7 @@ Signed-off-by: David S. Miller static int mt7988_phy_probe(struct phy_device *phydev) { struct mtk_socphy_shared *shared; -@@ -1525,7 +1295,7 @@ static int mt7988_phy_probe(struct phy_d +@@ -1532,7 +1295,7 @@ static int mt7988_phy_probe(struct phy_d phydev->priv = priv; @@ -417,7 +424,7 @@ Signed-off-by: David S. Miller err = mt7988_phy_fix_leds_polarities(phydev); if (err) -@@ -1552,7 +1322,7 @@ static int mt7981_phy_probe(struct phy_d +@@ -1559,7 +1322,7 @@ static int mt7981_phy_probe(struct phy_d phydev->priv = priv; @@ -428,7 +435,7 @@ Signed-off-by: David S. Miller } --- /dev/null +++ b/drivers/net/phy/mediatek/mtk-phy-lib.c -@@ -0,0 +1,254 @@ +@@ -0,0 +1,261 @@ +// SPDX-License-Identifier: GPL-2.0 +#include +#include @@ -498,20 +505,27 @@ Signed-off-by: David S. Miller + if (!rules) + return 0; + -+ if (on & on_set) ++ /* TRIGGER_NETDEV_LINK must not be reported together with any of the ++ * per-speed rules, the netdev trigger rejects that combination. ++ * on_set holds every speed this LED can indicate and is what ++ * mtk_phy_led_hw_ctrl_set() programs for TRIGGER_NETDEV_LINK, so ++ * report the speed independent rule only when they are all on. ++ */ ++ if ((on & on_set) == on_set) { + *rules |= BIT(TRIGGER_NETDEV_LINK); ++ } else { ++ if (on & MTK_PHY_LED_ON_LINK10) ++ *rules |= BIT(TRIGGER_NETDEV_LINK_10); + -+ if (on & MTK_PHY_LED_ON_LINK10) -+ *rules |= BIT(TRIGGER_NETDEV_LINK_10); ++ if (on & MTK_PHY_LED_ON_LINK100) ++ *rules |= BIT(TRIGGER_NETDEV_LINK_100); + -+ if (on & MTK_PHY_LED_ON_LINK100) -+ *rules |= BIT(TRIGGER_NETDEV_LINK_100); ++ if (on & MTK_PHY_LED_ON_LINK1000) ++ *rules |= BIT(TRIGGER_NETDEV_LINK_1000); + -+ if (on & MTK_PHY_LED_ON_LINK1000) -+ *rules |= BIT(TRIGGER_NETDEV_LINK_1000); -+ -+ if (on & MTK_PHY_LED_ON_LINK2500) -+ *rules |= BIT(TRIGGER_NETDEV_LINK_2500); ++ if (on & MTK_PHY_LED_ON_LINK2500) ++ *rules |= BIT(TRIGGER_NETDEV_LINK_2500); ++ } + + if (on & MTK_PHY_LED_ON_FDX) + *rules |= BIT(TRIGGER_NETDEV_FULL_DUPLEX); diff --git a/target/linux/generic/backport-6.12/720-06-v6.13-net-phy-mediatek-Improve-readability-of-mtk-phy-lib..patch b/target/linux/generic/backport-6.12/720-06-v6.13-net-phy-mediatek-Improve-readability-of-mtk-phy-lib..patch index 19f3a84ad93..1f128432051 100644 --- a/target/linux/generic/backport-6.12/720-06-v6.13-net-phy-mediatek-Improve-readability-of-mtk-phy-lib..patch +++ b/target/linux/generic/backport-6.12/720-06-v6.13-net-phy-mediatek-Improve-readability-of-mtk-phy-lib..patch @@ -16,7 +16,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/phy/mediatek/mtk-phy-lib.c +++ b/drivers/net/phy/mediatek/mtk-phy-lib.c -@@ -129,29 +129,33 @@ int mtk_phy_led_hw_ctrl_set(struct phy_d +@@ -136,29 +136,33 @@ int mtk_phy_led_hw_ctrl_set(struct phy_d on |= MTK_PHY_LED_ON_LINK2500; if (rules & BIT(TRIGGER_NETDEV_RX)) { diff --git a/target/linux/generic/backport-6.12/721-01-v6.15-net-ethernet-mediatek-add-EEE-support.patch b/target/linux/generic/backport-6.12/721-01-v6.15-net-ethernet-mediatek-add-EEE-support.patch index 4c8676d7c84..427dbe5b27a 100644 --- a/target/linux/generic/backport-6.12/721-01-v6.15-net-ethernet-mediatek-add-EEE-support.patch +++ b/target/linux/generic/backport-6.12/721-01-v6.15-net-ethernet-mediatek-add-EEE-support.patch @@ -39,7 +39,7 @@ Signed-off-by: Qingfang Deng mcr |= MAC_MCR_TX_EN | MAC_MCR_RX_EN | MAC_MCR_FORCE_LINK; mtk_w32(mac->hw, mcr, MTK_MAC_MCR(mac->id)); } -@@ -4586,6 +4596,61 @@ static int mtk_set_pauseparam(struct net +@@ -4590,6 +4600,61 @@ static int mtk_set_pauseparam(struct net return phylink_ethtool_set_pauseparam(mac->phylink, pause); } @@ -101,7 +101,7 @@ Signed-off-by: Qingfang Deng static u16 mtk_select_queue(struct net_device *dev, struct sk_buff *skb, struct net_device *sb_dev) { -@@ -4618,6 +4683,8 @@ static const struct ethtool_ops mtk_etht +@@ -4622,6 +4687,8 @@ static const struct ethtool_ops mtk_etht .set_pauseparam = mtk_set_pauseparam, .get_rxnfc = mtk_get_rxnfc, .set_rxnfc = mtk_set_rxnfc, @@ -110,7 +110,7 @@ Signed-off-by: Qingfang Deng }; static const struct net_device_ops mtk_netdev_ops = { -@@ -4678,6 +4745,8 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -4682,6 +4749,8 @@ static int mtk_add_mac(struct mtk_eth *e } mac = netdev_priv(eth->netdev[id]); eth->mac[id] = mac; diff --git a/target/linux/generic/hack-6.12/610-net-page_pool-try-to-free-deferred-skbs-while-waitin.patch b/target/linux/generic/hack-6.12/610-net-page_pool-try-to-free-deferred-skbs-while-waitin.patch index af54dafa490..6b3ba892bab 100644 --- a/target/linux/generic/hack-6.12/610-net-page_pool-try-to-free-deferred-skbs-while-waitin.patch +++ b/target/linux/generic/hack-6.12/610-net-page_pool-try-to-free-deferred-skbs-while-waitin.patch @@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau --- a/net/core/page_pool.c +++ b/net/core/page_pool.c -@@ -1178,8 +1178,9 @@ static void page_pool_release_retry(stru +@@ -1179,8 +1179,9 @@ static void page_pool_release_retry(stru { struct delayed_work *dwq = to_delayed_work(wq); struct page_pool *pool = container_of(dwq, typeof(*pool), release_dw); @@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau inflight = page_pool_release(pool); /* In rare cases, a driver bug may cause inflight to go negative. -@@ -1191,6 +1192,21 @@ static void page_pool_release_retry(stru +@@ -1192,6 +1193,21 @@ static void page_pool_release_retry(stru if (inflight <= 0) return; diff --git a/target/linux/generic/hack-6.12/650-netfilter-add-xt_FLOWOFFLOAD-target.patch b/target/linux/generic/hack-6.12/650-netfilter-add-xt_FLOWOFFLOAD-target.patch index f7a04a61988..67676d844dc 100644 --- a/target/linux/generic/hack-6.12/650-netfilter-add-xt_FLOWOFFLOAD-target.patch +++ b/target/linux/generic/hack-6.12/650-netfilter-add-xt_FLOWOFFLOAD-target.patch @@ -758,7 +758,7 @@ Signed-off-by: Felix Fietkau #include #include #include -@@ -374,8 +373,7 @@ flow_offload_lookup(struct nf_flowtable +@@ -381,8 +380,7 @@ flow_offload_lookup(struct nf_flowtable } EXPORT_SYMBOL_GPL(flow_offload_lookup); @@ -768,7 +768,7 @@ Signed-off-by: Felix Fietkau void (*iter)(struct nf_flowtable *flowtable, struct flow_offload *flow, void *data), void *data) -@@ -436,6 +434,7 @@ static void nf_flow_offload_gc_step(stru +@@ -443,6 +441,7 @@ static void nf_flow_offload_gc_step(stru nf_flow_offload_stats(flow_table, flow); } } diff --git a/target/linux/generic/hack-6.12/661-kernel-ct-size-the-hashtable-more-adequately.patch b/target/linux/generic/hack-6.12/661-kernel-ct-size-the-hashtable-more-adequately.patch index 2e6d3f082e6..7b391cc2e0e 100644 --- a/target/linux/generic/hack-6.12/661-kernel-ct-size-the-hashtable-more-adequately.patch +++ b/target/linux/generic/hack-6.12/661-kernel-ct-size-the-hashtable-more-adequately.patch @@ -14,7 +14,7 @@ Signed-off-by: Rui Salvaterra --- a/net/netfilter/nf_conntrack_core.c +++ b/net/netfilter/nf_conntrack_core.c -@@ -2608,7 +2608,7 @@ int nf_conntrack_init_start(void) +@@ -2610,7 +2610,7 @@ int nf_conntrack_init_start(void) if (!nf_conntrack_htable_size) { nf_conntrack_htable_size diff --git a/target/linux/generic/hack-6.12/721-net-add-packet-mangeling.patch b/target/linux/generic/hack-6.12/721-net-add-packet-mangeling.patch index af914f10249..323cc528e2c 100644 --- a/target/linux/generic/hack-6.12/721-net-add-packet-mangeling.patch +++ b/target/linux/generic/hack-6.12/721-net-add-packet-mangeling.patch @@ -52,7 +52,7 @@ Signed-off-by: Felix Fietkau */ --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -3305,6 +3305,10 @@ static inline int pskb_trim(struct sk_bu +@@ -3288,6 +3288,10 @@ static inline int pskb_trim(struct sk_bu return (len < skb->len) ? __pskb_trim(skb, len) : 0; } @@ -63,7 +63,7 @@ Signed-off-by: Felix Fietkau /** * pskb_trim_unique - remove end from a paged unique (not cloned) buffer * @skb: buffer to alter -@@ -3470,16 +3474,6 @@ static inline struct sk_buff *dev_alloc_ +@@ -3453,16 +3457,6 @@ static inline struct sk_buff *dev_alloc_ } diff --git a/target/linux/generic/hack-6.12/902-debloat_proc.patch b/target/linux/generic/hack-6.12/902-debloat_proc.patch index 36bdf3ff9e1..09b92043205 100644 --- a/target/linux/generic/hack-6.12/902-debloat_proc.patch +++ b/target/linux/generic/hack-6.12/902-debloat_proc.patch @@ -331,7 +331,7 @@ Signed-off-by: Felix Fietkau --- a/net/core/sock.c +++ b/net/core/sock.c -@@ -4293,6 +4293,8 @@ static __net_initdata struct pernet_oper +@@ -4316,6 +4316,8 @@ static __net_initdata struct pernet_oper static int __init proto_init(void) { diff --git a/target/linux/generic/hack-6.12/904-debloat_dma_buf.patch b/target/linux/generic/hack-6.12/904-debloat_dma_buf.patch index af566ec9642..7f0dc61ea1d 100644 --- a/target/linux/generic/hack-6.12/904-debloat_dma_buf.patch +++ b/target/linux/generic/hack-6.12/904-debloat_dma_buf.patch @@ -74,7 +74,7 @@ Signed-off-by: Felix Fietkau +MODULE_LICENSE("GPL"); --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -4434,6 +4434,7 @@ int wake_up_state(struct task_struct *p, +@@ -4445,6 +4445,7 @@ int wake_up_state(struct task_struct *p, { return try_to_wake_up(p, state, 0); } diff --git a/target/linux/generic/kernel-6.12 b/target/linux/generic/kernel-6.12 index 4d64293a701..68dfcf65e74 100644 --- a/target/linux/generic/kernel-6.12 +++ b/target/linux/generic/kernel-6.12 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.12 = .111 -LINUX_KERNEL_HASH-6.12.111 = 9e59dc67624188fa12a6601f9598499cd6662a9066be572b59f935e3d7849810 +LINUX_VERSION-6.12 = .112 +LINUX_KERNEL_HASH-6.12.112 = 164dc9d1f6c93c61a15e1f071c48379b467f2b17c469cce7223471968208ed03 diff --git a/target/linux/generic/pending-6.12/150-bridge_allow_receiption_on_disabled_port.patch b/target/linux/generic/pending-6.12/150-bridge_allow_receiption_on_disabled_port.patch index 530f2c3a388..cd67c10c076 100644 --- a/target/linux/generic/pending-6.12/150-bridge_allow_receiption_on_disabled_port.patch +++ b/target/linux/generic/pending-6.12/150-bridge_allow_receiption_on_disabled_port.patch @@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau __br_handle_local_finish(skb); /* return 1 to signal the okfn() was called so it's ok to use the skb */ -@@ -416,6 +419,17 @@ forward: +@@ -425,6 +428,17 @@ forward: goto defer_stp_filtering; switch (p->state) { diff --git a/target/linux/generic/pending-6.12/630-packet_socket_type.patch b/target/linux/generic/pending-6.12/630-packet_socket_type.patch index 8160920888f..3550f0df089 100644 --- a/target/linux/generic/pending-6.12/630-packet_socket_type.patch +++ b/target/linux/generic/pending-6.12/630-packet_socket_type.patch @@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -3463,6 +3465,7 @@ static int packet_create(struct net *net +@@ -3492,6 +3494,7 @@ static int packet_create(struct net *net mutex_init(&po->pg_vec_lock); po->rollover = NULL; po->prot_hook.func = packet_rcv; @@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -4130,6 +4133,16 @@ packet_setsockopt(struct socket *sock, i +@@ -4159,6 +4162,16 @@ packet_setsockopt(struct socket *sock, i packet_sock_flag_set(po, PACKET_SOCK_QDISC_BYPASS, val); return 0; } @@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau default: return -ENOPROTOOPT; } -@@ -4192,6 +4205,13 @@ static int packet_getsockopt(struct sock +@@ -4221,6 +4234,13 @@ static int packet_getsockopt(struct sock case PACKET_COPY_THRESH: val = READ_ONCE(pkt_sk(sk)->copy_thresh); break; diff --git a/target/linux/generic/pending-6.12/655-increase_skb_pad.patch b/target/linux/generic/pending-6.12/655-increase_skb_pad.patch index 2ed84cf7b74..296d96088dd 100644 --- a/target/linux/generic/pending-6.12/655-increase_skb_pad.patch +++ b/target/linux/generic/pending-6.12/655-increase_skb_pad.patch @@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -3272,7 +3272,7 @@ static inline int pskb_network_may_pull( +@@ -3255,7 +3255,7 @@ static inline int pskb_network_may_pull( * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8) */ #ifndef NET_SKB_PAD diff --git a/target/linux/generic/pending-6.12/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-6.12/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch index 29fa2c9c41b..9289aea3651 100644 --- a/target/linux/generic/pending-6.12/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/target/linux/generic/pending-6.12/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -119,7 +119,7 @@ Signed-off-by: Jonas Gorski static void ip6_link_failure(struct sk_buff *skb); static void ip6_rt_update_pmtu(struct dst_entry *dst, struct sock *sk, struct sk_buff *skb, u32 mtu, -@@ -316,6 +318,18 @@ static const struct rt6_info ip6_prohibi +@@ -317,6 +319,18 @@ static const struct rt6_info ip6_prohibi .rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP), }; @@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski static const struct rt6_info ip6_blk_hole_entry_template = { .dst = { .__rcuref = RCUREF_INIT(1), -@@ -1089,6 +1103,7 @@ static const int fib6_prop[RTN_MAX + 1] +@@ -1091,6 +1105,7 @@ static const int fib6_prop[RTN_MAX + 1] [RTN_BLACKHOLE] = -EINVAL, [RTN_UNREACHABLE] = -EHOSTUNREACH, [RTN_PROHIBIT] = -EACCES, @@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski [RTN_THROW] = -EAGAIN, [RTN_NAT] = -EINVAL, [RTN_XRESOLVE] = -EINVAL, -@@ -1124,6 +1139,10 @@ static void ip6_rt_init_dst_reject(struc +@@ -1126,6 +1141,10 @@ static void ip6_rt_init_dst_reject(struc rt->dst.output = ip6_pkt_prohibit_out; rt->dst.input = ip6_pkt_prohibit; break; @@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski case RTN_THROW: case RTN_UNREACHABLE: default: -@@ -4614,6 +4633,17 @@ static int ip6_pkt_prohibit_out(struct n +@@ -4619,6 +4638,17 @@ static int ip6_pkt_prohibit_out(struct n return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES); } @@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski /* * Allocate a dst for local (unicast / anycast) address. */ -@@ -5108,7 +5138,8 @@ static int rtm_to_fib6_config(struct sk_ +@@ -5113,7 +5143,8 @@ static int rtm_to_fib6_config(struct sk_ if (rtm->rtm_type == RTN_UNREACHABLE || rtm->rtm_type == RTN_BLACKHOLE || rtm->rtm_type == RTN_PROHIBIT || @@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski cfg->fc_flags |= RTF_REJECT; if (rtm->rtm_type == RTN_LOCAL) -@@ -6381,6 +6412,8 @@ static int ip6_route_dev_notify(struct n +@@ -6386,6 +6417,8 @@ static int ip6_route_dev_notify(struct n #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.ip6_prohibit_entry->dst.dev = dev; net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); @@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); #endif -@@ -6392,6 +6425,7 @@ static int ip6_route_dev_notify(struct n +@@ -6397,6 +6430,7 @@ static int ip6_route_dev_notify(struct n in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev); #ifdef CONFIG_IPV6_MULTIPLE_TABLES in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev); @@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev); #endif } -@@ -6587,6 +6621,8 @@ static int __net_init ip6_route_net_init +@@ -6592,6 +6626,8 @@ static int __net_init ip6_route_net_init #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.fib6_has_custom_rules = false; @@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template, sizeof(*net->ipv6.ip6_prohibit_entry), GFP_KERNEL); -@@ -6597,11 +6633,21 @@ static int __net_init ip6_route_net_init +@@ -6602,11 +6638,21 @@ static int __net_init ip6_route_net_init ip6_template_metrics, true); INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->dst.rt_uncached); @@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, ip6_template_metrics, true); -@@ -6628,6 +6674,8 @@ out: +@@ -6633,6 +6679,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski out_ip6_prohibit_entry: kfree(net->ipv6.ip6_prohibit_entry); out_ip6_null_entry: -@@ -6647,6 +6695,7 @@ static void __net_exit ip6_route_net_exi +@@ -6652,6 +6700,7 @@ static void __net_exit ip6_route_net_exi kfree(net->ipv6.ip6_null_entry); #ifdef CONFIG_IPV6_MULTIPLE_TABLES kfree(net->ipv6.ip6_prohibit_entry); @@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski kfree(net->ipv6.ip6_blk_hole_entry); #endif dst_entries_destroy(&net->ipv6.ip6_dst_ops); -@@ -6730,6 +6779,9 @@ void __init ip6_route_init_special_entri +@@ -6735,6 +6784,9 @@ void __init ip6_route_init_special_entri init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); diff --git a/target/linux/generic/pending-6.12/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch b/target/linux/generic/pending-6.12/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch index 91ce9fe5536..3de0eb2be65 100644 --- a/target/linux/generic/pending-6.12/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch +++ b/target/linux/generic/pending-6.12/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch @@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau if ((ret & NETIF_F_GSO_ENCAP_ALL) && (ret & NETIF_F_CSUM_MASK)) --- a/net/8021q/vlan_dev.c +++ b/net/8021q/vlan_dev.c -@@ -518,7 +518,7 @@ static int vlan_dev_init(struct net_devi +@@ -523,7 +523,7 @@ static int vlan_dev_init(struct net_devi dev->state |= (1 << __LINK_STATE_NOCARRIER); dev->hw_features = NETIF_F_HW_CSUM | NETIF_F_SG | @@ -85,7 +85,7 @@ Signed-off-by: Felix Fietkau NETIF_F_GSO_ENCAP_ALL | NETIF_F_HIGHDMA | NETIF_F_SCTP_CRC | NETIF_F_FCOE_CRC | NETIF_F_FSO; -@@ -610,7 +610,7 @@ static netdev_features_t vlan_dev_fix_fe +@@ -615,7 +615,7 @@ static netdev_features_t vlan_dev_fix_fe if (lower_features & (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM)) lower_features |= NETIF_F_HW_CSUM; features = netdev_intersect_features(features, lower_features); diff --git a/target/linux/generic/pending-6.12/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch b/target/linux/generic/pending-6.12/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch index 09166c2e262..eaf8ab10eb4 100644 --- a/target/linux/generic/pending-6.12/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch +++ b/target/linux/generic/pending-6.12/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch @@ -10,7 +10,7 @@ Signed-off-by: Pablo Neira Ayuso --- a/net/netfilter/nf_flow_table_core.c +++ b/net/netfilter/nf_flow_table_core.c -@@ -659,6 +659,23 @@ static struct pernet_operations nf_flow_ +@@ -666,6 +666,23 @@ static struct pernet_operations nf_flow_ .exit_batch = nf_flow_table_pernet_exit, }; @@ -34,7 +34,7 @@ Signed-off-by: Pablo Neira Ayuso static int __init nf_flow_table_module_init(void) { int ret; -@@ -675,6 +692,10 @@ static int __init nf_flow_table_module_i +@@ -682,6 +699,10 @@ static int __init nf_flow_table_module_i if (ret) goto out_bpf; @@ -45,14 +45,14 @@ Signed-off-by: Pablo Neira Ayuso return 0; out_bpf: -@@ -686,6 +707,7 @@ out_offload: +@@ -693,6 +714,7 @@ out_offload: static void __exit nf_flow_table_module_exit(void) { + unregister_netdevice_notifier(&flow_offload_netdev_notifier); + rcu_barrier(); nf_flow_table_offload_exit(); unregister_pernet_subsys(&nf_flow_table_net_ops); - } --- a/net/netfilter/nft_flow_offload.c +++ b/net/netfilter/nft_flow_offload.c @@ -493,47 +493,14 @@ static struct nft_expr_type nft_flow_off diff --git a/target/linux/generic/pending-6.12/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch b/target/linux/generic/pending-6.12/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch index 32d2a9ea9d9..c0cb9c37117 100644 --- a/target/linux/generic/pending-6.12/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch +++ b/target/linux/generic/pending-6.12/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch @@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c -@@ -8523,7 +8523,7 @@ static int nft_register_flowtable_net_ho +@@ -8529,7 +8529,7 @@ static int nft_register_flowtable_net_ho err = flowtable->data.type->setup(&flowtable->data, hook->ops.dev, FLOW_BLOCK_BIND); diff --git a/target/linux/generic/pending-6.12/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch b/target/linux/generic/pending-6.12/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch index ec20063abe4..8aa2807a20e 100644 --- a/target/linux/generic/pending-6.12/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch +++ b/target/linux/generic/pending-6.12/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.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 -@@ -5213,6 +5213,8 @@ static int mtk_probe(struct platform_dev +@@ -5217,6 +5217,8 @@ static int mtk_probe(struct platform_dev dev_err(eth->dev, "failed to allocated dummy device\n"); goto err_unreg_netdev; } diff --git a/target/linux/generic/pending-6.12/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch b/target/linux/generic/pending-6.12/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch index 8cb67d8073d..ccb9d5b04d4 100644 --- a/target/linux/generic/pending-6.12/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch +++ b/target/linux/generic/pending-6.12/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch @@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau if (!(p->flags & BR_BCAST_FLOOD) && skb->dev != br->dev) --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c -@@ -368,6 +368,8 @@ static rx_handler_result_t br_handle_fra +@@ -376,6 +376,8 @@ static rx_handler_result_t br_handle_fra fwd_mask |= p->group_fwd_mask; switch (dest[5]) { case 0x00: /* Bridge Group Address */ @@ -74,7 +74,7 @@ Signed-off-by: Felix Fietkau }; --- a/net/bridge/br_stp_bpdu.c +++ b/net/bridge/br_stp_bpdu.c -@@ -80,7 +80,8 @@ void br_send_config_bpdu(struct net_brid +@@ -83,7 +83,8 @@ void br_send_config_bpdu(struct net_brid { unsigned char buf[35]; @@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau return; buf[0] = 0; -@@ -127,7 +128,8 @@ void br_send_tcn_bpdu(struct net_bridge_ +@@ -130,7 +131,8 @@ void br_send_tcn_bpdu(struct net_bridge_ { unsigned char buf[4]; @@ -94,7 +94,7 @@ Signed-off-by: Felix Fietkau return; buf[0] = 0; -@@ -172,6 +174,9 @@ void br_stp_rcv(const struct stp_proto * +@@ -175,6 +177,9 @@ void br_stp_rcv(const struct stp_proto * if (!(br->dev->flags & IFF_UP)) goto out; diff --git a/target/linux/generic/pending-6.12/732-03-net-ethernet-mtk_eth_soc-optimize-dma-ring-address-i.patch b/target/linux/generic/pending-6.12/732-03-net-ethernet-mtk_eth_soc-optimize-dma-ring-address-i.patch index 4640a3ddb38..8aa5c9dbffa 100644 --- a/target/linux/generic/pending-6.12/732-03-net-ethernet-mtk_eth_soc-optimize-dma-ring-address-i.patch +++ b/target/linux/generic/pending-6.12/732-03-net-ethernet-mtk_eth_soc-optimize-dma-ring-address-i.patch @@ -294,7 +294,7 @@ Signed-off-by: Felix Fietkau eth->scratch_ring, eth->phy_scratch_ring); eth->scratch_ring = NULL; eth->phy_scratch_ring = 0; -@@ -5301,6 +5304,9 @@ static void mtk_remove(struct platform_d +@@ -5305,6 +5308,9 @@ static void mtk_remove(struct platform_d mtk_mdio_cleanup(eth); } @@ -304,7 +304,7 @@ Signed-off-by: Felix Fietkau static const struct mtk_soc_data mt2701_data = { .reg_map = &mtk_reg_map, .caps = MT7623_CAPS | MTK_HWLRO, -@@ -5309,14 +5315,14 @@ static const struct mtk_soc_data mt2701_ +@@ -5313,14 +5319,14 @@ static const struct mtk_soc_data mt2701_ .required_pctl = true, .version = 1, .tx = { @@ -321,7 +321,7 @@ Signed-off-by: Felix Fietkau .irq_done_mask = MTK_RX_DONE_INT, .dma_l4_valid = RX_DMA_L4_VALID, .dma_size = MTK_DMA_SIZE(2K), -@@ -5337,14 +5343,14 @@ static const struct mtk_soc_data mt7621_ +@@ -5341,14 +5347,14 @@ static const struct mtk_soc_data mt7621_ .hash_offset = 2, .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE, .tx = { @@ -338,7 +338,7 @@ Signed-off-by: Felix Fietkau .irq_done_mask = MTK_RX_DONE_INT, .dma_l4_valid = RX_DMA_L4_VALID, .dma_size = MTK_DMA_SIZE(2K), -@@ -5367,14 +5373,14 @@ static const struct mtk_soc_data mt7622_ +@@ -5371,14 +5377,14 @@ static const struct mtk_soc_data mt7622_ .has_accounting = true, .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE, .tx = { @@ -355,7 +355,7 @@ Signed-off-by: Felix Fietkau .irq_done_mask = MTK_RX_DONE_INT, .dma_l4_valid = RX_DMA_L4_VALID, .dma_size = MTK_DMA_SIZE(2K), -@@ -5396,14 +5402,14 @@ static const struct mtk_soc_data mt7623_ +@@ -5400,14 +5406,14 @@ static const struct mtk_soc_data mt7623_ .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE, .disable_pll_modes = true, .tx = { @@ -372,7 +372,7 @@ Signed-off-by: Felix Fietkau .irq_done_mask = MTK_RX_DONE_INT, .dma_l4_valid = RX_DMA_L4_VALID, .dma_size = MTK_DMA_SIZE(2K), -@@ -5422,14 +5428,14 @@ static const struct mtk_soc_data mt7629_ +@@ -5426,14 +5432,14 @@ static const struct mtk_soc_data mt7629_ .has_accounting = true, .version = 1, .tx = { @@ -389,7 +389,7 @@ Signed-off-by: Felix Fietkau .irq_done_mask = MTK_RX_DONE_INT, .dma_l4_valid = RX_DMA_L4_VALID, .dma_size = MTK_DMA_SIZE(2K), -@@ -5452,14 +5458,14 @@ static const struct mtk_soc_data mt7981_ +@@ -5456,14 +5462,14 @@ static const struct mtk_soc_data mt7981_ .has_accounting = true, .foe_entry_size = MTK_FOE_ENTRY_V2_SIZE, .tx = { @@ -406,7 +406,7 @@ Signed-off-by: Felix Fietkau .irq_done_mask = MTK_RX_DONE_INT, .dma_l4_valid = RX_DMA_L4_VALID_V2, .dma_max_len = MTK_TX_DMA_BUF_LEN, -@@ -5482,14 +5488,14 @@ static const struct mtk_soc_data mt7986_ +@@ -5486,14 +5492,14 @@ static const struct mtk_soc_data mt7986_ .has_accounting = true, .foe_entry_size = MTK_FOE_ENTRY_V2_SIZE, .tx = { @@ -423,7 +423,7 @@ Signed-off-by: Felix Fietkau .irq_done_mask = MTK_RX_DONE_INT, .dma_l4_valid = RX_DMA_L4_VALID_V2, .dma_max_len = MTK_TX_DMA_BUF_LEN, -@@ -5512,14 +5518,14 @@ static const struct mtk_soc_data mt7988_ +@@ -5516,14 +5522,14 @@ static const struct mtk_soc_data mt7988_ .has_accounting = true, .foe_entry_size = MTK_FOE_ENTRY_V3_SIZE, .tx = { @@ -440,7 +440,7 @@ Signed-off-by: Felix Fietkau .irq_done_mask = MTK_RX_DONE_INT_V2, .dma_l4_valid = RX_DMA_L4_VALID_V2, .dma_max_len = MTK_TX_DMA_BUF_LEN_V2, -@@ -5536,13 +5542,13 @@ static const struct mtk_soc_data rt5350_ +@@ -5540,13 +5546,13 @@ static const struct mtk_soc_data rt5350_ .required_pctl = false, .version = 1, .tx = { 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 e53c159e672..723b669f6c1 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 @@ -497,7 +497,7 @@ Signed-off-by: Daniel Golle return 0; } -@@ -4900,6 +5051,7 @@ static const struct net_device_ops mtk_n +@@ -4904,6 +5055,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); @@ -505,7 +505,7 @@ Signed-off-by: Daniel Golle phy_interface_t phy_mode; struct phylink *phylink; struct mtk_mac *mac; -@@ -4938,16 +5090,44 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -4942,16 +5094,44 @@ static int mtk_add_mac(struct mtk_eth *e mac->id = id; mac->hw = eth; mac->of_node = np; @@ -558,7 +558,7 @@ Signed-off-by: Daniel Golle } memset(mac->hwlro_ip, 0, sizeof(mac->hwlro_ip)); -@@ -5030,8 +5210,21 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -5034,8 +5214,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); @@ -580,7 +580,7 @@ Signed-off-by: Daniel Golle phylink = phylink_create(&mac->phylink_config, of_fwnode_handle(mac->of_node), phy_mode, &mtk_phylink_ops); -@@ -5082,6 +5275,26 @@ free_netdev: +@@ -5086,6 +5279,26 @@ free_netdev: return err; } @@ -607,7 +607,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; -@@ -5228,7 +5441,8 @@ static int mtk_probe(struct platform_dev +@@ -5232,7 +5445,8 @@ static int mtk_probe(struct platform_dev regmap_write(cci, 0, 3); } @@ -617,7 +617,7 @@ Signed-off-by: Daniel Golle err = mtk_sgmii_init(eth); if (err) -@@ -5332,6 +5546,24 @@ static int mtk_probe(struct platform_dev +@@ -5336,6 +5550,24 @@ static int mtk_probe(struct platform_dev } } @@ -642,7 +642,7 @@ Signed-off-by: Daniel Golle if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT)) { err = devm_request_irq(eth->dev, eth->irq[MTK_FE_IRQ_SHARED], mtk_handle_irq, 0, -@@ -5442,6 +5674,11 @@ static void mtk_remove(struct platform_d +@@ -5446,6 +5678,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 18671f07ea1..1bcc795cde4 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 -@@ -5712,7 +5712,7 @@ static const struct mtk_soc_data mt2701_ +@@ -5716,7 +5716,7 @@ static const struct mtk_soc_data mt2701_ DESC_SIZE(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, }, -@@ -5740,7 +5740,7 @@ static const struct mtk_soc_data mt7621_ +@@ -5744,7 +5744,7 @@ static const struct mtk_soc_data mt7621_ DESC_SIZE(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, }, -@@ -5770,7 +5770,7 @@ static const struct mtk_soc_data mt7622_ +@@ -5774,7 +5774,7 @@ static const struct mtk_soc_data mt7622_ DESC_SIZE(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, }, -@@ -5799,7 +5799,7 @@ static const struct mtk_soc_data mt7623_ +@@ -5803,7 +5803,7 @@ static const struct mtk_soc_data mt7623_ DESC_SIZE(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, }, -@@ -5825,7 +5825,7 @@ static const struct mtk_soc_data mt7629_ +@@ -5829,7 +5829,7 @@ static const struct mtk_soc_data mt7629_ DESC_SIZE(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, }, -@@ -5857,7 +5857,7 @@ static const struct mtk_soc_data mt7981_ +@@ -5861,7 +5861,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 }, }; -@@ -5887,7 +5887,7 @@ static const struct mtk_soc_data mt7986_ +@@ -5891,7 +5891,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 }, }; -@@ -5940,7 +5940,7 @@ static const struct mtk_soc_data rt5350_ +@@ -5944,7 +5944,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 bd5bc18a9a6..7f6c69dac4e 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 -@@ -4819,6 +4819,7 @@ static int mtk_get_sset_count(struct net +@@ -4823,6 +4823,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; -@@ -4831,6 +4832,7 @@ static void mtk_ethtool_pp_stats(struct +@@ -4835,6 +4836,7 @@ static void mtk_ethtool_pp_stats(struct page_pool_get_stats(ring->page_pool, &stats); } page_pool_ethtool_stats_get(data, &stats); diff --git a/target/linux/generic/pending-6.12/812-PCI-sysfs-enforce-single-creation-of-sysfs-entry-for.patch b/target/linux/generic/pending-6.12/812-PCI-sysfs-enforce-single-creation-of-sysfs-entry-for.patch index ec0350adcd0..8c110c4840a 100644 --- a/target/linux/generic/pending-6.12/812-PCI-sysfs-enforce-single-creation-of-sysfs-entry-for.patch +++ b/target/linux/generic/pending-6.12/812-PCI-sysfs-enforce-single-creation-of-sysfs-entry-for.patch @@ -132,7 +132,7 @@ Signed-off-by: Christian Marangi --- a/include/linux/pci.h +++ b/include/linux/pci.h -@@ -486,6 +486,7 @@ struct pci_dev { +@@ -498,6 +498,7 @@ struct pci_dev { unsigned int rom_attr_enabled:1; /* Display of ROM attribute enabled? */ pci_dev_flags_t dev_flags; atomic_t enable_cnt; /* pci_enable_device has been called */ diff --git a/target/linux/generic/pending-6.12/920-mangle_bootargs.patch b/target/linux/generic/pending-6.12/920-mangle_bootargs.patch index a680e728913..04cd96c3ba6 100644 --- a/target/linux/generic/pending-6.12/920-mangle_bootargs.patch +++ b/target/linux/generic/pending-6.12/920-mangle_bootargs.patch @@ -31,7 +31,7 @@ Signed-off-by: Imre Kaloz help --- a/init/main.c +++ b/init/main.c -@@ -588,6 +588,29 @@ static inline void setup_nr_cpu_ids(void +@@ -593,6 +593,29 @@ static inline void setup_nr_cpu_ids(void static inline void smp_prepare_cpus(unsigned int maxcpus) { } #endif @@ -61,7 +61,7 @@ Signed-off-by: Imre Kaloz /* * We need to store the untouched command line for future reference. * We also need to store the touched command line since the parameter -@@ -893,6 +916,7 @@ void start_kernel(void) +@@ -898,6 +921,7 @@ void start_kernel(void) jump_label_init(); static_call_init(); early_security_init(); diff --git a/target/linux/ipq40xx/patches-6.12/701-net-dsa-add-out-of-band-tagging-protocol.patch b/target/linux/ipq40xx/patches-6.12/701-net-dsa-add-out-of-band-tagging-protocol.patch index 33d99b44295..a31a166b797 100644 --- a/target/linux/ipq40xx/patches-6.12/701-net-dsa-add-out-of-band-tagging-protocol.patch +++ b/target/linux/ipq40xx/patches-6.12/701-net-dsa-add-out-of-band-tagging-protocol.patch @@ -93,7 +93,7 @@ Signed-off-by: Maxime Chevallier +#endif --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -4881,6 +4881,9 @@ enum skb_ext_id { +@@ -4867,6 +4867,9 @@ enum skb_ext_id { #if IS_ENABLED(CONFIG_MCTP_FLOWS) SKB_EXT_MCTP, #endif diff --git a/target/linux/ipq40xx/patches-6.12/999-atm-mpoa-intel-dsl-phy-support.patch b/target/linux/ipq40xx/patches-6.12/999-atm-mpoa-intel-dsl-phy-support.patch index 56d7dd4d21e..a5e668705ce 100644 --- a/target/linux/ipq40xx/patches-6.12/999-atm-mpoa-intel-dsl-phy-support.patch +++ b/target/linux/ipq40xx/patches-6.12/999-atm-mpoa-intel-dsl-phy-support.patch @@ -124,7 +124,7 @@ Subject: [PATCH] UGW_SW-29163: ATM oam support --- a/net/atm/pppoatm.c +++ b/net/atm/pppoatm.c -@@ -422,6 +422,12 @@ static int pppoatm_assign_vcc(struct atm +@@ -414,6 +414,12 @@ static int pppoatm_assign_vcc(struct atm atmvcc->user_back = pvcc; atmvcc->push = pppoatm_push; atmvcc->pop = pppoatm_pop; diff --git a/target/linux/ipq806x/patches-6.12/902-ARM-decompressor-support-for-ATAGs-rootblock-parsing.patch b/target/linux/ipq806x/patches-6.12/902-ARM-decompressor-support-for-ATAGs-rootblock-parsing.patch index 3697ed79fbc..2c0c85f6fe1 100644 --- a/target/linux/ipq806x/patches-6.12/902-ARM-decompressor-support-for-ATAGs-rootblock-parsing.patch +++ b/target/linux/ipq806x/patches-6.12/902-ARM-decompressor-support-for-ATAGs-rootblock-parsing.patch @@ -177,7 +177,7 @@ Signed-off-by: Christian Marangi #include #include #include -@@ -927,6 +928,17 @@ void start_kernel(void) +@@ -932,6 +933,17 @@ void start_kernel(void) pr_notice("Kernel command line: %s\n", saved_command_line); /* parameters may set static keys */ diff --git a/target/linux/lantiq/patches-6.12/001-MIPS-lantiq-add-pcie-driver.patch b/target/linux/lantiq/patches-6.12/001-MIPS-lantiq-add-pcie-driver.patch index ff743687b4a..4923e5c35b3 100644 --- a/target/linux/lantiq/patches-6.12/001-MIPS-lantiq-add-pcie-driver.patch +++ b/target/linux/lantiq/patches-6.12/001-MIPS-lantiq-add-pcie-driver.patch @@ -5518,7 +5518,7 @@ Signed-off-by: John Crispin (transaction layer end-to-end CRC checking). --- a/include/linux/pci.h +++ b/include/linux/pci.h -@@ -1654,6 +1654,8 @@ void pci_walk_bus_locked(struct pci_bus +@@ -1666,6 +1666,8 @@ void pci_walk_bus_locked(struct pci_bus void *userdata); int pci_cfg_space_size(struct pci_dev *dev); unsigned char pci_bus_max_busnr(struct pci_bus *bus); diff --git a/target/linux/mediatek/patches-6.12/750-net-ethernet-mtk_eth_soc-add-mt7987-support.patch b/target/linux/mediatek/patches-6.12/750-net-ethernet-mtk_eth_soc-add-mt7987-support.patch index 90bd4d8c063..9b79fc4b931 100644 --- a/target/linux/mediatek/patches-6.12/750-net-ethernet-mtk_eth_soc-add-mt7987-support.patch +++ b/target/linux/mediatek/patches-6.12/750-net-ethernet-mtk_eth_soc-add-mt7987-support.patch @@ -126,7 +126,7 @@ Signed-off-by: Bo-Cun Chen if (mtk_is_netsys_v1(eth)) val |= MTK_QTX_SCH_LEAKY_BUCKET_EN; mtk_w32(eth, val, soc->reg_map->qdma.qtx_sch + ofs); -@@ -5948,6 +5984,36 @@ static const struct mtk_soc_data mt7986_ +@@ -5952,6 +5988,36 @@ static const struct mtk_soc_data mt7986_ }, }; @@ -163,7 +163,7 @@ Signed-off-by: Bo-Cun Chen static const struct mtk_soc_data mt7988_data = { .reg_map = &mt7988_reg_map, .ana_rgc3 = 0x128, -@@ -6009,6 +6075,7 @@ const struct of_device_id of_mtk_match[] +@@ -6013,6 +6079,7 @@ const struct of_device_id of_mtk_match[] { .compatible = "mediatek,mt7629-eth", .data = &mt7629_data }, { .compatible = "mediatek,mt7981-eth", .data = &mt7981_data }, { .compatible = "mediatek,mt7986-eth", .data = &mt7986_data }, diff --git a/target/linux/microchipsw/patches-6.12/0087-v6.17-dmaengine-Add-devm_dma_request_chan.patch b/target/linux/microchipsw/patches-6.12/0087-v6.17-dmaengine-Add-devm_dma_request_chan.patch deleted file mode 100644 index 4499169e195..00000000000 --- a/target/linux/microchipsw/patches-6.12/0087-v6.17-dmaengine-Add-devm_dma_request_chan.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 92da9095958114aca94d7ab0c8fa76ee556d412d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Bence=20Cs=C3=B3k=C3=A1s?= -Date: Tue, 10 Jun 2025 10:22:53 +0200 -Subject: [PATCH 107/112] dmaengine: Add devm_dma_request_chan() -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Expand the arsenal of devm functions for DMA devices, this time for -requesting channels. - -Signed-off-by: Bence Csókás -Link: https://lore.kernel.org/r/20250610082256.400492-2-csokas.bence@prolan.hu -Signed-off-by: Vinod Koul ---- - drivers/dma/dmaengine.c | 30 ++++++++++++++++++++++++++++++ - include/linux/dmaengine.h | 7 +++++++ - 2 files changed, 37 insertions(+) - ---- a/drivers/dma/dmaengine.c -+++ b/drivers/dma/dmaengine.c -@@ -927,6 +927,36 @@ void dma_release_channel(struct dma_chan - } - EXPORT_SYMBOL_GPL(dma_release_channel); - -+static void dmaenginem_release_channel(void *chan) -+{ -+ dma_release_channel(chan); -+} -+ -+/** -+ * devm_dma_request_chan - try to allocate an exclusive slave channel -+ * @dev: pointer to client device structure -+ * @name: slave channel name -+ * -+ * Returns pointer to appropriate DMA channel on success or an error pointer. -+ * -+ * The operation is managed and will be undone on driver detach. -+ */ -+ -+struct dma_chan *devm_dma_request_chan(struct device *dev, const char *name) -+{ -+ struct dma_chan *chan = dma_request_chan(dev, name); -+ int ret = 0; -+ -+ if (!IS_ERR(chan)) -+ ret = devm_add_action_or_reset(dev, dmaenginem_release_channel, chan); -+ -+ if (ret) -+ return ERR_PTR(ret); -+ -+ return chan; -+} -+EXPORT_SYMBOL_GPL(devm_dma_request_chan); -+ - /** - * dmaengine_get - register interest in dma_channels - */ ---- a/include/linux/dmaengine.h -+++ b/include/linux/dmaengine.h -@@ -1521,6 +1521,7 @@ struct dma_chan *__dma_request_channel(c - - struct dma_chan *dma_request_chan(struct device *dev, const char *name); - struct dma_chan *dma_request_chan_by_mask(const dma_cap_mask_t *mask); -+struct dma_chan *devm_dma_request_chan(struct device *dev, const char *name); - - void dma_release_channel(struct dma_chan *chan); - int dma_get_slave_caps(struct dma_chan *chan, struct dma_slave_caps *caps); -@@ -1557,6 +1558,12 @@ static inline struct dma_chan *dma_reque - { - return ERR_PTR(-ENODEV); - } -+ -+static inline struct dma_chan *devm_dma_request_chan(struct device *dev, const char *name) -+{ -+ return ERR_PTR(-ENODEV); -+} -+ - static inline void dma_release_channel(struct dma_chan *chan) - { - } diff --git a/target/linux/mvebu/patches-6.12/300-mvebu-Mangle-bootloader-s-kernel-arguments.patch b/target/linux/mvebu/patches-6.12/300-mvebu-Mangle-bootloader-s-kernel-arguments.patch index 43cba8911c6..b7c98214c26 100644 --- a/target/linux/mvebu/patches-6.12/300-mvebu-Mangle-bootloader-s-kernel-arguments.patch +++ b/target/linux/mvebu/patches-6.12/300-mvebu-Mangle-bootloader-s-kernel-arguments.patch @@ -258,7 +258,7 @@ Signed-off-by: Michael Gray static int kernel_init(void *); /* -@@ -926,6 +930,18 @@ void start_kernel(void) +@@ -931,6 +935,18 @@ void start_kernel(void) boot_cpu_hotplug_init(); pr_notice("Kernel command line: %s\n", saved_command_line); diff --git a/target/linux/mvebu/patches-6.12/350-drivers-thermal-step_wise-add-support-for-hysteresis.patch b/target/linux/mvebu/patches-6.12/350-drivers-thermal-step_wise-add-support-for-hysteresis.patch index d98e585db59..cb67afed544 100644 --- a/target/linux/mvebu/patches-6.12/350-drivers-thermal-step_wise-add-support-for-hysteresis.patch +++ b/target/linux/mvebu/patches-6.12/350-drivers-thermal-step_wise-add-support-for-hysteresis.patch @@ -24,7 +24,7 @@ Signed-off-by: Daniel Golle --- a/drivers/thermal/gov_step_wise.c +++ b/drivers/thermal/gov_step_wise.c -@@ -87,19 +87,28 @@ static void thermal_zone_trip_update(str +@@ -85,19 +85,28 @@ static void thermal_zone_trip_update(str int trip_id = thermal_zone_trip_id(tz, trip); struct thermal_instance *instance; bool throttle = false; diff --git a/target/linux/mvebu/patches-6.12/701-mvpp2-read-mac-address-from-nvmem.patch b/target/linux/mvebu/patches-6.12/701-mvpp2-read-mac-address-from-nvmem.patch index 7cda835a801..ccb8bbad9de 100644 --- a/target/linux/mvebu/patches-6.12/701-mvpp2-read-mac-address-from-nvmem.patch +++ b/target/linux/mvebu/patches-6.12/701-mvpp2-read-mac-address-from-nvmem.patch @@ -12,7 +12,7 @@ Signed-off-by: Tobias Schramm --- --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c -@@ -6198,6 +6198,12 @@ static int mvpp2_port_copy_mac_addr(stru +@@ -6199,6 +6199,12 @@ static int mvpp2_port_copy_mac_addr(stru return 0; } diff --git a/target/linux/octeon/patches-6.12/000-fix-octeon-kernel-build.patch b/target/linux/octeon/patches-6.12/000-fix-octeon-kernel-build.patch index 5381c1d9eb6..f4aaa80d246 100644 --- a/target/linux/octeon/patches-6.12/000-fix-octeon-kernel-build.patch +++ b/target/linux/octeon/patches-6.12/000-fix-octeon-kernel-build.patch @@ -7,7 +7,7 @@ +#include #include - #ifdef CONFIG_USB + #if IS_ENABLED(CONFIG_USB) --- a/arch/mips/cavium-octeon/executive/cvmx-interrupt-decodes.c +++ b/arch/mips/cavium-octeon/executive/cvmx-interrupt-decodes.c @@ -34,6 +34,7 @@ diff --git a/target/linux/qualcommax/patches-6.12/0185-firmware-qcom_scm-ipq5332-add-support-to-pass-metadata-size.patch b/target/linux/qualcommax/patches-6.12/0185-firmware-qcom_scm-ipq5332-add-support-to-pass-metadata-size.patch index 007a846d955..55d20fe7332 100644 --- a/target/linux/qualcommax/patches-6.12/0185-firmware-qcom_scm-ipq5332-add-support-to-pass-metadata-size.patch +++ b/target/linux/qualcommax/patches-6.12/0185-firmware-qcom_scm-ipq5332-add-support-to-pass-metadata-size.patch @@ -21,17 +21,17 @@ Signed-off-by: Gokul Sriram Palanisamy --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c -@@ -593,9 +593,6 @@ int qcom_scm_pas_init_image(u32 peripher +@@ -593,9 +593,6 @@ int qcom_scm_pas_init_image(u32 pas_id, int ret; struct qcom_scm_desc desc = { .svc = QCOM_SCM_SVC_PIL, - .cmd = QCOM_SCM_PIL_PAS_INIT_IMAGE, - .arginfo = QCOM_SCM_ARGS(2, QCOM_SCM_VAL, QCOM_SCM_RW), -- .args[0] = peripheral, +- .args[0] = pas_id, .owner = ARM_SMCCC_OWNER_SIP, }; struct qcom_scm_res res; -@@ -627,7 +624,19 @@ int qcom_scm_pas_init_image(u32 peripher +@@ -627,7 +624,19 @@ int qcom_scm_pas_init_image(u32 pas_id, if (ret) goto disable_clk; @@ -40,13 +40,13 @@ Signed-off-by: Gokul Sriram Palanisamy + QCOM_SCM_PIL_PAS_INIT_IMAGE_V2)) { + desc.cmd = QCOM_SCM_PIL_PAS_INIT_IMAGE_V2; + desc.arginfo = QCOM_SCM_ARGS(3, QCOM_SCM_VAL, QCOM_SCM_RW, QCOM_SCM_VAL); -+ desc.args[0] = peripheral; ++ desc.args[0] = pas_id; + desc.args[1] = mdata_phys; + desc.args[2] = size; + } else { + desc.cmd = QCOM_SCM_PIL_PAS_INIT_IMAGE; + desc.arginfo = QCOM_SCM_ARGS(2, QCOM_SCM_VAL, QCOM_SCM_RW); -+ desc.args[0] = peripheral; ++ desc.args[0] = pas_id; + desc.args[1] = mdata_phys; + } diff --git a/target/linux/qualcommax/patches-6.12/0803-firmware-qcom_scm-ipq5332-add-msa-lock-unlock-suppor.patch b/target/linux/qualcommax/patches-6.12/0803-firmware-qcom_scm-ipq5332-add-msa-lock-unlock-suppor.patch index c9e7d2fed2f..6605882836a 100644 --- a/target/linux/qualcommax/patches-6.12/0803-firmware-qcom_scm-ipq5332-add-msa-lock-unlock-suppor.patch +++ b/target/linux/qualcommax/patches-6.12/0803-firmware-qcom_scm-ipq5332-add-msa-lock-unlock-suppor.patch @@ -17,10 +17,10 @@ Signed-off-by: Manikanta Mylavarapu --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h -@@ -79,6 +79,8 @@ int qcom_scm_pas_mem_setup(u32 periphera - int qcom_scm_pas_auth_and_reset(u32 peripheral); - int qcom_scm_pas_shutdown(u32 peripheral); - bool qcom_scm_pas_supported(u32 peripheral); +@@ -83,6 +83,8 @@ int qcom_scm_pas_mem_setup(u32 pas_id, p + int qcom_scm_pas_auth_and_reset(u32 pas_id); + int qcom_scm_pas_shutdown(u32 pas_id); + bool qcom_scm_pas_supported(u32 pas_id); +int qcom_scm_msa_lock(u32 peripheral); +int qcom_scm_msa_unlock(u32 peripheral); @@ -28,7 +28,7 @@ Signed-off-by: Manikanta Mylavarapu int qcom_scm_io_writel(phys_addr_t addr, unsigned int val); --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c -@@ -817,6 +817,84 @@ bool qcom_scm_pas_supported(u32 peripher +@@ -817,6 +817,84 @@ bool qcom_scm_pas_supported(u32 pas_id) } EXPORT_SYMBOL_GPL(qcom_scm_pas_supported); diff --git a/target/linux/qualcommax/patches-6.12/0811-firmware-qcom_scm-support-MPD.patch b/target/linux/qualcommax/patches-6.12/0811-firmware-qcom_scm-support-MPD.patch index 6f6e2025b49..6bfa5776a05 100644 --- a/target/linux/qualcommax/patches-6.12/0811-firmware-qcom_scm-support-MPD.patch +++ b/target/linux/qualcommax/patches-6.12/0811-firmware-qcom_scm-support-MPD.patch @@ -16,10 +16,10 @@ Signed-off-by: George Moussalem --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h -@@ -79,6 +79,9 @@ int qcom_scm_pas_mem_setup(u32 periphera - int qcom_scm_pas_auth_and_reset(u32 peripheral); - int qcom_scm_pas_shutdown(u32 peripheral); - bool qcom_scm_pas_supported(u32 peripheral); +@@ -83,6 +83,9 @@ int qcom_scm_pas_mem_setup(u32 pas_id, p + int qcom_scm_pas_auth_and_reset(u32 pas_id); + int qcom_scm_pas_shutdown(u32 pas_id); + bool qcom_scm_pas_supported(u32 pas_id); +int qcom_scm_internal_wifi_powerup(u32 peripheral); +int qcom_scm_internal_wifi_shutdown(u32 peripheral); +int qcom_scm_pas_load_segment(u32 peripheral, int segment, dma_addr_t dma, int seg_cnt); @@ -28,7 +28,7 @@ Signed-off-by: George Moussalem --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c -@@ -818,6 +818,85 @@ bool qcom_scm_pas_supported(u32 peripher +@@ -818,6 +818,85 @@ bool qcom_scm_pas_supported(u32 pas_id) EXPORT_SYMBOL_GPL(qcom_scm_pas_supported); /** diff --git a/target/linux/rockchip/patches-6.12/039-01-v6.15-net-stmmac-dwmac-rk-Add-GMAC-support-for-RK3528.patch b/target/linux/rockchip/patches-6.12/039-01-v6.15-net-stmmac-dwmac-rk-Add-GMAC-support-for-RK3528.patch index cc810b38b0d..a2036826798 100644 --- a/target/linux/rockchip/patches-6.12/039-01-v6.15-net-stmmac-dwmac-rk-Add-GMAC-support-for-RK3528.patch +++ b/target/linux/rockchip/patches-6.12/039-01-v6.15-net-stmmac-dwmac-rk-Add-GMAC-support-for-RK3528.patch @@ -156,7 +156,7 @@ Signed-off-by: Jakub Kicinski #define RK3568_GRF_GMAC0_CON0 0x0380 #define RK3568_GRF_GMAC0_CON1 0x0384 #define RK3568_GRF_GMAC1_CON0 0x0388 -@@ -2080,6 +2211,7 @@ static const struct of_device_id rk_gmac +@@ -2083,6 +2214,7 @@ static const struct of_device_id rk_gmac { .compatible = "rockchip,rk3366-gmac", .data = &rk3366_ops }, { .compatible = "rockchip,rk3368-gmac", .data = &rk3368_ops }, { .compatible = "rockchip,rk3399-gmac", .data = &rk3399_ops }, diff --git a/target/linux/rockchip/patches-6.12/039-03-v6.15-net-stmmac-dwmac-rk-Add-integrated_phy_powerdown-operatio.patch b/target/linux/rockchip/patches-6.12/039-03-v6.15-net-stmmac-dwmac-rk-Add-integrated_phy_powerdown-operatio.patch index ea45fb6625c..882a5f8d13d 100644 --- a/target/linux/rockchip/patches-6.12/039-03-v6.15-net-stmmac-dwmac-rk-Add-integrated_phy_powerdown-operatio.patch +++ b/target/linux/rockchip/patches-6.12/039-03-v6.15-net-stmmac-dwmac-rk-Add-integrated_phy_powerdown-operatio.patch @@ -89,7 +89,7 @@ Signed-off-by: Jakub Kicinski }; #define RK3366_GRF_SOC_CON6 0x0418 -@@ -2070,16 +2074,16 @@ static int rk_gmac_powerup(struct rk_pri +@@ -2073,16 +2077,16 @@ static int rk_gmac_powerup(struct rk_pri pm_runtime_get_sync(dev);