]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
kernel: bump 6.18 to 6.18.40
authorJohn Audia <therealgraysky@proton.me>
Tue, 28 Jul 2026 10:52:48 +0000 (06:52 -0400)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 1 Aug 2026 21:43:05 +0000 (23:43 +0200)
Removed upstreamed:
  airoha/patches-6.18/109-01-v6.19-pinctrl-airoha-generalize-pins-group-function-confs-.patch[1]
  airoha/patches-6.18/112-v6.19-pinctrl-airoha-fix-pinctrl-function-mismatch-issue.patch[2]
  airoha/patches-6.18/170-v7.2-net-airoha-Fix-register-index-for-Tx-fwd-counter-con.patch[3]
  airoha/patches-6.18/171-v7.2-net-airoha-Fix-debugfs-new-tuple-display-for-IPv4-RO.patch[4]
  airoha/patches-6.18/172-v7.2-net-airoha-fix-foe_check_time-allocation-size.patch[5]
  airoha/patches-6.18/174-v7.2-net-airoha-Fix-skb-priority-underflow-in-airoha_dev_.patch[6]
  generic/backport-6.18/300-v7.1-MIPS-mm-fix-highmem-init.patch[7]
  generic/backport-6.18/627-v7.2-net-pse-pd-scope-pse_control-regulator-handle-to-kre.patch[8]
  generic/backport-6.18/752-v7.2-net-dsa-qca8k-fix-led-devicename-when-using-external.patch[9]
  qualcommax/patches-6.18/0084-v7.2-clk-qcom-cmnpll-Account-for-reference-clock-divider.patch[10]
  airoha/patches-6.18/180-02-v7.2-pinctrl-airoha-an7581-add-missed-gpio32-pin-group.patch[11]
  airoha/patches-6.18/180-04-v7.2-pinctrl-airoha-an7581-fix-misprint-in-gpio19-pinconf.patch[12]

Manually rebased:
  airoha/patches-6.18/180-01-v7.2-pinctrl-Move-Airoha-driver-to-dedicated-directory.patch
  bcm27xx/patches-6.18/0299-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clocks.patch
  mediatek/patches-6.18/942-net-ethernet-mtk_wed-move-cpuboot-in-a-dedicated-dts.patch

Removed CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG, it was removed upstream [13]

All other patches automatically rebased via update_kernel.sh

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.40&id=db3cd694ded4c8d492b62c7228e9c0d9230b13d0
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.40&id=a888f3d5970ff21e092bc9edcf3d9ffee9ae68a7
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.40&id=dcac6e4221f39f4f80adc7fb761c358a612fca62
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.40&id=4d48c08a0bf6c6ab8c07df37ee8794da891eec80
5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.40&id=112b5eff24e044561ee9599a0d34e0fcea1df4e0
6. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.40&id=2066e692ec7a10af63d9c75899c9a66946cfede9
7. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.40&id=3d3638fe921371e52be77baefe792c126fcdfc8c
8. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.40&id=8d501b1411548442aaf1de3268654046f5bcf4c1
9. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.40&id=10e05634ddc19953d7357a39eebee4e142dc8397
10. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.40&id=226feccaac81833f227e7ad4b7702ff5c918211f
11. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.40&id=5985ddfd3e83fee2e021ed6908d4026516f47278
12. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.40&id=ad6963c3bb458fc1b722627405800c32e4cd840b
13. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.40&id=c401492e01c7bfd38cf14c94d85c7efafe7d1a25

Build system: x86/64
Build-tested: x86/64-glibc
Run-tested: x86/64-glibc

Signed-off-by: John Audia <therealgraysky@proton.me>
[Fixed 0299-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clocks.patch,
180-01-v7.2-pinctrl-Move-Airoha-driver-to-dedicated-directory.patch
and removed CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG]
Link: https://github.com/openwrt/openwrt/pull/24419
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
131 files changed:
target/linux/airoha/patches-6.18/099-08-v6.19-net-airoha-ppe-Flush-PPE-SRAM-table-during-PPE-setup.patch
target/linux/airoha/patches-6.18/109-01-v6.19-pinctrl-airoha-generalize-pins-group-function-confs-.patch [deleted file]
target/linux/airoha/patches-6.18/109-02-v6.19-pinctrl-airoha-convert-PHY-LED-GPIO-to-macro.patch
target/linux/airoha/patches-6.18/109-03-v6.19-pinctrl-airoha-convert-PWM-GPIO-to-macro.patch
target/linux/airoha/patches-6.18/109-05-v6.19-pinctrl-airoha-add-support-for-Airoha-AN7583-PINs.patch
target/linux/airoha/patches-6.18/112-v6.19-pinctrl-airoha-fix-pinctrl-function-mismatch-issue.patch [deleted file]
target/linux/airoha/patches-6.18/113-v6.19-pinctrl-airoha-Fix-AIROHA_PINCTRL_CONFS_DRIVE_E2.patch
target/linux/airoha/patches-6.18/114-v6.19-pinctrl-airoha-convert-comma-to-semicolon.patch
target/linux/airoha/patches-6.18/161-01-v7.2-net-airoha-Introduce-airoha_gdm_dev-struct.patch
target/linux/airoha/patches-6.18/170-v7.2-net-airoha-Fix-register-index-for-Tx-fwd-counter-con.patch [deleted file]
target/linux/airoha/patches-6.18/171-v7.2-net-airoha-Fix-debugfs-new-tuple-display-for-IPv4-RO.patch [deleted file]
target/linux/airoha/patches-6.18/172-v7.2-net-airoha-fix-foe_check_time-allocation-size.patch [deleted file]
target/linux/airoha/patches-6.18/174-v7.2-net-airoha-Fix-skb-priority-underflow-in-airoha_dev_.patch [deleted file]
target/linux/airoha/patches-6.18/179-v7.2-pinctrl-airoha-Fix-type-in-.pin_config_group_get-cal.patch
target/linux/airoha/patches-6.18/180-01-v7.2-pinctrl-Move-Airoha-driver-to-dedicated-directory.patch
target/linux/airoha/patches-6.18/180-02-v7.2-pinctrl-airoha-an7581-add-missed-gpio32-pin-group.patch [deleted file]
target/linux/airoha/patches-6.18/180-04-v7.2-pinctrl-airoha-an7581-fix-misprint-in-gpio19-pinconf.patch [deleted file]
target/linux/airoha/patches-6.18/915-01-net-netfilter-flowtable-Add-the-capability-to-offloa.patch
target/linux/apm821xx/patches-6.18/700-net-ibm-emac-Clear-MAL-descriptors-without-memset.patch
target/linux/ath79/patches-6.18/900-unaligned_access_hacks.patch
target/linux/bcm27xx/patches-6.18/0008-of-overlay-Correct-symbol-path-fixups.patch
target/linux/bcm27xx/patches-6.18/0054-mmc-bcm2835-mmc-added-alternative-MMC-driver.patch
target/linux/bcm27xx/patches-6.18/0088-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch
target/linux/bcm27xx/patches-6.18/0090-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch
target/linux/bcm27xx/patches-6.18/0091-Patching-lan78xx-for-SOF_TIMESTAMPING_TX_SOFTWARE-su.patch
target/linux/bcm27xx/patches-6.18/0110-bcmgenet-Better-coalescing-parameter-defaults.patch
target/linux/bcm27xx/patches-6.18/0118-drm-v3d-Clock-V3D-down-when-not-in-use.patch
target/linux/bcm27xx/patches-6.18/0121-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch
target/linux/bcm27xx/patches-6.18/0159-bcmgenet-Disable-skip_umac_reset-by-default.patch
target/linux/bcm27xx/patches-6.18/0212-drm-panel-Add-panel-driver-for-TDO-Y17B-based-panels.patch
target/linux/bcm27xx/patches-6.18/0213-drm-panel-Add-panel-driver-for-Waveshare-DSI-touchsc.patch
target/linux/bcm27xx/patches-6.18/0215-dt-bindings-vendor-prefixes-Add-Geekworm.patch
target/linux/bcm27xx/patches-6.18/0256-net-bcmgenet-Add-eee-module-parameter.patch
target/linux/bcm27xx/patches-6.18/0293-net-macb-Also-set-DMA-coherent-mask.patch
target/linux/bcm27xx/patches-6.18/0294-usb-dwc3-Set-DMA-and-coherent-masks-early.patch
target/linux/bcm27xx/patches-6.18/0299-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clocks.patch
target/linux/bcm27xx/patches-6.18/0310-hwmon-Add-RP1-ADC-and-temperature-driver.patch
target/linux/bcm27xx/patches-6.18/0343-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch
target/linux/bcm27xx/patches-6.18/0414-usb-dwc3-core-add-support-for-setting-NAK-enhancemen.patch
target/linux/bcm27xx/patches-6.18/0571-net-lan78xx-Ack-pending-PHY-ints-when-resetting.patch
target/linux/bcm27xx/patches-6.18/0572-lan78xx-Enable-LEDs-and-auto-negotiation.patch
target/linux/bcm27xx/patches-6.18/0573-lan78xx-Read-initial-EEE-status-from-DT.patch
target/linux/bcm27xx/patches-6.18/0574-lan78xx-Return-tx_lpi_timer-even-if-disabled.patch
target/linux/bcm27xx/patches-6.18/0655-DOWNSTREAM-drm-v3d-Delete-downstream-CLK-management.patch
target/linux/bcm27xx/patches-6.18/0662-net-cadence-macb-implement-EEE-TX-LPI-support.patch
target/linux/bcm27xx/patches-6.18/0663-net-cadence-macb-add-ethtool-EEE-support.patch
target/linux/bcm27xx/patches-6.18/0664-net-cadence-macb-enable-EEE-for-Raspberry-Pi-RP1.patch
target/linux/bcm27xx/patches-6.18/0689-Revert-net-bcmgenet-Add-eee-module-parameter.patch
target/linux/bcm27xx/patches-6.18/0690-Revert-bcmgenet-Disable-skip_umac_reset-by-default.patch
target/linux/bcm27xx/patches-6.18/0691-Revert-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fa.patch
target/linux/bcm27xx/patches-6.18/0699-nvme-pci-manually-allocate-Host-Memory-Buffer-segmen.patch
target/linux/bcm27xx/patches-6.18/0705-drm-panel-add-TDO-DSI-V1-panel-driver.patch
target/linux/bcm27xx/patches-6.18/0719-net-macb-add-TX-stall-watchdog-as-defence-in-depth-s.patch
target/linux/bcm27xx/patches-6.18/0731-usb-dwc3-Fixup-downstream-for-add-of-dwc-pointer-to-.patch
target/linux/bcm27xx/patches-6.18/0741-Revert-Patching-lan78xx-for-SOF_TIMESTAMPING_TX_SOFT.patch
target/linux/bcm27xx/patches-6.18/0742-Revert-lan78xx-Return-tx_lpi_timer-even-if-disabled.patch
target/linux/bcm27xx/patches-6.18/0743-Revert-lan78xx-Read-initial-EEE-status-from-DT.patch
target/linux/bcm27xx/patches-6.18/0754-nvme-pci-use-LE-accessors-for-HMB-segment-table-entr.patch
target/linux/bcm27xx/patches-6.18/0757-of-Improve-compatibility-with-old-Pi-5-firmware.patch
target/linux/bcm27xx/patches-6.18/0790-net-macb-gate-PCIe-posted-write-flush-behind-MACB_CA.patch
target/linux/bcm27xx/patches-6.18/0808-Post-Merge-Fixup-up-to-9df439fbf76c0cb9f1a9282a7bf44.patch
target/linux/econet/patches-6.18/912-pcie-add-en7528-pcie-and-phy-support.patch
target/linux/generic/backport-6.18/300-v7.1-MIPS-mm-fix-highmem-init.patch [deleted file]
target/linux/generic/backport-6.18/601-v7.1-net-add-netdev_from_priv-helper.patch
target/linux/generic/backport-6.18/627-v7.2-net-pse-pd-scope-pse_control-regulator-handle-to-kre.patch [deleted file]
target/linux/generic/backport-6.18/650-v7.2-net-pppoe-implement-GRO-GSO-support.patch
target/linux/generic/backport-6.18/700-02-v7.0-net-sched-sch_cake-Factor-out-config-variables-into-.patch
target/linux/generic/backport-6.18/700-03-v7.0-net-sched-sch_cake-Add-cake_mq-qdisc-for-using-cake-.patch
target/linux/generic/backport-6.18/700-04-v7.0-net-sched-sch_cake-Share-config-across-cake_mq-sub-q.patch
target/linux/generic/backport-6.18/700-05-v7.0-net-sched-sch_cake-share-shaper-state-across-sub-ins.patch
target/linux/generic/backport-6.18/700-07-v7.0-net-sched-cake-avoid-separate-allocation-of-struct-c.patch
target/linux/generic/backport-6.18/701-01-v7.0-net-sched-sch_cake-avoid-sync-overhead-when-unlimite.patch
target/linux/generic/backport-6.18/701-02-v7.0-net-sched-sch_cake-fixup-cake_mq-rate-adjustment-for.patch
target/linux/generic/backport-6.18/711-v7.2-net-phy-sfp-detect-presence-via-I2C-when-no-MOD_DEF0-GPIO.patch
target/linux/generic/backport-6.18/752-v7.2-net-dsa-qca8k-fix-led-devicename-when-using-external.patch [deleted file]
target/linux/generic/backport-6.18/784-06-v6.19-net-phy-realtek-Add-RTL8224-cable-testing-support.patch
target/linux/generic/backport-6.18/784-07-v6.19-net-phy-realtek-add-interrupt-support-for-RTL8221B.patch
target/linux/generic/backport-6.18/788-v7.0-net-phy-realtek-fix-whitespace-in-struct-phy_driver-.patch
target/linux/generic/backport-6.18/789-v7.0-net-phy-realtek-implement-configuring-in-band-an.patch
target/linux/generic/backport-6.18/790-v7.0-net-phy-realtek-use-paged-access-for-MDIO_MMD_VEND2-.patch
target/linux/generic/backport-6.18/792-v7.0-net-phy-realtek-add-dummy-PHY-driver-for-RTL8127ATF.patch
target/linux/generic/backport-6.18/794-v7.0-net-phy-realtek-support-interrupt-also-for-C22-varia.patch
target/linux/generic/backport-6.18/796-v7.0-net-phy-realtek-reunify-C22-and-C45-drivers.patch
target/linux/generic/backport-6.18/797-v7.0-net-phy-realtek-demystify-PHYSR-register-location.patch
target/linux/generic/hack-6.18/205-kconfig-abort-configuration-on-unset-symbol.patch
target/linux/generic/hack-6.18/645-netfilter-connmark-introduce-set-dscpmark.patch
target/linux/generic/hack-6.18/650-netfilter-add-xt_FLOWOFFLOAD-target.patch
target/linux/generic/hack-6.18/660-fq_codel_defaults.patch
target/linux/generic/hack-6.18/661-kernel-ct-size-the-hashtable-more-adequately.patch
target/linux/generic/hack-6.18/710-net-sched-sch_cake-configure-sync_time-via-debugfs.patch
target/linux/generic/hack-6.18/721-net-add-packet-mangeling.patch
target/linux/generic/hack-6.18/902-debloat_proc.patch
target/linux/generic/hack-6.18/930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch
target/linux/generic/kernel-6.18
target/linux/generic/pending-6.18/402-mtd-spi-nor-write-support-for-minor-aligned-partitions.patch
target/linux/generic/pending-6.18/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
target/linux/generic/pending-6.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/pending-6.18/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch
target/linux/generic/pending-6.18/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
target/linux/generic/pending-6.18/720-01-net-phy-realtek-use-genphy_soft_reset-for-2.5G-PHYs.patch
target/linux/generic/pending-6.18/720-03-net-phy-realtek-make-sure-paged-read-is-protected-by.patch
target/linux/generic/pending-6.18/720-05-net-phy-realtek-detect-early-version-of-RTL8221B.patch
target/linux/generic/pending-6.18/720-06-net-phy-realtek-mark-existing-MMDs-as-present.patch
target/linux/generic/pending-6.18/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch
target/linux/generic/pending-6.18/736-05-net-ethernet-mtk_eth_soc-zero-initialize-PPE-flow-ta.patch
target/linux/generic/pending-6.18/742-net-phy-realtek-add-5G-and-10G-PHY-support.patch
target/linux/generic/pending-6.18/812-PCI-sysfs-enforce-single-creation-of-sysfs-entry-for.patch
target/linux/generic/pending-6.18/834-ledtrig-libata.patch
target/linux/generic/pending-6.18/896-03-net-phy-own-phydev-psec-via-PSE-notifier-and-remove-.patch
target/linux/ipq40xx/patches-6.18/900-PCI-qcom-add-hack-compatible-for-ipq4019-Lantiq-DSL.patch
target/linux/lantiq/patches-6.18/001-MIPS-lantiq-add-pcie-driver.patch
target/linux/layerscape/patches-6.18/400-LF-20-3-mtd-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch
target/linux/mediatek/patches-6.18/610-pcie-mediatek-fix-clearing-interrupt-status.patch
target/linux/mediatek/patches-6.18/710-pci-pcie-mediatek-add-support-for-coherent-DMA.patch
target/linux/mediatek/patches-6.18/942-net-ethernet-mtk_wed-move-cpuboot-in-a-dedicated-dts.patch
target/linux/qualcommax/patches-6.18/0082-v7.1-clk-qcom-ipq-cmn-pll-Add-IPQ6018-SoC-support.patch
target/linux/qualcommax/patches-6.18/0083-v7.1-clk-qcom-ipq-cmn-pll-Add-IPQ8074-SoC-support.patch
target/linux/qualcommax/patches-6.18/0084-v7.2-clk-qcom-cmnpll-Account-for-reference-clock-divider.patch [deleted file]
target/linux/ramips/patches-6.18/810-uvc-add-iPassion-iP2970-support.patch
target/linux/realtek/patches-6.18/024-02-v7.1-net-phy-realtek-add-RTL8224-pair-order-support.patch
target/linux/realtek/patches-6.18/024-04-v7.1-net-phy-realtek-add-RTL8224-polarity-support.patch
target/linux/realtek/patches-6.18/030-v7.2-net-phy-realtek-support-MDI-swapping-for-RTL8226-CG.patch
target/linux/realtek/patches-6.18/705-v7.1-net-sfp-initialize-i2c_block_size-at-adapter-configu.patch
target/linux/realtek/patches-6.18/714-net-phy-sfp-add-support-for-SMBus.patch
target/linux/realtek/patches-6.18/723-net-mdio-Add-Realtek-Otto-auxiliary-controller.patch
target/linux/realtek/patches-6.18/743-net-realtek-serdes-configuration.patch
target/linux/realtek/patches-6.18/806-add-mdio-driver.patch
target/linux/realtek/patches-6.18/808-add-serdes-mdio-driver.patch
target/linux/rockchip/patches-6.18/037-04-v6.19-mmc-sdhci-of-dwcmshc-Add-command-queue-support-for-rockch.patch
target/linux/starfive/patches-6.18/0013-drivers-nvme-Add-precheck-and-delay-for-CQE-pending-.patch
target/linux/sunxi/config-6.18

index dd4bda60013d20f22da4712baea6871d3e632ad9..65944fa49718665ee8c6d43d2bd94f76fee4b08d 100644 (file)
@@ -58,7 +58,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        airoha_ppe_foe_flow_stats_reset(ppe, npu);
  
        rcu_assign_pointer(eth->npu, npu);
-@@ -1554,6 +1554,10 @@ int airoha_ppe_init(struct airoha_eth *e
+@@ -1555,6 +1555,10 @@ int airoha_ppe_init(struct airoha_eth *e
        if (!ppe->foe_check_time)
                return -ENOMEM;
  
diff --git a/target/linux/airoha/patches-6.18/109-01-v6.19-pinctrl-airoha-generalize-pins-group-function-confs-.patch b/target/linux/airoha/patches-6.18/109-01-v6.19-pinctrl-airoha-generalize-pins-group-function-confs-.patch
deleted file mode 100644 (file)
index e3c3ab2..0000000
+++ /dev/null
@@ -1,775 +0,0 @@
-From 4043b0c45f8555a079bdac69a19ed08695a47a7b Mon Sep 17 00:00:00 2001
-From: Christian Marangi <ansuelsmth@gmail.com>
-Date: Fri, 7 Nov 2025 00:57:04 +0100
-Subject: [PATCH] pinctrl: airoha: generalize pins/group/function/confs
- handling
-
-In preparation for support of Airoha AN7583, generalize
-pins/group/function/confs handling and move them in match_data.
-Inner function will base the values on the pinctrl priv struct instead of
-relying on hardcoded struct.
-
-This permits to use different PIN data while keeping the same logic.
-
-Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
-Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
----
- drivers/pinctrl/mediatek/pinctrl-airoha.c | 567 ++++++++++++----------
- 1 file changed, 318 insertions(+), 249 deletions(-)
-
---- a/drivers/pinctrl/mediatek/pinctrl-airoha.c
-+++ b/drivers/pinctrl/mediatek/pinctrl-airoha.c
-@@ -30,15 +30,15 @@
- #include "../pinconf.h"
- #include "../pinmux.h"
--#define PINCTRL_PIN_GROUP(id)                                         \
--      PINCTRL_PINGROUP(#id, id##_pins, ARRAY_SIZE(id##_pins))
-+#define PINCTRL_PIN_GROUP(id, table)                                  \
-+      PINCTRL_PINGROUP(id, table##_pins, ARRAY_SIZE(table##_pins))
--#define PINCTRL_FUNC_DESC(id)                                         \
-+#define PINCTRL_FUNC_DESC(id, table)                                  \
-       {                                                               \
--              .desc = PINCTRL_PINFUNCTION(#id, id##_groups,           \
--                                          ARRAY_SIZE(id##_groups)),   \
--              .groups = id##_func_group,                              \
--              .group_size = ARRAY_SIZE(id##_func_group),              \
-+              .desc = PINCTRL_PINFUNCTION(#id, table##_groups,        \
-+                                          ARRAY_SIZE(table##_groups)),\
-+              .groups = table##_func_group,                           \
-+              .group_size = ARRAY_SIZE(table##_func_group),           \
-       }
- #define PINCTRL_CONF_DESC(p, offset, mask)                            \
-@@ -357,16 +357,46 @@ struct airoha_pinctrl_gpiochip {
-       u32 irq_type[AIROHA_NUM_PINS];
- };
-+struct airoha_pinctrl_confs_info {
-+      const struct airoha_pinctrl_conf *confs;
-+      unsigned int num_confs;
-+};
-+
-+enum airoha_pinctrl_confs_type {
-+      AIROHA_PINCTRL_CONFS_PULLUP,
-+      AIROHA_PINCTRL_CONFS_PULLDOWN,
-+      AIROHA_PINCTRL_CONFS_DRIVE_E2,
-+      AIROHA_PINCTRL_CONFS_DRIVE_E4,
-+      AIROHA_PINCTRL_CONFS_PCIE_RST_OD,
-+
-+      AIROHA_PINCTRL_CONFS_MAX,
-+};
-+
- struct airoha_pinctrl {
-       struct pinctrl_dev *ctrl;
-+      struct pinctrl_desc desc;
-+      const struct pingroup *grps;
-+      const struct airoha_pinctrl_func *funcs;
-+      const struct airoha_pinctrl_confs_info *confs_info;
-+
-       struct regmap *chip_scu;
-       struct regmap *regmap;
-       struct airoha_pinctrl_gpiochip gpiochip;
- };
--static struct pinctrl_pin_desc airoha_pinctrl_pins[] = {
-+struct airoha_pinctrl_match_data {
-+      const struct pinctrl_pin_desc *pins;
-+      const unsigned int num_pins;
-+      const struct pingroup *grps;
-+      const unsigned int num_grps;
-+      const struct airoha_pinctrl_func *funcs;
-+      const unsigned int num_funcs;
-+      const struct airoha_pinctrl_confs_info confs_info[AIROHA_PINCTRL_CONFS_MAX];
-+};
-+
-+static struct pinctrl_pin_desc en7581_pinctrl_pins[] = {
-       PINCTRL_PIN(0, "uart1_txd"),
-       PINCTRL_PIN(1, "uart1_rxd"),
-       PINCTRL_PIN(2, "i2c_scl"),
-@@ -427,172 +457,172 @@ static struct pinctrl_pin_desc airoha_pi
-       PINCTRL_PIN(63, "pcie_reset2"),
- };
--static const int pon_pins[] = { 49, 50, 51, 52, 53, 54 };
--static const int pon_tod_1pps_pins[] = { 46 };
--static const int gsw_tod_1pps_pins[] = { 46 };
--static const int sipo_pins[] = { 16, 17 };
--static const int sipo_rclk_pins[] = { 16, 17, 43 };
--static const int mdio_pins[] = { 14, 15 };
--static const int uart2_pins[] = { 48, 55 };
--static const int uart2_cts_rts_pins[] = { 46, 47 };
--static const int hsuart_pins[] = { 28, 29 };
--static const int hsuart_cts_rts_pins[] = { 26, 27 };
--static const int uart4_pins[] = { 38, 39 };
--static const int uart5_pins[] = { 18, 19 };
--static const int i2c0_pins[] = { 2, 3 };
--static const int i2c1_pins[] = { 14, 15 };
--static const int jtag_udi_pins[] = { 16, 17, 18, 19, 20 };
--static const int jtag_dfd_pins[] = { 16, 17, 18, 19, 20 };
--static const int i2s_pins[] = { 26, 27, 28, 29 };
--static const int pcm1_pins[] = { 22, 23, 24, 25 };
--static const int pcm2_pins[] = { 18, 19, 20, 21 };
--static const int spi_quad_pins[] = { 32, 33 };
--static const int spi_pins[] = { 4, 5, 6, 7 };
--static const int spi_cs1_pins[] = { 34 };
--static const int pcm_spi_pins[] = { 18, 19, 20, 21, 22, 23, 24, 25 };
--static const int pcm_spi_int_pins[] = { 14 };
--static const int pcm_spi_rst_pins[] = { 15 };
--static const int pcm_spi_cs1_pins[] = { 43 };
--static const int pcm_spi_cs2_pins[] = { 40 };
--static const int pcm_spi_cs2_p128_pins[] = { 40 };
--static const int pcm_spi_cs2_p156_pins[] = { 40 };
--static const int pcm_spi_cs3_pins[] = { 41 };
--static const int pcm_spi_cs4_pins[] = { 42 };
--static const int emmc_pins[] = { 4, 5, 6, 30, 31, 32, 33, 34, 35, 36, 37 };
--static const int pnand_pins[] = { 4, 5, 6, 7, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42 };
--static const int gpio0_pins[] = { 13 };
--static const int gpio1_pins[] = { 14 };
--static const int gpio2_pins[] = { 15 };
--static const int gpio3_pins[] = { 16 };
--static const int gpio4_pins[] = { 17 };
--static const int gpio5_pins[] = { 18 };
--static const int gpio6_pins[] = { 19 };
--static const int gpio7_pins[] = { 20 };
--static const int gpio8_pins[] = { 21 };
--static const int gpio9_pins[] = { 22 };
--static const int gpio10_pins[] = { 23 };
--static const int gpio11_pins[] = { 24 };
--static const int gpio12_pins[] = { 25 };
--static const int gpio13_pins[] = { 26 };
--static const int gpio14_pins[] = { 27 };
--static const int gpio15_pins[] = { 28 };
--static const int gpio16_pins[] = { 29 };
--static const int gpio17_pins[] = { 30 };
--static const int gpio18_pins[] = { 31 };
--static const int gpio19_pins[] = { 32 };
--static const int gpio20_pins[] = { 33 };
--static const int gpio21_pins[] = { 34 };
--static const int gpio22_pins[] = { 35 };
--static const int gpio23_pins[] = { 36 };
--static const int gpio24_pins[] = { 37 };
--static const int gpio25_pins[] = { 38 };
--static const int gpio26_pins[] = { 39 };
--static const int gpio27_pins[] = { 40 };
--static const int gpio28_pins[] = { 41 };
--static const int gpio29_pins[] = { 42 };
--static const int gpio30_pins[] = { 43 };
--static const int gpio31_pins[] = { 44 };
--static const int gpio33_pins[] = { 46 };
--static const int gpio34_pins[] = { 47 };
--static const int gpio35_pins[] = { 48 };
--static const int gpio36_pins[] = { 49 };
--static const int gpio37_pins[] = { 50 };
--static const int gpio38_pins[] = { 51 };
--static const int gpio39_pins[] = { 52 };
--static const int gpio40_pins[] = { 53 };
--static const int gpio41_pins[] = { 54 };
--static const int gpio42_pins[] = { 55 };
--static const int gpio43_pins[] = { 56 };
--static const int gpio44_pins[] = { 57 };
--static const int gpio45_pins[] = { 58 };
--static const int gpio46_pins[] = { 59 };
--static const int pcie_reset0_pins[] = { 61 };
--static const int pcie_reset1_pins[] = { 62 };
--static const int pcie_reset2_pins[] = { 63 };
--
--static const struct pingroup airoha_pinctrl_groups[] = {
--      PINCTRL_PIN_GROUP(pon),
--      PINCTRL_PIN_GROUP(pon_tod_1pps),
--      PINCTRL_PIN_GROUP(gsw_tod_1pps),
--      PINCTRL_PIN_GROUP(sipo),
--      PINCTRL_PIN_GROUP(sipo_rclk),
--      PINCTRL_PIN_GROUP(mdio),
--      PINCTRL_PIN_GROUP(uart2),
--      PINCTRL_PIN_GROUP(uart2_cts_rts),
--      PINCTRL_PIN_GROUP(hsuart),
--      PINCTRL_PIN_GROUP(hsuart_cts_rts),
--      PINCTRL_PIN_GROUP(uart4),
--      PINCTRL_PIN_GROUP(uart5),
--      PINCTRL_PIN_GROUP(i2c0),
--      PINCTRL_PIN_GROUP(i2c1),
--      PINCTRL_PIN_GROUP(jtag_udi),
--      PINCTRL_PIN_GROUP(jtag_dfd),
--      PINCTRL_PIN_GROUP(i2s),
--      PINCTRL_PIN_GROUP(pcm1),
--      PINCTRL_PIN_GROUP(pcm2),
--      PINCTRL_PIN_GROUP(spi),
--      PINCTRL_PIN_GROUP(spi_quad),
--      PINCTRL_PIN_GROUP(spi_cs1),
--      PINCTRL_PIN_GROUP(pcm_spi),
--      PINCTRL_PIN_GROUP(pcm_spi_int),
--      PINCTRL_PIN_GROUP(pcm_spi_rst),
--      PINCTRL_PIN_GROUP(pcm_spi_cs1),
--      PINCTRL_PIN_GROUP(pcm_spi_cs2_p128),
--      PINCTRL_PIN_GROUP(pcm_spi_cs2_p156),
--      PINCTRL_PIN_GROUP(pcm_spi_cs2),
--      PINCTRL_PIN_GROUP(pcm_spi_cs3),
--      PINCTRL_PIN_GROUP(pcm_spi_cs4),
--      PINCTRL_PIN_GROUP(emmc),
--      PINCTRL_PIN_GROUP(pnand),
--      PINCTRL_PIN_GROUP(gpio0),
--      PINCTRL_PIN_GROUP(gpio1),
--      PINCTRL_PIN_GROUP(gpio2),
--      PINCTRL_PIN_GROUP(gpio3),
--      PINCTRL_PIN_GROUP(gpio4),
--      PINCTRL_PIN_GROUP(gpio5),
--      PINCTRL_PIN_GROUP(gpio6),
--      PINCTRL_PIN_GROUP(gpio7),
--      PINCTRL_PIN_GROUP(gpio8),
--      PINCTRL_PIN_GROUP(gpio9),
--      PINCTRL_PIN_GROUP(gpio10),
--      PINCTRL_PIN_GROUP(gpio11),
--      PINCTRL_PIN_GROUP(gpio12),
--      PINCTRL_PIN_GROUP(gpio13),
--      PINCTRL_PIN_GROUP(gpio14),
--      PINCTRL_PIN_GROUP(gpio15),
--      PINCTRL_PIN_GROUP(gpio16),
--      PINCTRL_PIN_GROUP(gpio17),
--      PINCTRL_PIN_GROUP(gpio18),
--      PINCTRL_PIN_GROUP(gpio19),
--      PINCTRL_PIN_GROUP(gpio20),
--      PINCTRL_PIN_GROUP(gpio21),
--      PINCTRL_PIN_GROUP(gpio22),
--      PINCTRL_PIN_GROUP(gpio23),
--      PINCTRL_PIN_GROUP(gpio24),
--      PINCTRL_PIN_GROUP(gpio25),
--      PINCTRL_PIN_GROUP(gpio26),
--      PINCTRL_PIN_GROUP(gpio27),
--      PINCTRL_PIN_GROUP(gpio28),
--      PINCTRL_PIN_GROUP(gpio29),
--      PINCTRL_PIN_GROUP(gpio30),
--      PINCTRL_PIN_GROUP(gpio31),
--      PINCTRL_PIN_GROUP(gpio33),
--      PINCTRL_PIN_GROUP(gpio34),
--      PINCTRL_PIN_GROUP(gpio35),
--      PINCTRL_PIN_GROUP(gpio36),
--      PINCTRL_PIN_GROUP(gpio37),
--      PINCTRL_PIN_GROUP(gpio38),
--      PINCTRL_PIN_GROUP(gpio39),
--      PINCTRL_PIN_GROUP(gpio40),
--      PINCTRL_PIN_GROUP(gpio41),
--      PINCTRL_PIN_GROUP(gpio42),
--      PINCTRL_PIN_GROUP(gpio43),
--      PINCTRL_PIN_GROUP(gpio44),
--      PINCTRL_PIN_GROUP(gpio45),
--      PINCTRL_PIN_GROUP(gpio46),
--      PINCTRL_PIN_GROUP(pcie_reset0),
--      PINCTRL_PIN_GROUP(pcie_reset1),
--      PINCTRL_PIN_GROUP(pcie_reset2),
-+static const int en7581_pon_pins[] = { 49, 50, 51, 52, 53, 54 };
-+static const int en7581_pon_tod_1pps_pins[] = { 46 };
-+static const int en7581_gsw_tod_1pps_pins[] = { 46 };
-+static const int en7581_sipo_pins[] = { 16, 17 };
-+static const int en7581_sipo_rclk_pins[] = { 16, 17, 43 };
-+static const int en7581_mdio_pins[] = { 14, 15 };
-+static const int en7581_uart2_pins[] = { 48, 55 };
-+static const int en7581_uart2_cts_rts_pins[] = { 46, 47 };
-+static const int en7581_hsuart_pins[] = { 28, 29 };
-+static const int en7581_hsuart_cts_rts_pins[] = { 26, 27 };
-+static const int en7581_uart4_pins[] = { 38, 39 };
-+static const int en7581_uart5_pins[] = { 18, 19 };
-+static const int en7581_i2c0_pins[] = { 2, 3 };
-+static const int en7581_i2c1_pins[] = { 14, 15 };
-+static const int en7581_jtag_udi_pins[] = { 16, 17, 18, 19, 20 };
-+static const int en7581_jtag_dfd_pins[] = { 16, 17, 18, 19, 20 };
-+static const int en7581_i2s_pins[] = { 26, 27, 28, 29 };
-+static const int en7581_pcm1_pins[] = { 22, 23, 24, 25 };
-+static const int en7581_pcm2_pins[] = { 18, 19, 20, 21 };
-+static const int en7581_spi_quad_pins[] = { 32, 33 };
-+static const int en7581_spi_pins[] = { 4, 5, 6, 7 };
-+static const int en7581_spi_cs1_pins[] = { 34 };
-+static const int en7581_pcm_spi_pins[] = { 18, 19, 20, 21, 22, 23, 24, 25 };
-+static const int en7581_pcm_spi_int_pins[] = { 14 };
-+static const int en7581_pcm_spi_rst_pins[] = { 15 };
-+static const int en7581_pcm_spi_cs1_pins[] = { 43 };
-+static const int en7581_pcm_spi_cs2_pins[] = { 40 };
-+static const int en7581_pcm_spi_cs2_p128_pins[] = { 40 };
-+static const int en7581_pcm_spi_cs2_p156_pins[] = { 40 };
-+static const int en7581_pcm_spi_cs3_pins[] = { 41 };
-+static const int en7581_pcm_spi_cs4_pins[] = { 42 };
-+static const int en7581_emmc_pins[] = { 4, 5, 6, 30, 31, 32, 33, 34, 35, 36, 37 };
-+static const int en7581_pnand_pins[] = { 4, 5, 6, 7, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42 };
-+static const int en7581_gpio0_pins[] = { 13 };
-+static const int en7581_gpio1_pins[] = { 14 };
-+static const int en7581_gpio2_pins[] = { 15 };
-+static const int en7581_gpio3_pins[] = { 16 };
-+static const int en7581_gpio4_pins[] = { 17 };
-+static const int en7581_gpio5_pins[] = { 18 };
-+static const int en7581_gpio6_pins[] = { 19 };
-+static const int en7581_gpio7_pins[] = { 20 };
-+static const int en7581_gpio8_pins[] = { 21 };
-+static const int en7581_gpio9_pins[] = { 22 };
-+static const int en7581_gpio10_pins[] = { 23 };
-+static const int en7581_gpio11_pins[] = { 24 };
-+static const int en7581_gpio12_pins[] = { 25 };
-+static const int en7581_gpio13_pins[] = { 26 };
-+static const int en7581_gpio14_pins[] = { 27 };
-+static const int en7581_gpio15_pins[] = { 28 };
-+static const int en7581_gpio16_pins[] = { 29 };
-+static const int en7581_gpio17_pins[] = { 30 };
-+static const int en7581_gpio18_pins[] = { 31 };
-+static const int en7581_gpio19_pins[] = { 32 };
-+static const int en7581_gpio20_pins[] = { 33 };
-+static const int en7581_gpio21_pins[] = { 34 };
-+static const int en7581_gpio22_pins[] = { 35 };
-+static const int en7581_gpio23_pins[] = { 36 };
-+static const int en7581_gpio24_pins[] = { 37 };
-+static const int en7581_gpio25_pins[] = { 38 };
-+static const int en7581_gpio26_pins[] = { 39 };
-+static const int en7581_gpio27_pins[] = { 40 };
-+static const int en7581_gpio28_pins[] = { 41 };
-+static const int en7581_gpio29_pins[] = { 42 };
-+static const int en7581_gpio30_pins[] = { 43 };
-+static const int en7581_gpio31_pins[] = { 44 };
-+static const int en7581_gpio33_pins[] = { 46 };
-+static const int en7581_gpio34_pins[] = { 47 };
-+static const int en7581_gpio35_pins[] = { 48 };
-+static const int en7581_gpio36_pins[] = { 49 };
-+static const int en7581_gpio37_pins[] = { 50 };
-+static const int en7581_gpio38_pins[] = { 51 };
-+static const int en7581_gpio39_pins[] = { 52 };
-+static const int en7581_gpio40_pins[] = { 53 };
-+static const int en7581_gpio41_pins[] = { 54 };
-+static const int en7581_gpio42_pins[] = { 55 };
-+static const int en7581_gpio43_pins[] = { 56 };
-+static const int en7581_gpio44_pins[] = { 57 };
-+static const int en7581_gpio45_pins[] = { 58 };
-+static const int en7581_gpio46_pins[] = { 59 };
-+static const int en7581_pcie_reset0_pins[] = { 61 };
-+static const int en7581_pcie_reset1_pins[] = { 62 };
-+static const int en7581_pcie_reset2_pins[] = { 63 };
-+
-+static const struct pingroup en7581_pinctrl_groups[] = {
-+      PINCTRL_PIN_GROUP("pon", en7581_pon),
-+      PINCTRL_PIN_GROUP("pon_tod_1pps", en7581_pon_tod_1pps),
-+      PINCTRL_PIN_GROUP("gsw_tod_1pps", en7581_gsw_tod_1pps),
-+      PINCTRL_PIN_GROUP("sipo", en7581_sipo),
-+      PINCTRL_PIN_GROUP("sipo_rclk", en7581_sipo_rclk),
-+      PINCTRL_PIN_GROUP("mdio", en7581_mdio),
-+      PINCTRL_PIN_GROUP("uart2", en7581_uart2),
-+      PINCTRL_PIN_GROUP("uart2_cts_rts", en7581_uart2_cts_rts),
-+      PINCTRL_PIN_GROUP("hsuart", en7581_hsuart),
-+      PINCTRL_PIN_GROUP("hsuart_cts_rts", en7581_hsuart_cts_rts),
-+      PINCTRL_PIN_GROUP("uart4", en7581_uart4),
-+      PINCTRL_PIN_GROUP("uart5", en7581_uart5),
-+      PINCTRL_PIN_GROUP("i2c0", en7581_i2c0),
-+      PINCTRL_PIN_GROUP("i2c1", en7581_i2c1),
-+      PINCTRL_PIN_GROUP("jtag_udi", en7581_jtag_udi),
-+      PINCTRL_PIN_GROUP("jtag_dfd", en7581_jtag_dfd),
-+      PINCTRL_PIN_GROUP("i2s", en7581_i2s),
-+      PINCTRL_PIN_GROUP("pcm1", en7581_pcm1),
-+      PINCTRL_PIN_GROUP("pcm2", en7581_pcm2),
-+      PINCTRL_PIN_GROUP("spi", en7581_spi),
-+      PINCTRL_PIN_GROUP("spi_quad", en7581_spi_quad),
-+      PINCTRL_PIN_GROUP("spi_cs1", en7581_spi_cs1),
-+      PINCTRL_PIN_GROUP("pcm_spi", en7581_pcm_spi),
-+      PINCTRL_PIN_GROUP("pcm_spi_int", en7581_pcm_spi_int),
-+      PINCTRL_PIN_GROUP("pcm_spi_rst", en7581_pcm_spi_rst),
-+      PINCTRL_PIN_GROUP("pcm_spi_cs1", en7581_pcm_spi_cs1),
-+      PINCTRL_PIN_GROUP("pcm_spi_cs2_p128", en7581_pcm_spi_cs2_p128),
-+      PINCTRL_PIN_GROUP("pcm_spi_cs2_p156", en7581_pcm_spi_cs2_p156),
-+      PINCTRL_PIN_GROUP("pcm_spi_cs2", en7581_pcm_spi_cs2),
-+      PINCTRL_PIN_GROUP("pcm_spi_cs3", en7581_pcm_spi_cs3),
-+      PINCTRL_PIN_GROUP("pcm_spi_cs4", en7581_pcm_spi_cs4),
-+      PINCTRL_PIN_GROUP("emmc", en7581_emmc),
-+      PINCTRL_PIN_GROUP("pnand", en7581_pnand),
-+      PINCTRL_PIN_GROUP("gpio0", en7581_gpio0),
-+      PINCTRL_PIN_GROUP("gpio1", en7581_gpio1),
-+      PINCTRL_PIN_GROUP("gpio2", en7581_gpio2),
-+      PINCTRL_PIN_GROUP("gpio3", en7581_gpio3),
-+      PINCTRL_PIN_GROUP("gpio4", en7581_gpio4),
-+      PINCTRL_PIN_GROUP("gpio5", en7581_gpio5),
-+      PINCTRL_PIN_GROUP("gpio6", en7581_gpio6),
-+      PINCTRL_PIN_GROUP("gpio7", en7581_gpio7),
-+      PINCTRL_PIN_GROUP("gpio8", en7581_gpio8),
-+      PINCTRL_PIN_GROUP("gpio9", en7581_gpio9),
-+      PINCTRL_PIN_GROUP("gpio10", en7581_gpio10),
-+      PINCTRL_PIN_GROUP("gpio11", en7581_gpio11),
-+      PINCTRL_PIN_GROUP("gpio12", en7581_gpio12),
-+      PINCTRL_PIN_GROUP("gpio13", en7581_gpio13),
-+      PINCTRL_PIN_GROUP("gpio14", en7581_gpio14),
-+      PINCTRL_PIN_GROUP("gpio15", en7581_gpio15),
-+      PINCTRL_PIN_GROUP("gpio16", en7581_gpio16),
-+      PINCTRL_PIN_GROUP("gpio17", en7581_gpio17),
-+      PINCTRL_PIN_GROUP("gpio18", en7581_gpio18),
-+      PINCTRL_PIN_GROUP("gpio19", en7581_gpio19),
-+      PINCTRL_PIN_GROUP("gpio20", en7581_gpio20),
-+      PINCTRL_PIN_GROUP("gpio21", en7581_gpio21),
-+      PINCTRL_PIN_GROUP("gpio22", en7581_gpio22),
-+      PINCTRL_PIN_GROUP("gpio23", en7581_gpio23),
-+      PINCTRL_PIN_GROUP("gpio24", en7581_gpio24),
-+      PINCTRL_PIN_GROUP("gpio25", en7581_gpio25),
-+      PINCTRL_PIN_GROUP("gpio26", en7581_gpio26),
-+      PINCTRL_PIN_GROUP("gpio27", en7581_gpio27),
-+      PINCTRL_PIN_GROUP("gpio28", en7581_gpio28),
-+      PINCTRL_PIN_GROUP("gpio29", en7581_gpio29),
-+      PINCTRL_PIN_GROUP("gpio30", en7581_gpio30),
-+      PINCTRL_PIN_GROUP("gpio31", en7581_gpio31),
-+      PINCTRL_PIN_GROUP("gpio33", en7581_gpio33),
-+      PINCTRL_PIN_GROUP("gpio34", en7581_gpio34),
-+      PINCTRL_PIN_GROUP("gpio35", en7581_gpio35),
-+      PINCTRL_PIN_GROUP("gpio36", en7581_gpio36),
-+      PINCTRL_PIN_GROUP("gpio37", en7581_gpio37),
-+      PINCTRL_PIN_GROUP("gpio38", en7581_gpio38),
-+      PINCTRL_PIN_GROUP("gpio39", en7581_gpio39),
-+      PINCTRL_PIN_GROUP("gpio40", en7581_gpio40),
-+      PINCTRL_PIN_GROUP("gpio41", en7581_gpio41),
-+      PINCTRL_PIN_GROUP("gpio42", en7581_gpio42),
-+      PINCTRL_PIN_GROUP("gpio43", en7581_gpio43),
-+      PINCTRL_PIN_GROUP("gpio44", en7581_gpio44),
-+      PINCTRL_PIN_GROUP("gpio45", en7581_gpio45),
-+      PINCTRL_PIN_GROUP("gpio46", en7581_gpio46),
-+      PINCTRL_PIN_GROUP("pcie_reset0", en7581_pcie_reset0),
-+      PINCTRL_PIN_GROUP("pcie_reset1", en7581_pcie_reset1),
-+      PINCTRL_PIN_GROUP("pcie_reset2", en7581_pcie_reset2),
- };
- static const char *const pon_groups[] = { "pon" };
-@@ -1955,33 +1985,33 @@ static const struct airoha_pinctrl_func_
-       },
- };
--static const struct airoha_pinctrl_func airoha_pinctrl_funcs[] = {
--      PINCTRL_FUNC_DESC(pon),
--      PINCTRL_FUNC_DESC(tod_1pps),
--      PINCTRL_FUNC_DESC(sipo),
--      PINCTRL_FUNC_DESC(mdio),
--      PINCTRL_FUNC_DESC(uart),
--      PINCTRL_FUNC_DESC(i2c),
--      PINCTRL_FUNC_DESC(jtag),
--      PINCTRL_FUNC_DESC(pcm),
--      PINCTRL_FUNC_DESC(spi),
--      PINCTRL_FUNC_DESC(pcm_spi),
--      PINCTRL_FUNC_DESC(i2s),
--      PINCTRL_FUNC_DESC(emmc),
--      PINCTRL_FUNC_DESC(pnand),
--      PINCTRL_FUNC_DESC(pcie_reset),
--      PINCTRL_FUNC_DESC(pwm),
--      PINCTRL_FUNC_DESC(phy1_led0),
--      PINCTRL_FUNC_DESC(phy2_led0),
--      PINCTRL_FUNC_DESC(phy3_led0),
--      PINCTRL_FUNC_DESC(phy4_led0),
--      PINCTRL_FUNC_DESC(phy1_led1),
--      PINCTRL_FUNC_DESC(phy2_led1),
--      PINCTRL_FUNC_DESC(phy3_led1),
--      PINCTRL_FUNC_DESC(phy4_led1),
-+static const struct airoha_pinctrl_func en7581_pinctrl_funcs[] = {
-+      PINCTRL_FUNC_DESC("pon", pon),
-+      PINCTRL_FUNC_DESC("tod_1pps", tod_1pps),
-+      PINCTRL_FUNC_DESC("sipo", sipo),
-+      PINCTRL_FUNC_DESC("mdio", mdio),
-+      PINCTRL_FUNC_DESC("uart", uart),
-+      PINCTRL_FUNC_DESC("i2c", i2c),
-+      PINCTRL_FUNC_DESC("jtag", jtag),
-+      PINCTRL_FUNC_DESC("pcm", pcm),
-+      PINCTRL_FUNC_DESC("spi", spi),
-+      PINCTRL_FUNC_DESC("pcm_spi", pcm_spi),
-+      PINCTRL_FUNC_DESC("i2s", i2s),
-+      PINCTRL_FUNC_DESC("emmc", emmc),
-+      PINCTRL_FUNC_DESC("pnand", pnand),
-+      PINCTRL_FUNC_DESC("pcie_reset", pcie_reset),
-+      PINCTRL_FUNC_DESC("pwm", pwm),
-+      PINCTRL_FUNC_DESC("phy1_led0", phy1_led0),
-+      PINCTRL_FUNC_DESC("phy2_led0", phy2_led0),
-+      PINCTRL_FUNC_DESC("phy3_led0", phy3_led0),
-+      PINCTRL_FUNC_DESC("phy4_led0", phy4_led0),
-+      PINCTRL_FUNC_DESC("phy1_led1", phy1_led1),
-+      PINCTRL_FUNC_DESC("phy2_led1", phy2_led1),
-+      PINCTRL_FUNC_DESC("phy3_led1", phy3_led1),
-+      PINCTRL_FUNC_DESC("phy4_led1", phy4_led1),
- };
--static const struct airoha_pinctrl_conf airoha_pinctrl_pullup_conf[] = {
-+static const struct airoha_pinctrl_conf en7581_pinctrl_pullup_conf[] = {
-       PINCTRL_CONF_DESC(0, REG_I2C_SDA_PU, UART1_TXD_PU_MASK),
-       PINCTRL_CONF_DESC(1, REG_I2C_SDA_PU, UART1_RXD_PU_MASK),
-       PINCTRL_CONF_DESC(2, REG_I2C_SDA_PU, I2C_SDA_PU_MASK),
-@@ -2042,7 +2072,7 @@ static const struct airoha_pinctrl_conf
-       PINCTRL_CONF_DESC(63, REG_I2C_SDA_PU, PCIE2_RESET_PU_MASK),
- };
--static const struct airoha_pinctrl_conf airoha_pinctrl_pulldown_conf[] = {
-+static const struct airoha_pinctrl_conf en7581_pinctrl_pulldown_conf[] = {
-       PINCTRL_CONF_DESC(0, REG_I2C_SDA_PD, UART1_TXD_PD_MASK),
-       PINCTRL_CONF_DESC(1, REG_I2C_SDA_PD, UART1_RXD_PD_MASK),
-       PINCTRL_CONF_DESC(2, REG_I2C_SDA_PD, I2C_SDA_PD_MASK),
-@@ -2103,7 +2133,7 @@ static const struct airoha_pinctrl_conf
-       PINCTRL_CONF_DESC(63, REG_I2C_SDA_PD, PCIE2_RESET_PD_MASK),
- };
--static const struct airoha_pinctrl_conf airoha_pinctrl_drive_e2_conf[] = {
-+static const struct airoha_pinctrl_conf en7581_pinctrl_drive_e2_conf[] = {
-       PINCTRL_CONF_DESC(0, REG_I2C_SDA_E2, UART1_TXD_E2_MASK),
-       PINCTRL_CONF_DESC(1, REG_I2C_SDA_E2, UART1_RXD_E2_MASK),
-       PINCTRL_CONF_DESC(2, REG_I2C_SDA_E2, I2C_SDA_E2_MASK),
-@@ -2164,7 +2194,7 @@ static const struct airoha_pinctrl_conf
-       PINCTRL_CONF_DESC(63, REG_I2C_SDA_E2, PCIE2_RESET_E2_MASK),
- };
--static const struct airoha_pinctrl_conf airoha_pinctrl_drive_e4_conf[] = {
-+static const struct airoha_pinctrl_conf en7581_pinctrl_drive_e4_conf[] = {
-       PINCTRL_CONF_DESC(0, REG_I2C_SDA_E4, UART1_TXD_E4_MASK),
-       PINCTRL_CONF_DESC(1, REG_I2C_SDA_E4, UART1_RXD_E4_MASK),
-       PINCTRL_CONF_DESC(2, REG_I2C_SDA_E4, I2C_SDA_E4_MASK),
-@@ -2225,7 +2255,7 @@ static const struct airoha_pinctrl_conf
-       PINCTRL_CONF_DESC(63, REG_I2C_SDA_E4, PCIE2_RESET_E4_MASK),
- };
--static const struct airoha_pinctrl_conf airoha_pinctrl_pcie_rst_od_conf[] = {
-+static const struct airoha_pinctrl_conf en7581_pinctrl_pcie_rst_od_conf[] = {
-       PINCTRL_CONF_DESC(61, REG_PCIE_RESET_OD, PCIE0_RESET_OD_MASK),
-       PINCTRL_CONF_DESC(62, REG_PCIE_RESET_OD, PCIE1_RESET_OD_MASK),
-       PINCTRL_CONF_DESC(63, REG_PCIE_RESET_OD, PCIE2_RESET_OD_MASK),
-@@ -2546,12 +2576,17 @@ airoha_pinctrl_get_conf_reg(const struct
- }
- static int airoha_pinctrl_get_conf(struct airoha_pinctrl *pinctrl,
--                                 const struct airoha_pinctrl_conf *conf,
--                                 int conf_size, int pin, u32 *val)
-+                                 enum airoha_pinctrl_confs_type conf_type,
-+                                 int pin, u32 *val)
- {
-+      const struct airoha_pinctrl_confs_info *confs_info;
-       const struct airoha_pinctrl_reg *reg;
--      reg = airoha_pinctrl_get_conf_reg(conf, conf_size, pin);
-+      confs_info = &pinctrl->confs_info[conf_type];
-+
-+      reg = airoha_pinctrl_get_conf_reg(confs_info->confs,
-+                                        confs_info->num_confs,
-+                                        pin);
-       if (!reg)
-               return -EINVAL;
-@@ -2564,12 +2599,17 @@ static int airoha_pinctrl_get_conf(struc
- }
- static int airoha_pinctrl_set_conf(struct airoha_pinctrl *pinctrl,
--                                 const struct airoha_pinctrl_conf *conf,
--                                 int conf_size, int pin, u32 val)
-+                                 enum airoha_pinctrl_confs_type conf_type,
-+                                 int pin, u32 val)
- {
-+      const struct airoha_pinctrl_confs_info *confs_info;
-       const struct airoha_pinctrl_reg *reg = NULL;
--      reg = airoha_pinctrl_get_conf_reg(conf, conf_size, pin);
-+      confs_info = &pinctrl->confs_info[conf_type];
-+
-+      reg = airoha_pinctrl_get_conf_reg(confs_info->confs,
-+                                        confs_info->num_confs,
-+                                        pin);
-       if (!reg)
-               return -EINVAL;
-@@ -2582,44 +2622,34 @@ static int airoha_pinctrl_set_conf(struc
- }
- #define airoha_pinctrl_get_pullup_conf(pinctrl, pin, val)                     \
--      airoha_pinctrl_get_conf((pinctrl), airoha_pinctrl_pullup_conf,          \
--                              ARRAY_SIZE(airoha_pinctrl_pullup_conf),         \
-+      airoha_pinctrl_get_conf((pinctrl), AIROHA_PINCTRL_CONFS_PULLUP,         \
-                               (pin), (val))
- #define airoha_pinctrl_get_pulldown_conf(pinctrl, pin, val)                   \
--      airoha_pinctrl_get_conf((pinctrl), airoha_pinctrl_pulldown_conf,        \
--                              ARRAY_SIZE(airoha_pinctrl_pulldown_conf),       \
-+      airoha_pinctrl_get_conf((pinctrl), AIROHA_PINCTRL_CONFS_PULLDOWN,       \
-                               (pin), (val))
- #define airoha_pinctrl_get_drive_e2_conf(pinctrl, pin, val)                   \
--      airoha_pinctrl_get_conf((pinctrl), airoha_pinctrl_drive_e2_conf,        \
--                              ARRAY_SIZE(airoha_pinctrl_drive_e2_conf),       \
-+      airoha_pinctrl_get_conf((pinctrl), AIROHA_PINCTRL_CONFS_DRIVE_E2,       \
-                               (pin), (val))
- #define airoha_pinctrl_get_drive_e4_conf(pinctrl, pin, val)                   \
--      airoha_pinctrl_get_conf((pinctrl), airoha_pinctrl_drive_e4_conf,        \
--                              ARRAY_SIZE(airoha_pinctrl_drive_e4_conf),       \
-+      airoha_pinctrl_get_conf((pinctrl), AIROHA_PINCTRL_CONFS_DRIVE_E4,       \
-                               (pin), (val))
- #define airoha_pinctrl_get_pcie_rst_od_conf(pinctrl, pin, val)                        \
--      airoha_pinctrl_get_conf((pinctrl), airoha_pinctrl_pcie_rst_od_conf,     \
--                              ARRAY_SIZE(airoha_pinctrl_pcie_rst_od_conf),    \
-+      airoha_pinctrl_get_conf((pinctrl), AIROHA_PINCTRL_CONFS_PCIE_RST_OD,    \
-                               (pin), (val))
- #define airoha_pinctrl_set_pullup_conf(pinctrl, pin, val)                     \
--      airoha_pinctrl_set_conf((pinctrl), airoha_pinctrl_pullup_conf,          \
--                              ARRAY_SIZE(airoha_pinctrl_pullup_conf),         \
-+      airoha_pinctrl_set_conf((pinctrl), AIROHA_PINCTRL_CONFS_PULLUP,         \
-                               (pin), (val))
- #define airoha_pinctrl_set_pulldown_conf(pinctrl, pin, val)                   \
--      airoha_pinctrl_set_conf((pinctrl), airoha_pinctrl_pulldown_conf,        \
--                              ARRAY_SIZE(airoha_pinctrl_pulldown_conf),       \
-+      airoha_pinctrl_set_conf((pinctrl), AIROHA_PINCTRL_CONFS_PULLDOWN,       \
-                               (pin), (val))
- #define airoha_pinctrl_set_drive_e2_conf(pinctrl, pin, val)                   \
--      airoha_pinctrl_set_conf((pinctrl), airoha_pinctrl_drive_e2_conf,        \
--                              ARRAY_SIZE(airoha_pinctrl_drive_e2_conf),       \
-+      airoha_pinctrl_set_conf((pinctrl), AIROHA_PINCTRL_CONFS_DRIVE_E2,       \
-                               (pin), (val))
- #define airoha_pinctrl_set_drive_e4_conf(pinctrl, pin, val)                   \
--      airoha_pinctrl_set_conf((pinctrl), airoha_pinctrl_drive_e4_conf,        \
--                              ARRAY_SIZE(airoha_pinctrl_drive_e4_conf),       \
-+      airoha_pinctrl_set_conf((pinctrl), AIROHA_PINCTRL_CONFS_DRIVE_E4,       \
-                               (pin), (val))
- #define airoha_pinctrl_set_pcie_rst_od_conf(pinctrl, pin, val)                        \
--      airoha_pinctrl_set_conf((pinctrl), airoha_pinctrl_pcie_rst_od_conf,     \
--                              ARRAY_SIZE(airoha_pinctrl_pcie_rst_od_conf),    \
-+      airoha_pinctrl_set_conf((pinctrl), AIROHA_PINCTRL_CONFS_PCIE_RST_OD,    \
-                               (pin), (val))
- static int airoha_pinconf_get_direction(struct pinctrl_dev *pctrl_dev, u32 p)
-@@ -2796,12 +2826,13 @@ static int airoha_pinconf_set(struct pin
- static int airoha_pinconf_group_get(struct pinctrl_dev *pctrl_dev,
-                                   unsigned int group, unsigned long *config)
- {
-+      struct airoha_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev);
-       u32 cur_config = 0;
-       int i;
--      for (i = 0; i < airoha_pinctrl_groups[group].npins; i++) {
-+      for (i = 0; i < pinctrl->grps[group].npins; i++) {
-               if (airoha_pinconf_get(pctrl_dev,
--                                     airoha_pinctrl_groups[group].pins[i],
-+                                     pinctrl->grps[group].pins[i],
-                                      config))
-                       return -ENOTSUPP;
-@@ -2818,13 +2849,14 @@ static int airoha_pinconf_group_set(stru
-                                   unsigned int group, unsigned long *configs,
-                                   unsigned int num_configs)
- {
-+      struct airoha_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev);
-       int i;
--      for (i = 0; i < airoha_pinctrl_groups[group].npins; i++) {
-+      for (i = 0; i < pinctrl->grps[group].npins; i++) {
-               int err;
-               err = airoha_pinconf_set(pctrl_dev,
--                                       airoha_pinctrl_groups[group].pins[i],
-+                                       pinctrl->grps[group].pins[i],
-                                        configs, num_configs);
-               if (err)
-                       return err;
-@@ -2850,23 +2882,16 @@ static const struct pinctrl_ops airoha_p
-       .dt_free_map = pinconf_generic_dt_free_map,
- };
--static const struct pinctrl_desc airoha_pinctrl_desc = {
--      .name = KBUILD_MODNAME,
--      .owner = THIS_MODULE,
--      .pctlops = &airoha_pctlops,
--      .pmxops = &airoha_pmxops,
--      .confops = &airoha_confops,
--      .pins = airoha_pinctrl_pins,
--      .npins = ARRAY_SIZE(airoha_pinctrl_pins),
--};
--
- static int airoha_pinctrl_probe(struct platform_device *pdev)
- {
-+      const struct airoha_pinctrl_match_data *data;
-       struct device *dev = &pdev->dev;
-       struct airoha_pinctrl *pinctrl;
-       struct regmap *map;
-       int err, i;
-+      data = device_get_match_data(dev);
-+
-       pinctrl = devm_kzalloc(dev, sizeof(*pinctrl), GFP_KERNEL);
-       if (!pinctrl)
-               return -ENOMEM;
-@@ -2881,14 +2906,23 @@ static int airoha_pinctrl_probe(struct p
-       pinctrl->chip_scu = map;
--      err = devm_pinctrl_register_and_init(dev, &airoha_pinctrl_desc,
-+      /* Init pinctrl desc struct */
-+      pinctrl->desc.name = KBUILD_MODNAME;
-+      pinctrl->desc.owner = THIS_MODULE,
-+      pinctrl->desc.pctlops = &airoha_pctlops,
-+      pinctrl->desc.pmxops = &airoha_pmxops,
-+      pinctrl->desc.confops = &airoha_confops,
-+      pinctrl->desc.pins = data->pins,
-+      pinctrl->desc.npins = data->num_pins,
-+
-+      err = devm_pinctrl_register_and_init(dev, &pinctrl->desc,
-                                            pinctrl, &pinctrl->ctrl);
-       if (err)
-               return err;
-       /* build pin groups */
--      for (i = 0; i < ARRAY_SIZE(airoha_pinctrl_groups); i++) {
--              const struct pingroup *grp = &airoha_pinctrl_groups[i];
-+      for (i = 0; i < data->num_grps; i++) {
-+              const struct pingroup *grp = &data->grps[i];
-               err = pinctrl_generic_add_group(pinctrl->ctrl, grp->name,
-                                               grp->pins, grp->npins,
-@@ -2901,10 +2935,10 @@ static int airoha_pinctrl_probe(struct p
-       }
-       /* build functions */
--      for (i = 0; i < ARRAY_SIZE(airoha_pinctrl_funcs); i++) {
-+      for (i = 0; i < data->num_funcs; i++) {
-               const struct airoha_pinctrl_func *func;
--              func = &airoha_pinctrl_funcs[i];
-+              func = &data->funcs[i];
-               err = pinmux_generic_add_pinfunction(pinctrl->ctrl,
-                                                    &func->desc,
-                                                    (void *)func);
-@@ -2915,6 +2949,10 @@ static int airoha_pinctrl_probe(struct p
-               }
-       }
-+      pinctrl->grps = data->grps;
-+      pinctrl->funcs = data->funcs;
-+      pinctrl->confs_info = data->confs_info;
-+
-       err = pinctrl_enable(pinctrl->ctrl);
-       if (err)
-               return err;
-@@ -2923,8 +2961,39 @@ static int airoha_pinctrl_probe(struct p
-       return airoha_pinctrl_add_gpiochip(pinctrl, pdev);
- }
-+static const struct airoha_pinctrl_match_data en7581_pinctrl_match_data = {
-+      .pins = en7581_pinctrl_pins,
-+      .num_pins = ARRAY_SIZE(en7581_pinctrl_pins),
-+      .grps = en7581_pinctrl_groups,
-+      .num_grps = ARRAY_SIZE(en7581_pinctrl_groups),
-+      .funcs = en7581_pinctrl_funcs,
-+      .num_funcs = ARRAY_SIZE(en7581_pinctrl_funcs),
-+      .confs_info = {
-+              [AIROHA_PINCTRL_CONFS_PULLUP] = {
-+                      .confs = en7581_pinctrl_pullup_conf,
-+                      .num_confs = ARRAY_SIZE(en7581_pinctrl_pullup_conf),
-+              },
-+              [AIROHA_PINCTRL_CONFS_PULLDOWN] = {
-+                      .confs = en7581_pinctrl_pulldown_conf,
-+                      .num_confs = ARRAY_SIZE(en7581_pinctrl_pulldown_conf),
-+              },
-+              [AIROHA_PINCTRL_CONFS_DRIVE_E2] = {
-+                      .confs = en7581_pinctrl_drive_e2_conf,
-+                      .num_confs = ARRAY_SIZE(en7581_pinctrl_drive_e2_conf),
-+              },
-+              [AIROHA_PINCTRL_CONFS_DRIVE_E4] = {
-+                      .confs = en7581_pinctrl_drive_e4_conf,
-+                      .num_confs = ARRAY_SIZE(en7581_pinctrl_drive_e4_conf),
-+              },
-+              [AIROHA_PINCTRL_CONFS_PCIE_RST_OD] = {
-+                      .confs = en7581_pinctrl_pcie_rst_od_conf,
-+                      .num_confs = ARRAY_SIZE(en7581_pinctrl_pcie_rst_od_conf),
-+              },
-+      },
-+};
-+
- static const struct of_device_id airoha_pinctrl_of_match[] = {
--      { .compatible = "airoha,en7581-pinctrl" },
-+      { .compatible = "airoha,en7581-pinctrl", .data = &en7581_pinctrl_match_data },
-       { /* sentinel */ }
- };
- MODULE_DEVICE_TABLE(of, airoha_pinctrl_of_match);
index 0f96183a266ae1de766039686474d227c101d587..a48020c2d75506c7619125cff028ad3da6213a32 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
 
 --- a/drivers/pinctrl/mediatek/pinctrl-airoha.c
 +++ b/drivers/pinctrl/mediatek/pinctrl-airoha.c
-@@ -1473,516 +1473,128 @@ static const struct airoha_pinctrl_func_
+@@ -1475,516 +1475,128 @@ static const struct airoha_pinctrl_func_
        },
  };
  
index a38ef0574c9201ddfdbb9d454d9bcadd1bcc8e16..204ad1cd621b17277d6e639c999c9f1aa795ed7a 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
 
 --- a/drivers/pinctrl/mediatek/pinctrl-airoha.c
 +++ b/drivers/pinctrl/mediatek/pinctrl-airoha.c
-@@ -1073,404 +1073,75 @@ static const struct airoha_pinctrl_func_
+@@ -1075,404 +1075,75 @@ static const struct airoha_pinctrl_func_
  };
  
  /* PWM */
index ad0ff9f4109c0e2f3a9edd7f3341702d3aa7d268..1206e962794ec5cf8ea470a510ae24332e29752d 100644 (file)
@@ -94,7 +94,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  #define UART1_RXD_PD_MASK                     BIT(3)
  #define UART1_TXD_PD_MASK                     BIT(2)
  #define I2C_SCL_PD_MASK                               BIT(1)
-@@ -625,10 +642,223 @@ static const struct pingroup en7581_pinc
+@@ -627,10 +644,223 @@ static const struct pingroup en7581_pinc
        PINCTRL_PIN_GROUP("pcie_reset2", en7581_pcie_reset2),
  };
  
@@ -318,7 +318,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static const char *const uart_groups[] = { "uart2", "uart2_cts_rts", "hsuart",
                                           "hsuart_cts_rts", "uart4",
                                           "uart5" };
-@@ -641,11 +871,16 @@ static const char *const pcm_spi_groups[
+@@ -643,11 +873,16 @@ static const char *const pcm_spi_groups[
                                              "pcm_spi_cs2_p156",
                                              "pcm_spi_cs2_p128",
                                              "pcm_spi_cs3", "pcm_spi_cs4" };
@@ -335,7 +335,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static const char *const pwm_groups[] = { "gpio0", "gpio1",
                                          "gpio2", "gpio3",
                                          "gpio4", "gpio5",
-@@ -684,6 +919,22 @@ static const char *const phy3_led1_group
+@@ -686,6 +921,22 @@ static const char *const phy3_led1_group
                                                "gpio45", "gpio46" };
  static const char *const phy4_led1_groups[] = { "gpio43", "gpio44",
                                                "gpio45", "gpio46" };
@@ -358,7 +358,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  
  static const struct airoha_pinctrl_func_group pon_func_group[] = {
        {
-@@ -761,6 +1012,25 @@ static const struct airoha_pinctrl_func_
+@@ -763,6 +1014,25 @@ static const struct airoha_pinctrl_func_
        },
  };
  
@@ -384,7 +384,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static const struct airoha_pinctrl_func_group uart_func_group[] = {
        {
                .name = "uart2",
-@@ -1002,6 +1272,73 @@ static const struct airoha_pinctrl_func_
+@@ -1004,6 +1274,73 @@ static const struct airoha_pinctrl_func_
        },
  };
  
@@ -458,7 +458,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static const struct airoha_pinctrl_func_group i2s_func_group[] = {
        {
                .name = "i2s",
-@@ -1072,6 +1409,28 @@ static const struct airoha_pinctrl_func_
+@@ -1074,6 +1411,28 @@ static const struct airoha_pinctrl_func_
        },
  };
  
@@ -487,7 +487,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  /* PWM */
  #define AIROHA_PINCTRL_PWM(gpio, mux_val)             \
        {                                               \
-@@ -1268,6 +1627,94 @@ static const struct airoha_pinctrl_func_
+@@ -1270,6 +1629,94 @@ static const struct airoha_pinctrl_func_
                                LAN3_LED_MAPPING_MASK, LAN3_PHY_LED_MAP(2)),
  };
  
@@ -582,7 +582,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static const struct airoha_pinctrl_func en7581_pinctrl_funcs[] = {
        PINCTRL_FUNC_DESC("pon", pon),
        PINCTRL_FUNC_DESC("tod_1pps", tod_1pps),
-@@ -1294,6 +1741,31 @@ static const struct airoha_pinctrl_func
+@@ -1296,6 +1743,31 @@ static const struct airoha_pinctrl_func
        PINCTRL_FUNC_DESC("phy4_led1", phy4_led1),
  };
  
@@ -614,7 +614,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static const struct airoha_pinctrl_conf en7581_pinctrl_pullup_conf[] = {
        PINCTRL_CONF_DESC(0, REG_I2C_SDA_PU, UART1_TXD_PU_MASK),
        PINCTRL_CONF_DESC(1, REG_I2C_SDA_PU, UART1_RXD_PU_MASK),
-@@ -1355,6 +1827,62 @@ static const struct airoha_pinctrl_conf
+@@ -1357,6 +1829,62 @@ static const struct airoha_pinctrl_conf
        PINCTRL_CONF_DESC(63, REG_I2C_SDA_PU, PCIE2_RESET_PU_MASK),
  };
  
@@ -677,7 +677,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static const struct airoha_pinctrl_conf en7581_pinctrl_pulldown_conf[] = {
        PINCTRL_CONF_DESC(0, REG_I2C_SDA_PD, UART1_TXD_PD_MASK),
        PINCTRL_CONF_DESC(1, REG_I2C_SDA_PD, UART1_RXD_PD_MASK),
-@@ -1416,6 +1944,62 @@ static const struct airoha_pinctrl_conf
+@@ -1418,6 +1946,62 @@ static const struct airoha_pinctrl_conf
        PINCTRL_CONF_DESC(63, REG_I2C_SDA_PD, PCIE2_RESET_PD_MASK),
  };
  
@@ -740,7 +740,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static const struct airoha_pinctrl_conf en7581_pinctrl_drive_e2_conf[] = {
        PINCTRL_CONF_DESC(0, REG_I2C_SDA_E2, UART1_TXD_E2_MASK),
        PINCTRL_CONF_DESC(1, REG_I2C_SDA_E2, UART1_RXD_E2_MASK),
-@@ -1477,6 +2061,62 @@ static const struct airoha_pinctrl_conf
+@@ -1479,6 +2063,62 @@ static const struct airoha_pinctrl_conf
        PINCTRL_CONF_DESC(63, REG_I2C_SDA_E2, PCIE2_RESET_E2_MASK),
  };
  
@@ -803,7 +803,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static const struct airoha_pinctrl_conf en7581_pinctrl_drive_e4_conf[] = {
        PINCTRL_CONF_DESC(0, REG_I2C_SDA_E4, UART1_TXD_E4_MASK),
        PINCTRL_CONF_DESC(1, REG_I2C_SDA_E4, UART1_RXD_E4_MASK),
-@@ -1538,12 +2178,73 @@ static const struct airoha_pinctrl_conf
+@@ -1540,12 +2180,73 @@ static const struct airoha_pinctrl_conf
        PINCTRL_CONF_DESC(63, REG_I2C_SDA_E4, PCIE2_RESET_E4_MASK),
  };
  
@@ -877,7 +877,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static int airoha_convert_pin_to_reg_offset(struct pinctrl_dev *pctrl_dev,
                                            struct pinctrl_gpio_range *range,
                                            int pin)
-@@ -1708,7 +2409,7 @@ static const struct irq_chip airoha_gpio
+@@ -1710,7 +2411,7 @@ static const struct irq_chip airoha_gpio
  };
  
  static int airoha_pinctrl_add_gpiochip(struct airoha_pinctrl *pinctrl,
@@ -886,7 +886,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  {
        struct airoha_pinctrl_gpiochip *chip = &pinctrl->gpiochip;
        struct gpio_chip *gc = &chip->chip;
-@@ -1743,7 +2444,7 @@ static int airoha_pinctrl_add_gpiochip(s
+@@ -1745,7 +2446,7 @@ static int airoha_pinctrl_add_gpiochip(s
                return irq;
  
        err = devm_request_irq(dev, irq, airoha_irq_handler, IRQF_SHARED,
@@ -895,7 +895,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
        if (err) {
                dev_err(dev, "error requesting irq %d: %d\n", irq, err);
                return err;
-@@ -1807,8 +2508,8 @@ static int airoha_pinmux_set_mux(struct
+@@ -1809,8 +2510,8 @@ static int airoha_pinmux_set_mux(struct
  }
  
  static int airoha_pinmux_set_direction(struct pinctrl_dev *pctrl_dev,
@@ -906,7 +906,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  {
        struct airoha_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev);
        u32 mask, index;
-@@ -1898,7 +2599,7 @@ static int airoha_pinctrl_set_conf(struc
+@@ -1900,7 +2601,7 @@ static int airoha_pinctrl_set_conf(struc
  
  
        if (regmap_update_bits(pinctrl->chip_scu, reg->offset, reg->mask,
@@ -915,7 +915,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
                return -EINVAL;
  
        return 0;
-@@ -2115,8 +2816,8 @@ static int airoha_pinconf_group_get(stru
+@@ -2117,8 +2818,8 @@ static int airoha_pinconf_group_get(stru
  
        for (i = 0; i < pinctrl->grps[group].npins; i++) {
                if (airoha_pinconf_get(pctrl_dev,
@@ -926,7 +926,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
                        return -ENOTSUPP;
  
                if (i && cur_config != *config)
-@@ -2275,8 +2976,40 @@ static const struct airoha_pinctrl_match
+@@ -2277,8 +2978,40 @@ static const struct airoha_pinctrl_match
        },
  };
  
diff --git a/target/linux/airoha/patches-6.18/112-v6.19-pinctrl-airoha-fix-pinctrl-function-mismatch-issue.patch b/target/linux/airoha/patches-6.18/112-v6.19-pinctrl-airoha-fix-pinctrl-function-mismatch-issue.patch
deleted file mode 100644 (file)
index e55475f..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-From f2bd5a0f59d052d16749bccf637690e51947a5d6 Mon Sep 17 00:00:00 2001
-From: Chukun Pan <amadeus@jmu.edu.cn>
-Date: Sat, 15 Nov 2025 18:00:00 +0800
-Subject: [PATCH] pinctrl: airoha: fix pinctrl function mismatch issue
-
-The blamed commit made the following changes:
-
--#define PINCTRL_FUNC_DESC(id)...
--              .desc = PINCTRL_PINFUNCTION(#id, ...
-+#define PINCTRL_FUNC_DESC(id, table)...
-+              .desc = PINCTRL_PINFUNCTION(#id, ...
-
--      PINCTRL_FUNC_DESC(pon)...
-+      PINCTRL_FUNC_DESC("pon", pon)...
-
-It's clear that the id of funcs doesn't match the definition.
-Remove redundant #string from the definition to fix this issue:
-pinctrl-airoha ...: invalid function mdio in map table
-
-Fixes: 4043b0c45f85 ("pinctrl: airoha: generalize pins/group/function/confs handling")
-Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
-Acked-by: Christian Marangi <ansuelsmth@gmail.com>
-Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
----
- drivers/pinctrl/mediatek/pinctrl-airoha.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/pinctrl/mediatek/pinctrl-airoha.c
-+++ b/drivers/pinctrl/mediatek/pinctrl-airoha.c
-@@ -35,7 +35,7 @@
- #define PINCTRL_FUNC_DESC(id, table)                                  \
-       {                                                               \
--              .desc = PINCTRL_PINFUNCTION(#id, table##_groups,        \
-+              .desc = PINCTRL_PINFUNCTION(id, table##_groups, \
-                                           ARRAY_SIZE(table##_groups)),\
-               .groups = table##_func_group,                           \
-               .group_size = ARRAY_SIZE(table##_func_group),           \
index ac5b1d2ca31ed6fd5b6cb1f43f98e493cae68f73..a4aea1d89ec3b572bdaaf614c3dd10bc537cdd25 100644 (file)
@@ -29,7 +29,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
 
 --- a/drivers/pinctrl/mediatek/pinctrl-airoha.c
 +++ b/drivers/pinctrl/mediatek/pinctrl-airoha.c
-@@ -2993,7 +2993,7 @@ static const struct airoha_pinctrl_match
+@@ -2995,7 +2995,7 @@ static const struct airoha_pinctrl_match
                        .num_confs = ARRAY_SIZE(an7583_pinctrl_pulldown_conf),
                },
                [AIROHA_PINCTRL_CONFS_DRIVE_E2] = {
index cb3e579c2004990c6d5300510895ce73edbc7aae..0afa78410359cff23f784c655e1a8d160e03d034 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
 
 --- a/drivers/pinctrl/mediatek/pinctrl-airoha.c
 +++ b/drivers/pinctrl/mediatek/pinctrl-airoha.c
-@@ -2892,12 +2892,12 @@ static int airoha_pinctrl_probe(struct p
+@@ -2894,12 +2894,12 @@ static int airoha_pinctrl_probe(struct p
  
        /* Init pinctrl desc struct */
        pinctrl->desc.name = KBUILD_MODNAME;
index c095e00cfcde30c79e5c78e8593970c2c3928921..8e9a0bc59eddb4ff3236f45fec0f12defce07fb9 100644 (file)
@@ -235,7 +235,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 -      channel = netdev_uses_dsa(dev) ? skb_get_queue_mapping(skb) : port->id;
 +      channel = netdev_uses_dsa(netdev) ? skb_get_queue_mapping(skb) : port->id;
        channel = channel % AIROHA_NUM_QOS_CHANNELS;
-       queue = (skb->priority - 1) % AIROHA_NUM_QOS_QUEUES; /* QoS queue */
+       queue = skb->priority % AIROHA_NUM_QOS_QUEUES;
        queue = channel * AIROHA_NUM_QOS_QUEUES + queue;
  
 -      return queue < dev->num_tx_queues ? queue : 0;
diff --git a/target/linux/airoha/patches-6.18/170-v7.2-net-airoha-Fix-register-index-for-Tx-fwd-counter-con.patch b/target/linux/airoha/patches-6.18/170-v7.2-net-airoha-Fix-register-index-for-Tx-fwd-counter-con.patch
deleted file mode 100644 (file)
index 3059178..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From 1402ecccf5630a0b7fa4749d7d2e72abc3f3d73d Mon Sep 17 00:00:00 2001
-Message-ID: <1402ecccf5630a0b7fa4749d7d2e72abc3f3d73d.1782312403.git.lorenzo@kernel.org>
-From: "Wayen.Yan" <win847@gmail.com>
-Date: Fri, 12 Jun 2026 07:09:13 +0800
-Subject: [PATCH 1/2] net: airoha: Fix register index for Tx-fwd counter
- configuration
-
-In airoha_qdma_init_qos_stats(), the Tx-fwd counter configuration
-register uses the same index (i << 1) as the Tx-cpu counter, which
-overwrites the Tx-cpu configuration. The Tx-fwd counter value register
-correctly uses (i << 1) + 1, so the configuration register should use
-the same index.
-
-Fix the REG_CNTR_CFG index from (i << 1) to ((i << 1) + 1) so that
-the Tx-fwd counter is properly configured instead of clobbering the
-Tx-cpu counter config.
-
-Fixes: 20bf7d07c956 ("net: airoha: Add sched ETS offload support")
-Signed-off-by: Wayen.Yan <win847@gmail.com>
-Acked-by: Lorenzo Bianconi <lorenzo@kernel.org>
-Link: https://patch.msgid.link/6a2b40e7.4dd82583.3a5c46.e566@mx.google.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- drivers/net/ethernet/airoha/airoha_eth.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/net/ethernet/airoha/airoha_eth.c
-+++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -1331,7 +1331,7 @@ static void airoha_qdma_init_qos_stats(s
-                              FIELD_PREP(CNTR_CHAN_MASK, i));
-               /* Tx-fwd transferred count */
-               airoha_qdma_wr(qdma, REG_CNTR_VAL((i << 1) + 1), 0);
--              airoha_qdma_wr(qdma, REG_CNTR_CFG(i << 1),
-+              airoha_qdma_wr(qdma, REG_CNTR_CFG((i << 1) + 1),
-                              CNTR_EN_MASK | CNTR_ALL_QUEUE_EN_MASK |
-                              CNTR_ALL_DSCP_RING_EN_MASK |
-                              FIELD_PREP(CNTR_SRC_MASK, 1) |
diff --git a/target/linux/airoha/patches-6.18/171-v7.2-net-airoha-Fix-debugfs-new-tuple-display-for-IPv4-RO.patch b/target/linux/airoha/patches-6.18/171-v7.2-net-airoha-Fix-debugfs-new-tuple-display-for-IPv4-RO.patch
deleted file mode 100644 (file)
index 3a487a4..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From 1c3a77471afbb3981af28f7f7c8b2487558e4b00 Mon Sep 17 00:00:00 2001
-Message-ID: <1c3a77471afbb3981af28f7f7c8b2487558e4b00.1782312403.git.lorenzo@kernel.org>
-In-Reply-To: <1402ecccf5630a0b7fa4749d7d2e72abc3f3d73d.1782312403.git.lorenzo@kernel.org>
-References: <1402ecccf5630a0b7fa4749d7d2e72abc3f3d73d.1782312403.git.lorenzo@kernel.org>
-From: "Wayen.Yan" <win847@gmail.com>
-Date: Fri, 12 Jun 2026 07:09:56 +0800
-Subject: [PATCH 2/2] net: airoha: Fix debugfs new-tuple display for IPv4 ROUTE
- entries
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-In airoha_ppe_debugfs_foe_show(), the second switch statement falls
-through from PPE_PKT_TYPE_IPV4_HNAPT/DSLITE to PPE_PKT_TYPE_IPV4_ROUTE,
-accessing hwe->ipv4.new_tuple for all three types. However, IPv4 ROUTE
-(3-tuple) entries do not contain a valid new_tuple â€” this field is only
-meaningful for NATted flows (HNAPT/DSLITE). For ROUTE entries, the
-memory at the new_tuple offset holds routing information, not NAT data,
-so displaying "new=" produces garbage output.
-
-Display new_tuple only for HNAPT and DSLITE, and let IPV4_ROUTE fall
-through to the default case.
-
-Fixes: 3fe15c640f38 ("net: airoha: Introduce PPE debugfs support")
-Link: https://lore.kernel.org/6a2b40ea.4dd82583.3a5c46.e5a2@mx.google.com
-Signed-off-by: Wayen.Yan <win847@gmail.com>
-Acked-by: Lorenzo Bianconi <lorenzo@kernel.org>
-Link: https://patch.msgid.link/6a2be54b.ef98c1b2.3c3224.2ed8@mx.google.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- drivers/net/ethernet/airoha/airoha_ppe_debugfs.c | 2 --
- 1 file changed, 2 deletions(-)
-
---- a/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c
-+++ b/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c
-@@ -121,8 +121,6 @@ static int airoha_ppe_debugfs_foe_show(s
-               case PPE_PKT_TYPE_IPV4_DSLITE:
-                       src_port = &hwe->ipv4.new_tuple.src_port;
-                       dest_port = &hwe->ipv4.new_tuple.dest_port;
--                      fallthrough;
--              case PPE_PKT_TYPE_IPV4_ROUTE:
-                       src_addr = &hwe->ipv4.new_tuple.src_ip;
-                       dest_addr = &hwe->ipv4.new_tuple.dest_ip;
-                       seq_puts(m, " new=");
diff --git a/target/linux/airoha/patches-6.18/172-v7.2-net-airoha-fix-foe_check_time-allocation-size.patch b/target/linux/airoha/patches-6.18/172-v7.2-net-airoha-fix-foe_check_time-allocation-size.patch
deleted file mode 100644 (file)
index 9851f30..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-From 5c121ee635680c93d7074becf14cfbaac140f80d Mon Sep 17 00:00:00 2001
-Message-ID: <5c121ee635680c93d7074becf14cfbaac140f80d.1782312136.git.lorenzo@kernel.org>
-From: Wayen Yan <win847@gmail.com>
-Date: Tue, 16 Jun 2026 19:52:36 +0800
-Subject: [PATCH] net: airoha: fix foe_check_time allocation size
-
-foe_check_time is declared as u16 pointer but was allocated with
-only ppe_num_entries bytes instead of ppe_num_entries * sizeof(u16).
-
-When airoha_ppe_foe_verify_entry() is called with hash >= ppe_num_entries/2,
-it writes beyond the allocated buffer, causing heap buffer overflow and
-potential kernel crash.
-
-Fixes: 6d5b601d52a2 ("net: airoha: ppe: Dynamically allocate foe_check_time array in airoha_ppe struct")
-Signed-off-by: Wayen Yan <win847@gmail.com>
-Acked-by: Lorenzo Bianconi <lorenzo@kernel.org>
-Link: https://patch.msgid.link/178161119471.2163752.14373384830691569758@gmail.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- drivers/net/ethernet/airoha/airoha_ppe.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/drivers/net/ethernet/airoha/airoha_ppe.c
-+++ b/drivers/net/ethernet/airoha/airoha_ppe.c
-@@ -1601,7 +1601,8 @@ int airoha_ppe_init(struct airoha_eth *e
-                       return -ENOMEM;
-       }
--      ppe->foe_check_time = devm_kzalloc(eth->dev, ppe_num_entries,
-+      ppe->foe_check_time = devm_kzalloc(eth->dev,
-+                                         ppe_num_entries * sizeof(*ppe->foe_check_time),
-                                          GFP_KERNEL);
-       if (!ppe->foe_check_time)
-               return -ENOMEM;
diff --git a/target/linux/airoha/patches-6.18/174-v7.2-net-airoha-Fix-skb-priority-underflow-in-airoha_dev_.patch b/target/linux/airoha/patches-6.18/174-v7.2-net-airoha-Fix-skb-priority-underflow-in-airoha_dev_.patch
deleted file mode 100644 (file)
index 4ec30e3..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-From 86e51aa24686cc95bb35613059e8b94b9b81e3f0 Mon Sep 17 00:00:00 2001
-Message-ID: <86e51aa24686cc95bb35613059e8b94b9b81e3f0.1782312099.git.lorenzo@kernel.org>
-From: Wayen Yan <win847@gmail.com>
-Date: Sat, 20 Jun 2026 16:17:44 +0800
-Subject: [PATCH] net: airoha: Fix skb->priority underflow in
- airoha_dev_select_queue()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-In airoha_dev_select_queue(), the expression:
-
-  queue = (skb->priority - 1) % AIROHA_NUM_QOS_QUEUES;
-
-implicitly converts to unsigned arithmetic: when skb->priority is 0
-(the default for unclassified traffic), (0u - 1u) wraps to UINT_MAX,
-and UINT_MAX % 8 = 7, routing default best-effort packets to the
-highest-priority QoS queue. This causes QoS inversion where the
-majority of traffic on a PON gateway starves actual high-priority
-flows (VoIP, gaming, etc.).
-
-The "- 1" offset was a leftover from the ETS offload implementation
-that has since been removed. The correct mapping is a direct modulo:
-
-  queue = skb->priority % AIROHA_NUM_QOS_QUEUES;
-
-This maps priority 0 â†’ queue 0 (lowest), priority 7 â†’ queue 7
-(highest), with higher priorities wrapping around. This is the
-standard Linux sk_prio â†’ HW queue mapping used by other drivers.
-
-Fixes: 2b288b81560b ("net: airoha: Introduce ndo_select_queue callback")
-Link: https://lore.kernel.org/netdev/178185573207.2378135.3729126358670287878@gmail.com/
-Acked-by: Lorenzo Bianconi <lorenzo@kernel.org>
-Reviewed-by: Joe Damato <joe@dama.to>
-Signed-off-by: Wayen Yan <win847@gmail.com>
-Link: https://patch.msgid.link/178194366700.2485734.5368768965976693502@gmail.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- drivers/net/ethernet/airoha/airoha_eth.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/net/ethernet/airoha/airoha_eth.c
-+++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -2110,7 +2110,7 @@ static u16 airoha_dev_select_queue(struc
-        */
-       channel = netdev_uses_dsa(netdev) ? skb_get_queue_mapping(skb) : port->id;
-       channel = channel % AIROHA_NUM_QOS_CHANNELS;
--      queue = (skb->priority - 1) % AIROHA_NUM_QOS_QUEUES; /* QoS queue */
-+      queue = skb->priority % AIROHA_NUM_QOS_QUEUES;
-       queue = channel * AIROHA_NUM_QOS_QUEUES + queue;
-       return queue < netdev->num_tx_queues ? queue : 0;
index c4fae20c515ebde8fc3b5ccd97e7e1fd2e2bbf47..897df63dda733053513683d5ac2da5ed26096ba7 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Linus Walleij <linusw@kernel.org>
 
 --- a/drivers/pinctrl/mediatek/pinctrl-airoha.c
 +++ b/drivers/pinctrl/mediatek/pinctrl-airoha.c
-@@ -2811,7 +2811,7 @@ static int airoha_pinconf_group_get(stru
+@@ -2813,7 +2813,7 @@ static int airoha_pinconf_group_get(stru
                                    unsigned int group, unsigned long *config)
  {
        struct airoha_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev);
index d8715674d7cea3ee3b32ef68d297b156dc45266d..2f9c29c1163b7b9ac86851989e4f39c07ab8c460 100644 (file)
@@ -133,7 +133,7 @@ Signed-off-by: Linus Walleij <linusw@kernel.org>
  obj-$(CONFIG_PINCTRL_MT76X8)          += pinctrl-mt76x8.o
 --- /dev/null
 +++ b/drivers/pinctrl/airoha/pinctrl-airoha.c
-@@ -0,0 +1,3030 @@
+@@ -0,0 +1,3032 @@
 +// SPDX-License-Identifier: GPL-2.0-only
 +/*
 + * Author: Lorenzo Bianconi <lorenzo@kernel.org>
@@ -675,6 +675,7 @@ Signed-off-by: Linus Walleij <linusw@kernel.org>
 +static const int en7581_gpio29_pins[] = { 42 };
 +static const int en7581_gpio30_pins[] = { 43 };
 +static const int en7581_gpio31_pins[] = { 44 };
++static const int en7581_gpio32_pins[] = { 45 };
 +static const int en7581_gpio33_pins[] = { 46 };
 +static const int en7581_gpio34_pins[] = { 47 };
 +static const int en7581_gpio35_pins[] = { 48 };
@@ -759,6 +760,7 @@ Signed-off-by: Linus Walleij <linusw@kernel.org>
 +      PINCTRL_PIN_GROUP("gpio29", en7581_gpio29),
 +      PINCTRL_PIN_GROUP("gpio30", en7581_gpio30),
 +      PINCTRL_PIN_GROUP("gpio31", en7581_gpio31),
++      PINCTRL_PIN_GROUP("gpio32", en7581_gpio32),
 +      PINCTRL_PIN_GROUP("gpio33", en7581_gpio33),
 +      PINCTRL_PIN_GROUP("gpio34", en7581_gpio34),
 +      PINCTRL_PIN_GROUP("gpio35", en7581_gpio35),
@@ -1930,7 +1932,7 @@ Signed-off-by: Linus Walleij <linusw@kernel.org>
 +      PINCTRL_CONF_DESC(29, REG_GPIO_L_PU, BIT(16)),
 +      PINCTRL_CONF_DESC(30, REG_GPIO_L_PU, BIT(17)),
 +      PINCTRL_CONF_DESC(31, REG_GPIO_L_PU, BIT(18)),
-+      PINCTRL_CONF_DESC(32, REG_GPIO_L_PU, BIT(18)),
++      PINCTRL_CONF_DESC(32, REG_GPIO_L_PU, BIT(19)),
 +      PINCTRL_CONF_DESC(33, REG_GPIO_L_PU, BIT(20)),
 +      PINCTRL_CONF_DESC(34, REG_GPIO_L_PU, BIT(21)),
 +      PINCTRL_CONF_DESC(35, REG_GPIO_L_PU, BIT(22)),
@@ -2047,7 +2049,7 @@ Signed-off-by: Linus Walleij <linusw@kernel.org>
 +      PINCTRL_CONF_DESC(29, REG_GPIO_L_PD, BIT(16)),
 +      PINCTRL_CONF_DESC(30, REG_GPIO_L_PD, BIT(17)),
 +      PINCTRL_CONF_DESC(31, REG_GPIO_L_PD, BIT(18)),
-+      PINCTRL_CONF_DESC(32, REG_GPIO_L_PD, BIT(18)),
++      PINCTRL_CONF_DESC(32, REG_GPIO_L_PD, BIT(19)),
 +      PINCTRL_CONF_DESC(33, REG_GPIO_L_PD, BIT(20)),
 +      PINCTRL_CONF_DESC(34, REG_GPIO_L_PD, BIT(21)),
 +      PINCTRL_CONF_DESC(35, REG_GPIO_L_PD, BIT(22)),
@@ -2164,7 +2166,7 @@ Signed-off-by: Linus Walleij <linusw@kernel.org>
 +      PINCTRL_CONF_DESC(29, REG_GPIO_L_E2, BIT(16)),
 +      PINCTRL_CONF_DESC(30, REG_GPIO_L_E2, BIT(17)),
 +      PINCTRL_CONF_DESC(31, REG_GPIO_L_E2, BIT(18)),
-+      PINCTRL_CONF_DESC(32, REG_GPIO_L_E2, BIT(18)),
++      PINCTRL_CONF_DESC(32, REG_GPIO_L_E2, BIT(19)),
 +      PINCTRL_CONF_DESC(33, REG_GPIO_L_E2, BIT(20)),
 +      PINCTRL_CONF_DESC(34, REG_GPIO_L_E2, BIT(21)),
 +      PINCTRL_CONF_DESC(35, REG_GPIO_L_E2, BIT(22)),
@@ -2281,7 +2283,7 @@ Signed-off-by: Linus Walleij <linusw@kernel.org>
 +      PINCTRL_CONF_DESC(29, REG_GPIO_L_E4, BIT(16)),
 +      PINCTRL_CONF_DESC(30, REG_GPIO_L_E4, BIT(17)),
 +      PINCTRL_CONF_DESC(31, REG_GPIO_L_E4, BIT(18)),
-+      PINCTRL_CONF_DESC(32, REG_GPIO_L_E4, BIT(18)),
++      PINCTRL_CONF_DESC(32, REG_GPIO_L_E4, BIT(19)),
 +      PINCTRL_CONF_DESC(33, REG_GPIO_L_E4, BIT(20)),
 +      PINCTRL_CONF_DESC(34, REG_GPIO_L_E4, BIT(21)),
 +      PINCTRL_CONF_DESC(35, REG_GPIO_L_E4, BIT(22)),
@@ -3166,7 +3168,7 @@ Signed-off-by: Linus Walleij <linusw@kernel.org>
 +MODULE_DESCRIPTION("Pinctrl driver for Airoha SoC");
 --- a/drivers/pinctrl/mediatek/pinctrl-airoha.c
 +++ /dev/null
-@@ -1,3030 +0,0 @@
+@@ -1,3032 +0,0 @@
 -// SPDX-License-Identifier: GPL-2.0-only
 -/*
 - * Author: Lorenzo Bianconi <lorenzo@kernel.org>
@@ -3708,6 +3710,7 @@ Signed-off-by: Linus Walleij <linusw@kernel.org>
 -static const int en7581_gpio29_pins[] = { 42 };
 -static const int en7581_gpio30_pins[] = { 43 };
 -static const int en7581_gpio31_pins[] = { 44 };
+-static const int en7581_gpio32_pins[] = { 45 };
 -static const int en7581_gpio33_pins[] = { 46 };
 -static const int en7581_gpio34_pins[] = { 47 };
 -static const int en7581_gpio35_pins[] = { 48 };
@@ -3792,6 +3795,7 @@ Signed-off-by: Linus Walleij <linusw@kernel.org>
 -      PINCTRL_PIN_GROUP("gpio29", en7581_gpio29),
 -      PINCTRL_PIN_GROUP("gpio30", en7581_gpio30),
 -      PINCTRL_PIN_GROUP("gpio31", en7581_gpio31),
+-      PINCTRL_PIN_GROUP("gpio32", en7581_gpio32),
 -      PINCTRL_PIN_GROUP("gpio33", en7581_gpio33),
 -      PINCTRL_PIN_GROUP("gpio34", en7581_gpio34),
 -      PINCTRL_PIN_GROUP("gpio35", en7581_gpio35),
@@ -4963,7 +4967,7 @@ Signed-off-by: Linus Walleij <linusw@kernel.org>
 -      PINCTRL_CONF_DESC(29, REG_GPIO_L_PU, BIT(16)),
 -      PINCTRL_CONF_DESC(30, REG_GPIO_L_PU, BIT(17)),
 -      PINCTRL_CONF_DESC(31, REG_GPIO_L_PU, BIT(18)),
--      PINCTRL_CONF_DESC(32, REG_GPIO_L_PU, BIT(18)),
+-      PINCTRL_CONF_DESC(32, REG_GPIO_L_PU, BIT(19)),
 -      PINCTRL_CONF_DESC(33, REG_GPIO_L_PU, BIT(20)),
 -      PINCTRL_CONF_DESC(34, REG_GPIO_L_PU, BIT(21)),
 -      PINCTRL_CONF_DESC(35, REG_GPIO_L_PU, BIT(22)),
@@ -5080,7 +5084,7 @@ Signed-off-by: Linus Walleij <linusw@kernel.org>
 -      PINCTRL_CONF_DESC(29, REG_GPIO_L_PD, BIT(16)),
 -      PINCTRL_CONF_DESC(30, REG_GPIO_L_PD, BIT(17)),
 -      PINCTRL_CONF_DESC(31, REG_GPIO_L_PD, BIT(18)),
--      PINCTRL_CONF_DESC(32, REG_GPIO_L_PD, BIT(18)),
+-      PINCTRL_CONF_DESC(32, REG_GPIO_L_PD, BIT(19)),
 -      PINCTRL_CONF_DESC(33, REG_GPIO_L_PD, BIT(20)),
 -      PINCTRL_CONF_DESC(34, REG_GPIO_L_PD, BIT(21)),
 -      PINCTRL_CONF_DESC(35, REG_GPIO_L_PD, BIT(22)),
@@ -5197,7 +5201,7 @@ Signed-off-by: Linus Walleij <linusw@kernel.org>
 -      PINCTRL_CONF_DESC(29, REG_GPIO_L_E2, BIT(16)),
 -      PINCTRL_CONF_DESC(30, REG_GPIO_L_E2, BIT(17)),
 -      PINCTRL_CONF_DESC(31, REG_GPIO_L_E2, BIT(18)),
--      PINCTRL_CONF_DESC(32, REG_GPIO_L_E2, BIT(18)),
+-      PINCTRL_CONF_DESC(32, REG_GPIO_L_E2, BIT(19)),
 -      PINCTRL_CONF_DESC(33, REG_GPIO_L_E2, BIT(20)),
 -      PINCTRL_CONF_DESC(34, REG_GPIO_L_E2, BIT(21)),
 -      PINCTRL_CONF_DESC(35, REG_GPIO_L_E2, BIT(22)),
@@ -5314,7 +5318,7 @@ Signed-off-by: Linus Walleij <linusw@kernel.org>
 -      PINCTRL_CONF_DESC(29, REG_GPIO_L_E4, BIT(16)),
 -      PINCTRL_CONF_DESC(30, REG_GPIO_L_E4, BIT(17)),
 -      PINCTRL_CONF_DESC(31, REG_GPIO_L_E4, BIT(18)),
--      PINCTRL_CONF_DESC(32, REG_GPIO_L_E4, BIT(18)),
+-      PINCTRL_CONF_DESC(32, REG_GPIO_L_E4, BIT(19)),
 -      PINCTRL_CONF_DESC(33, REG_GPIO_L_E4, BIT(20)),
 -      PINCTRL_CONF_DESC(34, REG_GPIO_L_E4, BIT(21)),
 -      PINCTRL_CONF_DESC(35, REG_GPIO_L_E4, BIT(22)),
diff --git a/target/linux/airoha/patches-6.18/180-02-v7.2-pinctrl-airoha-an7581-add-missed-gpio32-pin-group.patch b/target/linux/airoha/patches-6.18/180-02-v7.2-pinctrl-airoha-an7581-add-missed-gpio32-pin-group.patch
deleted file mode 100644 (file)
index 5252930..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-From a404c3800118863a2a53b42232aff5f6defde7dd Mon Sep 17 00:00:00 2001
-From: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
-Date: Sat, 6 Jun 2026 05:03:32 +0300
-Subject: [PATCH] pinctrl: airoha: an7581: add missed gpio32 pin group
-
-gpio32 pin group is missed for an7581 SoC. This patch add it.
-
-Fixes: 1c8ace2d0725 ("pinctrl: airoha: Add support for EN7581 SoC")
-Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
-Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
-Signed-off-by: Linus Walleij <linusw@kernel.org>
----
- drivers/pinctrl/airoha/pinctrl-airoha.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/pinctrl/airoha/pinctrl-airoha.c
-+++ b/drivers/pinctrl/airoha/pinctrl-airoha.c
-@@ -539,6 +539,7 @@ static const int en7581_gpio28_pins[] =
- static const int en7581_gpio29_pins[] = { 42 };
- static const int en7581_gpio30_pins[] = { 43 };
- static const int en7581_gpio31_pins[] = { 44 };
-+static const int en7581_gpio32_pins[] = { 45 };
- static const int en7581_gpio33_pins[] = { 46 };
- static const int en7581_gpio34_pins[] = { 47 };
- static const int en7581_gpio35_pins[] = { 48 };
-@@ -623,6 +624,7 @@ static const struct pingroup en7581_pinc
-       PINCTRL_PIN_GROUP("gpio29", en7581_gpio29),
-       PINCTRL_PIN_GROUP("gpio30", en7581_gpio30),
-       PINCTRL_PIN_GROUP("gpio31", en7581_gpio31),
-+      PINCTRL_PIN_GROUP("gpio32", en7581_gpio32),
-       PINCTRL_PIN_GROUP("gpio33", en7581_gpio33),
-       PINCTRL_PIN_GROUP("gpio34", en7581_gpio34),
-       PINCTRL_PIN_GROUP("gpio35", en7581_gpio35),
diff --git a/target/linux/airoha/patches-6.18/180-04-v7.2-pinctrl-airoha-an7581-fix-misprint-in-gpio19-pinconf.patch b/target/linux/airoha/patches-6.18/180-04-v7.2-pinctrl-airoha-an7581-fix-misprint-in-gpio19-pinconf.patch
deleted file mode 100644 (file)
index 2fbc179..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-From 756239ca5a5f55d7c6f6ed63b35b38cb3a39f118 Mon Sep 17 00:00:00 2001
-From: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
-Date: Sat, 6 Jun 2026 05:03:34 +0300
-Subject: [PATCH] pinctrl: airoha: an7581: fix misprint in gpio19 pinconf
-
-Pin 32 (gpio19) duplicate pinconf settings of pin 31. Fix it using
-a proper bit number in the configuration register.
-
-Fixes: 1c8ace2d0725 ("pinctrl: airoha: Add support for EN7581 SoC")
-Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
-Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
-Signed-off-by: Linus Walleij <linusw@kernel.org>
----
- drivers/pinctrl/airoha/pinctrl-airoha.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
---- a/drivers/pinctrl/airoha/pinctrl-airoha.c
-+++ b/drivers/pinctrl/airoha/pinctrl-airoha.c
-@@ -1798,7 +1798,7 @@ static const struct airoha_pinctrl_conf
-       PINCTRL_CONF_DESC(29, REG_GPIO_L_PU, BIT(16)),
-       PINCTRL_CONF_DESC(30, REG_GPIO_L_PU, BIT(17)),
-       PINCTRL_CONF_DESC(31, REG_GPIO_L_PU, BIT(18)),
--      PINCTRL_CONF_DESC(32, REG_GPIO_L_PU, BIT(18)),
-+      PINCTRL_CONF_DESC(32, REG_GPIO_L_PU, BIT(19)),
-       PINCTRL_CONF_DESC(33, REG_GPIO_L_PU, BIT(20)),
-       PINCTRL_CONF_DESC(34, REG_GPIO_L_PU, BIT(21)),
-       PINCTRL_CONF_DESC(35, REG_GPIO_L_PU, BIT(22)),
-@@ -1915,7 +1915,7 @@ static const struct airoha_pinctrl_conf
-       PINCTRL_CONF_DESC(29, REG_GPIO_L_PD, BIT(16)),
-       PINCTRL_CONF_DESC(30, REG_GPIO_L_PD, BIT(17)),
-       PINCTRL_CONF_DESC(31, REG_GPIO_L_PD, BIT(18)),
--      PINCTRL_CONF_DESC(32, REG_GPIO_L_PD, BIT(18)),
-+      PINCTRL_CONF_DESC(32, REG_GPIO_L_PD, BIT(19)),
-       PINCTRL_CONF_DESC(33, REG_GPIO_L_PD, BIT(20)),
-       PINCTRL_CONF_DESC(34, REG_GPIO_L_PD, BIT(21)),
-       PINCTRL_CONF_DESC(35, REG_GPIO_L_PD, BIT(22)),
-@@ -2032,7 +2032,7 @@ static const struct airoha_pinctrl_conf
-       PINCTRL_CONF_DESC(29, REG_GPIO_L_E2, BIT(16)),
-       PINCTRL_CONF_DESC(30, REG_GPIO_L_E2, BIT(17)),
-       PINCTRL_CONF_DESC(31, REG_GPIO_L_E2, BIT(18)),
--      PINCTRL_CONF_DESC(32, REG_GPIO_L_E2, BIT(18)),
-+      PINCTRL_CONF_DESC(32, REG_GPIO_L_E2, BIT(19)),
-       PINCTRL_CONF_DESC(33, REG_GPIO_L_E2, BIT(20)),
-       PINCTRL_CONF_DESC(34, REG_GPIO_L_E2, BIT(21)),
-       PINCTRL_CONF_DESC(35, REG_GPIO_L_E2, BIT(22)),
-@@ -2149,7 +2149,7 @@ static const struct airoha_pinctrl_conf
-       PINCTRL_CONF_DESC(29, REG_GPIO_L_E4, BIT(16)),
-       PINCTRL_CONF_DESC(30, REG_GPIO_L_E4, BIT(17)),
-       PINCTRL_CONF_DESC(31, REG_GPIO_L_E4, BIT(18)),
--      PINCTRL_CONF_DESC(32, REG_GPIO_L_E4, BIT(18)),
-+      PINCTRL_CONF_DESC(32, REG_GPIO_L_E4, BIT(19)),
-       PINCTRL_CONF_DESC(33, REG_GPIO_L_E4, BIT(20)),
-       PINCTRL_CONF_DESC(34, REG_GPIO_L_E4, BIT(21)),
-       PINCTRL_CONF_DESC(35, REG_GPIO_L_E4, BIT(22)),
index 5229eb47987b35e933c11a9308616731894961be..30f0720ebf920e0f1a030b521faa6a7448349746 100644 (file)
@@ -110,9 +110,9 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
  #include <net/ip.h>
  #include <net/flow.h>
  #include <net/netfilter/nf_tables.h>
-@@ -279,6 +280,27 @@ static int nft_flow_route(const struct n
-       return 0;
- }
+@@ -20,6 +21,27 @@ struct nft_flow_offload {
+       struct nft_flowtable    *flowtable;
+ };
  
 +static void nft_flow_set_dscp(const struct nft_pktinfo *pkt,
 +                            struct flow_offload *flow,
@@ -138,7 +138,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
  static bool nft_flow_offload_skip(struct sk_buff *skb, int family)
  {
        if (skb_sec_path(skb))
-@@ -371,6 +393,9 @@ static void nft_flow_offload_eval(const
+@@ -112,6 +134,9 @@ static void nft_flow_offload_eval(const
        if (!flow)
                goto err_flow_alloc;
  
index 9e494bba186f8f3623c8f3bf739908a5cbaa3f37..25ca06effda8370749add922f5c8ad3499ce6d8e 100644 (file)
@@ -36,7 +36,7 @@ Signed-off-by: Rosen Penev <rosenp@gmail.com>
  static int
  __emac_prepare_rx_skb(struct sk_buff *skb, struct emac_instance *dev, int slot)
  {
-@@ -3086,8 +3097,8 @@ static int emac_probe(struct platform_de
+@@ -3085,8 +3096,8 @@ static int emac_probe(struct platform_de
        DBG(dev, "rx_desc %p" NL, dev->rx_desc);
  
        /* Clean rings */
index 0938cdfe9aa0596bd616ba32ac08072b5e22e341..765cefe1bd7fe13df419c3369b7c46e4d79e8898 100644 (file)
@@ -295,7 +295,7 @@ SVN-Revision: 35130
                                               &sin->sin6_addr);
                        sin->sin6_scope_id = 0;
                }
-@@ -891,12 +891,12 @@ int ip6_datagram_send_ctl(struct net *ne
+@@ -890,12 +890,12 @@ int ip6_datagram_send_ctl(struct net *ne
                        }
  
                        if (fl6->flowlabel&IPV6_FLOWINFO_MASK) {
@@ -337,7 +337,7 @@ SVN-Revision: 35130
  #endif /* _LINUX_TYPES_H */
 --- a/net/ipv4/af_inet.c
 +++ b/net/ipv4/af_inet.c
-@@ -1492,7 +1492,7 @@ struct sk_buff *inet_gro_receive(struct
+@@ -1487,7 +1487,7 @@ struct sk_buff *inet_gro_receive(struct
                goto out;
  
        NAPI_GRO_CB(skb)->proto = proto;
index 2a4869bfa49d24d7886780e6e8c386e9e12e3a5a..f4821d3811981d9d79e1394b4a7790cced54675d 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/of/overlay.c
 +++ b/drivers/of/overlay.c
-@@ -247,6 +247,8 @@ static struct property *dup_and_fixup_sy
+@@ -256,6 +256,8 @@ static struct property *dup_and_fixup_sy
        if (!target_path)
                return NULL;
        target_path_len = strlen(target_path);
index 2d0c63b4e82e3d9c52f7585cc397abdff3109331..21b072560035bf249521d5677699e493a86c26dd 100644 (file)
@@ -296,7 +296,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
  static inline int mmc_blk_part_switch(struct mmc_card *card,
                                      unsigned int part_type);
  static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,
-@@ -3278,6 +3285,8 @@ static int mmc_blk_probe(struct mmc_card
+@@ -3277,6 +3284,8 @@ static int mmc_blk_probe(struct mmc_card
  {
        struct mmc_blk_data *md;
        int ret = 0;
@@ -305,7 +305,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
  
        /*
         * Check that the card supports the command class(es) we need.
-@@ -3285,7 +3294,16 @@ static int mmc_blk_probe(struct mmc_card
+@@ -3284,7 +3293,16 @@ static int mmc_blk_probe(struct mmc_card
        if (!(card->csd.cmdclass & CCC_BLOCK_READ))
                return -ENODEV;
  
@@ -323,7 +323,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
  
        card->complete_wq = alloc_workqueue("mmc_complete",
                                        WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
-@@ -3300,6 +3318,17 @@ static int mmc_blk_probe(struct mmc_card
+@@ -3299,6 +3317,17 @@ static int mmc_blk_probe(struct mmc_card
                goto out_free;
        }
  
index 841ae369b1394ccdb60e96d98ccb0ee7a2e75abb..18a5c482963a23c1401030833f27ac5986366bb6 100644 (file)
@@ -37,7 +37,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
  static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data)
  {
        u32 *buf;
-@@ -3758,8 +3767,14 @@ static int lan78xx_bind(struct lan78xx_n
+@@ -3793,8 +3802,14 @@ static int lan78xx_bind(struct lan78xx_n
        if (DEFAULT_RX_CSUM_ENABLE)
                dev->net->features |= NETIF_F_RXCSUM;
  
index 53be3985da09dd2d6039cd953d420c3d683194a4..9c5e768e65539ab82afc4d35576f1334c8011b11 100644 (file)
@@ -28,7 +28,7 @@ See: https://github.com/raspberrypi/linux/issues/2447
  static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data)
  {
        u32 *buf;
-@@ -4737,7 +4742,13 @@ static int lan78xx_probe(struct usb_inte
+@@ -4772,7 +4777,13 @@ static int lan78xx_probe(struct usb_inte
        if (ret < 0)
                goto out4;
  
index 5e57c94c15ce47de51429306a749e2cfd9e5765f..98cb5f17f82a604205eaf91303ec7aa807f6174f 100644 (file)
@@ -9,7 +9,7 @@ Subject: [PATCH] Patching lan78xx for SOF_TIMESTAMPING_TX_SOFTWARE support
 
 --- a/drivers/net/usb/lan78xx.c
 +++ b/drivers/net/usb/lan78xx.c
-@@ -1932,6 +1932,7 @@ static const struct ethtool_ops lan78xx_
+@@ -1953,6 +1953,7 @@ static const struct ethtool_ops lan78xx_
        .set_link_ksettings = lan78xx_set_link_ksettings,
        .get_regs_len   = lan78xx_get_regs_len,
        .get_regs       = lan78xx_get_regs,
index d0d394c14d89a60fd1525c0a4f65567f20236dc4..0302744550e92aeeedc29e96e3efabaad6c8e47f 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 
 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
 +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -2722,7 +2722,7 @@ static void bcmgenet_init_tx_ring(struct
+@@ -2714,7 +2714,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 <phil@raspberrypi.org>
        /* Disable rate control for now */
        bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
                                  TDMA_FLOW_PERIOD);
-@@ -4079,8 +4079,10 @@ static int bcmgenet_probe(struct platfor
+@@ -4072,8 +4072,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 */
index 84593fe0822681dbc48e25793502bb80b9fe52cd..6b309a9234eef2d61f31cefc5bb7bd0542379313 100644 (file)
@@ -291,7 +291,7 @@ Reviewed-by: Maíra Canal <mcanal@igalia.com>
  
        kref_init(&job->refcount);
  
-@@ -1425,3 +1488,14 @@ fail:
+@@ -1427,3 +1490,14 @@ fail:
  
        return ret;
  }
index 3f338b886ba78abd5620fb95624612810c09a252..e12643bc6db66e7f693ef42f2bf9375f4da03f38 100644 (file)
@@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 
 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
 +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -65,6 +65,9 @@
+@@ -64,6 +64,9 @@
  
  /* Forward declarations */
  static void bcmgenet_set_rx_mode(struct net_device *dev);
@@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  
  static inline void bcmgenet_writel(u32 value, void __iomem *offset)
  {
-@@ -2560,6 +2563,11 @@ static void reset_umac(struct bcmgenet_p
+@@ -2552,6 +2555,11 @@ static void reset_umac(struct bcmgenet_p
        bcmgenet_rbuf_ctrl_set(priv, 0);
        udelay(10);
  
index 7d67711f6a34579d83bdc565394aa0a9119415dc..641427e7780bf2117d6d3dd552059971cbae54d2 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
 
 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
 +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -65,7 +65,7 @@
+@@ -64,7 +64,7 @@
  
  /* Forward declarations */
  static void bcmgenet_set_rx_mode(struct net_device *dev);
index 38153550f06348cd3f185f9585d0bac392337bd4..1abb44362743b61cd1d9fad9347263472833df16 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/panel/Kconfig
 +++ b/drivers/gpu/drm/panel/Kconfig
-@@ -1056,6 +1056,17 @@ config DRM_PANEL_TDO_TL070WSH30
+@@ -1063,6 +1063,17 @@ config DRM_PANEL_TDO_TL070WSH30
          24 bit RGB per pixel. It provides a MIPI DSI interface to
          the host, a built-in LED backlight and touch controller.
  
index b878d3aaba64fe50a4ed10fc5222ccde42748062..c6932502c53c161d9559ed8a66f8874bf41b4302 100644 (file)
@@ -81,7 +81,7 @@ Signed-off-by: Waveshare_Team <support@waveshare.com>
 
 --- a/drivers/gpu/drm/panel/Kconfig
 +++ b/drivers/gpu/drm/panel/Kconfig
-@@ -1148,6 +1148,26 @@ config DRM_PANEL_VISIONOX_VTDR6130
+@@ -1155,6 +1155,26 @@ config DRM_PANEL_VISIONOX_VTDR6130
          Say Y here if you want to enable support for Visionox
          VTDR6130 1080x2400 AMOLED DSI panel.
  
index 89d1d6bcb62e96a536f24f3bc4cb282cf17401fd..a8f3c2a6703eda52f605f37a9a69ffab49b8d447 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
 
 --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
 +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
-@@ -612,6 +612,8 @@ patternProperties:
+@@ -614,6 +614,8 @@ patternProperties:
      description: General Electric Company
    "^geekbuying,.*":
      description: GeekBuying
index 4f1965d6d55195cfaae6b70e4543744df30276b3..b76ddddfd6392d79e2d416b46606ea1af0dfa314 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
 +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -68,6 +68,9 @@ static void bcmgenet_set_rx_mode(struct
+@@ -67,6 +67,9 @@ static void bcmgenet_set_rx_mode(struct
  static bool skip_umac_reset = false;
  module_param(skip_umac_reset, bool, 0444);
  MODULE_PARM_DESC(skip_umac_reset, "Skip UMAC reset step");
@@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
  
  static inline void bcmgenet_writel(u32 value, void __iomem *offset)
  {
-@@ -3365,6 +3368,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);
  
index cb0754378119ac285d6953f5eadfe94c09c1872b..b5f986b57a85a5ba75a5b216c05188658ac3a206 100644 (file)
@@ -242,7 +242,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(TSTART));
        spin_unlock(&bp->lock);
  
-@@ -2908,6 +2937,37 @@ static void macb_configure_dma(struct ma
+@@ -2925,6 +2954,37 @@ static void macb_configure_dma(struct ma
        }
  }
  
@@ -280,7 +280,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  static void macb_init_hw(struct macb *bp)
  {
        u32 config;
-@@ -2936,6 +2996,11 @@ static void macb_init_hw(struct macb *bp
+@@ -2953,6 +3013,11 @@ static void macb_init_hw(struct macb *bp
        if (bp->caps & MACB_CAPS_JUMBO)
                bp->rx_frm_len_mask = MACB_RX_JFRMLEN_MASK;
  
@@ -292,7 +292,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        macb_configure_dma(bp);
  
        /* Enable RX partial store and forward and set watermark */
-@@ -3299,6 +3364,52 @@ static void gem_get_ethtool_strings(stru
+@@ -3316,6 +3381,52 @@ static void gem_get_ethtool_strings(stru
        }
  }
  
@@ -345,7 +345,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  static void macb_get_stats(struct net_device *dev,
                           struct rtnl_link_stats64 *nstat)
  {
-@@ -4055,6 +4166,8 @@ static const struct ethtool_ops macb_eth
+@@ -4072,6 +4183,8 @@ static const struct ethtool_ops macb_eth
  };
  
  static const struct ethtool_ops gem_ethtool_ops = {
@@ -354,7 +354,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        .get_regs_len           = macb_get_regs_len,
        .get_regs               = macb_get_regs,
        .get_wol                = macb_get_wol,
-@@ -4068,6 +4181,8 @@ static const struct ethtool_ops gem_etht
+@@ -4085,6 +4198,8 @@ static const struct ethtool_ops gem_etht
        .get_eth_mac_stats      = gem_get_eth_mac_stats,
        .get_eth_phy_stats      = gem_get_eth_phy_stats,
        .get_rmon_stats         = gem_get_rmon_stats,
@@ -363,7 +363,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        .get_link_ksettings     = macb_get_link_ksettings,
        .set_link_ksettings     = macb_set_link_ksettings,
        .get_ringparam          = macb_get_ringparam,
-@@ -5634,6 +5749,11 @@ static int macb_probe(struct platform_de
+@@ -5659,6 +5774,11 @@ static int macb_probe(struct platform_de
                        }
                }
        }
@@ -375,7 +375,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        spin_lock_init(&bp->lock);
        spin_lock_init(&bp->stats_lock);
  
-@@ -5694,6 +5814,21 @@ static int macb_probe(struct platform_de
+@@ -5719,6 +5839,21 @@ static int macb_probe(struct platform_de
        else
                bp->phy_interface = interface;
  
index 68d7bda4d22d0b2867705124eb49acd9df79a24e..972009c00978557c0328c34889b4b1c8bd86c4ff 100644 (file)
@@ -213,7 +213,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        },
 --- a/drivers/usb/dwc3/core.c
 +++ b/drivers/usb/dwc3/core.c
-@@ -1325,6 +1325,24 @@ static void dwc3_config_threshold(struct
+@@ -1343,6 +1343,24 @@ static void dwc3_config_threshold(struct
        }
  }
  
@@ -238,7 +238,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  /**
   * dwc3_core_init - Low-level initialization of DWC3 Core
   * @dwc: Pointer to our controller context structure
-@@ -1392,6 +1410,8 @@ static int dwc3_core_init(struct dwc3 *d
+@@ -1412,6 +1430,8 @@ static int dwc3_core_init(struct dwc3 *d
  
        dwc3_config_soc_bus(dwc);
  
@@ -247,7 +247,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        ret = dwc3_phy_power_on(dwc);
        if (ret)
                goto err_exit_phy;
-@@ -1520,6 +1540,24 @@ static int dwc3_core_init(struct dwc3 *d
+@@ -1540,6 +1560,24 @@ static int dwc3_core_init(struct dwc3 *d
                dwc3_writel(dwc, DWC3_GUCTL3, reg);
        }
  
@@ -272,7 +272,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        return 0;
  
  err_power_off_phy:
-@@ -1706,6 +1744,7 @@ static void dwc3_get_properties(struct d
+@@ -1726,6 +1764,7 @@ static void dwc3_get_properties(struct d
        u8                      tx_max_burst_prd = 0;
        u8                      tx_fifo_resize_max_num;
        u16                     num_hc_interrupters;
@@ -280,7 +280,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  
        /* default to highest possible threshold */
        lpm_nyet_threshold = 0xf;
-@@ -1728,6 +1767,8 @@ static void dwc3_get_properties(struct d
+@@ -1748,6 +1787,8 @@ static void dwc3_get_properties(struct d
  
        /* default to a single XHCI interrupter */
        num_hc_interrupters = 1;
@@ -289,7 +289,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  
        dwc->maximum_speed = usb_get_maximum_speed(dev);
        dwc->max_ssp_rate = usb_get_maximum_ssp_rate(dev);
-@@ -1849,6 +1890,9 @@ static void dwc3_get_properties(struct d
+@@ -1869,6 +1910,9 @@ static void dwc3_get_properties(struct d
        dwc->dis_split_quirk = device_property_read_bool(dev,
                                "snps,dis-split-quirk");
  
@@ -299,7 +299,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        dwc->lpm_nyet_threshold = lpm_nyet_threshold;
        dwc->tx_de_emphasis = tx_de_emphasis;
  
-@@ -1866,6 +1910,8 @@ static void dwc3_get_properties(struct d
+@@ -1886,6 +1930,8 @@ static void dwc3_get_properties(struct d
        dwc->tx_thr_num_pkt_prd = tx_thr_num_pkt_prd;
        dwc->tx_max_burst_prd = tx_max_burst_prd;
  
@@ -308,7 +308,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        dwc->tx_fifo_resize_max_num = tx_fifo_resize_max_num;
  
        dwc->num_hc_interrupters = num_hc_interrupters;
-@@ -2230,6 +2276,12 @@ int dwc3_core_probe(const struct dwc3_pr
+@@ -2250,6 +2296,12 @@ int dwc3_core_probe(const struct dwc3_pr
        if (IS_ERR(dwc->usb_psy))
                return dev_err_probe(dev, PTR_ERR(dwc->usb_psy), "couldn't get usb power supply\n");
  
@@ -333,7 +333,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  /* Global Debug LSP MUX Select */
  #define DWC3_GDBGLSPMUX_ENDBC         BIT(15) /* Host only */
  #define DWC3_GDBGLSPMUX_HOSTSELECT(n) ((n) & 0x3fff)
-@@ -1096,6 +1099,7 @@ struct dwc3_glue_ops {
+@@ -1097,6 +1100,7 @@ struct dwc3_glue_ops {
   * @tx_fifo_resize_max_num: max number of fifos allocated during txfifo resize
   * @clear_stall_protocol: endpoint number that requires a delayed status phase
   * @num_hc_interrupters: number of host controller interrupters
@@ -341,7 +341,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
   * @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
-@@ -1352,6 +1356,7 @@ struct dwc3 {
+@@ -1355,6 +1359,7 @@ struct dwc3 {
        u8                      tx_fifo_resize_max_num;
        u8                      clear_stall_protocol;
        u16                     num_hc_interrupters;
index fb21412099f4f06e54728d4e4b834ce65e38f179..f4ab8f13dcd533e0beb44ac53b8c558f1afd650b 100644 (file)
@@ -15,10 +15,10 @@ Differentiate the RP1 variant of the Designware MSHC controller(s).
 
 Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 ---
- drivers/mmc/host/sdhci-of-dwcmshc.c | 56 +++++++++++++++++++++++++++--
+ drivers/mmc/host/sdhci-of-dwcmshc.c | 62 ++++++++++++++++++++++++++-----
  drivers/mmc/host/sdhci-pltfm.c      |  8 +++++
  drivers/mmc/host/sdhci-pltfm.h      |  3 ++
- 3 files changed, 64 insertions(+), 3 deletions(-)
+ 3 files changed, 68 insertions(+), 5 deletions(-)
 
 --- a/drivers/mmc/host/sdhci-of-dwcmshc.c
 +++ b/drivers/mmc/host/sdhci-of-dwcmshc.c
@@ -103,47 +103,66 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
                .compatible = "rockchip,rk3588-dwcmshc",
                .data = &sdhci_dwcmshc_rk35xx_pdata,
        },
-@@ -1427,13 +1457,32 @@ static int dwcmshc_probe(struct platform
-               priv->bus_clk = devm_clk_get(dev, "bus");
-               if (!IS_ERR(priv->bus_clk))
-                       clk_prepare_enable(priv->bus_clk);
+@@ -1430,13 +1460,32 @@ static int dwcmshc_probe(struct platform
+                       if (err)
+                               goto err_clk;
+               }
 +
 +              pltfm_host->timeout_clk = devm_clk_get(dev, "timeout");
 +              if (!IS_ERR(pltfm_host->timeout_clk))
 +                      err = clk_prepare_enable(pltfm_host->timeout_clk);
 +              if (err)
-+                      return err;
++                      goto err_bus_clk;
 +
 +              priv->sdio_clk = devm_clk_get_optional(&pdev->dev, "sdio");
-+      }
-+
+       }
+-      err = mmc_of_parse(host->mmc);
 +      pltfm_host->timeout_clk = devm_clk_get(&pdev->dev, "timeout");
 +      if (IS_ERR(pltfm_host->timeout_clk)) {
 +              err = PTR_ERR(pltfm_host->timeout_clk);
 +              dev_err(&pdev->dev, "failed to get timeout clk: %d\n", err);
-+              return err;
-       }
++              goto err_bus_clk;
++      }
 +      err = clk_prepare_enable(pltfm_host->timeout_clk);
-+      if (err)
-+              return err;
-       err = mmc_of_parse(host->mmc);
        if (err)
-               goto err_clk;
+               goto err_bus_clk;
  
++      err = mmc_of_parse(host->mmc);
++      if (err)
++              goto err_timeout_clk;
++
        sdhci_get_of_property(pdev);
 +      sdhci_enable_v4_mode(host);
  
        priv->vendor_specific_area1 =
                sdhci_readl(host, DWCMSHC_P_VENDOR_AREA1) & DWCMSHC_AREA1_MASK;
-@@ -1493,6 +1542,7 @@ err_rpm:
+@@ -1448,7 +1497,7 @@ static int dwcmshc_probe(struct platform
+       if (pltfm_data->init) {
+               err = pltfm_data->init(&pdev->dev, host, priv);
+               if (err)
+-                      goto err_bus_clk;
++                      goto err_timeout_clk;
+       }
+ #ifdef CONFIG_ACPI
+@@ -1494,6 +1543,8 @@ err_setup_host:
+ err_rpm:
+       pm_runtime_disable(dev);
        pm_runtime_put_noidle(dev);
++err_timeout_clk:
++      clk_disable_unprepare(pltfm_host->timeout_clk);
+ err_bus_clk:
+       clk_disable_unprepare(priv->bus_clk);
  err_clk:
+@@ -1529,6 +1580,7 @@ static void dwcmshc_remove(struct platfo
        clk_disable_unprepare(pltfm_host->clk);
-+      clk_disable_unprepare(pltfm_host->timeout_clk);
        clk_disable_unprepare(priv->bus_clk);
++      clk_disable_unprepare(pltfm_host->timeout_clk);
        clk_bulk_disable_unprepare(priv->num_other_clks, priv->other_clks);
-       return err;
+ }
 --- a/drivers/mmc/host/sdhci-pltfm.c
 +++ b/drivers/mmc/host/sdhci-pltfm.c
 @@ -32,6 +32,14 @@ unsigned int sdhci_pltfm_clk_get_max_clo
index bada8fed8a73c93e6134c89298c1ec4a4378a71e..56a2d0a00f871a99c7b6c195fd00a65dc7d13b52 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 
 --- a/drivers/hwmon/Kconfig
 +++ b/drivers/hwmon/Kconfig
-@@ -2660,6 +2660,13 @@ config SENSORS_INTEL_M10_BMC_HWMON
+@@ -2663,6 +2663,13 @@ config SENSORS_INTEL_M10_BMC_HWMON
          sensors monitor various telemetry data of different components on the
          card, e.g. board temperature, FPGA core temperature/voltage/current.
  
index 0979bd125f29afb4ed0c2948d80d18ebcf40525c..ccd4b2dfb17c509a866174762260e1a40c94c4c1 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 
 --- a/drivers/usb/dwc3/core.c
 +++ b/drivers/usb/dwc3/core.c
-@@ -1491,6 +1491,9 @@ static int dwc3_core_init(struct dwc3 *d
+@@ -1511,6 +1511,9 @@ static int dwc3_core_init(struct dwc3 *d
                if (dwc->parkmode_disable_hs_quirk)
                        reg |= DWC3_GUCTL1_PARKMODE_DISABLE_HS;
  
@@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
                if (DWC3_VER_IS_WITHIN(DWC3, 290A, ANY)) {
                        if (dwc->maximum_speed == USB_SPEED_FULL ||
                            dwc->maximum_speed == USB_SPEED_HIGH)
-@@ -1870,6 +1873,8 @@ static void dwc3_get_properties(struct d
+@@ -1890,6 +1893,8 @@ static void dwc3_get_properties(struct d
                                "snps,parkmode-disable-ss-quirk");
        dwc->parkmode_disable_hs_quirk = device_property_read_bool(dev,
                                "snps,parkmode-disable-hs-quirk");
@@ -45,7 +45,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  #define DWC3_GUCTL1_RESUME_OPMODE_HS_HOST     BIT(10)
  
  /* Global Status Register */
-@@ -1151,10 +1152,12 @@ struct dwc3_glue_ops {
+@@ -1152,10 +1153,12 @@ struct dwc3_glue_ops {
   *                    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 <jonathan@raspberrypi.com>
   * @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
-@@ -1400,6 +1403,7 @@ struct dwc3 {
+@@ -1403,6 +1406,7 @@ struct dwc3 {
        unsigned                ulpi_ext_vbus_drv:1;
        unsigned                parkmode_disable_ss_quirk:1;
        unsigned                parkmode_disable_hs_quirk:1;
index bcbe97c8733b37899abefda33ee2731e9fdcee4b..926328897041d4ce6107fe263d2e59d79c69b3cb 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 
 --- a/drivers/usb/dwc3/core.c
 +++ b/drivers/usb/dwc3/core.c
-@@ -1485,6 +1485,12 @@ static int dwc3_core_init(struct dwc3 *d
+@@ -1505,6 +1505,12 @@ static int dwc3_core_init(struct dwc3 *d
                if (dwc->dis_tx_ipgap_linecheck_quirk)
                        reg |= DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS;
  
@@ -35,7 +35,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
                if (dwc->parkmode_disable_ss_quirk)
                        reg |= DWC3_GUCTL1_PARKMODE_DISABLE_SS;
  
-@@ -1869,6 +1875,10 @@ static void dwc3_get_properties(struct d
+@@ -1889,6 +1895,10 @@ static void dwc3_get_properties(struct d
                                "snps,resume-hs-terminations");
        dwc->ulpi_ext_vbus_drv = device_property_read_bool(dev,
                                "snps,ulpi-ext-vbus-drv");
@@ -57,7 +57,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  #define DWC3_GUCTL1_PARKMODE_DISABLE_SS               BIT(17)
  #define DWC3_GUCTL1_PARKMODE_DISABLE_HS               BIT(16)
  #define DWC3_GUCTL1_PARKMODE_DISABLE_FSLS     BIT(15)
-@@ -1152,6 +1154,8 @@ struct dwc3_glue_ops {
+@@ -1153,6 +1155,8 @@ struct dwc3_glue_ops {
   *                    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 <jonathan@raspberrypi.com>
   * @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
-@@ -1401,6 +1405,8 @@ struct dwc3 {
+@@ -1404,6 +1408,8 @@ struct dwc3 {
        unsigned                dis_tx_ipgap_linecheck_quirk:1;
        unsigned                resume_hs_terminations:1;
        unsigned                ulpi_ext_vbus_drv:1;
index 6abc7a6e921290543f4a6770fb2bd9551733ca1e..679547a0e1a1f0f471acb14470f5aac9a4a73e95 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/net/usb/lan78xx.c
 +++ b/drivers/net/usb/lan78xx.c
-@@ -1629,7 +1629,16 @@ exit_unlock:
+@@ -1650,7 +1650,16 @@ exit_unlock:
   */
  static int lan78xx_phy_int_ack(struct lan78xx_net *dev)
  {
index c402e6800a5e1f7d3566a3920060a1b984e8c97e..189ecb92dbaed3ef32189be5a6a85134411c474d 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 
 --- a/drivers/net/usb/lan78xx.c
 +++ b/drivers/net/usb/lan78xx.c
-@@ -3250,6 +3250,11 @@ static int lan78xx_reset(struct lan78xx_
+@@ -3285,6 +3285,11 @@ static int lan78xx_reset(struct lan78xx_
        unsigned long timeout;
        int ret;
        u32 buf;
@@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  
        ret = lan78xx_read_reg(dev, HW_CFG, &buf);
        if (ret < 0)
-@@ -3320,6 +3325,10 @@ static int lan78xx_reset(struct lan78xx_
+@@ -3355,6 +3360,10 @@ static int lan78xx_reset(struct lan78xx_
        buf |= HW_CFG_CLK125_EN_;
        buf |= HW_CFG_REFCLK25_EN_;
  
@@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
        ret = lan78xx_write_reg(dev, HW_CFG, buf);
        if (ret < 0)
                return ret;
-@@ -3412,6 +3421,10 @@ static int lan78xx_reset(struct lan78xx_
+@@ -3447,6 +3456,10 @@ static int lan78xx_reset(struct lan78xx_
        if (dev->chipid == ID_REV_CHIP_ID_7801_)
                buf &= ~MAC_CR_GMII_EN_;
  
index 784a7f64072d527834bf701649727f4323eb6c91..d6feefbeec2c4d3658ed93d5543152060856f768 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/net/usb/lan78xx.c
 +++ b/drivers/net/usb/lan78xx.c
-@@ -2898,6 +2898,29 @@ static int lan78xx_phy_init(struct lan78
+@@ -2930,6 +2930,29 @@ static int lan78xx_phy_init(struct lan78
                goto phylink_uninit;
        }
  
index 4202877dc1c7062227876500c8769a2d9106dd83..fe486f3c6970c38ab56f1add8326420d62f15be6 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/net/usb/lan78xx.c
 +++ b/drivers/net/usb/lan78xx.c
-@@ -1818,15 +1818,34 @@ exit_pm_put:
+@@ -1839,15 +1839,34 @@ exit_pm_put:
  static int lan78xx_get_eee(struct net_device *net, struct ethtool_keee *edata)
  {
        struct lan78xx_net *dev = netdev_priv(net);
index cd88937d379ec92febdce6723839d3bd2f89aca9..6923fc2bd3715583858e0cfc6725b0ee949bdff4 100644 (file)
@@ -215,7 +215,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
  
        kref_init(&job->refcount);
  
-@@ -1402,7 +1339,7 @@ v3d_submit_cpu_ioctl(struct drm_device *
+@@ -1404,7 +1341,7 @@ v3d_submit_cpu_ioctl(struct drm_device *
        trace_v3d_submit_cpu_ioctl(&v3d->drm, cpu_job->job_type);
  
        ret = v3d_job_init(v3d, file_priv, &cpu_job->base,
@@ -224,7 +224,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
        if (ret) {
                v3d_job_deallocate((void *)&cpu_job);
                goto fail;
-@@ -1488,14 +1425,3 @@ fail:
+@@ -1490,14 +1427,3 @@ fail:
  
        return ret;
  }
index 890d04541cb3cdf8fb07a458b3ba554cb3948863..a220459703dc846dc81ca1490603ab6cc7ba6154 100644 (file)
@@ -257,7 +257,7 @@ Signed-off-by: Nicolai Buchwitz <nb@tipi-net.de>
  
        /* TSTART write might get dropped, so make the IRQ retrigger a buffer read */
        if (macb_readl(bp, TSR) & MACB_BIT(TGO))
-@@ -3206,6 +3326,8 @@ static int macb_close(struct net_device
+@@ -3223,6 +3343,8 @@ static int macb_close(struct net_device
                netdev_tx_reset_queue(netdev_get_tx_queue(dev, q));
        }
  
@@ -266,7 +266,7 @@ Signed-off-by: Nicolai Buchwitz <nb@tipi-net.de>
        phylink_stop(bp->phylink);
        phylink_disconnect_phy(bp->phylink);
  
-@@ -5847,6 +5969,7 @@ static int macb_probe(struct platform_de
+@@ -5872,6 +5994,7 @@ static int macb_probe(struct platform_de
        }
  
        INIT_WORK(&bp->hresp_err_bh_work, macb_hresp_error_task);
@@ -274,7 +274,7 @@ Signed-off-by: Nicolai Buchwitz <nb@tipi-net.de>
  
        netdev_info(dev, "Cadence %s rev 0x%08x at 0x%08lx irq %d (%pM)\n",
                    macb_is_gem(bp) ? "GEM" : "MACB", macb_readl(bp, MID),
-@@ -5891,6 +6014,7 @@ static void macb_remove(struct platform_
+@@ -5916,6 +6039,7 @@ static void macb_remove(struct platform_
                mdiobus_free(bp->mii_bus);
  
                device_set_wakeup_enable(&bp->pdev->dev, 0);
index e5d77f29fc46a47e8ae8ffbf6dda612c8c73d430..24a69b9f66eb0a229f8810af01e90fac423c4830 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Nicolai Buchwitz <nb@tipi-net.de>
 
 --- a/drivers/net/ethernet/cadence/macb_main.c
 +++ b/drivers/net/ethernet/cadence/macb_main.c
-@@ -4287,6 +4287,20 @@ static const struct ethtool_ops macb_eth
+@@ -4304,6 +4304,20 @@ static const struct ethtool_ops macb_eth
        .set_ringparam          = macb_set_ringparam,
  };
  
@@ -47,7 +47,7 @@ Signed-off-by: Nicolai Buchwitz <nb@tipi-net.de>
  static const struct ethtool_ops gem_ethtool_ops = {
        .supported_coalesce_params = ETHTOOL_COALESCE_RX_USECS |
                                     ETHTOOL_COALESCE_TX_USECS,
-@@ -4311,6 +4325,8 @@ static const struct ethtool_ops gem_etht
+@@ -4328,6 +4342,8 @@ static const struct ethtool_ops gem_etht
        .set_ringparam          = macb_set_ringparam,
        .get_rxnfc                      = gem_get_rxnfc,
        .set_rxnfc                      = gem_set_rxnfc,
index 2c4e77e047b949cd524308ea5e388671f2e2e761..d326d1e7a5d2d5fabb0c5d062838f33e528cb67c 100644 (file)
@@ -29,7 +29,7 @@ Signed-off-by: Nicolai Buchwitz <nb@tipi-net.de>
 
 --- a/drivers/net/ethernet/cadence/macb_main.c
 +++ b/drivers/net/ethernet/cadence/macb_main.c
-@@ -5727,7 +5727,8 @@ static const struct macb_config versal_c
+@@ -5752,7 +5752,8 @@ static const struct macb_config versal_c
  static const struct macb_config raspberrypi_rp1_config = {
        .caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE | MACB_CAPS_CLK_HW_CHG |
                MACB_CAPS_JUMBO |
index 725a01fc4b9454b4d473e1c63085f026af4bd70d..90582225e2455a43fc06f4079c0e2d391c33f646 100644 (file)
@@ -10,7 +10,7 @@ This reverts commit 712989f8e002e8a088f24a6cef4d8c1ed1a74e08.
 
 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
 +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -68,9 +68,6 @@ static void bcmgenet_set_rx_mode(struct
+@@ -67,9 +67,6 @@ static void bcmgenet_set_rx_mode(struct
  static bool skip_umac_reset = false;
  module_param(skip_umac_reset, bool, 0444);
  MODULE_PARM_DESC(skip_umac_reset, "Skip UMAC reset step");
@@ -20,7 +20,7 @@ This reverts commit 712989f8e002e8a088f24a6cef4d8c1ed1a74e08.
  
  static inline void bcmgenet_writel(u32 value, void __iomem *offset)
  {
-@@ -3368,17 +3365,6 @@ static int bcmgenet_open(struct net_devi
+@@ -3361,17 +3358,6 @@ static int bcmgenet_open(struct net_devi
  
        bcmgenet_phy_pause_set(dev, priv->rx_pause, priv->tx_pause);
  
index 8046ecd6debed0332177688bf1386ffb25f6aaad..558be0ed8a40f6e1a8559c710791fad5370ec068 100644 (file)
@@ -10,7 +10,7 @@ This reverts commit 09d1901497ce36a24c62a0befa76dee0418b48ce.
 
 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
 +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -65,7 +65,7 @@
+@@ -64,7 +64,7 @@
  
  /* Forward declarations */
  static void bcmgenet_set_rx_mode(struct net_device *dev);
index 04a98c9ba181fbdaf60e6c657af0f1078caba2d6..d8b604329023787ded0d940233f009e14e84323a 100644 (file)
@@ -10,7 +10,7 @@ This reverts commit dfad8d6677d4c11a5b6d599f81802486f5c1d973.
 
 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
 +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -65,9 +65,6 @@
+@@ -64,9 +64,6 @@
  
  /* Forward declarations */
  static void bcmgenet_set_rx_mode(struct net_device *dev);
@@ -20,7 +20,7 @@ This reverts commit dfad8d6677d4c11a5b6d599f81802486f5c1d973.
  
  static inline void bcmgenet_writel(u32 value, void __iomem *offset)
  {
-@@ -2563,11 +2560,6 @@ static void reset_umac(struct bcmgenet_p
+@@ -2555,11 +2552,6 @@ static void reset_umac(struct bcmgenet_p
        bcmgenet_rbuf_ctrl_set(priv, 0);
        udelay(10);
  
index 81504ef1640d143e7094855c40f6ac94d8184671..58a9d4fbb111909b6696fe6c42eefa455cc02d2f 100644 (file)
@@ -47,7 +47,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        void **host_mem_desc_bufs;
        unsigned int nr_allocated_queues;
        unsigned int nr_write_queues;
-@@ -2301,6 +2303,13 @@ static int nvme_set_host_mem(struct nvme
+@@ -2306,6 +2308,13 @@ static int nvme_set_host_mem(struct nvme
        return ret;
  }
  
@@ -61,7 +61,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  static void nvme_free_host_mem_multi(struct nvme_dev *dev)
  {
        int i;
-@@ -2317,6 +2326,7 @@ static void nvme_free_host_mem_multi(str
+@@ -2322,6 +2331,7 @@ static void nvme_free_host_mem_multi(str
        kfree(dev->host_mem_desc_bufs);
        dev->host_mem_desc_bufs = NULL;
  }
@@ -69,7 +69,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  
  static void nvme_free_host_mem(struct nvme_dev *dev)
  {
-@@ -2361,6 +2371,93 @@ static int nvme_alloc_host_mem_single(st
+@@ -2366,6 +2376,93 @@ static int nvme_alloc_host_mem_single(st
        return 0;
  }
  
@@ -163,7 +163,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  static int nvme_alloc_host_mem_multi(struct nvme_dev *dev, u64 preferred,
                u32 chunk_size)
  {
-@@ -2421,6 +2518,7 @@ out:
+@@ -2426,6 +2523,7 @@ out:
        dev->host_mem_descs = NULL;
        return -ENOMEM;
  }
index a5c87a500eb77af9523ade89fd7faf4c3b479803..889c4624aea5505d4a334db1f7fcbad45e01947c 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: kun_liu <kun_liu@shtdo.com>
 
 --- a/drivers/gpu/drm/panel/Kconfig
 +++ b/drivers/gpu/drm/panel/Kconfig
-@@ -1087,6 +1087,20 @@ config DRM_PANEL_TPO_Y17P
+@@ -1094,6 +1094,20 @@ config DRM_PANEL_TPO_Y17P
          Say Y if you want to enable support for panels based on the
          TDO Y17P controller.
  
index 9158ca954f7b5a0ad1a848237ec97f8d3b5c1542..c094f7c79f91483c7bc6bc07a5b617e61243e76e 100644 (file)
@@ -148,7 +148,7 @@ Signed-off-by: Lukasz Raczylo <lukasz@raczylo.com>
  static void macb_hresp_error_task(struct work_struct *work)
  {
        struct macb *bp = from_work(bp, work, hresp_err_bh_work);
-@@ -3294,6 +3353,9 @@ static int macb_open(struct net_device *
+@@ -3311,6 +3370,9 @@ static int macb_open(struct net_device *
        for (q = 0, queue = bp->queues; q < bp->num_queues; ++q, ++queue) {
                napi_enable(&queue->napi_rx);
                napi_enable(&queue->napi_tx);
@@ -158,7 +158,7 @@ Signed-off-by: Lukasz Raczylo <lukasz@raczylo.com>
        }
  
        macb_init_hw(bp);
-@@ -3340,6 +3402,7 @@ static int macb_close(struct net_device
+@@ -3357,6 +3419,7 @@ static int macb_close(struct net_device
        for (q = 0, queue = bp->queues; q < bp->num_queues; ++q, ++queue) {
                napi_disable(&queue->napi_rx);
                napi_disable(&queue->napi_tx);
@@ -166,7 +166,7 @@ Signed-off-by: Lukasz Raczylo <lukasz@raczylo.com>
                netdev_tx_reset_queue(netdev_get_tx_queue(dev, q));
        }
  
-@@ -4938,6 +5001,8 @@ static int macb_init(struct platform_dev
+@@ -4963,6 +5026,8 @@ static int macb_init(struct platform_dev
                }
  
                INIT_WORK(&queue->tx_error_task, macb_tx_error_task);
index 9df2c07349c740180ef97987ce263478ece507ba..9282e5193a7508ca864ca9dca63cea2176a0a3eb 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
 
 --- a/drivers/usb/dwc3/core.c
 +++ b/drivers/usb/dwc3/core.c
-@@ -1336,11 +1336,11 @@ static void dwc3_set_axi_pipe_limit(stru
+@@ -1354,11 +1354,11 @@ static void dwc3_set_axi_pipe_limit(stru
                dev_err(dev, "Invalid axi_pipe_limit property\n");
                return;
        }
@@ -25,7 +25,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  }
  
  /**
-@@ -1554,7 +1554,7 @@ static int dwc3_core_init(struct dwc3 *d
+@@ -1574,7 +1574,7 @@ static int dwc3_core_init(struct dwc3 *d
                u8 tx_maxburst = dwc->tx_max_burst_prd;
  
                if (tx_thr_num && tx_maxburst) {
@@ -34,7 +34,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                        reg |= DWC3_GTXTHRCFG_PKTCNTSEL;
  
                        reg &= ~DWC3_GTXTHRCFG_TXPKTCNT(~0);
-@@ -1563,7 +1563,7 @@ static int dwc3_core_init(struct dwc3 *d
+@@ -1583,7 +1583,7 @@ static int dwc3_core_init(struct dwc3 *d
                        reg &= ~DWC3_GTXTHRCFG_MAXTXBURSTSIZE(~0);
                        reg |= DWC3_GTXTHRCFG_MAXTXBURSTSIZE(tx_maxburst);
  
index c551d1ab3408f3938c620913bdc41950a56a3b17..95e0d41d0ff881640a25b60898eb9466ff2729d6 100644 (file)
@@ -11,7 +11,7 @@ This reverts commit abe92ec1f594420e6b70e5f5e79c7c11d1206822.
 
 --- a/drivers/net/usb/lan78xx.c
 +++ b/drivers/net/usb/lan78xx.c
-@@ -1960,7 +1960,6 @@ static const struct ethtool_ops lan78xx_
+@@ -1981,7 +1981,6 @@ static const struct ethtool_ops lan78xx_
        .set_link_ksettings = lan78xx_set_link_ksettings,
        .get_regs_len   = lan78xx_get_regs_len,
        .get_regs       = lan78xx_get_regs,
index 67dc5ebac1122f36574fb2a19683a87a237ad38a..1e78a475063229e77171cbaeead6c257df75c26f 100644 (file)
@@ -10,7 +10,7 @@ This reverts commit 9c78c6d07692d46d98ffd9b55092c5874d533e1a.
 
 --- a/drivers/net/usb/lan78xx.c
 +++ b/drivers/net/usb/lan78xx.c
-@@ -1818,34 +1818,15 @@ exit_pm_put:
+@@ -1839,34 +1839,15 @@ exit_pm_put:
  static int lan78xx_get_eee(struct net_device *net, struct ethtool_keee *edata)
  {
        struct lan78xx_net *dev = netdev_priv(net);
index 719670508abce41da05ef612b214294b301f32e8..3b540189507936acb159e4073bcb5ce116b3a91e 100644 (file)
@@ -10,7 +10,7 @@ This reverts commit 98fb76f556f399cf9e6bbabc2aae0110192a8a91.
 
 --- a/drivers/net/usb/lan78xx.c
 +++ b/drivers/net/usb/lan78xx.c
-@@ -2897,29 +2897,6 @@ static int lan78xx_phy_init(struct lan78
+@@ -2929,29 +2929,6 @@ static int lan78xx_phy_init(struct lan78
                goto phylink_uninit;
        }
  
index 53a487d1858431b1998ae83ba2dd1d0db18f2554..a78e23e22f7ba252605a32bb74ff45e1620f1c8c 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 
 --- a/drivers/nvme/host/pci.c
 +++ b/drivers/nvme/host/pci.c
-@@ -2433,9 +2433,9 @@ static int nvme_alloc_host_mem_multi(str
+@@ -2438,9 +2438,9 @@ static int nvme_alloc_host_mem_multi(str
        i = dev->nr_host_mem_descs = mapped_nents;
  
        while (--i >= 0) {
index 7c5971749e73bd1c563f52492a19604d6c895239..bffd69216a83d7c51609efd6c7c87146d9c9ad8b 100644 (file)
@@ -95,7 +95,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
                                continue;
 --- a/drivers/of/of_reserved_mem.c
 +++ b/drivers/of/of_reserved_mem.c
-@@ -159,11 +159,25 @@ static int __init __reserved_mem_reserve
+@@ -168,11 +168,25 @@ static int __init __reserved_mem_reserve
        int len;
        const __be32 *prop;
        bool nomap, default_cma;
@@ -121,7 +121,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
        if (len && len % t_len != 0) {
                pr_err("Reserved memory: invalid reg property in '%s', skipping node.\n",
                       uname);
-@@ -180,7 +194,7 @@ static int __init __reserved_mem_reserve
+@@ -189,7 +203,7 @@ static int __init __reserved_mem_reserve
  
        while (len >= t_len) {
                base = dt_mem_next_cell(dt_root_addr_cells, &prop);
@@ -130,7 +130,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
  
                if (size && early_init_dt_reserve_memory(base, size, nomap) == 0) {
                        /* Architecture specific contiguous memory fixup. */
-@@ -267,8 +281,21 @@ void __init fdt_scan_reserved_mem_reg_no
+@@ -277,8 +291,21 @@ void __init fdt_scan_reserved_mem_reg_no
                if (default_cma && cma_skip_dt_default_reserved_mem())
                        continue;
  
@@ -154,7 +154,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
  
                base = b;
                size = s;
-@@ -406,16 +433,24 @@ static int __init __reserved_mem_alloc_s
+@@ -416,16 +443,24 @@ static int __init __reserved_mem_alloc_s
        const __be32 *prop;
        bool nomap, default_cma;
        int ret;
index 141e785a0725b7cca4a8bb96077ae5ccfdf88503..2a98c1ecfee535a2f086760a6068aae90a760635 100644 (file)
@@ -77,7 +77,7 @@ Signed-off-by: Lukasz Raczylo <lukasz@raczylo.com>
        spin_unlock(&bp->lock);
  
        if (CIRC_SPACE(queue->tx_head, queue->tx_tail, bp->tx_ring_size) < 1)
-@@ -5810,6 +5813,7 @@ static const struct macb_config raspberr
+@@ -5835,6 +5838,7 @@ static const struct macb_config raspberr
        .caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE | MACB_CAPS_CLK_HW_CHG |
                MACB_CAPS_JUMBO |
                MACB_CAPS_GEM_HAS_PTP |
index dd762d069d14142ecff9b7060b88c9aaca231277..4aba84ac028a46525c6a3a48fe04bdae4781b695 100644 (file)
@@ -39,7 +39,7 @@ Signed-off-by: Joshua Covington <joshuacov@gmail.com>
                .matches = cpucap_multi_entry_cap_matches,
 --- a/drivers/gpu/drm/v3d/v3d_submit.c
 +++ b/drivers/gpu/drm/v3d/v3d_submit.c
-@@ -1350,7 +1350,7 @@ v3d_submit_cpu_ioctl(struct drm_device *
+@@ -1352,7 +1352,7 @@ v3d_submit_cpu_ioctl(struct drm_device *
        trace_v3d_submit_cpu_ioctl(&v3d->drm, cpu_job->job_type);
  
        ret = v3d_job_init(v3d, file_priv, &cpu_job->base,
index 63e12f3482889315f4138b20e10b7bb114b315ca..8710081fe151bba6c35a11e8f7346b941bbec71c 100644 (file)
@@ -35,7 +35,7 @@
                select SYS_SUPPORTS_HIGHMEM
 --- a/drivers/pci/controller/pcie-mediatek.c
 +++ b/drivers/pci/controller/pcie-mediatek.c
-@@ -77,6 +77,7 @@
+@@ -78,6 +78,7 @@
  
  #define PCIE_CONF_VEND_ID     0x100
  #define PCIE_CONF_DEVICE_ID   0x102
@@ -43,7 +43,7 @@
  #define PCIE_CONF_CLASS_ID    0x106
  
  #define PCIE_INT_MASK         0x420
-@@ -89,6 +90,11 @@
+@@ -90,6 +91,11 @@
  #define MSI_MASK              BIT(23)
  #define MTK_MSI_IRQS_NUM      32
  
@@ -55,7 +55,7 @@
  #define PCIE_AHB_TRANS_BASE0_L        0x438
  #define PCIE_AHB_TRANS_BASE0_H        0x43c
  #define AHB2PCIE_SIZE(x)      ((x) & GENMASK(4, 0))
-@@ -750,6 +756,86 @@ static int mtk_pcie_startup_port_v2(stru
+@@ -753,6 +759,86 @@ static int mtk_pcie_startup_port_v2(stru
        return 0;
  }
  
  static void __iomem *mtk_pcie_map_bus(struct pci_bus *bus,
                                      unsigned int devfn, int where)
  {
-@@ -1120,6 +1206,20 @@ static int mtk_pcie_probe(struct platfor
+@@ -1131,6 +1217,20 @@ static int mtk_pcie_probe(struct platfor
        if (err)
                goto put_resources;
  
        return 0;
  
  put_resources:
-@@ -1233,12 +1333,19 @@ static const struct mtk_pcie_soc mtk_pci
+@@ -1244,12 +1344,19 @@ static const struct mtk_pcie_soc mtk_pci
        .setup_irq = mtk_pcie_setup_irq,
  };
  
diff --git a/target/linux/generic/backport-6.18/300-v7.1-MIPS-mm-fix-highmem-init.patch b/target/linux/generic/backport-6.18/300-v7.1-MIPS-mm-fix-highmem-init.patch
deleted file mode 100644 (file)
index fe97f56..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-From 6d5fbecd0213489bc4de71a0da194d18e654fd6e Mon Sep 17 00:00:00 2001
-From: Kyle Hendry <kylehendrydev@gmail.com>
-Date: Sun, 21 Jun 2026 11:47:02 -0700
-Subject: MIPS: mm: Add check for highmem before removing memory block
-
-If a device has less physical memory than the highmem threshold
-bootmem_init() doesn't set highstart_pfn. This results in highmem_init()
-wrongly disabling the entire memory range if the cpu doesn't support
-highmem. Add a check that highstart_pfn is non zero before removing the
-highmem block.
-
-Fixes: f171b55f1441 ("mips: fix HIGHMEM initialization")
-Signed-off-by: Kyle Hendry <kylehendrydev@gmail.com>
-Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
----
- arch/mips/mm/init.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
---- a/arch/mips/mm/init.c
-+++ b/arch/mips/mm/init.c
-@@ -431,10 +431,11 @@ static inline void __init highmem_init(v
-       unsigned long tmp;
-       /*
--       * If CPU cannot support HIGHMEM discard the memory above highstart_pfn
-+       * If CPU cannot support HIGHMEM discard any memory above highstart_pfn
-        */
-       if (cpu_has_dc_aliases) {
--              memblock_remove(PFN_PHYS(highstart_pfn), -1);
-+              if (highstart_pfn)
-+                      memblock_remove(PFN_PHYS(highstart_pfn), -1);
-               return;
-       }
index 3586c3f36fb9707179367da7bb99f6a330c4b9c9..f1252e23c9f56504fc79a45e721df592c71c3e9e 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -2750,6 +2750,17 @@ static inline void *netdev_priv(const st
+@@ -2754,6 +2754,17 @@ static inline void *netdev_priv(const st
        return (void *)dev->priv;
  }
  
diff --git a/target/linux/generic/backport-6.18/627-v7.2-net-pse-pd-scope-pse_control-regulator-handle-to-kre.patch b/target/linux/generic/backport-6.18/627-v7.2-net-pse-pd-scope-pse_control-regulator-handle-to-kre.patch
deleted file mode 100644 (file)
index e41033c..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-From 16759757c4d28e958fd5a5a1fe0f86828872f28d Mon Sep 17 00:00:00 2001
-From: Corey Leavitt <corey@leavitt.info>
-Date: Wed, 24 Jun 2026 22:40:16 +0200
-Subject: net: pse-pd: scope pse_control regulator handle to kref lifetime
-
-__pse_control_release() drops psec->ps via devm_regulator_put(), which
-only succeeds if the devres entry added by the matching
-devm_regulator_get_exclusive() is still present on pcdev->dev at the
-time the pse_control's kref hits zero.
-
-That assumption does not hold when the controller is unbound while a
-pse_control still has consumers: pcdev->dev's devres list is released
-LIFO, so every per-attach regulator-GET devres runs (and
-regulator_put()s the underlying regulator) before
-pse_controller_unregister() itself is invoked. Any later
-pse_control_put() from that unbind path then reads psec->ps as a
-dangling pointer inside devm_regulator_put() and WARNs at
-drivers/regulator/devres.c:232 (devres_release() fails to find the
-already-released match).
-
-The pse_control's consumer handle is logically scoped to the
-pse_control's refcount, not to pcdev->dev's devres lifetime. Switch to
-the plain regulator_get_exclusive() / regulator_put() pair so the
-regulator put in __pse_control_release() no longer depends on the
-controller's devres still being present. No change to the
-regulator-framework-visible refcount or lifetime of the underlying
-regulator: a single get paired with a single put. The existing
-devm_regulator_register() for the per-PI rails is unchanged (those ARE
-correctly scoped to the controller's lifetime).
-
-This addresses only the regulator handle. The same unbind-while-held
-scenario also leaves __pse_control_release() reading psec->pcdev->pi[]
-and psec->pcdev->owner after pse_controller_unregister() has freed
-pcdev->pi, because the controller does not drain its outstanding
-pse_control references on unregister. That wider pse_control vs
-pcdev lifetime problem pre-dates this change and is addressed by the
-PSE controller notifier series, which drains phydev->psec on
-PSE_UNREGISTERED before pcdev->pi is freed.
-
-Link: https://lore.kernel.org/netdev/20260620112440.1734404-1-github@szelinsky.de/
-Fixes: d83e13761d5b ("net: pse-pd: Use regulator framework within PSE framework")
-Signed-off-by: Corey Leavitt <corey@leavitt.info>
-Acked-by: Kory Maincent <kory.maincent@bootlin.com>
-Signed-off-by: Carlo Szelinsky <github@szelinsky.de>
-Reviewed-by: Simon Horman <horms@kernel.org>
-Link: https://patch.msgid.link/20260624204017.2752934-1-github@szelinsky.de
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- drivers/net/pse-pd/pse_core.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
---- a/drivers/net/pse-pd/pse_core.c
-+++ b/drivers/net/pse-pd/pse_core.c
-@@ -1362,7 +1362,7 @@ static void __pse_control_release(struct
-       if (psec->pcdev->pi[psec->id].admin_state_enabled)
-               regulator_disable(psec->ps);
--      devm_regulator_put(psec->ps);
-+      regulator_put(psec->ps);
-       module_put(psec->pcdev->owner);
-@@ -1431,8 +1431,8 @@ pse_control_get_internal(struct pse_cont
-               goto free_psec;
-       pcdev->pi[index].admin_state_enabled = ret;
--      psec->ps = devm_regulator_get_exclusive(pcdev->dev,
--                                              rdev_get_name(pcdev->pi[index].rdev));
-+      psec->ps = regulator_get_exclusive(pcdev->dev,
-+                                         rdev_get_name(pcdev->pi[index].rdev));
-       if (IS_ERR(psec->ps)) {
-               ret = PTR_ERR(psec->ps);
-               goto put_module;
index d9c3821c35c1ee2d21d6cc020ff4aad03e04efbf..2decaf1a97d3911ccb392b3d78d543551d0075a2 100644 (file)
@@ -222,7 +222,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        unregister_pernet_device(&pppoe_net_ops);
 --- a/net/ipv4/af_inet.c
 +++ b/net/ipv4/af_inet.c
-@@ -1531,6 +1531,7 @@ out:
+@@ -1526,6 +1526,7 @@ out:
  
        return pp;
  }
@@ -230,7 +230,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
  static struct sk_buff *ipip_gro_receive(struct list_head *head,
                                        struct sk_buff *skb)
-@@ -1616,6 +1617,7 @@ int inet_gro_complete(struct sk_buff *sk
+@@ -1611,6 +1612,7 @@ int inet_gro_complete(struct sk_buff *sk
  out:
        return err;
  }
index 34aa4216ce0ce0abdc91d357e92cf1cdbf2573eb..7e8a7b2cecd04b0d6e907e40ba22201cc7b1d030 100644 (file)
@@ -116,9 +116,9 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 +      if (qd->min_netlen > len)
 +              qd->min_netlen = len;
  
-       len += q->rate_overhead;
+       len = max((s32)len + q->rate_overhead, (s32)q->rate_mpu);
  
-@@ -1385,10 +1389,10 @@ static u32 cake_calc_overhead(struct cak
+@@ -1382,10 +1386,10 @@ static u32 cake_calc_overhead(struct cak
                len += (len + 63) / 64;
        }
  
@@ -133,7 +133,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        return len;
  }
-@@ -1592,7 +1596,7 @@ static unsigned int cake_drop(struct Qdi
+@@ -1589,7 +1593,7 @@ static unsigned int cake_drop(struct Qdi
        flow->dropped++;
        WRITE_ONCE(b->tin_dropped, b->tin_dropped + 1);
  
@@ -142,7 +142,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                cake_advance_shaper(q, b, skb, now, true);
  
        qdisc_drop_reason(skb, sch, to_free, SKB_DROP_REASON_QDISC_OVERLIMIT);
-@@ -1662,7 +1666,8 @@ static u8 cake_handle_diffserv(struct sk
+@@ -1659,7 +1663,8 @@ static u8 cake_handle_diffserv(struct sk
  static struct cake_tin_data *cake_select_tin(struct Qdisc *sch,
                                             struct sk_buff *skb)
  {
@@ -152,7 +152,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        u32 tin, mark;
        bool wash;
        u8 dscp;
-@@ -1679,24 +1684,24 @@ static struct cake_tin_data *cake_select
+@@ -1676,24 +1681,24 @@ static struct cake_tin_data *cake_select
        if (q->tin_mode == CAKE_DIFFSERV_BESTEFFORT)
                tin = 0;
  
@@ -184,7 +184,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  }
  
  static u32 cake_classify(struct Qdisc *sch, struct cake_tin_data **t,
-@@ -1752,7 +1757,7 @@ static s32 cake_enqueue(struct sk_buff *
+@@ -1749,7 +1754,7 @@ static s32 cake_enqueue(struct sk_buff *
        bool same_flow = false;
  
        /* choose flow to insert into */
@@ -193,7 +193,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        if (idx == 0) {
                if (ret & __NET_XMIT_BYPASS)
                        qdisc_qstats_drop(sch);
-@@ -1787,7 +1792,7 @@ static s32 cake_enqueue(struct sk_buff *
+@@ -1784,7 +1789,7 @@ static s32 cake_enqueue(struct sk_buff *
        if (unlikely(len > b->max_skblen))
                b->max_skblen = len;
  
@@ -202,7 +202,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                struct sk_buff *segs, *nskb;
                netdev_features_t features = netif_skb_features(skb);
                unsigned int slen = 0, numsegs = 0;
-@@ -1828,7 +1833,7 @@ static s32 cake_enqueue(struct sk_buff *
+@@ -1825,7 +1830,7 @@ static s32 cake_enqueue(struct sk_buff *
                get_cobalt_cb(skb)->adjusted_len = cake_overhead(q, skb);
                flow_queue_add(flow, skb);
  
@@ -211,7 +211,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                        ack = cake_ack_filter(q, flow);
  
                if (ack) {
-@@ -1837,7 +1842,7 @@ static s32 cake_enqueue(struct sk_buff *
+@@ -1834,7 +1839,7 @@ static s32 cake_enqueue(struct sk_buff *
                        ack_pkt_len = qdisc_pkt_len(ack);
                        b->bytes += ack_pkt_len;
                        q->buffer_used += skb->truesize - ack->truesize;
@@ -220,7 +220,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                                cake_advance_shaper(q, b, ack, now, true);
  
                        qdisc_tree_reduce_backlog(sch, 1, ack_pkt_len);
-@@ -1860,7 +1865,7 @@ static s32 cake_enqueue(struct sk_buff *
+@@ -1857,7 +1862,7 @@ static s32 cake_enqueue(struct sk_buff *
                cake_heapify_up(q, b->overflow_idx[idx]);
  
        /* incoming bandwidth capacity estimate */
@@ -229,7 +229,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                u64 packet_interval = \
                        ktime_to_ns(ktime_sub(now, q->last_packet_time));
  
-@@ -1892,7 +1897,7 @@ static s32 cake_enqueue(struct sk_buff *
+@@ -1889,7 +1894,7 @@ static s32 cake_enqueue(struct sk_buff *
                        if (ktime_after(now,
                                        ktime_add_ms(q->last_reconfig_time,
                                                     250))) {
@@ -238,7 +238,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                                cake_reconfigure(sch);
                        }
                }
-@@ -1912,7 +1917,7 @@ static s32 cake_enqueue(struct sk_buff *
+@@ -1909,7 +1914,7 @@ static s32 cake_enqueue(struct sk_buff *
                flow->set = CAKE_SET_SPARSE;
                b->sparse_flow_count++;
  
@@ -247,7 +247,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        } else if (flow->set == CAKE_SET_SPARSE_WAIT) {
                /* this flow was empty, accounted as a sparse flow, but actually
                 * in the bulk rotation.
-@@ -1921,8 +1926,8 @@ static s32 cake_enqueue(struct sk_buff *
+@@ -1918,8 +1923,8 @@ static s32 cake_enqueue(struct sk_buff *
                b->sparse_flow_count--;
                b->bulk_flow_count++;
  
@@ -258,7 +258,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        }
  
        if (q->buffer_used > q->buffer_max_used)
-@@ -2109,8 +2114,8 @@ retry:
+@@ -2106,8 +2111,8 @@ retry:
                                b->sparse_flow_count--;
                                b->bulk_flow_count++;
  
@@ -269,7 +269,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
                                flow->set = CAKE_SET_BULK;
                        } else {
-@@ -2122,7 +2127,7 @@ retry:
+@@ -2119,7 +2124,7 @@ retry:
                        }
                }
  
@@ -278,7 +278,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                list_move_tail(&flow->flowchain, &b->old_flows);
  
                goto retry;
-@@ -2146,8 +2151,8 @@ retry:
+@@ -2143,8 +2148,8 @@ retry:
                                if (flow->set == CAKE_SET_BULK) {
                                        b->bulk_flow_count--;
  
@@ -289,7 +289,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
                                        b->decaying_flow_count++;
                                } else if (flow->set == CAKE_SET_SPARSE ||
-@@ -2165,8 +2170,8 @@ retry:
+@@ -2162,8 +2167,8 @@ retry:
                                else if (flow->set == CAKE_SET_BULK) {
                                        b->bulk_flow_count--;
  
@@ -300,7 +300,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                                } else
                                        b->decaying_flow_count--;
  
-@@ -2177,14 +2182,14 @@ retry:
+@@ -2174,14 +2179,14 @@ retry:
  
                reason = cobalt_should_drop(&flow->cvars, &b->cparams, now, skb,
                                            (b->bulk_flow_count *
@@ -317,7 +317,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                        len = cake_advance_shaper(q, b, skb,
                                                  now, true);
                        flow->deficit -= len;
-@@ -2195,7 +2200,7 @@ retry:
+@@ -2192,7 +2197,7 @@ retry:
                qdisc_tree_reduce_backlog(sch, 1, qdisc_pkt_len(skb));
                qdisc_qstats_drop(sch);
                kfree_skb_reason(skb, reason);
@@ -326,7 +326,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                        goto retry;
        }
  
-@@ -2320,7 +2325,7 @@ static int cake_config_besteffort(struct
+@@ -2317,7 +2322,7 @@ static int cake_config_besteffort(struct
        struct cake_sched_data *q = qdisc_priv(sch);
        struct cake_tin_data *b = &q->tins[0];
        u32 mtu = psched_mtu(qdisc_dev(sch));
@@ -335,7 +335,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        q->tin_cnt = 1;
  
-@@ -2328,7 +2333,7 @@ static int cake_config_besteffort(struct
+@@ -2325,7 +2330,7 @@ static int cake_config_besteffort(struct
        q->tin_order = normal_order;
  
        cake_set_rate(b, rate, mtu,
@@ -344,7 +344,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        b->tin_quantum = 65535;
  
        return 0;
-@@ -2339,7 +2344,7 @@ static int cake_config_precedence(struct
+@@ -2336,7 +2341,7 @@ static int cake_config_precedence(struct
        /* convert high-level (user visible) parameters into internal format */
        struct cake_sched_data *q = qdisc_priv(sch);
        u32 mtu = psched_mtu(qdisc_dev(sch));
@@ -353,7 +353,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        u32 quantum = 256;
        u32 i;
  
-@@ -2350,8 +2355,8 @@ static int cake_config_precedence(struct
+@@ -2347,8 +2352,8 @@ static int cake_config_precedence(struct
        for (i = 0; i < q->tin_cnt; i++) {
                struct cake_tin_data *b = &q->tins[i];
  
@@ -364,7 +364,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
                b->tin_quantum = max_t(u16, 1U, quantum);
  
-@@ -2428,7 +2433,7 @@ static int cake_config_diffserv8(struct
+@@ -2425,7 +2430,7 @@ static int cake_config_diffserv8(struct
  
        struct cake_sched_data *q = qdisc_priv(sch);
        u32 mtu = psched_mtu(qdisc_dev(sch));
@@ -373,7 +373,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        u32 quantum = 256;
        u32 i;
  
-@@ -2442,8 +2447,8 @@ static int cake_config_diffserv8(struct
+@@ -2439,8 +2444,8 @@ static int cake_config_diffserv8(struct
        for (i = 0; i < q->tin_cnt; i++) {
                struct cake_tin_data *b = &q->tins[i];
  
@@ -384,7 +384,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
                b->tin_quantum = max_t(u16, 1U, quantum);
  
-@@ -2472,7 +2477,7 @@ static int cake_config_diffserv4(struct
+@@ -2469,7 +2474,7 @@ static int cake_config_diffserv4(struct
  
        struct cake_sched_data *q = qdisc_priv(sch);
        u32 mtu = psched_mtu(qdisc_dev(sch));
@@ -393,7 +393,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        u32 quantum = 1024;
  
        q->tin_cnt = 4;
-@@ -2483,13 +2488,13 @@ static int cake_config_diffserv4(struct
+@@ -2480,13 +2485,13 @@ static int cake_config_diffserv4(struct
  
        /* class characteristics */
        cake_set_rate(&q->tins[0], rate, mtu,
@@ -411,7 +411,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        /* bandwidth-sharing weights */
        q->tins[0].tin_quantum = quantum;
-@@ -2509,7 +2514,7 @@ static int cake_config_diffserv3(struct
+@@ -2506,7 +2511,7 @@ static int cake_config_diffserv3(struct
   */
        struct cake_sched_data *q = qdisc_priv(sch);
        u32 mtu = psched_mtu(qdisc_dev(sch));
@@ -420,7 +420,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        u32 quantum = 1024;
  
        q->tin_cnt = 3;
-@@ -2520,11 +2525,11 @@ static int cake_config_diffserv3(struct
+@@ -2517,11 +2522,11 @@ static int cake_config_diffserv3(struct
  
        /* class characteristics */
        cake_set_rate(&q->tins[0], rate, mtu,
@@ -435,7 +435,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        /* bandwidth-sharing weights */
        q->tins[0].tin_quantum = quantum;
-@@ -2536,7 +2541,8 @@ static int cake_config_diffserv3(struct
+@@ -2533,7 +2538,8 @@ static int cake_config_diffserv3(struct
  
  static void cake_reconfigure(struct Qdisc *sch)
  {
@@ -445,7 +445,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        int c, ft;
  
        switch (q->tin_mode) {
-@@ -2562,36 +2568,37 @@ static void cake_reconfigure(struct Qdis
+@@ -2559,36 +2565,37 @@ static void cake_reconfigure(struct Qdis
                break;
        }
  
@@ -494,7 +494,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        struct nlattr *tb[TCA_CAKE_MAX + 1];
        u16 rate_flags;
        u8 flow_mode;
-@@ -2645,19 +2652,19 @@ static int cake_change(struct Qdisc *sch
+@@ -2642,19 +2649,19 @@ static int cake_change(struct Qdisc *sch
                           nla_get_s32(tb[TCA_CAKE_OVERHEAD]));
                rate_flags |= CAKE_FLAG_OVERHEAD;
  
@@ -522,7 +522,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        }
  
        if (tb[TCA_CAKE_MPU])
-@@ -2713,7 +2720,7 @@ static int cake_change(struct Qdisc *sch
+@@ -2710,7 +2717,7 @@ static int cake_change(struct Qdisc *sch
  
        WRITE_ONCE(q->rate_flags, rate_flags);
        WRITE_ONCE(q->flow_mode, flow_mode);
@@ -531,7 +531,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                sch_tree_lock(sch);
                cake_reconfigure(sch);
                sch_tree_unlock(sch);
-@@ -2729,14 +2736,20 @@ static void cake_destroy(struct Qdisc *s
+@@ -2726,14 +2733,20 @@ static void cake_destroy(struct Qdisc *s
        qdisc_watchdog_cancel(&q->watchdog);
        tcf_block_put(q->block);
        kvfree(q->tins);
@@ -553,7 +553,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        sch->limit = 10240;
        q->tin_mode = CAKE_DIFFSERV_DIFFSERV3;
        q->flow_mode  = CAKE_FLOW_TRIPLE;
-@@ -2748,33 +2761,36 @@ static int cake_init(struct Qdisc *sch,
+@@ -2745,33 +2758,36 @@ static int cake_init(struct Qdisc *sch,
                               * for 5 to 10% of interval
                               */
        q->rate_flags |= CAKE_FLAG_SPLIT_GSO;
@@ -601,7 +601,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
                INIT_LIST_HEAD(&b->new_flows);
                INIT_LIST_HEAD(&b->old_flows);
-@@ -2790,22 +2806,27 @@ static int cake_init(struct Qdisc *sch,
+@@ -2787,22 +2803,27 @@ static int cake_init(struct Qdisc *sch,
                        INIT_LIST_HEAD(&flow->flowchain);
                        cobalt_vars_init(&flow->cvars);
  
index 13059b9a1ffa3a825f531ad5fb348c214bb88fd3..b9d831311d54ab00eb8b383e33f66b7ff6f6961e 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  #include <net/pkt_cls.h>
  #include <net/tcp.h>
  #include <net/flow_dissector.h>
-@@ -3163,14 +3164,89 @@ static struct Qdisc_ops cake_qdisc_ops _
+@@ -3160,14 +3161,89 @@ static struct Qdisc_ops cake_qdisc_ops _
  };
  MODULE_ALIAS_NET_SCH("cake");
  
@@ -123,7 +123,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  }
  
  module_init(cake_module_init)
-@@ -3178,3 +3254,4 @@ module_exit(cake_module_exit)
+@@ -3175,3 +3251,4 @@ module_exit(cake_module_exit)
  MODULE_AUTHOR("Jonathan Morton");
  MODULE_LICENSE("Dual BSD/GPL");
  MODULE_DESCRIPTION("The CAKE shaper.");
index 8981b0fcb80cb5ffa2c5b202610604f1b08a7cd1..d2be26a8c85318b3b741a5647407b24607ae7d28 100644 (file)
@@ -27,7 +27,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  };
  
  struct cake_sched_data {
-@@ -2595,14 +2596,12 @@ static void cake_reconfigure(struct Qdis
+@@ -2592,14 +2593,12 @@ static void cake_reconfigure(struct Qdis
                                   q->buffer_config_limit));
  }
  
@@ -46,7 +46,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        int err;
  
        err = nla_parse_nested_deprecated(tb, TCA_CAKE_MAX, opt, cake_policy,
-@@ -2610,7 +2609,6 @@ static int cake_change(struct Qdisc *sch
+@@ -2607,7 +2606,6 @@ static int cake_change(struct Qdisc *sch
        if (err < 0)
                return err;
  
@@ -54,7 +54,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        if (tb[TCA_CAKE_NAT]) {
  #if IS_ENABLED(CONFIG_NF_CONNTRACK)
                flow_mode &= ~CAKE_FLOW_NAT_FLAG;
-@@ -2623,6 +2621,19 @@ static int cake_change(struct Qdisc *sch
+@@ -2620,6 +2618,19 @@ static int cake_change(struct Qdisc *sch
  #endif
        }
  
@@ -74,7 +74,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        if (tb[TCA_CAKE_BASE_RATE64])
                WRITE_ONCE(q->rate_bps,
                           nla_get_u64(tb[TCA_CAKE_BASE_RATE64]));
-@@ -2631,7 +2642,6 @@ static int cake_change(struct Qdisc *sch
+@@ -2628,7 +2639,6 @@ static int cake_change(struct Qdisc *sch
                WRITE_ONCE(q->tin_mode,
                           nla_get_u32(tb[TCA_CAKE_DIFFSERV_MODE]));
  
@@ -82,7 +82,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        if (tb[TCA_CAKE_WASH]) {
                if (!!nla_get_u32(tb[TCA_CAKE_WASH]))
                        rate_flags |= CAKE_FLAG_WASH;
-@@ -2652,20 +2662,12 @@ static int cake_change(struct Qdisc *sch
+@@ -2649,20 +2659,12 @@ static int cake_change(struct Qdisc *sch
                WRITE_ONCE(q->rate_overhead,
                           nla_get_s32(tb[TCA_CAKE_OVERHEAD]));
                rate_flags |= CAKE_FLAG_OVERHEAD;
@@ -105,7 +105,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        }
  
        if (tb[TCA_CAKE_MPU])
-@@ -2684,13 +2686,6 @@ static int cake_change(struct Qdisc *sch
+@@ -2681,13 +2683,6 @@ static int cake_change(struct Qdisc *sch
                WRITE_ONCE(q->target, max(target, 1U));
        }
  
@@ -119,7 +119,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        if (tb[TCA_CAKE_INGRESS]) {
                if (!!nla_get_u32(tb[TCA_CAKE_INGRESS]))
                        rate_flags |= CAKE_FLAG_INGRESS;
-@@ -2721,6 +2716,34 @@ static int cake_change(struct Qdisc *sch
+@@ -2718,6 +2713,34 @@ static int cake_change(struct Qdisc *sch
  
        WRITE_ONCE(q->rate_flags, rate_flags);
        WRITE_ONCE(q->flow_mode, flow_mode);
@@ -154,7 +154,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        if (qd->tins) {
                sch_tree_lock(sch);
                cake_reconfigure(sch);
-@@ -2737,7 +2760,23 @@ static void cake_destroy(struct Qdisc *s
+@@ -2734,7 +2757,23 @@ static void cake_destroy(struct Qdisc *s
        qdisc_watchdog_cancel(&q->watchdog);
        tcf_block_put(q->block);
        kvfree(q->tins);
@@ -179,7 +179,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  }
  
  static int cake_init(struct Qdisc *sch, struct nlattr *opt,
-@@ -2751,17 +2790,9 @@ static int cake_init(struct Qdisc *sch,
+@@ -2748,17 +2787,9 @@ static int cake_init(struct Qdisc *sch,
        if (!q)
                return -ENOMEM;
  
@@ -199,7 +199,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        qd->cur_tin = 0;
        qd->cur_flow  = 0;
        qd->config = q;
-@@ -2824,10 +2855,21 @@ err:
+@@ -2821,10 +2852,21 @@ err:
        return err;
  }
  
@@ -222,7 +222,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        struct nlattr *opts;
        u16 rate_flags;
        u8 flow_mode;
-@@ -2903,6 +2945,13 @@ nla_put_failure:
+@@ -2900,6 +2942,13 @@ nla_put_failure:
        return -1;
  }
  
@@ -236,7 +236,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  static int cake_dump_stats(struct Qdisc *sch, struct gnet_dump *d)
  {
        struct nlattr *stats = nla_nest_start_noflag(d->skb, TCA_STATS_APP);
-@@ -3166,6 +3215,7 @@ MODULE_ALIAS_NET_SCH("cake");
+@@ -3163,6 +3212,7 @@ MODULE_ALIAS_NET_SCH("cake");
  
  struct cake_mq_sched {
        struct mq_sched mq_priv; /* must be first */
@@ -244,7 +244,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  };
  
  static void cake_mq_destroy(struct Qdisc *sch)
-@@ -3176,25 +3226,68 @@ static void cake_mq_destroy(struct Qdisc
+@@ -3173,25 +3223,68 @@ static void cake_mq_destroy(struct Qdisc
  static int cake_mq_init(struct Qdisc *sch, struct nlattr *opt,
                        struct netlink_ext_ack *extack)
  {
index 147789d4905bcc863bad003e60ab083fd696ede4..1d7cce166ec676f876e0fc37dfaa8e27951f8af5 100644 (file)
@@ -88,7 +88,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  /* http://en.wikipedia.org/wiki/Methods_of_computing_square_roots
   * new_invsqrt = (invsqrt / 2) * (3 - count * invsqrt^2)
   *
-@@ -2009,6 +2017,40 @@ static struct sk_buff *cake_dequeue(stru
+@@ -2006,6 +2014,40 @@ static struct sk_buff *cake_dequeue(stru
        u64 delay;
        u32 len;
  
@@ -129,7 +129,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  begin:
        if (!sch->q.qlen)
                return NULL;
-@@ -2208,6 +2250,7 @@ retry:
+@@ -2205,6 +2247,7 @@ retry:
  
        WRITE_ONCE(b->tin_ecn_mark, b->tin_ecn_mark + !!flow->cvars.ecn_marked);
        qdisc_bstats_update(sch, skb);
@@ -137,7 +137,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        /* collect delay stats */
        delay = ktime_to_ns(ktime_sub(now, cobalt_get_enqueue_time(skb)));
-@@ -2310,6 +2353,9 @@ static void cake_set_rate(struct cake_ti
+@@ -2307,6 +2350,9 @@ static void cake_set_rate(struct cake_ti
        b->tin_rate_ns   = rate_ns;
        b->tin_rate_shft = rate_shft;
  
@@ -147,7 +147,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        byte_target_ns = (byte_target * rate_ns) >> rate_shft;
  
        WRITE_ONCE(b->cparams.target,
-@@ -2777,6 +2823,7 @@ static void cake_config_init(struct cake
+@@ -2774,6 +2820,7 @@ static void cake_config_init(struct cake
                               */
        q->rate_flags |= CAKE_FLAG_SPLIT_GSO;
        q->is_shared = is_shared;
@@ -155,7 +155,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  }
  
  static int cake_init(struct Qdisc *sch, struct nlattr *opt,
-@@ -2848,6 +2895,9 @@ static int cake_init(struct Qdisc *sch,
+@@ -2845,6 +2892,9 @@ static int cake_init(struct Qdisc *sch,
        qd->avg_peak_bandwidth = q->rate_bps;
        qd->min_netlen = ~0;
        qd->min_adjlen = ~0;
@@ -165,7 +165,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        return 0;
  err:
        kvfree(qd->config);
-@@ -2980,6 +3030,7 @@ static int cake_dump_stats(struct Qdisc
+@@ -2977,6 +3027,7 @@ static int cake_dump_stats(struct Qdisc
        PUT_STAT_U32(MAX_ADJLEN, q->max_adjlen);
        PUT_STAT_U32(MIN_NETLEN, q->min_netlen);
        PUT_STAT_U32(MIN_ADJLEN, q->min_adjlen);
index bb1f7423ab0ccaa984b463d7e48938f9707da4a0..c6d7a3bbe06a99630cc2e535d4a6450ded7a6840 100644 (file)
@@ -33,7 +33,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        struct cake_heap_entry overflow_heap[CAKE_QUEUES * CAKE_MAX_TINS];
  
-@@ -2806,8 +2807,6 @@ static void cake_destroy(struct Qdisc *s
+@@ -2803,8 +2804,6 @@ static void cake_destroy(struct Qdisc *s
        qdisc_watchdog_cancel(&q->watchdog);
        tcf_block_put(q->block);
        kvfree(q->tins);
@@ -42,7 +42,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  }
  
  static void cake_config_init(struct cake_sched_config *q, bool is_shared)
-@@ -2830,13 +2829,9 @@ static int cake_init(struct Qdisc *sch,
+@@ -2827,13 +2826,9 @@ static int cake_init(struct Qdisc *sch,
                     struct netlink_ext_ack *extack)
  {
        struct cake_sched_data *qd = qdisc_priv(sch);
@@ -57,7 +57,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        cake_config_init(q, false);
  
        sch->limit = 10240;
-@@ -2848,14 +2843,13 @@ static int cake_init(struct Qdisc *sch,
+@@ -2845,14 +2840,13 @@ static int cake_init(struct Qdisc *sch,
  
        if (opt) {
                err = cake_change(sch, opt, extack);
@@ -74,7 +74,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        quantum_div[0] = ~0;
        for (i = 1; i <= CAKE_QUEUES; i++)
-@@ -2863,10 +2857,8 @@ static int cake_init(struct Qdisc *sch,
+@@ -2860,10 +2854,8 @@ static int cake_init(struct Qdisc *sch,
  
        qd->tins = kvcalloc(CAKE_MAX_TINS, sizeof(struct cake_tin_data),
                            GFP_KERNEL);
@@ -87,7 +87,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        for (i = 0; i < CAKE_MAX_TINS; i++) {
                struct cake_tin_data *b = qd->tins + i;
-@@ -2899,22 +2891,13 @@ static int cake_init(struct Qdisc *sch,
+@@ -2896,22 +2888,13 @@ static int cake_init(struct Qdisc *sch,
        qd->last_checked_active = 0;
  
        return 0;
index 150f44c1a1f7ffe2738bf5e23935e18c202f1ccf..3eab4c1a5174e688884b0b5ba1597dc1d6e57387 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/net/sched/sch_cake.c
 +++ b/net/sched/sch_cake.c
-@@ -2018,7 +2018,8 @@ static struct sk_buff *cake_dequeue(stru
+@@ -2015,7 +2015,8 @@ static struct sk_buff *cake_dequeue(stru
        u64 delay;
        u32 len;
  
index fdecc8644ca82242a13d73b0e07b090862e8a07d..c6d27079243f71b9832a49977e098dacd70c816b 100644 (file)
@@ -34,7 +34,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  /* http://en.wikipedia.org/wiki/Methods_of_computing_square_roots
   * new_invsqrt = (invsqrt / 2) * (3 - count * invsqrt^2)
   *
-@@ -2045,12 +2045,9 @@ static struct sk_buff *cake_dequeue(stru
+@@ -2042,12 +2042,9 @@ static struct sk_buff *cake_dequeue(stru
                if (num_active_qs > 1)
                        new_rate = div64_u64(q->config->rate_bps, num_active_qs);
  
@@ -48,7 +48,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        }
  
  begin:
-@@ -2370,12 +2367,10 @@ static void cake_set_rate(struct cake_ti
+@@ -2367,12 +2364,10 @@ static void cake_set_rate(struct cake_ti
        b->cparams.p_dec = 1 << 20; /* 1/4096 */
  }
  
@@ -62,7 +62,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        q->tin_cnt = 1;
  
-@@ -2389,12 +2384,10 @@ static int cake_config_besteffort(struct
+@@ -2386,12 +2381,10 @@ static int cake_config_besteffort(struct
        return 0;
  }
  
@@ -76,7 +76,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        u32 quantum = 256;
        u32 i;
  
-@@ -2465,7 +2458,7 @@ static int cake_config_precedence(struct
+@@ -2462,7 +2455,7 @@ static int cake_config_precedence(struct
   *    Total 12 traffic classes.
   */
  
@@ -85,7 +85,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  {
  /*    Pruned list of traffic classes for typical applications:
   *
-@@ -2482,8 +2475,6 @@ static int cake_config_diffserv8(struct
+@@ -2479,8 +2472,6 @@ static int cake_config_diffserv8(struct
   */
  
        struct cake_sched_data *q = qdisc_priv(sch);
@@ -94,7 +94,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        u32 quantum = 256;
        u32 i;
  
-@@ -2513,7 +2504,7 @@ static int cake_config_diffserv8(struct
+@@ -2510,7 +2501,7 @@ static int cake_config_diffserv8(struct
        return 0;
  }
  
@@ -103,7 +103,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  {
  /*  Further pruned list of traffic classes for four-class system:
   *
-@@ -2526,8 +2517,6 @@ static int cake_config_diffserv4(struct
+@@ -2523,8 +2514,6 @@ static int cake_config_diffserv4(struct
   */
  
        struct cake_sched_data *q = qdisc_priv(sch);
@@ -112,7 +112,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        u32 quantum = 1024;
  
        q->tin_cnt = 4;
-@@ -2555,7 +2544,7 @@ static int cake_config_diffserv4(struct
+@@ -2552,7 +2541,7 @@ static int cake_config_diffserv4(struct
        return 0;
  }
  
@@ -121,7 +121,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  {
  /*  Simplified Diffserv structure with 3 tins.
   *            Latency Sensitive       (CS7, CS6, EF, VA, TOS4)
-@@ -2563,8 +2552,6 @@ static int cake_config_diffserv3(struct
+@@ -2560,8 +2549,6 @@ static int cake_config_diffserv3(struct
   *            Low Priority            (LE, CS1)
   */
        struct cake_sched_data *q = qdisc_priv(sch);
@@ -130,7 +130,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        u32 quantum = 1024;
  
        q->tin_cnt = 3;
-@@ -2589,32 +2576,33 @@ static int cake_config_diffserv3(struct
+@@ -2586,32 +2573,33 @@ static int cake_config_diffserv3(struct
        return 0;
  }
  
@@ -170,7 +170,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                break;
        }
  
-@@ -2625,6 +2613,14 @@ static void cake_reconfigure(struct Qdis
+@@ -2622,6 +2610,14 @@ static void cake_reconfigure(struct Qdis
  
        qd->rate_ns   = qd->tins[ft].tin_rate_ns;
        qd->rate_shft = qd->tins[ft].tin_rate_shft;
index 30787e6a27396cb913613127239677021df1d63b..ebefbfb4882dff581af1644a9df83f7401ca8529 100644 (file)
@@ -74,7 +74,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        /* Access rules:
         * state_hw_drive: st_mutex held
         * state_hw_mask: st_mutex held
-@@ -861,6 +878,45 @@ static int sfp_read(struct sfp *sfp, boo
+@@ -862,6 +879,45 @@ static int sfp_read(struct sfp *sfp, boo
        return sfp->read(sfp, a2, addr, buf, len);
  }
  
@@ -120,7 +120,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  static int sfp_write(struct sfp *sfp, bool a2, u8 addr, void *buf, size_t len)
  {
        return sfp->write(sfp, a2, addr, buf, len);
-@@ -3159,9 +3215,30 @@ static int sfp_probe(struct platform_dev
+@@ -3160,9 +3216,30 @@ static int sfp_probe(struct platform_dev
        sfp->get_state = sfp_gpio_get_state;
        sfp->set_state = sfp_gpio_set_state;
  
diff --git a/target/linux/generic/backport-6.18/752-v7.2-net-dsa-qca8k-fix-led-devicename-when-using-external.patch b/target/linux/generic/backport-6.18/752-v7.2-net-dsa-qca8k-fix-led-devicename-when-using-external.patch
deleted file mode 100644 (file)
index 195e171..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-From 0b7b378ce6cafbb948786cb6f17f406d94016c8c Mon Sep 17 00:00:00 2001
-From: George Moussalem <george.moussalem@outlook.com>
-Date: Mon, 8 Jun 2026 11:22:08 +0400
-Subject: [PATCH] net: dsa: qca8k: fix led devicename when using external mdio
- bus
-
-The qca8k dsa switch can use either an external or internal mdio bus.
-This depends on whether the mdio node is defined under the switch node
-itself. Upon registering the internal mdio bus, the internal_mdio_bus
-of the dsa switch is assigned to this bus. When an external mdio bus is
-used, the driver still uses the internal_mdio_bus id which is used to
-create the device names of the leds.
-This leads to the leds being prefixed with '(efault)' as the
-internal_mii_bus is null. So let's fix this by adding a null check and
-use the devicename of the external bus instead when an external bus is
-configured.
-
-Fixes: 1e264f9d2918 ("net: dsa: qca8k: add LEDs basic support")
-Signed-off-by: George Moussalem <george.moussalem@outlook.com>
-Reviewed-by: Andrew Lunn <andrew@lunn.ch>
-Link: https://patch.msgid.link/20260608-qca8k-leds-fix-v3-1-a915bb2f37ae@outlook.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- drivers/net/dsa/qca/qca8k-leds.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/drivers/net/dsa/qca/qca8k-leds.c
-+++ b/drivers/net/dsa/qca/qca8k-leds.c
-@@ -429,7 +429,8 @@ qca8k_parse_port_leds(struct qca8k_priv
-               init_data.fwnode = led;
-               init_data.devname_mandatory = true;
-               init_data.devicename = kasprintf(GFP_KERNEL, "%s:0%d",
--                                               priv->internal_mdio_bus->id,
-+                                               priv->internal_mdio_bus ?
-+                                               priv->internal_mdio_bus->id : priv->bus->id,
-                                                port_num);
-               if (!init_data.devicename) {
-                       fwnode_handle_put(led);
index ef2bf7b21c10b607d1ca9a1ebd1e460fc008614d..a04ed4fa50361757183615f881294fd311692929 100644 (file)
@@ -86,7 +86,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  #define RTL8366RB_POWER_SAVE                  0x15
  #define RTL8366RB_POWER_SAVE_ON                       BIT(12)
  
-@@ -1494,6 +1516,168 @@ static int rtl822xb_c45_read_status(stru
+@@ -1495,6 +1517,168 @@ static int rtl822xb_c45_read_status(stru
        return 0;
  }
  
@@ -255,7 +255,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  static bool rtlgen_supports_2_5gbps(struct phy_device *phydev)
  {
        int val;
-@@ -1971,11 +2155,14 @@ static struct phy_driver realtek_drvs[]
+@@ -1972,11 +2156,14 @@ static struct phy_driver realtek_drvs[]
        }, {
                PHY_ID_MATCH_EXACT(0x001ccad0),
                .name           = "RTL8224 2.5Gbps PHY",
index 7e263269d3bf131828e2c557ebe3f53bb70197b4..9a180c56e5688306f3e5adf5bbfe9e25ce1243ba 100644 (file)
@@ -31,7 +31,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  #define RTL8224_MII_RTCT                      0x11
  #define RTL8224_MII_RTCT_ENABLE                       BIT(0)
  #define RTL8224_MII_RTCT_PAIR_A                       BIT(4)
-@@ -1921,6 +1926,53 @@ static irqreturn_t rtl9000a_handle_inter
+@@ -1922,6 +1927,53 @@ static irqreturn_t rtl9000a_handle_inter
        return IRQ_HANDLED;
  }
  
@@ -85,7 +85,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  static struct phy_driver realtek_drvs[] = {
        {
                PHY_ID_MATCH_EXACT(0x00008201),
-@@ -2095,6 +2147,8 @@ static struct phy_driver realtek_drvs[]
+@@ -2096,6 +2148,8 @@ static struct phy_driver realtek_drvs[]
        }, {
                .match_phy_device = rtl8221b_vb_cg_c45_match_phy_device,
                .name           = "RTL8221B-VB-CG 2.5Gbps PHY (C45)",
@@ -94,7 +94,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                .probe          = rtl822x_probe,
                .config_init    = rtl822xb_config_init,
                .get_rate_matching = rtl822xb_get_rate_matching,
-@@ -2119,6 +2173,8 @@ static struct phy_driver realtek_drvs[]
+@@ -2120,6 +2174,8 @@ static struct phy_driver realtek_drvs[]
        }, {
                .match_phy_device = rtl8221b_vm_cg_c45_match_phy_device,
                .name           = "RTL8221B-VM-CG 2.5Gbps PHY (C45)",
index e577166e9040c841fdd4e42114bca1192fbc989b..c27fdfdc9262ebf3b5b12b5944d0aeb68a5b25f7 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 
 --- a/drivers/net/phy/realtek/realtek_main.c
 +++ b/drivers/net/phy/realtek/realtek_main.c
-@@ -1976,7 +1976,7 @@ static irqreturn_t rtl8221b_handle_inter
+@@ -1977,7 +1977,7 @@ static irqreturn_t rtl8221b_handle_inter
  static struct phy_driver realtek_drvs[] = {
        {
                PHY_ID_MATCH_EXACT(0x00008201),
@@ -26,7 +26,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                .read_page      = rtl821x_read_page,
                .write_page     = rtl821x_write_page,
        }, {
-@@ -2102,7 +2102,7 @@ static struct phy_driver realtek_drvs[]
+@@ -2103,7 +2103,7 @@ static struct phy_driver realtek_drvs[]
                .name           = "RTL8226B_RTL8221B 2.5Gbps PHY",
                .get_features   = rtl822x_get_features,
                .config_aneg    = rtl822x_config_aneg,
@@ -35,7 +35,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                .get_rate_matching = rtl822xb_get_rate_matching,
                .read_status    = rtl822xb_read_status,
                .suspend        = genphy_suspend,
-@@ -2111,112 +2111,112 @@ static struct phy_driver realtek_drvs[]
+@@ -2112,112 +2112,112 @@ static struct phy_driver realtek_drvs[]
                .write_page     = rtl821x_write_page,
        }, {
                PHY_ID_MATCH_EXACT(0x001cc838),
@@ -218,7 +218,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                .cable_test_start = rtl8224_cable_test_start,
                .cable_test_get_status = rtl8224_cable_test_get_status,
        }, {
-@@ -2235,7 +2235,7 @@ static struct phy_driver realtek_drvs[]
+@@ -2236,7 +2236,7 @@ static struct phy_driver realtek_drvs[]
        }, {
                PHY_ID_MATCH_EXACT(0x001ccb00),
                .name           = "RTL9000AA_RTL9000AN Ethernet",
index 16e6de29a7e6a3c3beb5f9abe5861ca9dad2313a..b4ba4f6130a6e3da3037bdace544012251105207 100644 (file)
@@ -83,7 +83,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  static int rtl822xb_get_rate_matching(struct phy_device *phydev,
                                      phy_interface_t iface)
  {
-@@ -2103,6 +2156,8 @@ static struct phy_driver realtek_drvs[]
+@@ -2104,6 +2157,8 @@ static struct phy_driver realtek_drvs[]
                .get_features   = rtl822x_get_features,
                .config_aneg    = rtl822x_config_aneg,
                .config_init    = rtl822xb_config_init,
@@ -92,7 +92,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                .get_rate_matching = rtl822xb_get_rate_matching,
                .read_status    = rtl822xb_read_status,
                .suspend        = genphy_suspend,
-@@ -2116,6 +2171,8 @@ static struct phy_driver realtek_drvs[]
+@@ -2117,6 +2172,8 @@ static struct phy_driver realtek_drvs[]
                .get_features   = rtl822x_c45_get_features,
                .config_aneg    = rtl822x_c45_config_aneg,
                .config_init    = rtl822x_config_init,
@@ -101,7 +101,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                .read_status    = rtl822xb_c45_read_status,
                .suspend        = genphy_c45_pma_suspend,
                .resume         = rtlgen_c45_resume,
-@@ -2125,6 +2182,8 @@ static struct phy_driver realtek_drvs[]
+@@ -2126,6 +2183,8 @@ static struct phy_driver realtek_drvs[]
                .get_features   = rtl822x_get_features,
                .config_aneg    = rtl822x_config_aneg,
                .config_init    = rtl822xb_config_init,
@@ -110,7 +110,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                .get_rate_matching = rtl822xb_get_rate_matching,
                .read_status    = rtl822xb_read_status,
                .suspend        = genphy_suspend,
-@@ -2138,6 +2197,8 @@ static struct phy_driver realtek_drvs[]
+@@ -2139,6 +2198,8 @@ static struct phy_driver realtek_drvs[]
                .get_features   = rtl822x_get_features,
                .config_aneg    = rtl822x_config_aneg,
                .config_init    = rtl822xb_config_init,
@@ -119,7 +119,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                .get_rate_matching = rtl822xb_get_rate_matching,
                .read_status    = rtl822xb_read_status,
                .suspend        = genphy_suspend,
-@@ -2151,6 +2212,8 @@ static struct phy_driver realtek_drvs[]
+@@ -2152,6 +2213,8 @@ static struct phy_driver realtek_drvs[]
                .handle_interrupt = rtl8221b_handle_interrupt,
                .probe          = rtl822x_probe,
                .config_init    = rtl822xb_config_init,
@@ -128,7 +128,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                .get_rate_matching = rtl822xb_get_rate_matching,
                .get_features   = rtl822x_c45_get_features,
                .config_aneg    = rtl822x_c45_config_aneg,
-@@ -2164,6 +2227,8 @@ static struct phy_driver realtek_drvs[]
+@@ -2165,6 +2228,8 @@ static struct phy_driver realtek_drvs[]
                .get_features   = rtl822x_get_features,
                .config_aneg    = rtl822x_config_aneg,
                .config_init    = rtl822xb_config_init,
@@ -137,7 +137,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                .get_rate_matching = rtl822xb_get_rate_matching,
                .read_status    = rtl822xb_read_status,
                .suspend        = genphy_suspend,
-@@ -2177,6 +2242,8 @@ static struct phy_driver realtek_drvs[]
+@@ -2178,6 +2243,8 @@ static struct phy_driver realtek_drvs[]
                .handle_interrupt = rtl8221b_handle_interrupt,
                .probe          = rtl822x_probe,
                .config_init    = rtl822xb_config_init,
index d84fb6af3911273ea53e617d7bc690e2a17055d6..dd9b58bd79e9ba70fccfc3061f46b7137d6a5d8e 100644 (file)
@@ -116,7 +116,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  static int rtl822x_set_serdes_option_mode(struct phy_device *phydev, bool gen1)
  {
        bool has_2500, has_sgmii;
-@@ -2150,6 +2222,8 @@ static struct phy_driver realtek_drvs[]
+@@ -2151,6 +2223,8 @@ static struct phy_driver realtek_drvs[]
                .resume         = rtlgen_resume,
                .read_page      = rtl821x_read_page,
                .write_page     = rtl821x_write_page,
@@ -125,7 +125,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        }, {
                .match_phy_device = rtl8221b_match_phy_device,
                .name           = "RTL8226B_RTL8221B 2.5Gbps PHY",
-@@ -2164,6 +2238,8 @@ static struct phy_driver realtek_drvs[]
+@@ -2165,6 +2239,8 @@ static struct phy_driver realtek_drvs[]
                .resume         = rtlgen_resume,
                .read_page      = rtl821x_read_page,
                .write_page     = rtl821x_write_page,
@@ -134,7 +134,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        }, {
                PHY_ID_MATCH_EXACT(0x001cc838),
                .name           = "RTL8226-CG 2.5Gbps PHY",
-@@ -2176,6 +2252,8 @@ static struct phy_driver realtek_drvs[]
+@@ -2177,6 +2253,8 @@ static struct phy_driver realtek_drvs[]
                .read_status    = rtl822xb_c45_read_status,
                .suspend        = genphy_c45_pma_suspend,
                .resume         = rtlgen_c45_resume,
@@ -143,7 +143,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        }, {
                PHY_ID_MATCH_EXACT(0x001cc848),
                .name           = "RTL8226B-CG_RTL8221B-CG 2.5Gbps PHY",
-@@ -2190,6 +2268,8 @@ static struct phy_driver realtek_drvs[]
+@@ -2191,6 +2269,8 @@ static struct phy_driver realtek_drvs[]
                .resume         = rtlgen_resume,
                .read_page      = rtl821x_read_page,
                .write_page     = rtl821x_write_page,
@@ -152,7 +152,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        }, {
                .match_phy_device = rtl8221b_vb_cg_c22_match_phy_device,
                .name           = "RTL8221B-VB-CG 2.5Gbps PHY (C22)",
-@@ -2205,6 +2285,8 @@ static struct phy_driver realtek_drvs[]
+@@ -2206,6 +2286,8 @@ static struct phy_driver realtek_drvs[]
                .resume         = rtlgen_resume,
                .read_page      = rtl821x_read_page,
                .write_page     = rtl821x_write_page,
@@ -161,7 +161,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        }, {
                .match_phy_device = rtl8221b_vb_cg_c45_match_phy_device,
                .name           = "RTL8221B-VB-CG 2.5Gbps PHY (C45)",
-@@ -2235,6 +2317,8 @@ static struct phy_driver realtek_drvs[]
+@@ -2236,6 +2318,8 @@ static struct phy_driver realtek_drvs[]
                .resume         = rtlgen_resume,
                .read_page      = rtl821x_read_page,
                .write_page     = rtl821x_write_page,
index 49f1f4f55269aa3442e4d3be4469b70594c501dc..d88f575e52ef9969a2b70e7e86892afba01d7335 100644 (file)
@@ -44,7 +44,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
  #include "realtek.h"
  
-@@ -2099,6 +2100,45 @@ static irqreturn_t rtl8221b_handle_inter
+@@ -2100,6 +2101,45 @@ static irqreturn_t rtl8221b_handle_inter
        return IRQ_HANDLED;
  }
  
@@ -90,7 +90,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  static struct phy_driver realtek_drvs[] = {
        {
                PHY_ID_MATCH_EXACT(0x00008201),
-@@ -2357,6 +2397,20 @@ static struct phy_driver realtek_drvs[]
+@@ -2358,6 +2398,20 @@ static struct phy_driver realtek_drvs[]
                .suspend        = genphy_suspend,
                .resume         = rtlgen_resume,
                .read_page      = rtl821x_read_page,
index ea3347d3bb011f19cb2f84157a4d15154cfa6f21..3dcf01840cc1ac6c373422f9dfb031c8e7c5523c 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/phy/realtek/realtek_main.c
 +++ b/drivers/net/phy/realtek/realtek_main.c
-@@ -2315,6 +2315,8 @@ static struct phy_driver realtek_drvs[]
+@@ -2316,6 +2316,8 @@ static struct phy_driver realtek_drvs[]
        }, {
                .match_phy_device = rtl8221b_vb_cg_c22_match_phy_device,
                .name           = "RTL8221B-VB-CG 2.5Gbps PHY (C22)",
@@ -27,7 +27,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                .probe          = rtl822x_probe,
                .get_features   = rtl822x_get_features,
                .config_aneg    = rtl822x_config_aneg,
-@@ -2347,6 +2349,8 @@ static struct phy_driver realtek_drvs[]
+@@ -2348,6 +2350,8 @@ static struct phy_driver realtek_drvs[]
        }, {
                .match_phy_device = rtl8221b_vm_cg_c22_match_phy_device,
                .name           = "RTL8221B-VM-CG 2.5Gbps PHY (C22)",
index 5bca3035d97249496a969e0d34656ca1fe63d245..c81783dc177abca64916a05939c8205b98b11e3e 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/phy/realtek/realtek_main.c
 +++ b/drivers/net/phy/realtek/realtek_main.c
-@@ -1880,28 +1880,18 @@ static int rtl8221b_match_phy_device(str
+@@ -1881,28 +1881,18 @@ static int rtl8221b_match_phy_device(str
        return phydev->phy_id == RTL_8221B && rtlgen_supports_mmd(phydev);
  }
  
@@ -59,7 +59,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  }
  
  static int rtl_internal_nbaset_match_phy_device(struct phy_device *phydev,
-@@ -2324,27 +2314,8 @@ static struct phy_driver realtek_drvs[]
+@@ -2325,27 +2315,8 @@ static struct phy_driver realtek_drvs[]
                .read_mmd       = rtl822xb_read_mmd,
                .write_mmd      = rtl822xb_write_mmd,
        }, {
@@ -89,7 +89,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                .config_intr    = rtl8221b_config_intr,
                .handle_interrupt = rtl8221b_handle_interrupt,
                .probe          = rtl822x_probe,
-@@ -2357,28 +2328,13 @@ static struct phy_driver realtek_drvs[]
+@@ -2358,28 +2329,13 @@ static struct phy_driver realtek_drvs[]
                .read_status    = rtl822xb_c45_read_status,
                .suspend        = genphy_c45_pma_suspend,
                .resume         = rtlgen_c45_resume,
@@ -120,7 +120,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                .config_intr    = rtl8221b_config_intr,
                .handle_interrupt = rtl8221b_handle_interrupt,
                .probe          = rtl822x_probe,
-@@ -2391,6 +2347,10 @@ static struct phy_driver realtek_drvs[]
+@@ -2392,6 +2348,10 @@ static struct phy_driver realtek_drvs[]
                .read_status    = rtl822xb_c45_read_status,
                .suspend        = genphy_c45_pma_suspend,
                .resume         = rtlgen_c45_resume,
index 185e0fdf729543832e85df7532e4bf3a7397a023..71f2bce8fc574e4625eb0cacf08b84d61fc51357 100644 (file)
@@ -69,7 +69,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        if (val < 0)
                return val;
  
-@@ -1623,7 +1622,8 @@ static int rtl822x_c45_read_status(struc
+@@ -1624,7 +1623,8 @@ static int rtl822x_c45_read_status(struc
        }
  
        /* Read actual speed from vendor register. */
@@ -79,7 +79,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        if (val < 0)
                return val;
  
-@@ -2127,7 +2127,7 @@ static int rtlgen_sfp_read_status(struct
+@@ -2128,7 +2128,7 @@ static int rtlgen_sfp_read_status(struct
        if (!phydev->link)
                return 0;
  
index d7416d81a9e916038bf0f2577e0c2c970e5be4d5..e80153765ff654968c6952efe72253f3cd44d204 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
 
 --- a/scripts/kconfig/conf.c
 +++ b/scripts/kconfig/conf.c
-@@ -312,6 +312,9 @@ static int conf_askvalue(struct symbol *
+@@ -310,6 +310,9 @@ static int conf_askvalue(struct symbol *
                }
                /* fall through */
        default:
@@ -29,7 +29,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
                fflush(stdout);
                xfgets(line, sizeof(line), stdin);
                break;
-@@ -470,6 +473,9 @@ static void conf_choice(struct menu *men
+@@ -468,6 +471,9 @@ static void conf_choice(struct menu *men
                        }
                        /* fall through */
                case oldaskconfig:
index bb802857d6b57bafdb57b2a6b2a2fff26733a399..a1e7f4b3beec0b3263229d2e085b12f7c2ec6839 100644 (file)
@@ -195,7 +195,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
  
        return connmark_tg_shift(skb, info);
  }
-@@ -168,6 +195,16 @@ static struct xt_target connmark_tg_reg[
+@@ -178,6 +205,16 @@ static struct xt_target connmark_tg_reg[
                .destroy        = connmark_tg_destroy,
                .me             = THIS_MODULE,
        },
@@ -212,7 +212,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
  #if IS_ENABLED(CONFIG_IP6_NF_IPTABLES)
        {
                .name           = "CONNMARK",
-@@ -189,6 +226,16 @@ static struct xt_target connmark_tg_reg[
+@@ -199,6 +236,16 @@ static struct xt_target connmark_tg_reg[
                .destroy        = connmark_tg_destroy,
                .me             = THIS_MODULE,
        },
index fb24eb99469455b858364a094bf444f35e026c44..2217b0829bba1d2d27001bed6f92ec0d57a3cb25 100644 (file)
@@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        depends on NETFILTER_ADVANCED
 --- a/net/netfilter/Makefile
 +++ b/net/netfilter/Makefile
-@@ -167,6 +167,7 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_CLASSIF
+@@ -168,6 +168,7 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_CLASSIF
  obj-$(CONFIG_NETFILTER_XT_TARGET_CONNSECMARK) += xt_CONNSECMARK.o
  obj-$(CONFIG_NETFILTER_XT_TARGET_CT) += xt_CT.o
  obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o
@@ -798,7 +798,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +#endif /* _XT_FLOWOFFLOAD_H */
 --- a/include/net/netfilter/nf_flow_table.h
 +++ b/include/net/netfilter/nf_flow_table.h
-@@ -295,6 +295,11 @@ void nf_flow_table_free(struct nf_flowta
+@@ -301,6 +301,11 @@ void nf_flow_table_free(struct nf_flowta
  
  void flow_offload_teardown(struct flow_offload *flow);
  
index 64201f9bdf9c780de74c185c11a056783d101cc2..84f9bdc999bb601e8120134ef09902d3fdfad3f6 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/sched/sch_fq_codel.c
 +++ b/net/sched/sch_fq_codel.c
-@@ -475,7 +475,11 @@ static int fq_codel_init(struct Qdisc *s
+@@ -512,7 +512,11 @@ static int fq_codel_init(struct Qdisc *s
  
        sch->limit = 10*1024;
        q->flows_cnt = 1024;
index d64a3eb9e7b721ca76d5d968ba41314ea4ccb9a8..33649bc0baab200c8b51cbb48ed673a1713f9891 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
 
 --- a/net/netfilter/nf_conntrack_core.c
 +++ b/net/netfilter/nf_conntrack_core.c
-@@ -2640,7 +2640,7 @@ int nf_conntrack_init_start(void)
+@@ -2597,7 +2597,7 @@ int nf_conntrack_init_start(void)
  
        if (!nf_conntrack_htable_size) {
                nf_conntrack_htable_size
index b94d6f3a6964c4fdcde222c81760e174bcf276e7..f9da00e0aa8c737f5e2c33898984562fdd509de9 100644 (file)
@@ -34,7 +34,7 @@ Signed-off-by: Jonas Köppeler <j.koeppeler@tu-berlin.de>
  
  /* struct cobalt_params - contains codel and blue parameters
   * @interval: codel initial drop rate
-@@ -2019,7 +2022,7 @@ static struct sk_buff *cake_dequeue(stru
+@@ -2016,7 +2019,7 @@ static struct sk_buff *cake_dequeue(stru
        u32 len;
  
        if (q->config->is_shared && q->rate_ns &&
@@ -43,7 +43,7 @@ Signed-off-by: Jonas Köppeler <j.koeppeler@tu-berlin.de>
                struct net_device *dev = qdisc_dev(sch);
                struct cake_sched_data *other_priv;
                u64 new_rate = q->config->rate_bps;
-@@ -3361,8 +3364,13 @@ static int __init cake_module_init(void)
+@@ -3358,8 +3361,13 @@ static int __init cake_module_init(void)
                return ret;
  
        ret = register_qdisc(&cake_mq_qdisc_ops);
@@ -58,7 +58,7 @@ Signed-off-by: Jonas Köppeler <j.koeppeler@tu-berlin.de>
  
        return ret;
  }
-@@ -3371,6 +3379,7 @@ static void __exit cake_module_exit(void
+@@ -3368,6 +3376,7 @@ static void __exit cake_module_exit(void
  {
        unregister_qdisc(&cake_qdisc_ops);
        unregister_qdisc(&cake_mq_qdisc_ops);
index 3c19fe1782270494ad81615f3381b754ff5d2e5a..05fb232d7bb95f6c99b92ab1112ad1ef9f0dc75c 100644 (file)
@@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  };
  
  /* Specifies the type of the struct net_device::ml_priv pointer */
-@@ -2244,6 +2245,11 @@ struct net_device {
+@@ -2246,6 +2247,11 @@ struct net_device {
        const struct tlsdev_ops *tlsdev_ops;
  #endif
  
@@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        unsigned int            operstate;
        unsigned char           link_mode;
  
-@@ -2320,6 +2326,10 @@ struct net_device {
+@@ -2322,6 +2328,10 @@ struct net_device {
        struct psp_dev __rcu    *psp_dev;
  #endif
  
index 4afc1e8c5afb4cd5696454e57e2c1fb7da772557..3fa54594acf026f926841ca21e5043d7dfaffaf9 100644 (file)
@@ -331,7 +331,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -4358,6 +4358,8 @@ static __net_initdata struct pernet_oper
+@@ -4353,6 +4353,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
  {
index 1f0fb67a7f44e040026cf90ec5678afa605fe0bc..f7b12573a65026a28bb2009f5ea3df38dd6e036b 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: RafaÅ‚ MiÅ‚ecki <rafal@milecki.pl>
 
 --- a/drivers/base/core.c
 +++ b/drivers/base/core.c
-@@ -1652,7 +1652,7 @@ static void device_links_purge(struct de
+@@ -1717,7 +1717,7 @@ static void device_links_purge(struct de
  #define FW_DEVLINK_FLAGS_RPM          (FW_DEVLINK_FLAGS_ON | \
                                         DL_FLAG_PM_RUNTIME)
  
index eba60731b2696107e84b2074aa383cab19c4e861..8771b7b4c549cdd50b8a671a5e176d2835f6a8b7 100644 (file)
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.18 = .39
-LINUX_KERNEL_HASH-6.18.39 = a7a7e3d2ae9d95e74197223a8d4eb5f6be7aac21b6e6de27e9685d001c1f8cb0
+LINUX_VERSION-6.18 = .40
+LINUX_KERNEL_HASH-6.18.40 = 3712fc1ec839e4daac981176c8518912e8f452650aaedfe4381da4419613a431
index 7e998113440ce209984e563bf721751cb29f7549..fbacedbfe989eedc84722abc793a6b342270d93b 100644 (file)
@@ -174,7 +174,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
        child->size = child->part.size;
 --- a/drivers/mtd/spi-nor/Kconfig
 +++ b/drivers/mtd/spi-nor/Kconfig
-@@ -10,6 +10,16 @@ menuconfig MTD_SPI_NOR
+@@ -9,6 +9,16 @@ menuconfig MTD_SPI_NOR
  
  if MTD_SPI_NOR
  
index 9e2373bdfa8c8357a9cb8752f6a4b30b149f41c1..9a332f44c5a157ace8aef82f189291530144ae95 100644 (file)
@@ -424,7 +424,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  }
  
  static int ip6_tnl_newlink(struct net_device *dev,
-@@ -2123,6 +2342,12 @@ static void ip6_tnl_dellink(struct net_d
+@@ -2126,6 +2345,12 @@ static void ip6_tnl_dellink(struct net_d
  
  static size_t ip6_tnl_get_size(const struct net_device *dev)
  {
@@ -437,7 +437,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        return
                /* IFLA_IPTUN_LINK */
                nla_total_size(4) +
-@@ -2152,6 +2377,24 @@ static size_t ip6_tnl_get_size(const str
+@@ -2155,6 +2380,24 @@ static size_t ip6_tnl_get_size(const str
                nla_total_size(0) +
                /* IFLA_IPTUN_FWMARK */
                nla_total_size(4) +
@@ -462,7 +462,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
                0;
  }
  
-@@ -2159,6 +2402,9 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2162,6 +2405,9 @@ static int ip6_tnl_fill_info(struct sk_b
  {
        struct ip6_tnl *tunnel = netdev_priv(dev);
        struct __ip6_tnl_parm *parm = &tunnel->parms;
@@ -472,7 +472,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  
        if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
            nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
-@@ -2168,9 +2414,27 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2171,9 +2417,27 @@ static int ip6_tnl_fill_info(struct sk_b
            nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
            nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
            nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
@@ -501,7 +501,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
            nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
            nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
-@@ -2210,6 +2474,7 @@ static const struct nla_policy ip6_tnl_p
+@@ -2213,6 +2477,7 @@ static const struct nla_policy ip6_tnl_p
        [IFLA_IPTUN_ENCAP_DPORT]        = { .type = NLA_U16 },
        [IFLA_IPTUN_COLLECT_METADATA]   = { .type = NLA_FLAG },
        [IFLA_IPTUN_FWMARK]             = { .type = NLA_U32 },
index 08e20df6b7cdbee258a5b0bb3c808a0859db41d7..2b768a346b549472e880837e2da58bbe32595097 100644 (file)
@@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  /*
   *    Allocate a dst for local (unicast / anycast) address.
   */
-@@ -5209,7 +5239,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -5212,7 +5242,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 <jogo@openwrt.org>
                cfg->fc_flags |= RTF_REJECT;
  
        if (rtm->rtm_type == RTN_LOCAL)
-@@ -6480,6 +6511,8 @@ static int ip6_route_dev_notify(struct n
+@@ -6483,6 +6514,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 <jogo@openwrt.org>
                net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
                net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
  #endif
-@@ -6491,6 +6524,7 @@ static int ip6_route_dev_notify(struct n
+@@ -6494,6 +6527,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 <jogo@openwrt.org>
                in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
  #endif
        }
-@@ -6686,6 +6720,8 @@ static int __net_init ip6_route_net_init
+@@ -6689,6 +6723,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 <jogo@openwrt.org>
        net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
                                               sizeof(*net->ipv6.ip6_prohibit_entry),
                                               GFP_KERNEL);
-@@ -6696,11 +6732,21 @@ static int __net_init ip6_route_net_init
+@@ -6699,11 +6735,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 <jogo@openwrt.org>
        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);
-@@ -6727,6 +6773,8 @@ out:
+@@ -6730,6 +6776,8 @@ out:
        return ret;
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  out_ip6_prohibit_entry:
        kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_entry:
-@@ -6746,6 +6794,7 @@ static void __net_exit ip6_route_net_exi
+@@ -6749,6 +6797,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 <jogo@openwrt.org>
        kfree(net->ipv6.ip6_blk_hole_entry);
  #endif
        dst_entries_destroy(&net->ipv6.ip6_dst_ops);
-@@ -6829,6 +6878,9 @@ void __init ip6_route_init_special_entri
+@@ -6832,6 +6881,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);
index 246e1a4c6a925d8159683d7d97c3850497eeba98..de033f7059d6b5926236c6cf56a62fc132dc191f 100644 (file)
@@ -55,7 +55,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  }
 --- a/net/netfilter/nft_flow_offload.c
 +++ b/net/netfilter/nft_flow_offload.c
-@@ -494,47 +494,14 @@ static struct nft_expr_type nft_flow_off
+@@ -235,47 +235,14 @@ static struct nft_expr_type nft_flow_off
        .owner          = THIS_MODULE,
  };
  
index 78856b21c3fe7f89d82bd65520f0b54d4592890a..24f68fff540d0511470bb82b8255a80d01967b44 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/netfilter/nf_tables_api.c
 +++ b/net/netfilter/nf_tables_api.c
-@@ -9092,7 +9092,7 @@ static int nft_register_flowtable_ops(st
+@@ -9095,7 +9095,7 @@ static int nft_register_flowtable_ops(st
  
        err = flowtable->data.type->setup(&flowtable->data,
                                          ops->dev, FLOW_BLOCK_BIND);
index 2a0a0e953b556dfb9ce618f5404769a8692681a5..5273cd6eb42ca27f11c2e4b4448383256cd19603 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/drivers/net/phy/realtek/realtek_main.c
 +++ b/drivers/net/phy/realtek/realtek_main.c
-@@ -2255,6 +2255,7 @@ static struct phy_driver realtek_drvs[]
+@@ -2256,6 +2256,7 @@ static struct phy_driver realtek_drvs[]
        }, {
                .name           = "RTL8226 2.5Gbps PHY",
                .match_phy_device = rtl8226_match_phy_device,
@@ -23,7 +23,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
                .get_features   = rtl822x_get_features,
                .config_aneg    = rtl822x_config_aneg,
                .read_status    = rtl822x_read_status,
-@@ -2267,6 +2268,7 @@ static struct phy_driver realtek_drvs[]
+@@ -2268,6 +2269,7 @@ static struct phy_driver realtek_drvs[]
        }, {
                .match_phy_device = rtl8221b_match_phy_device,
                .name           = "RTL8226B_RTL8221B 2.5Gbps PHY",
@@ -31,7 +31,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
                .get_features   = rtl822x_get_features,
                .config_aneg    = rtl822x_config_aneg,
                .config_init    = rtl822xb_config_init,
-@@ -2297,6 +2299,7 @@ static struct phy_driver realtek_drvs[]
+@@ -2298,6 +2300,7 @@ static struct phy_driver realtek_drvs[]
        }, {
                PHY_ID_MATCH_EXACT(0x001cc848),
                .name           = "RTL8226B-CG_RTL8221B-CG 2.5Gbps PHY",
@@ -39,7 +39,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
                .get_features   = rtl822x_get_features,
                .config_aneg    = rtl822x_config_aneg,
                .config_init    = rtl822xb_config_init,
-@@ -2315,6 +2318,7 @@ static struct phy_driver realtek_drvs[]
+@@ -2316,6 +2319,7 @@ static struct phy_driver realtek_drvs[]
                .name           = "RTL8221B-VB-CG 2.5Gbps PHY",
                .config_intr    = rtl8221b_config_intr,
                .handle_interrupt = rtl8221b_handle_interrupt,
@@ -47,7 +47,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
                .probe          = rtl822x_probe,
                .config_init    = rtl822xb_config_init,
                .inband_caps    = rtl822x_inband_caps,
-@@ -2334,6 +2338,7 @@ static struct phy_driver realtek_drvs[]
+@@ -2335,6 +2339,7 @@ static struct phy_driver realtek_drvs[]
                .name           = "RTL8221B-VM-CG 2.5Gbps PHY",
                .config_intr    = rtl8221b_config_intr,
                .handle_interrupt = rtl8221b_handle_interrupt,
index 8a0db2c2ea360856e322750c91764aaeca816d1e..e3b1f630a3b67dbef85a0b4080b3458422e51233 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/drivers/net/phy/realtek/realtek_main.c
 +++ b/drivers/net/phy/realtek/realtek_main.c
-@@ -1823,9 +1823,11 @@ static bool rtlgen_supports_2_5gbps(stru
+@@ -1824,9 +1824,11 @@ static bool rtlgen_supports_2_5gbps(stru
  {
        int val;
  
index 829f4b9301985acbe69be44f58e3728cb48eb7e7..f1aec090a6f96fbad7016e518bb78af2d4dfe628 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
 --- a/drivers/net/phy/realtek/realtek_main.c
 +++ b/drivers/net/phy/realtek/realtek_main.c
-@@ -1908,10 +1908,32 @@ static int rtl8226_match_phy_device(stru
+@@ -1909,10 +1909,32 @@ static int rtl8226_match_phy_device(stru
  static int rtlgen_is_c45_match(struct phy_device *phydev, unsigned int id,
                               bool is_c45)
  {
index 922d3f4a8738402675c521f0ef3672a4912cf2c1..e42c84665a3913477c8f02c6bb9958d9f9a7aa8d 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/drivers/net/phy/realtek/realtek_main.c
 +++ b/drivers/net/phy/realtek/realtek_main.c
-@@ -1604,6 +1604,9 @@ static int rtl822x_c45_get_features(stru
+@@ -1605,6 +1605,9 @@ static int rtl822x_c45_get_features(stru
        linkmode_set_bit(ETHTOOL_LINK_MODE_TP_BIT,
                         phydev->supported);
  
index 3b45118b96ada916b40b270ba14e7864dddee090..e213c76db96e32cdd1e9e5d3cb1f44441c7028ea 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -2304,7 +2304,7 @@ struct net_device {
+@@ -2306,7 +2306,7 @@ struct net_device {
  #if IS_ENABLED(CONFIG_AX25)
        struct ax25_dev __rcu   *ax25_ptr;
  #endif
index 2ca5ace3678922f94b28069a52f2a2a8d5bc73d0..437fafbf40e874fb87f4c20a23aa8e077077eef7 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        foe_flow_size = (MTK_PPE_ENTRIES / soc->hash_offset) *
 @@ -928,6 +929,7 @@ struct mtk_ppe *mtk_ppe_init(struct mtk_
                if (!mib)
-                       return NULL;
+                       goto err_free_l2_flows;
  
 +              memset(mib, 0, MTK_PPE_ENTRIES * sizeof(*mib));
                ppe->mib_table = mib;
index 0d6c7f48041f28b8c8d2da23e59b11eac7be3181..eedcd1db394196baa8f167d940fc1b65054342c0 100644 (file)
@@ -92,7 +92,7 @@ Signed-off-by: Balázs Triszka <info@balika011.hu>
  MODULE_DESCRIPTION("Realtek PHY driver");
  MODULE_AUTHOR("Johnson Leung");
  MODULE_LICENSE("GPL");
-@@ -1993,6 +2012,125 @@ static int rtl8251b_c45_match_phy_device
+@@ -1994,6 +2013,125 @@ static int rtl8251b_c45_match_phy_device
        return rtlgen_is_c45_match(phydev, RTL_8251B, true);
  }
  
@@ -218,7 +218,7 @@ Signed-off-by: Balázs Triszka <info@balika011.hu>
  static int rtlgen_resume(struct phy_device *phydev)
  {
        int ret = genphy_resume(phydev);
-@@ -2214,6 +2352,482 @@ static int rtlgen_sfp_config_aneg(struct
+@@ -2215,6 +2353,482 @@ static int rtlgen_sfp_config_aneg(struct
        return 0;
  }
  
@@ -701,7 +701,7 @@ Signed-off-by: Balázs Triszka <info@balika011.hu>
  static struct phy_driver realtek_drvs[] = {
        {
                PHY_ID_MATCH_EXACT(0x00008201),
-@@ -2520,6 +3134,108 @@ static struct phy_driver realtek_drvs[]
+@@ -2521,6 +3135,108 @@ static struct phy_driver realtek_drvs[]
                .resume         = genphy_resume,
                .read_mmd       = genphy_read_mmd_unsupported,
                .write_mmd      = genphy_write_mmd_unsupported,
index bac70c5bd81945667d2788e2f8c9c86b8bdd027b..62871e23353c7d0755fef104349e7d658315556e 100644 (file)
@@ -68,7 +68,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
  
  /* show configuration fields */
  #define pci_config_attr(field, format_string)                         \
-@@ -1673,12 +1675,32 @@ static const struct attribute_group pci_
+@@ -1660,12 +1662,32 @@ static const struct attribute_group pci_
        .is_visible = resource_resize_is_visible,
  };
  
@@ -102,7 +102,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
  }
  
  /**
-@@ -1699,21 +1721,23 @@ static int __init pci_sysfs_init(void)
+@@ -1686,21 +1708,23 @@ static int __init pci_sysfs_init(void)
  {
        struct pci_dev *pdev = NULL;
        struct pci_bus *pbus = NULL;
index 3b21467f93e9a1347cfb3e349e994ea2fe1f9b20..06df070214f04d9d04b18ecf1a76c503fec46fd8 100644 (file)
@@ -63,7 +63,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  /**
   *    ata_build_rw_tf - Build ATA taskfile for given read/write request
   *    @qc: Metadata associated with the taskfile to build
-@@ -4867,6 +4878,9 @@ void __ata_qc_complete(struct ata_queued
+@@ -4882,6 +4893,9 @@ void __ata_qc_complete(struct ata_queued
                link->active_tag = ATA_TAG_POISON;
                ap->nr_active_links--;
        }
@@ -73,7 +73,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
        /* clear exclusive status */
        if (unlikely(qc->flags & ATA_QCFLAG_CLEAR_EXCL &&
-@@ -5596,6 +5610,9 @@ struct ata_port *ata_port_alloc(struct a
+@@ -5611,6 +5625,9 @@ struct ata_port *ata_port_alloc(struct a
        ap->stats.unhandled_irq = 1;
        ap->stats.idle_irq = 1;
  #endif
@@ -83,7 +83,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        ata_sff_port_init(ap);
  
        ata_force_pflags(ap);
-@@ -5612,6 +5629,12 @@ void ata_port_free(struct ata_port *ap)
+@@ -5627,6 +5644,12 @@ void ata_port_free(struct ata_port *ap)
        kfree(ap->pmp_link);
        kfree(ap->slave_link);
        ida_free(&ata_ida, ap->print_id);
@@ -96,7 +96,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        kfree(ap);
  }
  EXPORT_SYMBOL_GPL(ata_port_free);
-@@ -6016,7 +6039,23 @@ int ata_host_register(struct ata_host *h
+@@ -6031,7 +6054,23 @@ int ata_host_register(struct ata_host *h
                WARN_ON(1);
                return -EINVAL;
        }
index a24c08dcae2c688225b81367ca8c055fe080213d..68d0d6e55a414e9918407880ed82070876631394 100644 (file)
@@ -369,7 +369,7 @@ Tested-by: Jonas Jelonek <jelonek.jonas@gmail.com>
        rtnl_lock();
 --- a/drivers/net/phy/sfp.c
 +++ b/drivers/net/phy/sfp.c
-@@ -1991,7 +1991,7 @@ static int sfp_sm_probe_phy(struct sfp *
+@@ -1992,7 +1992,7 @@ static int sfp_sm_probe_phy(struct sfp *
        /* Mark this PHY as being on a SFP module */
        phy->is_on_sfp_module = true;
  
index 6a8fb997d570735f78aec340de266e4650b0e6a1..3097d1e0e961b6e5a175f8b97280e44602dfc4a1 100644 (file)
@@ -145,7 +145,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
  /* Qcom IP rev.: 2.3.3        Synopsys IP rev.: 4.30a */
  static const struct qcom_pcie_ops ops_2_3_3 = {
        .get_resources = qcom_pcie_get_resources_2_3_3,
-@@ -1457,6 +1544,10 @@ static const struct qcom_pcie_cfg cfg_2_
+@@ -1458,6 +1545,10 @@ static const struct qcom_pcie_cfg cfg_2_
        .ops = &ops_2_4_0,
  };
  
@@ -156,7 +156,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
  static const struct qcom_pcie_cfg cfg_2_7_0 = {
        .ops = &ops_2_7_0,
  };
-@@ -2022,6 +2113,7 @@ static const struct of_device_id qcom_pc
+@@ -2023,6 +2114,7 @@ static const struct of_device_id qcom_pc
        { .compatible = "qcom,pcie-apq8064", .data = &cfg_2_1_0 },
        { .compatible = "qcom,pcie-apq8084", .data = &cfg_1_0_0 },
        { .compatible = "qcom,pcie-ipq4019", .data = &cfg_2_4_0 },
index 0ae7ab533cd7379a4bd975334f4df779674f85ff..029fbd78a58573e48322bc1649fe03bbd4d55781 100644 (file)
@@ -122,7 +122,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
          (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(struct pci_bus *top, i
+@@ -1655,6 +1655,8 @@ void pci_walk_bus(struct pci_bus *top, i
                  void *userdata);
  int pci_cfg_space_size(struct pci_dev *dev);
  unsigned char pci_bus_max_busnr(struct pci_bus *bus);
index f9ea6a6e4e0c4aebcc4b16fa88504fea929acd36..0ecc401a23ff05d5fde071f04b2fa55bbd4f38d7 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Kuldeep Singh <kuldeep.singh@nxp.com>
 
 --- a/drivers/mtd/spi-nor/spansion.c
 +++ b/drivers/mtd/spi-nor/spansion.c
-@@ -859,9 +859,9 @@ static const struct flash_info spansion_
+@@ -861,9 +861,9 @@ static const struct flash_info spansion_
                .name = "s25fs512s",
                .size = SZ_64M,
                .sector_size = SZ_256K,
index e31e02d2c294e15738bdcdb21ae8b98b31cee204..daf1ca78a13cd5becdfa12fa57a36b64a825f985 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/drivers/pci/controller/pcie-mediatek.c
 +++ b/drivers/pci/controller/pcie-mediatek.c
-@@ -601,9 +601,9 @@ static void mtk_pcie_intr_handler(struct
+@@ -604,9 +604,9 @@ static void mtk_pcie_intr_handler(struct
        if (status & INTX_MASK) {
                for_each_set_bit_from(bit, &status, PCI_NUM_INTX + INTX_SHIFT) {
                        /* Clear the INTx */
index 1272a9ffbd7ad78bb124832c570da96b583e2dc8..09b0d8e57bd6d1523d85104cd25acc6d5cc4e1c7 100644 (file)
@@ -41,7 +41,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        };
 --- a/drivers/pci/controller/pcie-mediatek.c
 +++ b/drivers/pci/controller/pcie-mediatek.c
-@@ -21,6 +21,7 @@
+@@ -22,6 +22,7 @@
  #include <linux/of_address.h>
  #include <linux/of_pci.h>
  #include <linux/of_platform.h>
@@ -49,7 +49,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #include <linux/pci.h>
  #include <linux/phy/phy.h>
  #include <linux/platform_device.h>
-@@ -140,6 +141,11 @@
+@@ -141,6 +142,11 @@
  #define PCIE_LINK_STATUS_V2   0x804
  #define PCIE_PORT_LINKUP_V2   BIT(10)
  
@@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  struct mtk_pcie_port;
  
  /**
-@@ -1051,6 +1057,27 @@ static int mtk_pcie_setup(struct mtk_pci
+@@ -1062,6 +1068,27 @@ static int mtk_pcie_setup(struct mtk_pci
        struct mtk_pcie_port *port, *tmp;
        int err, slot;
  
index 3ef5c0ea733d97c0f7785173fa918a05f5f7ace7..a60c135c626f6a416a5edb8a19b7e26feb689b1c 100644 (file)
@@ -68,7 +68,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
                ret = mtk_wed_get_reserved_memory_region(wo->hw, mem_region[i].name,
                                                         &mem_region[i]);
                if (ret)
-@@ -364,13 +381,13 @@ mtk_wed_mcu_load_firmware(struct mtk_wed
+@@ -364,17 +381,17 @@ mtk_wed_mcu_load_firmware(struct mtk_wed
                boot_cr = MTK_WO_MCU_CFG_LS_WA_BOOT_ADDR_ADDR;
        else
                boot_cr = MTK_WO_MCU_CFG_LS_WM_BOOT_ADDR_ADDR;
@@ -78,9 +78,13 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
 -      wo_w32(MTK_WO_MCU_CFG_LS_WF_MCCR_CLR_ADDR, 0xc00);
 +      wo_w32(wo, MTK_WO_MCU_CFG_LS_WF_MCCR_CLR_ADDR, 0xc00);
  
--      val = wo_r32(MTK_WO_MCU_CFG_LS_WF_MCU_CFG_WM_WA_ADDR) |
-+      val = wo_r32(wo, MTK_WO_MCU_CFG_LS_WF_MCU_CFG_WM_WA_ADDR) |
-             MTK_WO_MCU_CFG_LS_WF_WM_WA_WM_CPU_RSTB_MASK;
+-      val = wo_r32(MTK_WO_MCU_CFG_LS_WF_MCU_CFG_WM_WA_ADDR);
++      val = wo_r32(wo, MTK_WO_MCU_CFG_LS_WF_MCU_CFG_WM_WA_ADDR);
+       if (!mtk_wed_is_v3_or_greater(wo->hw) && wo->hw->index)
+               val |= MTK_WO_MCU_CFG_LS_WF_WM_WA_WA_CPU_RSTB_MASK;
+       else
+               val |= MTK_WO_MCU_CFG_LS_WF_WM_WA_WM_CPU_RSTB_MASK;
 -      wo_w32(MTK_WO_MCU_CFG_LS_WF_MCU_CFG_WM_WA_ADDR, val);
 +      wo_w32(wo, MTK_WO_MCU_CFG_LS_WF_MCU_CFG_WM_WA_ADDR, val);
  out:
index 95f4feb4e286a62da9639538fd6392b5db996634..6b10a62d73232f0139c8afa16e5aef29285226f0 100644 (file)
@@ -38,7 +38,7 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
  static const struct cmn_pll_fixed_output_clk ipq5424_output_clks[] = {
        CLK_PLL_OUTPUT(IPQ5424_XO_24MHZ_CLK, "xo-24mhz", 24000000UL),
        CLK_PLL_OUTPUT(IPQ5424_SLEEP_32KHZ_CLK, "sleep-32khz", 32000UL),
-@@ -448,6 +455,7 @@ static const struct dev_pm_ops ipq_cmn_p
+@@ -455,6 +462,7 @@ static const struct dev_pm_ops ipq_cmn_p
  static const struct of_device_id ipq_cmn_pll_clk_ids[] = {
        { .compatible = "qcom,ipq5018-cmn-pll", .data = &ipq5018_output_clks },
        { .compatible = "qcom,ipq5424-cmn-pll", .data = &ipq5424_output_clks },
index 213d2a1b6a3d274b1c643be6bef10cd49b527f40..ab2c2cf9c5136858bb6f13cdb51584edc7c22b14 100644 (file)
@@ -38,7 +38,7 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
  static const struct cmn_pll_fixed_output_clk ipq5424_output_clks[] = {
        CLK_PLL_OUTPUT(IPQ5424_XO_24MHZ_CLK, "xo-24mhz", 24000000UL),
        CLK_PLL_OUTPUT(IPQ5424_SLEEP_32KHZ_CLK, "sleep-32khz", 32000UL),
-@@ -456,6 +463,7 @@ static const struct of_device_id ipq_cmn
+@@ -463,6 +470,7 @@ static const struct of_device_id ipq_cmn
        { .compatible = "qcom,ipq5018-cmn-pll", .data = &ipq5018_output_clks },
        { .compatible = "qcom,ipq5424-cmn-pll", .data = &ipq5424_output_clks },
        { .compatible = "qcom,ipq6018-cmn-pll", .data = &ipq6018_output_clks },
diff --git a/target/linux/qualcommax/patches-6.18/0084-v7.2-clk-qcom-cmnpll-Account-for-reference-clock-divider.patch b/target/linux/qualcommax/patches-6.18/0084-v7.2-clk-qcom-cmnpll-Account-for-reference-clock-divider.patch
deleted file mode 100644 (file)
index 6850638..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-From 88c543fff756450bcd04ec4560c4440be36c9e75 Mon Sep 17 00:00:00 2001
-From: Luo Jie <jie.luo@oss.qualcomm.com>
-Date: Tue, 6 Jan 2026 21:35:10 -0800
-Subject: [PATCH] clk: qcom: cmnpll: Account for reference clock divider
-
-The clk_cmn_pll_recalc_rate() function must account for the reference clock
-divider programmed in CMN_PLL_REFCLK_CONFIG. Without this fix, platforms
-with a reference divider other than 1 calculate incorrect CMN PLL rates.
-For example, on IPQ5332 where the reference divider is 2, the computed rate
-becomes twice the actual output.
-
-Read CMN_PLL_REFCLK_DIV and divide the parent rate by this value before
-applying the 2 * FACTOR scaling. This yields the correct rate calculation:
-rate = (parent_rate / ref_div) * 2 * factor.
-
-Maintain backward compatibility with earlier platforms (e.g. IPQ9574,
-IPQ5424, IPQ5018) that use ref_div = 1.
-
-Fixes: f81715a4c87c ("clk: qcom: Add CMN PLL clock controller driver for IPQ SoC")
-Signed-off-by: Luo Jie <jie.luo@oss.qualcomm.com>
-Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
-Tested-by: George Moussalem <george.moussalem@outlook.com>
-Link: https://lore.kernel.org/r/20260106-qcom_ipq5332_cmnpll-v2-1-f9f7e4efbd79@oss.qualcomm.com
-Signed-off-by: Bjorn Andersson <andersson@kernel.org>
----
- drivers/clk/qcom/ipq-cmn-pll.c | 11 +++++++++--
- 1 file changed, 9 insertions(+), 2 deletions(-)
-
---- a/drivers/clk/qcom/ipq-cmn-pll.c
-+++ b/drivers/clk/qcom/ipq-cmn-pll.c
-@@ -199,7 +199,7 @@ static unsigned long clk_cmn_pll_recalc_
-                                            unsigned long parent_rate)
- {
-       struct clk_cmn_pll *cmn_pll = to_clk_cmn_pll(hw);
--      u32 val, factor;
-+      u32 val, factor, ref_div;
-       /*
-        * The value of CMN_PLL_DIVIDER_CTRL_FACTOR is automatically adjusted
-@@ -207,8 +207,15 @@ static unsigned long clk_cmn_pll_recalc_
-        */
-       regmap_read(cmn_pll->regmap, CMN_PLL_DIVIDER_CTRL, &val);
-       factor = FIELD_GET(CMN_PLL_DIVIDER_CTRL_FACTOR, val);
-+      if (WARN_ON(factor == 0))
-+              factor = 1;
--      return parent_rate * 2 * factor;
-+      regmap_read(cmn_pll->regmap, CMN_PLL_REFCLK_CONFIG, &val);
-+      ref_div = FIELD_GET(CMN_PLL_REFCLK_DIV, val);
-+      if (WARN_ON(ref_div == 0))
-+              ref_div = 1;
-+
-+      return div_u64((u64)parent_rate * 2 * factor, ref_div);
- }
- static int clk_cmn_pll_determine_rate(struct clk_hw *hw,
index dc5c9d56deae71830d522349f5650aabc18638b2..e2801d880b4578c43a193462c7f82af74aa15d2f 100644 (file)
@@ -64,7 +64,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  
  #include <media/jpeg.h>
  #include <media/v4l2-common.h>
-@@ -1344,9 +1349,149 @@ static void uvc_video_decode_data(struct
+@@ -1384,9 +1389,149 @@ static void uvc_video_decode_data(struct
        uvc_urb->async_operations++;
  }
  
@@ -214,7 +214,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        /* Mark the buffer as done if the EOF marker is set. */
        if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) {
                uvc_dbg(stream->dev, FRAME, "Frame complete (EOF found)\n");
-@@ -1890,6 +2035,8 @@ static int uvc_init_video_isoc(struct uv
+@@ -1931,6 +2076,8 @@ static int uvc_init_video_isoc(struct uv
        if (npackets == 0)
                return -ENOMEM;
  
index d4df285594f6c58f2813f05f3267d19ec7153b62..95e672e7939080f53912660e26075ee340bf77de 100644 (file)
@@ -54,7 +54,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  #define RTL8366RB_POWER_SAVE                  0x15
  #define RTL8366RB_POWER_SAVE_ON                       BIT(12)
  
-@@ -1890,6 +1893,66 @@ static int rtl8224_cable_test_get_status
+@@ -1891,6 +1894,66 @@ static int rtl8224_cable_test_get_status
        return rtl8224_cable_test_report(phydev, finished);
  }
  
@@ -121,7 +121,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  static bool rtlgen_supports_2_5gbps(struct phy_device *phydev)
  {
        int val;
-@@ -3086,6 +3149,8 @@ static struct phy_driver realtek_drvs[]
+@@ -3087,6 +3150,8 @@ static struct phy_driver realtek_drvs[]
                PHY_ID_MATCH_EXACT(0x001ccad0),
                .name           = "RTL8224 2.5Gbps PHY",
                .flags          = PHY_POLL_CABLE_TEST,
index ca9205157ead966dadc3df1fc24a8d006d79eeed..ff8f8cc4b8a4be315f3c8a3c472158bf4758b56e 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
  #define RTL8366RB_POWER_SAVE                  0x15
  #define RTL8366RB_POWER_SAVE_ON                       BIT(12)
-@@ -1941,9 +1942,40 @@ static int rtl8224_mdi_config_order(stru
+@@ -1942,9 +1943,40 @@ static int rtl8224_mdi_config_order(stru
                                          order ? BIT(port_offset) : 0);
  }
  
index 510f3b25ce57f4923bfcbd59c7caecfc3ce7c909..6bfb0a75ed58c6c61a7a96dcec34cbdceec735d2 100644 (file)
@@ -205,7 +205,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  static int rtl822x_set_serdes_option_mode(struct phy_device *phydev, bool gen1)
  {
        bool has_2500, has_sgmii;
-@@ -3073,6 +3226,7 @@ static struct phy_driver realtek_drvs[]
+@@ -3074,6 +3227,7 @@ static struct phy_driver realtek_drvs[]
                .soft_reset     = rtl822x_c45_soft_reset,
                .get_features   = rtl822x_c45_get_features,
                .config_aneg    = rtl822x_c45_config_aneg,
index 534d15a6fa60bc237545b432fc471a39f414d485..ef5f5e714e7b160f1ed3589dcf240a4189847db4 100644 (file)
@@ -31,7 +31,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/phy/sfp.c
 +++ b/drivers/net/phy/sfp.c
-@@ -1815,6 +1815,7 @@ static int sfp_hwmon_insert(struct sfp *
+@@ -1816,6 +1816,7 @@ static int sfp_hwmon_insert(struct sfp *
                sfp->hwmon_tries = R_PROBE_RETRY_SLOW;
        }
  
index 42362fc0fd78a9cea522b3dbe9bd0342a8cfa6f9..bd679d3a5d237926b3bab39a6a16a359b7c2374a 100644 (file)
@@ -40,7 +40,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
  static void sfp_i2c_mdiobus_destroy(struct sfp *sfp)
  {
        mdiobus_unregister(sfp->i2c_mii);
-@@ -2173,9 +2196,15 @@ static void sfp_sm_fault(struct sfp *sfp
+@@ -2174,9 +2197,15 @@ static void sfp_sm_fault(struct sfp *sfp
  
  static int sfp_sm_add_mdio_bus(struct sfp *sfp)
  {
index 59157cc52dcb42a0efde20a45bbedca68c5d961e..cf5e867fe3cc9b9b481ba7b1b6920e98edb36aa7 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Sander Vanheule <sander@svanheule.net>
 
 --- a/drivers/net/mdio/Kconfig
 +++ b/drivers/net/mdio/Kconfig
-@@ -191,6 +191,16 @@ config MDIO_REGMAP
+@@ -192,6 +192,16 @@ config MDIO_REGMAP
          regmap. Users willing to use this driver must explicitly select
          REGMAP.
  
index d5c9bc7ab090eae628c4a778ff07a68f19b560bf..c3ebb6ca4b5b1f748cc359e36a6b416c4ee207b3 100644 (file)
@@ -42,7 +42,7 @@
  #define RTL8221B_PHYCR1                               0xa430
  #define RTL8221B_PHYCR1_ALDPS_EN              BIT(2)
  #define RTL8221B_PHYCR1_ALDPS_XTAL_OFF_EN     BIT(12)
-@@ -2070,6 +2105,147 @@ exit:
+@@ -2071,6 +2106,147 @@ exit:
        return ret;
  }
  
  static int rtl8224_mdi_config_order(struct phy_device *phydev)
  {
        struct device_node *np = phydev->mdio.dev.of_node;
-@@ -2124,6 +2300,10 @@ static int rtl8224_config_init(struct ph
+@@ -2125,6 +2301,10 @@ static int rtl8224_config_init(struct ph
  {
        int ret;
  
index 7bd2cdfb3423d5b5a879e2b56aeb3d6fc2363f90..31ab43adf00fd2fa0700f889295635b1e1800451 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
  obj-$(CONFIG_MDIO_SUN4I)              += mdio-sun4i.o
 --- a/drivers/net/mdio/Kconfig
 +++ b/drivers/net/mdio/Kconfig
-@@ -191,6 +191,13 @@ config MDIO_REGMAP
+@@ -192,6 +192,13 @@ config MDIO_REGMAP
          regmap. Users willing to use this driver must explicitly select
          REGMAP.
  
index 77069977700962ba6c6a837080b96154070c09e8..63b05cb263654f1a81c6a74074fd58c219dd9b0d 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
  obj-$(CONFIG_MDIO_THUNDER)            += mdio-thunder.o
 --- a/drivers/net/mdio/Kconfig
 +++ b/drivers/net/mdio/Kconfig
-@@ -208,6 +208,13 @@ config MDIO_REALTEK_OTTO_AUX
+@@ -209,6 +209,13 @@ config MDIO_REALTEK_OTTO_AUX
          This driver supports the auxilairy MDIO bus on RTL838x SoCs. This bus
          is typically used to attach RTL8231 GPIO extenders.
  
index 3771d7f3cf29bb1c0e730c857fa08737dec68188..9226ddb08412fbba5c2bb784a7096b2551dff72d 100644 (file)
@@ -184,7 +184,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
  
        /* Enable using of 128-bit task descriptors */
        dma64 = host->flags & SDHCI_USE_64_BIT_DMA;
-@@ -1468,7 +1555,7 @@ static int dwcmshc_probe(struct platform
+@@ -1471,7 +1558,7 @@ static int dwcmshc_probe(struct platform
                priv->vendor_specific_area2 =
                        sdhci_readw(host, DWCMSHC_P_VENDOR_AREA2);
  
index 18bf27e0155012ff476378c8f3a5df1bae698728..8167a31732b1078b8dc624e2bcd14794fe0bea62 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Kevin.xie <kevin.xie@starfivetech.com>
  
  #include "trace.h"
  #include "nvme.h"
-@@ -1368,6 +1369,15 @@ static inline bool nvme_poll_cq(struct n
+@@ -1373,6 +1374,15 @@ static inline bool nvme_poll_cq(struct n
  {
        bool found = false;
  
index 346faaa8a18015f605627e460e59a8e0a670a43d..6e640893ef4a821b61be27b0f17b4cbfc7662ad6 100644 (file)
@@ -110,7 +110,6 @@ CONFIG_CRYPTO_DES=y
 CONFIG_CRYPTO_DEV_ALLWINNER=y
 CONFIG_CRYPTO_DEV_SUN4I_SS=y
 # CONFIG_CRYPTO_DEV_SUN4I_SS_DEBUG is not set
-CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y
 CONFIG_CRYPTO_DEV_SUN8I_CE=y
 # CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG is not set
 CONFIG_CRYPTO_DEV_SUN8I_CE_HASH=y