]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
kernel: bump 6.12 to 6.12.78
authorJohn Audia <therealgraysky@proton.me>
Wed, 25 Mar 2026 12:15:25 +0000 (08:15 -0400)
committerHauke Mehrtens <hauke@hauke-m.de>
Mon, 30 Mar 2026 11:42:44 +0000 (13:42 +0200)
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.78

Removed upstreamed:
  generic/pending-6.12/620-net-sfp-improve-Huawei-MA5671a-fixup.patch[1]
  generic/pending-6.12/704-net-phy-register-phy-led_triggers-during-probe-to-av.patch[2]
  airoha/patches-6.12/014-01-v6.13-net-airoha-fix-PSE-memory-configuration-in-airoha_fe.patch[3]
  airoha/patches-6.12/014-02-v6.13-net-airoha-read-default-PSE-reserved-pages-value-bef.patch[4]
  airoha/patches-6.12/031-01-v6.13-net-airoha-Read-completion-queue-data-in-airoha_qdma.patch[5]
  airoha/patches-6.12/128-v7.1-net-airoha-Remove-airoha_dev_stop-in-airoha_remove.patch[6]

Manually rebased:
  airoha/patches-6.12/048-01-v6.15-net-airoha-Move-airoha_eth-driver-in-a-dedicated-fol.patch

All patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.78&id=bbdf6d378e1ddbeadc04c57b182aadefcc3aa917
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.78&id=241cd64cf2e32b28ead151b1795cd8fef2b6e482
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.78&id=a04ac7bc97afe313e10ae4c73797c668dee47c5c
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.78&id=a9ed47c3663219e20406d566f02809de05373a42
5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.78&id=4cba4373abac7ba27fdb33057a29b92efa8fd15d
6. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.78&id=652ec118d8dc1b088e685d5562995b6665463771

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/22607
[Fix 048-01-v6.15-net-airoha-Move-airoha_eth-driver-in-a-dedicated-fol]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
70 files changed:
target/linux/airoha/patches-6.12/014-01-v6.13-net-airoha-fix-PSE-memory-configuration-in-airoha_fe.patch [deleted file]
target/linux/airoha/patches-6.12/014-02-v6.13-net-airoha-read-default-PSE-reserved-pages-value-bef.patch [deleted file]
target/linux/airoha/patches-6.12/017-v6.13-net-airoha-Implement-BQL-support.patch
target/linux/airoha/patches-6.12/031-01-v6.13-net-airoha-Read-completion-queue-data-in-airoha_qdma.patch [deleted file]
target/linux/airoha/patches-6.12/048-01-v6.15-net-airoha-Move-airoha_eth-driver-in-a-dedicated-fol.patch
target/linux/airoha/patches-6.12/048-05-v6.15-net-airoha-Move-DSA-tag-in-DMA-descriptor.patch
target/linux/airoha/patches-6.12/048-13-v6.15-net-airoha-Introduce-flowtable-offload-support.patch
target/linux/airoha/patches-6.12/099-03-v6.19-net-airoha-Add-airoha_eth_soc_data-struct.patch
target/linux/airoha/patches-6.12/099-10-v6.19-net-airoha-Refactor-src-port-configuration-in-airhoh.patch
target/linux/airoha/patches-6.12/099-12-v6.19-net-airoha-Add-AN7583-SoC-support.patch
target/linux/airoha/patches-6.12/117-v7.0-net-airoha-Use-gdm-port-enum-value-whenever-possible.patch
target/linux/airoha/patches-6.12/128-v7.1-net-airoha-Remove-airoha_dev_stop-in-airoha_remove.patch [deleted file]
target/linux/airoha/patches-6.12/886-uart-add-en7523-support.patch
target/linux/ath79/patches-6.12/400-mtd-nor-support-mtd-name-from-device-tree.patch
target/linux/ath79/patches-6.12/900-unaligned_access_hacks.patch
target/linux/bcm27xx/patches-6.12/950-0005-Revert-net-bcmgenet-Request-APD-DLL-disable-and-IDDQ.patch
target/linux/bcm27xx/patches-6.12/950-0054-Add-dwc_otg-driver.patch
target/linux/bcm27xx/patches-6.12/950-0073-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch
target/linux/bcm27xx/patches-6.12/950-0094-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch
target/linux/bcm27xx/patches-6.12/950-0096-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch
target/linux/bcm27xx/patches-6.12/950-0099-lan78xx-Enable-LEDs-and-auto-negotiation.patch
target/linux/bcm27xx/patches-6.12/950-0122-bcmgenet-Better-coalescing-parameter-defaults.patch
target/linux/bcm27xx/patches-6.12/950-0123-net-genet-enable-link-energy-detect-powerdown-for-ex.patch
target/linux/bcm27xx/patches-6.12/950-0124-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch
target/linux/bcm27xx/patches-6.12/950-0133-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch
target/linux/bcm27xx/patches-6.12/950-0172-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch
target/linux/bcm27xx/patches-6.12/950-0297-net-bcmgenet-Add-eee-module-parameter.patch
target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
target/linux/bcm27xx/patches-6.12/950-0344-sdhci-Add-SD-Express-hook.patch
target/linux/bcm27xx/patches-6.12/950-0347-net-macb-Also-set-DMA-coherent-mask.patch
target/linux/bcm27xx/patches-6.12/950-0371-soc-bcm-bcm2835-power-Add-support-for-BCM2712.patch
target/linux/bcm27xx/patches-6.12/950-0437-mmc-sdhci-extend-maximum-ADMA-transfer-length-to-4Mi.patch
target/linux/bcm27xx/patches-6.12/950-0528-drm-Increase-plane_mask-to-64bit.patch
target/linux/bcm27xx/patches-6.12/950-0565-net-macb-Add-support-for-Raspberry-Pi-RP1-ethernet-c.patch
target/linux/bcm27xx/patches-6.12/950-0685-nvme-pci-Disable-Host-Memory-Buffer-usage.patch
target/linux/bcm27xx/patches-6.12/950-0692-cgroup-Add-cgroup_enable-option.patch
target/linux/bcm4908/patches-6.12/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch
target/linux/bcm4908/patches-6.12/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch
target/linux/econet/patches-6.12/886-uart-add-en7523-support.patch
target/linux/generic/backport-6.12/420-01-v6.16-mtd-rawnand-brcmnand-remove-unused-parameters.patch
target/linux/generic/backport-6.12/420-03-v6.16-mtd-rawnand-brcmnand-legacy-exec_op-implementation.patch
target/linux/generic/backport-6.12/710-v6.16-igc-enable-HW-vlan-tag-insertion-stripping-by-defaul.patch
target/linux/generic/backport-6.12/730-03-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch
target/linux/generic/hack-6.12/253-ksmbd-config.patch
target/linux/generic/hack-6.12/721-net-add-packet-mangeling.patch
target/linux/generic/kernel-6.12
target/linux/generic/pending-6.12/103-kbuild-export-SUBARCH.patch
target/linux/generic/pending-6.12/203-kallsyms_uncompressed.patch
target/linux/generic/pending-6.12/402-mtd-spi-nor-write-support-for-minor-aligned-partitions.patch
target/linux/generic/pending-6.12/620-net-sfp-improve-Huawei-MA5671a-fixup.patch [deleted file]
target/linux/generic/pending-6.12/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
target/linux/generic/pending-6.12/703-phy-add-detach-callback-to-struct-phy_driver.patch
target/linux/generic/pending-6.12/704-net-phy-register-phy-led_triggers-during-probe-to-av.patch [deleted file]
target/linux/generic/pending-6.12/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch
target/linux/generic/pending-6.12/760-01-net-dsa-move-dsa_bridge_ports-helper-to-dsa.h.patch
target/linux/generic/pending-6.12/760-02-net-dsa-add-bridge-member-iteration-macro.patch
target/linux/generic/pending-6.12/760-19-net-dsa-wire-flash_update-devlink-callback-to-driver.patch
target/linux/generic/pending-6.12/834-ledtrig-libata.patch
target/linux/generic/pending-6.12/920-mangle_bootargs.patch
target/linux/mediatek/patches-6.12/410-bt-mtk-serial-fix.patch
target/linux/mediatek/patches-6.12/436-drivers-mtd-spi-nor-Add-calibration-support-for-spi-.patch
target/linux/mediatek/patches-6.12/901-arm-add-cmdline-override.patch
target/linux/mvebu/patches-6.12/830-02-i2c-pxa-prevent-calling-of-the-generic-recovery-init-code.patch
target/linux/mvebu/patches-6.12/830-03-i2c-pxa-handle-Early-Bus-Busy-condition-on-Armada-3700.patch
target/linux/qualcommbe/patches-6.12/0370-net-phy-Add-phy_package_remove_once-helper.patch
target/linux/realtek/patches-6.12/700-dsa-mdio-increase-max-ports-for-rtl839x-rtl931x.patch
target/linux/rockchip/patches-6.12/030-01-v6.13-irqchip-gic-v3-its-Share-ITS-tables-with-a-non-trust.patch
target/linux/rockchip/patches-6.12/030-03-v6.15-irqchip-gic-v3-Add-Rockchip-3568002-erratum-workaround.patch
target/linux/starfive/patches-6.12/0009-uart-8250-Add-dw-auto-flow-ctrl-support.patch
target/linux/starfive/patches-6.12/1011-net-stmmac-use-GFP_DMA32.patch

diff --git a/target/linux/airoha/patches-6.12/014-01-v6.13-net-airoha-fix-PSE-memory-configuration-in-airoha_fe.patch b/target/linux/airoha/patches-6.12/014-01-v6.13-net-airoha-fix-PSE-memory-configuration-in-airoha_fe.patch
deleted file mode 100644 (file)
index fb86423..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-From 8e38e08f2c560328a873c35aff1a0dbea6a7d084 Mon Sep 17 00:00:00 2001
-From: Lorenzo Bianconi <lorenzo@kernel.org>
-Date: Tue, 1 Oct 2024 12:10:25 +0200
-Subject: [PATCH 2/2] net: airoha: fix PSE memory configuration in
- airoha_fe_pse_ports_init()
-
-Align PSE memory configuration to vendor SDK. In particular, increase
-initial value of PSE reserved memory in airoha_fe_pse_ports_init()
-routine by the value used for the second Packet Processor Engine (PPE2)
-and do not overwrite the default value.
-
-Introduced by commit 23020f049327 ("net: airoha: Introduce ethernet support
-for EN7581 SoC")
-
-Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
-Reviewed-by: Simon Horman <horms@kernel.org>
-Link: https://patch.msgid.link/20241001-airoha-eth-pse-fix-v2-2-9a56cdffd074@kernel.org
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- drivers/net/ethernet/mediatek/airoha_eth.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
---- a/drivers/net/ethernet/mediatek/airoha_eth.c
-+++ b/drivers/net/ethernet/mediatek/airoha_eth.c
-@@ -1166,11 +1166,13 @@ static void airoha_fe_pse_ports_init(str
-               [FE_PSE_PORT_GDM4] = 2,
-               [FE_PSE_PORT_CDM5] = 2,
-       };
-+      u32 all_rsv;
-       int q;
-+      all_rsv = airoha_fe_get_pse_all_rsv(eth);
-       /* hw misses PPE2 oq rsv */
--      airoha_fe_set(eth, REG_FE_PSE_BUF_SET,
--                    PSE_RSV_PAGES * pse_port_num_queues[FE_PSE_PORT_PPE2]);
-+      all_rsv += PSE_RSV_PAGES * pse_port_num_queues[FE_PSE_PORT_PPE2];
-+      airoha_fe_set(eth, REG_FE_PSE_BUF_SET, all_rsv);
-       /* CMD1 */
-       for (q = 0; q < pse_port_num_queues[FE_PSE_PORT_CDM1]; q++)
diff --git a/target/linux/airoha/patches-6.12/014-02-v6.13-net-airoha-read-default-PSE-reserved-pages-value-bef.patch b/target/linux/airoha/patches-6.12/014-02-v6.13-net-airoha-read-default-PSE-reserved-pages-value-bef.patch
deleted file mode 100644 (file)
index a2e5c4f..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-From 1f3e7ff4f296af1f4350f457d5bd82bc825e645a Mon Sep 17 00:00:00 2001
-From: Lorenzo Bianconi <lorenzo@kernel.org>
-Date: Tue, 1 Oct 2024 12:10:24 +0200
-Subject: [PATCH 1/2] net: airoha: read default PSE reserved pages value before
- updating
-
-Store the default value for the number of PSE reserved pages in orig_val
-at the beginning of airoha_fe_set_pse_oq_rsv routine, before updating it
-with airoha_fe_set_pse_queue_rsv_pages().
-Introduce airoha_fe_get_pse_all_rsv utility routine.
-
-Introduced by commit 23020f049327 ("net: airoha: Introduce ethernet support
-for EN7581 SoC")
-
-Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
-Reviewed-by: Simon Horman <horms@kernel.org>
-Link: https://patch.msgid.link/20241001-airoha-eth-pse-fix-v2-1-9a56cdffd074@kernel.org
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- drivers/net/ethernet/mediatek/airoha_eth.c | 14 ++++++++++----
- 1 file changed, 10 insertions(+), 4 deletions(-)
-
---- a/drivers/net/ethernet/mediatek/airoha_eth.c
-+++ b/drivers/net/ethernet/mediatek/airoha_eth.c
-@@ -1116,17 +1116,23 @@ static void airoha_fe_set_pse_queue_rsv_
-                     PSE_CFG_WR_EN_MASK | PSE_CFG_OQRSV_SEL_MASK);
- }
-+static u32 airoha_fe_get_pse_all_rsv(struct airoha_eth *eth)
-+{
-+      u32 val = airoha_fe_rr(eth, REG_FE_PSE_BUF_SET);
-+
-+      return FIELD_GET(PSE_ALLRSV_MASK, val);
-+}
-+
- static int airoha_fe_set_pse_oq_rsv(struct airoha_eth *eth,
-                                   u32 port, u32 queue, u32 val)
- {
--      u32 orig_val, tmp, all_rsv, fq_limit;
-+      u32 orig_val = airoha_fe_get_pse_queue_rsv_pages(eth, port, queue);
-+      u32 tmp, all_rsv, fq_limit;
-       airoha_fe_set_pse_queue_rsv_pages(eth, port, queue, val);
-       /* modify all rsv */
--      orig_val = airoha_fe_get_pse_queue_rsv_pages(eth, port, queue);
--      tmp = airoha_fe_rr(eth, REG_FE_PSE_BUF_SET);
--      all_rsv = FIELD_GET(PSE_ALLRSV_MASK, tmp);
-+      all_rsv = airoha_fe_get_pse_all_rsv(eth);
-       all_rsv += (val - orig_val);
-       airoha_fe_rmw(eth, REG_FE_PSE_BUF_SET, PSE_ALLRSV_MASK,
-                     FIELD_PREP(PSE_ALLRSV_MASK, all_rsv));
index 7787207f4319b5cd890e555a3f543b875fa9fab4..dd432007bac1acdc614705899a75601d80ff66df 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/mediatek/airoha_eth.c
 +++ b/drivers/net/ethernet/mediatek/airoha_eth.c
-@@ -1709,9 +1709,11 @@ static int airoha_qdma_tx_napi_poll(stru
+@@ -1713,9 +1713,11 @@ static int airoha_qdma_tx_napi_poll(stru
                        WRITE_ONCE(desc->msg1, 0);
  
                        if (skb) {
@@ -29,7 +29,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                                if (netif_tx_queue_stopped(txq) &&
                                    q->ndesc - q->queued >= q->free_thr)
                                        netif_tx_wake_queue(txq);
-@@ -2499,7 +2501,9 @@ static netdev_tx_t airoha_dev_xmit(struc
+@@ -2494,7 +2496,9 @@ static netdev_tx_t airoha_dev_xmit(struc
        q->queued += i;
  
        skb_tx_timestamp(skb);
diff --git a/target/linux/airoha/patches-6.12/031-01-v6.13-net-airoha-Read-completion-queue-data-in-airoha_qdma.patch b/target/linux/airoha/patches-6.12/031-01-v6.13-net-airoha-Read-completion-queue-data-in-airoha_qdma.patch
deleted file mode 100644 (file)
index 390d21b..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-From 3affa310de523d63e52ea8e2efb3c476df29e414 Mon Sep 17 00:00:00 2001
-From: Lorenzo Bianconi <lorenzo@kernel.org>
-Date: Tue, 29 Oct 2024 13:17:09 +0100
-Subject: [PATCH 1/2] net: airoha: Read completion queue data in
- airoha_qdma_tx_napi_poll()
-
-In order to avoid any possible race, read completion queue head and
-pending entry in airoha_qdma_tx_napi_poll routine instead of doing it in
-airoha_irq_handler. Remove unused airoha_tx_irq_queue unused fields.
-This is a preliminary patch to add Qdisc offload for airoha_eth driver.
-
-Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
-Link: https://patch.msgid.link/20241029-airoha-en7581-tx-napi-work-v1-1-96ad1686b946@kernel.org
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- drivers/net/ethernet/mediatek/airoha_eth.c | 31 +++++++++-------------
- 1 file changed, 13 insertions(+), 18 deletions(-)
-
---- a/drivers/net/ethernet/mediatek/airoha_eth.c
-+++ b/drivers/net/ethernet/mediatek/airoha_eth.c
-@@ -752,11 +752,9 @@ struct airoha_tx_irq_queue {
-       struct airoha_qdma *qdma;
-       struct napi_struct napi;
--      u32 *q;
-       int size;
--      int queued;
--      u16 head;
-+      u32 *q;
- };
- struct airoha_hw_stats {
-@@ -1655,25 +1653,31 @@ static int airoha_qdma_init_rx(struct ai
- static int airoha_qdma_tx_napi_poll(struct napi_struct *napi, int budget)
- {
-       struct airoha_tx_irq_queue *irq_q;
-+      int id, done = 0, irq_queued;
-       struct airoha_qdma *qdma;
-       struct airoha_eth *eth;
--      int id, done = 0;
-+      u32 status, head;
-       irq_q = container_of(napi, struct airoha_tx_irq_queue, napi);
-       qdma = irq_q->qdma;
-       id = irq_q - &qdma->q_tx_irq[0];
-       eth = qdma->eth;
--      while (irq_q->queued > 0 && done < budget) {
--              u32 qid, last, val = irq_q->q[irq_q->head];
-+      status = airoha_qdma_rr(qdma, REG_IRQ_STATUS(id));
-+      head = FIELD_GET(IRQ_HEAD_IDX_MASK, status);
-+      head = head % irq_q->size;
-+      irq_queued = FIELD_GET(IRQ_ENTRY_LEN_MASK, status);
-+
-+      while (irq_queued > 0 && done < budget) {
-+              u32 qid, last, val = irq_q->q[head];
-               struct airoha_queue *q;
-               if (val == 0xff)
-                       break;
--              irq_q->q[irq_q->head] = 0xff; /* mark as done */
--              irq_q->head = (irq_q->head + 1) % irq_q->size;
--              irq_q->queued--;
-+              irq_q->q[head] = 0xff; /* mark as done */
-+              head = (head + 1) % irq_q->size;
-+              irq_queued--;
-               done++;
-               last = FIELD_GET(IRQ_DESC_IDX_MASK, val);
-@@ -2025,20 +2029,11 @@ static irqreturn_t airoha_irq_handler(in
-       if (intr[0] & INT_TX_MASK) {
-               for (i = 0; i < ARRAY_SIZE(qdma->q_tx_irq); i++) {
--                      struct airoha_tx_irq_queue *irq_q = &qdma->q_tx_irq[i];
--                      u32 status, head;
--
-                       if (!(intr[0] & TX_DONE_INT_MASK(i)))
-                               continue;
-                       airoha_qdma_irq_disable(qdma, QDMA_INT_REG_IDX0,
-                                               TX_DONE_INT_MASK(i));
--
--                      status = airoha_qdma_rr(qdma, REG_IRQ_STATUS(i));
--                      head = FIELD_GET(IRQ_HEAD_IDX_MASK, status);
--                      irq_q->head = head % irq_q->size;
--                      irq_q->queued = FIELD_GET(IRQ_ENTRY_LEN_MASK, status);
--
-                       napi_schedule(&qdma->q_tx_irq[i].napi);
-               }
-       }
index d2771e63611bde68711c0bbb5475823d24dd9d4f..9b9a054839c7c404c4fb57299ec06a6e2676fa9c 100644 (file)
@@ -101,7 +101,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 -obj-$(CONFIG_NET_AIROHA) += airoha_eth.o
 --- /dev/null
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -0,0 +1,3358 @@
+@@ -0,0 +1,3357 @@
 +// SPDX-License-Identifier: GPL-2.0-only
 +/*
 + * Copyright (c) 2024 AIROHA Inc
@@ -3433,7 +3433,6 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 +              if (!port)
 +                      continue;
 +
-+              airoha_dev_stop(port->dev);
 +              unregister_netdev(port->dev);
 +      }
 +      free_netdev(eth->napi_dev);
@@ -3462,7 +3461,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 +MODULE_DESCRIPTION("Ethernet driver for Airoha SoC");
 --- a/drivers/net/ethernet/mediatek/airoha_eth.c
 +++ /dev/null
-@@ -1,3358 +0,0 @@
+@@ -1,3357 +0,0 @@
 -// SPDX-License-Identifier: GPL-2.0-only
 -/*
 - * Copyright (c) 2024 AIROHA Inc
@@ -6794,7 +6793,6 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 -              if (!port)
 -                      continue;
 -
--              airoha_dev_stop(port->dev);
 -              unregister_netdev(port->dev);
 -      }
 -      free_netdev(eth->napi_dev);
index 45f5fe327d670b3a12f052b9149b6cd33e22dd68..4bd450ba4ace8d6e4c06c0c5dcd5be4967ef5116 100644 (file)
@@ -236,9 +236,9 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        }
        free_netdev(eth->napi_dev);
        platform_set_drvdata(pdev, NULL);
-@@ -2414,6 +2526,7 @@ static void airoha_remove(struct platfor
+@@ -2413,6 +2525,7 @@ static void airoha_remove(struct platfor
+                       continue;
  
-               airoha_dev_stop(port->dev);
                unregister_netdev(port->dev);
 +              airoha_metadata_dst_free(port);
        }
index ca7925304eaf165dfbd40aa9f8a2712a212e6c4a..7bafddc0e35f1ddf82bf746444a6ccec0252cd98 100644 (file)
@@ -145,7 +145,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        default:
                return -EOPNOTSUPP;
        }
-@@ -2504,6 +2561,7 @@ static void airoha_remove(struct platfor
+@@ -2503,6 +2560,7 @@ static void airoha_remove(struct platfor
        }
        free_netdev(eth->napi_dev);
  
index 9035e214470a9a8555449f724511ff5a77fca937..63cb4de964dc97340afa2e097d495d346e449be3 100644 (file)
@@ -75,7 +75,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                                                    eth->xsi_rsts);
        if (err) {
                dev_err(eth->dev, "failed to get bulk xsi reset lines\n");
-@@ -3052,8 +3061,23 @@ static void airoha_remove(struct platfor
+@@ -3051,8 +3060,23 @@ static void airoha_remove(struct platfor
        platform_set_drvdata(pdev, NULL);
  }
  
index cec079845c5fb9296169c0eba9710f30dc3f5f2b..81409b68c92a3793314f079a6010a5fcb5d44f2a 100644 (file)
@@ -105,7 +105,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                fallthrough;
        case 2:
                if (airoha_ppe_is_enabled(eth, 1)) {
-@@ -3073,11 +3078,38 @@ static const char * const en7581_xsi_rst
+@@ -3072,11 +3077,38 @@ static const char * const en7581_xsi_rst
        "xfp-mac",
  };
  
index 7f34a05ab5dbb1ed6876c0ff2254f20082e44991..c3b5ccd175f73bbca7161c80da872c6e772a9cba 100644 (file)
@@ -88,7 +88,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        msg1 = FIELD_PREP(QDMA_ETH_TXMSG_FPORT_MASK, fport) |
               FIELD_PREP(QDMA_ETH_TXMSG_METER_MASK, 0x7f);
  
-@@ -3102,6 +3120,35 @@ static int airoha_en7581_get_src_port_id
+@@ -3101,6 +3119,35 @@ static int airoha_en7581_get_src_port_id
        return -EINVAL;
  }
  
@@ -124,7 +124,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  static const struct airoha_eth_soc_data en7581_soc_data = {
        .version = 0x7581,
        .xsi_rsts_names = en7581_xsi_rsts_names,
-@@ -3112,8 +3159,19 @@ static const struct airoha_eth_soc_data
+@@ -3111,8 +3158,19 @@ static const struct airoha_eth_soc_data
        },
  };
  
index 95e8c22f340272f36b4ffded5c7deacca23cb87c..552079fd9d0f15b9b0a57b268cdb4c089502fd5a 100644 (file)
@@ -98,7 +98,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                if (airoha_ppe_is_enabled(eth, 1)) {
                        /* For PPE2 always use secondary cpu port. */
                        fe_cpu_port = FE_PSE_PORT_CDM2;
-@@ -3101,14 +3103,14 @@ static const char * const en7581_xsi_rst
+@@ -3100,14 +3102,14 @@ static const char * const en7581_xsi_rst
  static int airoha_en7581_get_src_port_id(struct airoha_gdm_port *port, int nbq)
  {
        switch (port->id) {
@@ -115,7 +115,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                /* 7581 SoC supports eth and usb serdes on GDM4 port */
                if (!nbq)
                        return HSGMII_LAN_7581_ETH_SRCPORT;
-@@ -3132,12 +3134,12 @@ static const char * const an7583_xsi_rst
+@@ -3131,12 +3133,12 @@ static const char * const an7583_xsi_rst
  static int airoha_an7583_get_src_port_id(struct airoha_gdm_port *port, int nbq)
  {
        switch (port->id) {
diff --git a/target/linux/airoha/patches-6.12/128-v7.1-net-airoha-Remove-airoha_dev_stop-in-airoha_remove.patch b/target/linux/airoha/patches-6.12/128-v7.1-net-airoha-Remove-airoha_dev_stop-in-airoha_remove.patch
deleted file mode 100644 (file)
index 6dfcb18..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-From d4a533ad249e9fbdc2d0633f2ddd60a5b3a9a4ca Mon Sep 17 00:00:00 2001
-From: Lorenzo Bianconi <lorenzo@kernel.org>
-Date: Fri, 13 Mar 2026 12:27:00 +0100
-Subject: [PATCH] net: airoha: Remove airoha_dev_stop() in airoha_remove()
-
-Do not run airoha_dev_stop routine explicitly in airoha_remove()
-since ndo_stop() callback is already executed by unregister_netdev() in
-__dev_close_many routine if necessary and, doing so, we will end up causing
-an underflow in the qdma users atomic counters. Rely on networking subsystem
-to stop the device removing the airoha_eth module.
-
-Fixes: 23020f0493270 ("net: airoha: Introduce ethernet support for EN7581 SoC")
-Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
-Reviewed-by: Simon Horman <horms@kernel.org>
-Link: https://patch.msgid.link/20260313-airoha-remove-ndo_stop-remove-net-v2-1-67542c3ceeca@kernel.org
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- drivers/net/ethernet/airoha/airoha_eth.c | 1 -
- 1 file changed, 1 deletion(-)
-
---- a/drivers/net/ethernet/airoha/airoha_eth.c
-+++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -3095,7 +3095,6 @@ static void airoha_remove(struct platfor
-               if (!port)
-                       continue;
--              airoha_dev_stop(port->dev);
-               unregister_netdev(port->dev);
-               airoha_metadata_dst_free(port);
-       }
index cad2a715d95585a406d53d625bae9bb2e41ff77e..486208f71ad2effc5cf2e5c7fbc7fd19dae315b3 100644 (file)
  };
  
  /* Uart divisor latch read */
-@@ -2835,6 +2843,12 @@ serial8250_do_set_termios(struct uart_po
+@@ -2841,6 +2849,12 @@ serial8250_do_set_termios(struct uart_po
  
        serial8250_set_divisor(port, baud, quot, frac);
  
index 39f3fa76fcbfcfcdf17d02b8c5c5900c8d0cc430..ccef8fe7eface3e0c196609d8f47fe32b4034230 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
 
 --- a/drivers/mtd/spi-nor/core.c
 +++ b/drivers/mtd/spi-nor/core.c
-@@ -3385,12 +3385,19 @@ static int spi_nor_set_mtd_info(struct s
+@@ -3526,12 +3526,19 @@ static int spi_nor_set_mtd_info(struct s
  {
        struct mtd_info *mtd = &nor->mtd;
        struct device *dev = nor->dev;
index 43017e10c26e38bb404935291f921efdba87ba9b..4a5a1a32bd4c2307660802051a4f3c7aad97389c 100644 (file)
@@ -259,7 +259,7 @@ SVN-Revision: 35130
  #include <linux/uaccess.h>
  #include <linux/ipv6.h>
  #include <linux/icmpv6.h>
-@@ -914,10 +915,10 @@ static void tcp_v6_send_response(const s
+@@ -915,10 +916,10 @@ static void tcp_v6_send_response(const s
        topt = (__be32 *)(t1 + 1);
  
        if (tsecr) {
@@ -829,7 +829,7 @@ SVN-Revision: 35130
                *sum = csum_fold(csum_partial(diff, sizeof(diff),
 --- a/include/linux/etherdevice.h
 +++ b/include/linux/etherdevice.h
-@@ -559,7 +559,7 @@ static inline bool is_etherdev_addr(cons
+@@ -560,7 +560,7 @@ static inline bool is_etherdev_addr(cons
   * @b: Pointer to Ethernet header
   *
   * Compare two Ethernet headers, returns 0 if equal.
@@ -838,7 +838,7 @@ SVN-Revision: 35130
   * aligned OR the platform can handle unaligned access.  This is the
   * case for all packets coming into netif_receive_skb or similar
   * entry points.
-@@ -582,11 +582,12 @@ static inline unsigned long compare_ethe
+@@ -583,11 +583,12 @@ static inline unsigned long compare_ethe
        fold |= *(unsigned long *)(a + 6) ^ *(unsigned long *)(b + 6);
        return fold;
  #else
index 0bde0756e52cc30a36036e5a606a9a9bc8b53388..75aac5c5f39f3c8f2e5e9d5a876ec475e7079aee 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
 +++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
-@@ -304,9 +304,7 @@ int bcmgenet_mii_probe(struct net_device
+@@ -301,9 +301,7 @@ int bcmgenet_mii_probe(struct net_device
        struct device_node *dn = kdev->of_node;
        phy_interface_t phy_iface = priv->phy_interface;
        struct phy_device *phydev;
index 9502cdf2cfd9e7e4e9e7b3ed77307aa70c008b3c..47fda506c3a2bc72b558685f583f2325961ce277 100644 (file)
@@ -1259,7 +1259,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
                                USB_PORT_FEAT_C_OVER_CURRENT);
 --- a/drivers/usb/core/message.c
 +++ b/drivers/usb/core/message.c
-@@ -2180,6 +2180,85 @@ free_interfaces:
+@@ -2238,6 +2238,85 @@ free_interfaces:
        if (cp->string == NULL &&
                        !(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS))
                cp->string = usb_cache_string(dev, cp->desc.iConfiguration);
index fdb67cea01d9aa03cfbb88d80d315315f19d49c2..0f750e485c7a6ad604f2c9853091e2a8dafdf34d 100644 (file)
@@ -18589,7 +18589,7 @@ Signed-off-by: j-schambacher <joerg@hifiberry.com>
        u32 xfer_resolution;
 --- a/sound/soc/soc-core.c
 +++ b/sound/soc/soc-core.c
-@@ -1437,7 +1437,15 @@ int snd_soc_runtime_set_dai_fmt(struct s
+@@ -1436,7 +1436,15 @@ int snd_soc_runtime_set_dai_fmt(struct s
                return 0;
  
        for_each_rtd_codec_dais(rtd, i, codec_dai) {
@@ -18626,7 +18626,7 @@ Signed-off-by: j-schambacher <joerg@hifiberry.com>
         * For devices with more than one control interface, we assume the
 --- a/sound/usb/quirks.c
 +++ b/sound/usb/quirks.c
-@@ -2395,6 +2395,8 @@ static const struct usb_audio_quirk_flag
+@@ -2397,6 +2397,8 @@ static const struct usb_audio_quirk_flag
                   QUIRK_FLAG_ALIGN_TRANSFER),
        DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */
                   QUIRK_FLAG_ALIGN_TRANSFER),
index 50c86eba3cd0e667344b1911b4964ed69575b4cf..930c7493ae78a2bb5ea3f72ff3314eaed284d309 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;
-@@ -3462,8 +3471,14 @@ static int lan78xx_bind(struct lan78xx_n
+@@ -3466,8 +3475,14 @@ static int lan78xx_bind(struct lan78xx_n
        if (DEFAULT_RX_CSUM_ENABLE)
                dev->net->features |= NETIF_F_RXCSUM;
  
index c885918f8feeeb2bf0d4052a936d2afce19c97b0..9dd0937ddcc37503d665e4a2f8df9d03a395f6f8 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;
-@@ -4446,7 +4451,13 @@ static int lan78xx_probe(struct usb_inte
+@@ -4452,7 +4457,13 @@ static int lan78xx_probe(struct usb_inte
        if (ret < 0)
                goto out4;
  
index 8b0be11deb7261a18ab4a06db55cd83a7885f986..a92714c493f36701b05997aa27c9c29218526790 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
-@@ -2913,6 +2913,11 @@ static int lan78xx_reset(struct lan78xx_
+@@ -2917,6 +2917,11 @@ static int lan78xx_reset(struct lan78xx_
        int ret;
        u32 buf;
        u8 sig;
@@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  
        ret = lan78xx_read_reg(dev, HW_CFG, &buf);
        if (ret < 0)
-@@ -2981,6 +2986,10 @@ static int lan78xx_reset(struct lan78xx_
+@@ -2985,6 +2990,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;
-@@ -3083,6 +3092,9 @@ static int lan78xx_reset(struct lan78xx_
+@@ -3087,6 +3096,9 @@ static int lan78xx_reset(struct lan78xx_
                        buf |= MAC_CR_AUTO_DUPLEX_ | MAC_CR_AUTO_SPEED_;
                }
        }
index 8a562bf1fd0a7052c066adbfff4ba0b805a2fcce..a1c80428deb9f8f8b23e7319c6a390e806a47b81 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
-@@ -2664,7 +2664,7 @@ static void bcmgenet_init_tx_ring(struct
+@@ -2657,7 +2657,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);
-@@ -4139,9 +4139,12 @@ static int bcmgenet_probe(struct platfor
+@@ -4132,9 +4132,12 @@ 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 99c43b28fbe780097141343528b96cdcc6f693b9..7c1243a59d46b3be818f0805bcd1d2412f724c01 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
 
 --- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
 +++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
-@@ -310,6 +310,8 @@ int bcmgenet_mii_probe(struct net_device
+@@ -307,6 +307,8 @@ int bcmgenet_mii_probe(struct net_device
        /* Communicate the integrated PHY revision */
        if (priv->internal_phy)
                phy_flags = priv->gphy_rev;
index 77c0f826ed25e61d73c207ec6af92bce3bdbeeca..c31cb6838c6aa1f4abf0ef0a82cc4872080f3d10 100644 (file)
@@ -46,7 +46,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
   * have been called previously.  Use for set_configuration, set_interface,
 --- a/drivers/usb/core/message.c
 +++ b/drivers/usb/core/message.c
-@@ -1267,6 +1267,21 @@ static void remove_intf_ep_devs(struct u
+@@ -1325,6 +1325,21 @@ static void remove_intf_ep_devs(struct u
        intf->ep_devs_created = 0;
  }
  
@@ -70,7 +70,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
   * @dev: the device whose endpoint is being disabled
 --- a/include/linux/usb.h
 +++ b/include/linux/usb.h
-@@ -1875,6 +1875,8 @@ extern int usb_clear_halt(struct usb_dev
+@@ -1879,6 +1879,8 @@ extern int usb_clear_halt(struct usb_dev
  extern int usb_reset_configuration(struct usb_device *dev);
  extern int usb_set_interface(struct usb_device *dev, int ifnum, int alternate);
  extern void usb_reset_endpoint(struct usb_device *dev, unsigned int epaddr);
index 27eeecba1a915bbeb40decb7161dca38b3b243b0..7c8e6cc714b458fa0b96101eb7c8f260fa0af301 100644 (file)
@@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  
  static inline void bcmgenet_writel(u32 value, void __iomem *offset)
  {
-@@ -2493,6 +2496,11 @@ static void reset_umac(struct bcmgenet_p
+@@ -2486,6 +2489,11 @@ static void reset_umac(struct bcmgenet_p
        bcmgenet_rbuf_ctrl_set(priv, 0);
        udelay(10);
  
index df416916c809cda00c81bc3e71c9b078d0079158..4d5aae743aeb9c22ff6186ab10c03d14ed9eebad 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/spi/spi.c
 +++ b/drivers/spi/spi.c
-@@ -3907,6 +3907,7 @@ static int spi_set_cs_timing(struct spi_
+@@ -3906,6 +3906,7 @@ static int spi_set_cs_timing(struct spi_
   */
  int spi_setup(struct spi_device *spi)
  {
@@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
        unsigned        bad_bits, ugly_bits;
        int             status;
  
-@@ -3933,6 +3934,14 @@ int spi_setup(struct spi_device *spi)
+@@ -3932,6 +3933,14 @@ int spi_setup(struct spi_device *spi)
                        "setup: MOSI configured to idle low and high at the same time.\n");
                return -EINVAL;
        }
index 9b2df1979c7409666c073e9c3064edcee237b11c..903c8cdf873c772330a7e3469a7d6321df81af19 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
  
  static inline void bcmgenet_writel(u32 value, void __iomem *offset)
  {
-@@ -3430,6 +3433,17 @@ static int bcmgenet_open(struct net_devi
+@@ -3423,6 +3426,17 @@ static int bcmgenet_open(struct net_devi
  
        bcmgenet_phy_pause_set(dev, priv->rx_pause, priv->tx_pause);
  
index b99b85649a546c6097d1ccf69e9ab3a41b61c512..066de8ee265cc9cbdfb7b5ec5830c78e18f4e95f 100644 (file)
@@ -75,7 +75,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
 --- a/drivers/usb/host/xhci-ring.c
 +++ b/drivers/usb/host/xhci-ring.c
-@@ -3666,6 +3666,48 @@ static int xhci_align_td(struct xhci_hcd
+@@ -3667,6 +3667,48 @@ static int xhci_align_td(struct xhci_hcd
        return 1;
  }
  
@@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  /* This is very similar to what ehci-q.c qtd_fill() does */
  int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags,
                struct urb *urb, int slot_id, unsigned int ep_index)
-@@ -3820,6 +3862,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3821,6 +3863,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
        }
  
        check_trb_math(urb, enqd_len);
@@ -133,7 +133,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id,
                        start_cycle, start_trb);
        return 0;
-@@ -3968,6 +4012,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
+@@ -3969,6 +4013,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
                        /* Event on completion */
                        field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state);
  
index 67fefbf0a5adb2e4010edcd6151647a12d8831fa..c351e132d0c44f509153587ed846335166545fac 100644 (file)
@@ -51,7 +51,7 @@ sdhci: remove PYA0_INTR_BUG quirk. Add quirks to disable some of the higher SDR
  };
  
  /*****************************************************************************\
-@@ -4565,6 +4575,15 @@ int sdhci_setup_host(struct sdhci_host *
+@@ -4572,6 +4582,15 @@ int sdhci_setup_host(struct sdhci_host *
            !(host->quirks2 & SDHCI_QUIRK2_BROKEN_DDR50))
                mmc->caps |= MMC_CAP_UHS_DDR50;
  
index 92495f39816708c7ca66dcb98a8710a808e9ffa6..dcac114e9fd99647490c8dec29b84194b4a6ad36 100644 (file)
@@ -152,7 +152,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        unsigned int            max_tx_length;
 --- a/drivers/net/ethernet/cadence/macb_main.c
 +++ b/drivers/net/ethernet/cadence/macb_main.c
-@@ -41,6 +41,9 @@
+@@ -42,6 +42,9 @@
  #include <linux/inetdevice.h>
  #include "macb.h"
  
@@ -162,7 +162,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  /* This structure is only used for MACB on SiFive FU540 devices */
  struct sifive_fu540_macb_mgmt {
        void __iomem *reg;
-@@ -334,7 +337,7 @@ static int macb_mdio_wait_for_idle(struc
+@@ -335,7 +338,7 @@ static int macb_mdio_wait_for_idle(struc
        u32 val;
  
        return readx_poll_timeout(MACB_READ_NSR, bp, val, val & MACB_BIT(IDLE),
@@ -171,7 +171,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  }
  
  static int macb_mdio_read_c22(struct mii_bus *bus, int mii_id, int regnum)
-@@ -493,6 +496,19 @@ mdio_pm_exit:
+@@ -494,6 +497,19 @@ mdio_pm_exit:
        return status;
  }
  
@@ -191,7 +191,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  static void macb_init_buffers(struct macb *bp)
  {
        struct macb_queue *queue;
-@@ -974,6 +990,7 @@ static int macb_mii_init(struct macb *bp
+@@ -1066,6 +1082,7 @@ static int macb_mii_init(struct macb *bp
        bp->mii_bus->write = &macb_mdio_write_c22;
        bp->mii_bus->read_c45 = &macb_mdio_read_c45;
        bp->mii_bus->write_c45 = &macb_mdio_write_c45;
@@ -199,7 +199,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        snprintf(bp->mii_bus->id, MII_BUS_ID_SIZE, "%s-%x",
                 bp->pdev->name, bp->pdev->id);
        bp->mii_bus->priv = bp;
-@@ -1639,6 +1656,11 @@ static int macb_rx(struct macb_queue *qu
+@@ -1731,6 +1748,11 @@ static int macb_rx(struct macb_queue *qu
  
                macb_init_rx_ring(queue);
                queue_writel(queue, RBQP, queue->rx_ring_dma);
@@ -211,7 +211,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  
                macb_writel(bp, NCR, ctrl | MACB_BIT(RE));
  
-@@ -1941,8 +1963,9 @@ static irqreturn_t macb_interrupt(int ir
+@@ -2033,8 +2055,9 @@ static irqreturn_t macb_interrupt(int ir
                                queue_writel(queue, ISR, MACB_BIT(TCOMP) |
                                                         MACB_BIT(TXUBR));
  
@@ -222,7 +222,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
                                wmb(); // ensure softirq can see update
                        }
  
-@@ -2398,6 +2421,11 @@ static netdev_tx_t macb_start_xmit(struc
+@@ -2490,6 +2513,11 @@ static netdev_tx_t macb_start_xmit(struc
        skb_tx_timestamp(skb);
  
        spin_lock(&bp->lock);
@@ -234,7 +234,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(TSTART));
        spin_unlock(&bp->lock);
  
-@@ -2804,6 +2832,37 @@ static void macb_configure_dma(struct ma
+@@ -2901,6 +2929,37 @@ static void macb_configure_dma(struct ma
        }
  }
  
@@ -272,7 +272,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  static void macb_init_hw(struct macb *bp)
  {
        u32 config;
-@@ -2832,6 +2891,11 @@ static void macb_init_hw(struct macb *bp
+@@ -2929,6 +2988,11 @@ static void macb_init_hw(struct macb *bp
        if (bp->caps & MACB_CAPS_JUMBO)
                bp->rx_frm_len_mask = MACB_RX_JFRMLEN_MASK;
  
@@ -284,7 +284,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        macb_configure_dma(bp);
  
        /* Enable RX partial store and forward and set watermark */
-@@ -3199,6 +3263,52 @@ static void gem_get_ethtool_strings(stru
+@@ -3296,6 +3360,52 @@ static void gem_get_ethtool_strings(stru
        }
  }
  
@@ -337,7 +337,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  static struct net_device_stats *macb_get_stats(struct net_device *dev)
  {
        struct macb *bp = netdev_priv(dev);
-@@ -3783,6 +3893,8 @@ static const struct ethtool_ops macb_eth
+@@ -3883,6 +3993,8 @@ static const struct ethtool_ops macb_eth
  };
  
  static const struct ethtool_ops gem_ethtool_ops = {
@@ -346,7 +346,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        .get_regs_len           = macb_get_regs_len,
        .get_regs               = macb_get_regs,
        .get_wol                = macb_get_wol,
-@@ -3792,6 +3904,8 @@ static const struct ethtool_ops gem_etht
+@@ -3892,6 +4004,8 @@ static const struct ethtool_ops gem_etht
        .get_ethtool_stats      = gem_get_ethtool_stats,
        .get_strings            = gem_get_ethtool_strings,
        .get_sset_count         = gem_get_sset_count,
@@ -355,7 +355,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        .get_link_ksettings     = macb_get_link_ksettings,
        .set_link_ksettings     = macb_set_link_ksettings,
        .get_ringparam          = macb_get_ringparam,
-@@ -5113,6 +5227,11 @@ static int macb_probe(struct platform_de
+@@ -5213,6 +5327,11 @@ static int macb_probe(struct platform_de
                        }
                }
        }
@@ -367,7 +367,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        spin_lock_init(&bp->lock);
        spin_lock_init(&bp->stats_lock);
  
-@@ -5173,6 +5292,21 @@ static int macb_probe(struct platform_de
+@@ -5273,6 +5392,21 @@ static int macb_probe(struct platform_de
        else
                bp->phy_interface = interface;
  
@@ -389,7 +389,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        /* IP specific init */
        err = init(pdev);
        if (err)
-@@ -5244,6 +5378,19 @@ static void macb_remove(struct platform_
+@@ -5344,6 +5478,19 @@ static void macb_remove(struct platform_
        }
  }
  
@@ -409,7 +409,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  static int __maybe_unused macb_suspend(struct device *dev)
  {
        struct net_device *netdev = dev_get_drvdata(dev);
-@@ -5497,6 +5644,7 @@ static const struct dev_pm_ops macb_pm_o
+@@ -5607,6 +5754,7 @@ static const struct dev_pm_ops macb_pm_o
  static struct platform_driver macb_driver = {
        .probe          = macb_probe,
        .remove_new     = macb_remove,
index 62564233bce1d04a43afd0c9d580707204c9ac24..bfaa37e08eb713db75c4ac0551eb359b0c4b6846 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/pmdomain/bcm/bcm2835-power.c
 +++ b/drivers/pmdomain/bcm/bcm2835-power.c
-@@ -79,6 +79,7 @@
+@@ -80,6 +80,7 @@
  #define PM_IMAGE                      0x108
  #define PM_GRAFX                      0x10c
  #define PM_PROC                               0x110
@@ -22,7 +22,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
  #define PM_ENAB                               BIT(12)
  #define PM_ISPRSTN                    BIT(8)
  #define PM_H264RSTN                   BIT(7)
-@@ -381,6 +382,9 @@ static int bcm2835_power_pd_power_on(str
+@@ -377,6 +378,9 @@ static int bcm2835_power_pd_power_on(str
                return bcm2835_power_power_on(pd, PM_GRAFX);
  
        case BCM2835_POWER_DOMAIN_GRAFX_V3D:
@@ -32,7 +32,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
                return bcm2835_asb_power_on(pd, PM_GRAFX,
                                            ASB_V3D_M_CTRL, ASB_V3D_S_CTRL,
                                            PM_V3DRSTN);
-@@ -447,6 +451,9 @@ static int bcm2835_power_pd_power_off(st
+@@ -443,6 +447,9 @@ static int bcm2835_power_pd_power_off(st
                return bcm2835_power_power_off(pd, PM_GRAFX);
  
        case BCM2835_POWER_DOMAIN_GRAFX_V3D:
@@ -42,7 +42,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
                return bcm2835_asb_power_off(pd, PM_GRAFX,
                                             ASB_V3D_M_CTRL, ASB_V3D_S_CTRL,
                                             PM_V3DRSTN);
-@@ -642,19 +649,21 @@ static int bcm2835_power_probe(struct pl
+@@ -638,19 +645,21 @@ static int bcm2835_power_probe(struct pl
        power->asb = pm->asb;
        power->rpivid_asb = pm->rpivid_asb;
  
index dc580e53ee24d7f7535eb7185f76ee8b4bb04ea4..39c26127fb6214ec7885dbe3416c015742747c80 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        BUG_ON(data->blksz > host->mmc->max_blk_size);
        BUG_ON(data->blocks > 65535);
  
-@@ -4709,11 +4709,16 @@ int sdhci_setup_host(struct sdhci_host *
+@@ -4716,11 +4716,16 @@ int sdhci_setup_host(struct sdhci_host *
        spin_lock_init(&host->lock);
  
        /*
index 1ae93a6b42f5536e5c66106131fab05d971d3652..2c4861f986f19a3334cae6c1bdb88e0bde6a58b6 100644 (file)
@@ -43,7 +43,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  retry_disable:
 --- a/drivers/gpu/drm/drm_mode_config.c
 +++ b/drivers/gpu/drm/drm_mode_config.c
-@@ -643,7 +643,7 @@ void drm_mode_config_validate(struct drm
+@@ -646,7 +646,7 @@ void drm_mode_config_validate(struct drm
        struct drm_encoder *encoder;
        struct drm_crtc *crtc;
        struct drm_plane *plane;
index 3e1dce2badadc10817d5f82454f6a3f8f12a31e9..ae6f61d81c4310f15409b3e31948d73d1df22af2 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/net/ethernet/cadence/macb_main.c
 +++ b/drivers/net/ethernet/cadence/macb_main.c
-@@ -5076,6 +5076,17 @@ static const struct macb_config versal_c
+@@ -5176,6 +5176,17 @@ static const struct macb_config versal_c
        .usrio = &macb_default_usrio,
  };
  
@@ -33,7 +33,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  static const struct of_device_id macb_dt_ids[] = {
        { .compatible = "cdns,at91sam9260-macb", .data = &at91sam9260_config },
        { .compatible = "cdns,macb" },
-@@ -5096,6 +5107,7 @@ static const struct of_device_id macb_dt
+@@ -5196,6 +5207,7 @@ static const struct of_device_id macb_dt
        { .compatible = "microchip,mpfs-macb", .data = &mpfs_config },
        { .compatible = "microchip,sama7g5-gem", .data = &sama7g5_gem_config },
        { .compatible = "microchip,sama7g5-emac", .data = &sama7g5_emac_config },
index ec963fd3e733f8eab13ad569e6a667e52a246b33..9e5476c9fd6f81c223942681e7ca851fce65ad0d 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/nvme/host/pci.c
 +++ b/drivers/nvme/host/pci.c
-@@ -2109,6 +2109,7 @@ static void nvme_free_host_mem(struct nv
+@@ -2111,6 +2111,7 @@ static void nvme_free_host_mem(struct nv
        dev->nr_host_mem_descs = 0;
  }
  
@@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
  static int __nvme_alloc_host_mem(struct nvme_dev *dev, u64 preferred,
                u32 chunk_size)
  {
-@@ -2177,9 +2178,11 @@ out:
+@@ -2179,9 +2180,11 @@ out:
        dev->host_mem_descs = NULL;
        return -ENOMEM;
  }
@@ -38,7 +38,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
        u64 min_chunk = min_t(u64, preferred, PAGE_SIZE * MAX_ORDER_NR_PAGES);
        u64 hmminds = max_t(u32, dev->ctrl.hmminds * 4096, PAGE_SIZE * 2);
        u64 chunk_size;
-@@ -2192,6 +2195,7 @@ static int nvme_alloc_host_mem(struct nv
+@@ -2194,6 +2197,7 @@ static int nvme_alloc_host_mem(struct nv
                        nvme_free_host_mem(dev);
                }
        }
index 64176cbfc78717e417b204730ce716e2a837aa70..db8f3304cd0fdbdb91da888ec158c915eeee8387 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/kernel/cgroup/cgroup.c
 +++ b/kernel/cgroup/cgroup.c
-@@ -6932,6 +6932,39 @@ static int __init cgroup_disable(char *s
+@@ -6933,6 +6933,39 @@ static int __init cgroup_disable(char *s
  }
  __setup("cgroup_disable=", cgroup_disable);
  
index b3ccf1623af5ca6071807c56ec5d98b6019b2ad4..db3592815041a6bc147cb14fbd1bc89b7067aea9 100644 (file)
@@ -29,7 +29,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
 
 --- a/drivers/net/dsa/bcm_sf2.c
 +++ b/drivers/net/dsa/bcm_sf2.c
-@@ -1539,10 +1539,14 @@ static int bcm_sf2_sw_probe(struct platf
+@@ -1543,10 +1543,14 @@ static int bcm_sf2_sw_probe(struct platf
        rev = reg_readl(priv, REG_PHY_REVISION);
        priv->hw_params.gphy_rev = rev & PHY_REVISION_MASK;
  
index 36b1c239462cf149ea3479c695feb098e766d161..6e91c0208e6578e42db1e093d7f00877b806c842 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
 
 --- a/drivers/net/dsa/bcm_sf2.c
 +++ b/drivers/net/dsa/bcm_sf2.c
-@@ -1553,6 +1553,12 @@ static int bcm_sf2_sw_probe(struct platf
+@@ -1557,6 +1557,12 @@ static int bcm_sf2_sw_probe(struct platf
                 priv->hw_params.core_rev >> 8, priv->hw_params.core_rev & 0xff,
                 priv->irq0, priv->irq1);
  
index cad2a715d95585a406d53d625bae9bb2e41ff77e..486208f71ad2effc5cf2e5c7fbc7fd19dae315b3 100644 (file)
  };
  
  /* Uart divisor latch read */
-@@ -2835,6 +2843,12 @@ serial8250_do_set_termios(struct uart_po
+@@ -2841,6 +2849,12 @@ serial8250_do_set_termios(struct uart_po
  
        serial8250_set_divisor(port, baud, quot, frac);
  
index 3bc6038711f50ec04bfc0524c7d81a5608915893..9d9061ed3587b9dedc839ca1e09642ab72766ed9 100644 (file)
@@ -60,7 +60,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
        brcmnand_set_ecc_enabled(host, 1);
        return ret;
  }
-@@ -2363,13 +2355,10 @@ static int brcmnand_write_page(struct na
+@@ -2361,13 +2353,10 @@ static int brcmnand_write_page(struct na
                               int oob_required, int page)
  {
        struct mtd_info *mtd = nand_to_mtd(chip);
@@ -75,7 +75,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
  }
  
  static int brcmnand_write_page_raw(struct nand_chip *chip, const uint8_t *buf,
-@@ -2381,9 +2370,8 @@ static int brcmnand_write_page_raw(struc
+@@ -2379,9 +2368,8 @@ static int brcmnand_write_page_raw(struc
        u64 addr = (u64)page << chip->page_shift;
        int ret = 0;
  
index 6c75c2bbf2a59b5ef3f06d64a15eea7d4984480c..13e55f1e72a440536dca43091264d2174d84dc90 100644 (file)
@@ -75,7 +75,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
        /* EDU info, per-transaction */
        const u16               *edu_offsets;
        void __iomem            *edu_base;
-@@ -2478,18 +2509,190 @@ static int brcmnand_op_is_reset(const st
+@@ -2476,18 +2507,190 @@ static int brcmnand_op_is_reset(const st
        return 0;
  }
  
@@ -268,7 +268,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
  
        if (brcmnand_op_is_status(op)) {
                status = op->instrs[1].ctx.data.buf.in;
-@@ -2513,11 +2716,7 @@ static int brcmnand_exec_op(struct nand_
+@@ -2511,11 +2714,7 @@ static int brcmnand_exec_op(struct nand_
        if (op->deassert_wp)
                brcmnand_wp(mtd, 0);
  
@@ -281,7 +281,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
  
        if (op->deassert_wp)
                brcmnand_wp(mtd, 1);
-@@ -3130,6 +3329,15 @@ int brcmnand_probe(struct platform_devic
+@@ -3128,6 +3327,15 @@ int brcmnand_probe(struct platform_devic
        if (ret)
                goto err;
  
index 48d03f15e7fe38a23fc2c4af8c3f8384dc6a5244..fe36bc3b05f2a511eb0f700f09a349fb2f65cedb 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
 
 --- a/drivers/net/ethernet/intel/igc/igc_main.c
 +++ b/drivers/net/ethernet/intel/igc/igc_main.c
-@@ -7070,6 +7070,9 @@ static int igc_probe(struct pci_dev *pde
+@@ -7074,6 +7074,9 @@ static int igc_probe(struct pci_dev *pde
        netdev->xdp_features = NETDEV_XDP_ACT_BASIC | NETDEV_XDP_ACT_REDIRECT |
                               NETDEV_XDP_ACT_XSK_ZEROCOPY;
  
index 6822dc0f22777dd949ccb3d6fc126b1bae8997b3..95e8638c39cd40689fd44fa58e5e65b1914fa78b 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -3387,11 +3387,17 @@ static int of_phy_led(struct phy_device
+@@ -3382,11 +3382,17 @@ static int of_phy_led(struct phy_device
        if (index > U8_MAX)
                return -EINVAL;
  
index d9587fbe8434eea1b9e9c7bdee7aebb098d47b4c..0b74e88cb8cec4281039197bcc9c83b2d8767c38 100644 (file)
@@ -10,7 +10,7 @@ Subject: [PATCH] Kconfig: add tristate for OID and ASNI string
 
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -2063,7 +2063,7 @@ config PADATA
+@@ -2066,7 +2066,7 @@ config PADATA
        bool
  
  config ASN1
index 32228bb34c12f529548826ec07982f739b3da01f..1fb8809180a8bae0d9997aa4def20939c006db46 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -1687,6 +1687,7 @@ enum netdev_priv_flags {
+@@ -1689,6 +1689,7 @@ enum netdev_priv_flags {
        IFF_L3MDEV_RX_HANDLER           = 1<<29,
        IFF_NO_ADDRCONF                 = BIT_ULL(30),
        IFF_TX_SKB_NO_LINEAR            = BIT_ULL(31),
@@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  };
  
  /* Specifies the type of the struct net_device::ml_priv pointer */
-@@ -2168,6 +2169,11 @@ struct net_device {
+@@ -2170,6 +2171,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;
  
-@@ -2237,6 +2243,10 @@ struct net_device {
+@@ -2239,6 +2245,10 @@ struct net_device {
        struct mctp_dev __rcu   *mctp_ptr;
  #endif
  
index 848f89c66cee7922b8ac8374f55b28866689afde..71021f1a3840a4c5c0246ff152c3410b39c3f59d 100644 (file)
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.12 = .77
-LINUX_KERNEL_HASH-6.12.77 = 358836ebe5caef41e7ae9492e7fbcdf5be6e53ee43c99752aebda81e1b2cff67
+LINUX_VERSION-6.12 = .78
+LINUX_KERNEL_HASH-6.12.78 = 719781b4b4faececa0f568bbcbd4fea8f4aef40155e85ad66f61624bf2f4af3d
index 0cedbeca40b6e05bfe5f420712b5c6bd76b66fca..46c88a06822ce7d4bd798bcbd7ad148bcdd62da3 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -589,7 +589,7 @@ export RUSTC_BOOTSTRAP := 1
+@@ -590,7 +590,7 @@ export RUSTC_BOOTSTRAP := 1
  # Allows finding `.clippy.toml` in out-of-srctree builds.
  export CLIPPY_CONF_DIR := $(srctree)
  
index 40de8f6072d1aa57ac9eafd20bc06709a2598c1e..5e9a0da5856429889fe0d4b0a7038769da2faeb9 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1534,6 +1534,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
+@@ -1537,6 +1537,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
          the unaligned access emulation.
          see arch/parisc/kernel/unaligned.c for reference
  
index e8ad20433730d43311bf6429b1f86bc30eb87af8..c9bbe1442b7c8ea83c7a7a72681f8e4d2528ba80 100644 (file)
@@ -202,7 +202,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
        return !!nor->params->erase_map.uniform_region.erase_mask;
  }
  
-@@ -2516,6 +2518,7 @@ static int spi_nor_select_erase(struct s
+@@ -2657,6 +2659,7 @@ static int spi_nor_select_erase(struct s
  {
        struct spi_nor_erase_map *map = &nor->params->erase_map;
        const struct spi_nor_erase_type *erase = NULL;
@@ -210,7 +210,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
        struct mtd_info *mtd = &nor->mtd;
        int i;
  
-@@ -2542,8 +2545,9 @@ static int spi_nor_select_erase(struct s
+@@ -2683,8 +2686,9 @@ static int spi_nor_select_erase(struct s
         */
        for (i = SNOR_ERASE_TYPE_MAX - 1; i >= 0; i--) {
                if (map->erase_type[i].size) {
@@ -222,7 +222,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
                }
        }
  
-@@ -2551,6 +2555,9 @@ static int spi_nor_select_erase(struct s
+@@ -2692,6 +2696,9 @@ static int spi_nor_select_erase(struct s
                return -EINVAL;
  
        mtd->erasesize = erase->size;
diff --git a/target/linux/generic/pending-6.12/620-net-sfp-improve-Huawei-MA5671a-fixup.patch b/target/linux/generic/pending-6.12/620-net-sfp-improve-Huawei-MA5671a-fixup.patch
deleted file mode 100644 (file)
index dd0a4a5..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-From patchwork Fri Mar  6 12:29:55 2026
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 8bit
-X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?=
- <noltari@gmail.com>
-X-Patchwork-Id: 14457090
-X-Patchwork-Delegate: kuba@kernel.org
-Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com
- [209.85.221.48])
-       (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
-       (No client certificate requested)
-       by smtp.subspace.kernel.org (Postfix) with ESMTPS id AF3F4386459
-       for <netdev@vger.kernel.org>; Fri,  6 Mar 2026 12:52:18 +0000 (UTC)
-Authentication-Results: smtp.subspace.kernel.org;
- arc=none smtp.client-ip=209.85.221.48
-ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
-       t=1772801540; cv=none;
- b=LVeywxv8ajenPZ8Kr1arieKosbrf60O9l+ouIPKPFNt5btxWDZ59pIU9BfZjv5n9ifEOyUA/UD0phxnG77+oB/k6UCd7DdGQQASZB3NHq5cvmErbgXm0XG3C8BBxVXU5pF7atPS23kBqM9ptxsv3IaeH/fDFcj6k6SH61rGEpuQ=
-ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org;
-       s=arc-20240116; t=1772801540; c=relaxed/simple;
-       bh=HAy43ssDo0xlUcBDIU7vQZtNnpxG03JPCL6Ldi51ASI=;
-       h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type;
- b=OBk8kI0I91psFRaIxb6nCnAzQlsc7jrXkOPW8lL7cYCosY08yfQDwAlWBFfdFs/VDuVJjD5VEdeQeMt2K4kWGgjLNXhTrRqgs6JNe7PxALDJKvt+kcJ833TRz3hKl2eb2Ft6WnKPf/6hp5Q3qm8+/Q703ixD4sF/0aDNw1BrDY4=
-ARC-Authentication-Results: i=1; smtp.subspace.kernel.org;
- dmarc=pass (p=none dis=none) header.from=gmail.com;
- spf=pass smtp.mailfrom=gmail.com;
- dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com
- header.b=RCEse1HL; arc=none smtp.client-ip=209.85.221.48
-Authentication-Results: smtp.subspace.kernel.org;
- dmarc=pass (p=none dis=none) header.from=gmail.com
-Authentication-Results: smtp.subspace.kernel.org;
- spf=pass smtp.mailfrom=gmail.com
-Authentication-Results: smtp.subspace.kernel.org;
-       dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com
- header.b="RCEse1HL"
-Received: by mail-wr1-f48.google.com with SMTP id
- ffacd0b85a97d-439b7c2788dso4008389f8f.1
-        for <netdev@vger.kernel.org>; Fri, 06 Mar 2026 04:52:18 -0800 (PST)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
-        d=gmail.com; s=20230601; t=1772801537; x=1773406337;
- darn=vger.kernel.org;
-        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
-         :to:from:from:to:cc:subject:date:message-id:reply-to;
-        bh=y8B8kg8ACcCsMXy3SgsyRYngVEpIsqkcoCsLOS/nNqQ=;
-        b=RCEse1HLoUtQApOdbPXFvYItGrEKWhMZ5FH1L4npAxteGeWOhAEAekijg3Ur83ovNu
-         D7j0Aio5nwazNQz3y4rO88a+svlEbLx5fyxypjkMFUV4PDnOpv7HYjT9Aw1NVdIwO6l+
-         sTgZ1jssfWdVnLQwQe6naotyBRoBV2AugdTmASE0Okxrsi3juIOafyTCxnp4K0weRpaH
-         XodiSWNrkHzZSWM6/wl3D42yExGGPiuDybF+9otR/5TaBWNzrcLkSb73hvP6va35kQWK
-         mnp6OV+L7iHTbxYpTfTm4axD+IZ/Q/dtFxxA6XolA28oMQbRPK0SIHepheSZx4bgl64w
-         FM4w==
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
-        d=1e100.net; s=20230601; t=1772801537; x=1773406337;
-        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
-         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
-         :message-id:reply-to;
-        bh=y8B8kg8ACcCsMXy3SgsyRYngVEpIsqkcoCsLOS/nNqQ=;
-        b=KomubXrbvHQI4WbFxBztyfrvNNRRWm7V46yQSwx0bP8PXKIJP38kAYzK+ZKWhmcd7e
-         LpS7422VcYyLywLRxlevD2YaXsF0CK6e00YpTtixakHxYs/4KxGaU21vfwYV8mRhfu7g
-         HVmxKvNQ6DTdC7wAIGT6TrcZCK4VCvgCx3z9yC62hQc8C6w+9mDnnGPvXNR74ofvvXdC
-         eVZjm56layRoEr4PTpR2F33OVSt8+HRikH7eBzIKtQ5n/lEKtmJKDHRaodAaCyFGWMWa
-         qDVoOR8VI4NIJABfsOT6OqisXLPLf+jkKpGkCY2ioRPRKK9GzW4PgIuNcKvPQilQQkgD
-         Xlnw==
-X-Forwarded-Encrypted: i=1;
- AJvYcCVcziiSg1n0cDakmiQXH3869FECP24dcIqrZzs8zKakP+vHT958hnq9Bp0alDnLeVtXgo0B8T4=@vger.kernel.org
-X-Gm-Message-State: AOJu0Yx2OF1e3PiuR4Zqpe9qXA6kz6T2CCtro6kv8eL2j4Zh2HCjWywo
-       /rZTavazOZRoq7zTvc4fGZ/yupjkTT9xRPZCKRkM9pc0UuK/KDSP4pan
-X-Gm-Gg: ATEYQzx75s3OlYg8XKMgu042++2+ZPa/CZDw09DYtnwEHHBsuylQF0+eXzcFM166JtP
-       EMuM6Nq/sGQx2WNTPNEyu1BRGci/SV005CzkExhd1KK52D/nC1c76MBxvAtioaI/+5tgNoyCg8v
-       ZFRyiqDReKfJ6JHa3YRI213dTzMluN1sZTYNSqlWI1MwW66gaDCf0myU81ehAfiAff34wmxnm8C
-       PUF0YrLYtgZl1I/ZcYM1npoL3PBOnrhaulSqhbn7S5NaZMkHLrNQm6ns1lof+7Ciju05dQpEcBe
-       pumVg15Dy+PcSXQSSQt4CULH7bbuJvZ0PHJ7dS+74i/OqFSgxD4E7LCqM5ufHYdbESx0/ERaR/z
-       CAyT3oTz6S1oMQCUTPevHjHjTbDOWhu74SqyTZETzwGnjZnfrPMa56ebQVRfYgOYW0bbx6j3O2M
-       v3CSEBiXpdFTdaLuRcqIb56JeDryaHx87SOThqnYP6gMiu7EljKYIhr572Rpgz+UIRkrYyNjL9c
-       BLmrcmhsXX4hU4X5KocoApkO04w
-X-Received: by 2002:a05:600c:8b8b:b0:483:103c:b1ee with SMTP id
- 5b1f17b1804b1-48526922599mr34173745e9.8.1772801536778;
-        Fri, 06 Mar 2026 04:52:16 -0800 (PST)
-Received: from skynet.lan
- (2a02-9142-4581-3c00-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net.
- [2a02:9142:4581:3c00::8])
-        by smtp.gmail.com with ESMTPSA id
- 5b1f17b1804b1-48527681a3esm76085715e9.4.2026.03.06.04.52.14
-        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
-        Fri, 06 Mar 2026 04:52:15 -0800 (PST)
-From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= <noltari@gmail.com>
-To: linux@armlinux.org.uk,
-       andrew@lunn.ch,
-       hkallweit1@gmail.com,
-       davem@davemloft.net,
-       edumazet@google.com,
-       kuba@kernel.org,
-       pabeni@redhat.com,
-       mnhagan88@gmail.com,
-       netdev@vger.kernel.org,
-       linux-kernel@vger.kernel.org
-Cc: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= <noltari@gmail.com>
-Subject: [PATCH net v3] net: sfp: improve Huawei MA5671a fixup
-Date: Fri,  6 Mar 2026 13:29:55 +0100
-Message-ID: <20260306125139.213637-1-noltari@gmail.com>
-X-Mailer: git-send-email 2.47.3
-Precedence: bulk
-X-Mailing-List: netdev@vger.kernel.org
-List-Id: <netdev.vger.kernel.org>
-List-Subscribe: <mailto:netdev+subscribe@vger.kernel.org>
-List-Unsubscribe: <mailto:netdev+unsubscribe@vger.kernel.org>
-MIME-Version: 1.0
-X-Patchwork-Delegate: kuba@kernel.org
-
-With the current sfp_fixup_ignore_tx_fault() fixup we ignore the TX_FAULT
-signal, but we also need to apply sfp_fixup_ignore_los() in order to be
-able to communicate with the module even if the fiber isn't connected for
-configuration purposes.
-This is needed for all the MA5671a firmwares, excluding the FS modded
-firmware.
-
-Fixes: 2069624dac19 ("net: sfp: Add tx-fault workaround for Huawei MA5671A SFP ONT")
-Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
----
- v3: avoid using a vendor name in the function
- v2: rebase on top of net/main instead of linux/master
-
- drivers/net/phy/sfp.c | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
---- a/drivers/net/phy/sfp.c
-+++ b/drivers/net/phy/sfp.c
-@@ -360,6 +360,12 @@ static void sfp_fixup_ignore_tx_fault(st
-       sfp->state_ignore_mask |= SFP_F_TX_FAULT;
- }
-+static void sfp_fixup_ignore_tx_fault_and_los(struct sfp *sfp)
-+{
-+      sfp_fixup_ignore_tx_fault(sfp);
-+      sfp_fixup_ignore_los(sfp);
-+}
-+
- static void sfp_fixup_ignore_hw(struct sfp *sfp, unsigned int mask)
- {
-       sfp->state_hw_mask &= ~mask;
-@@ -523,7 +529,7 @@ static const struct sfp_quirk sfp_quirks
-       // Huawei MA5671A can operate at 2500base-X, but report 1.2GBd NRZ in
-       // their EEPROM
-       SFP_QUIRK("HUAWEI", "MA5671A", sfp_quirk_2500basex,
--                sfp_fixup_ignore_tx_fault),
-+                sfp_fixup_ignore_tx_fault_and_los),
-       // Lantech 8330-262D-E and 8330-265D can operate at 2500base-X, but
-       // incorrectly report 2500MBd NRZ in their EEPROM.
index d07b282e25d38a934f711a794b85d0b9594b382d..31a22db7f93cfc1f38bf1131bf1042dee921053c 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
-@@ -8724,7 +8724,7 @@ static int nft_register_flowtable_net_ho
+@@ -8722,7 +8722,7 @@ static int nft_register_flowtable_net_ho
                err = flowtable->data.type->setup(&flowtable->data,
                                                  hook->ops.dev,
                                                  FLOW_BLOCK_BIND);
index 4e00118e533f00689877af72f3fb0cfde0e89808..474470b806db580b82e941b924938d26ef845da3 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -2037,6 +2037,9 @@ void phy_detach(struct phy_device *phyde
+@@ -2035,6 +2035,9 @@ void phy_detach(struct phy_device *phyde
                phydev->devlink = NULL;
        }
  
diff --git a/target/linux/generic/pending-6.12/704-net-phy-register-phy-led_triggers-during-probe-to-av.patch b/target/linux/generic/pending-6.12/704-net-phy-register-phy-led_triggers-during-probe-to-av.patch
deleted file mode 100644 (file)
index 126275c..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-From 5225349f1e750dfd107a4c5dc97d91fa212dc1ed Mon Sep 17 00:00:00 2001
-From: Andrew Lunn <andrew@lunn.ch>
-Date: Sat, 21 Feb 2026 14:51:54 -0600
-Subject: [PATCH] net: phy: register phy led_triggers during probe to avoid
- AB-BA deadlock
-
-There is an AB-BA deadlock when both LEDS_TRIGGER_NETDEV and
-LED_TRIGGER_PHY are enabled:
-
-[ 1362.049207] [<8054e4b8>] led_trigger_register+0x5c/0x1fc             <-- Trying to get lock "triggers_list_lock" via down_write(&triggers_list_lock);
-[ 1362.054536] [<80662830>] phy_led_triggers_register+0xd0/0x234
-[ 1362.060329] [<8065e200>] phy_attach_direct+0x33c/0x40c
-[ 1362.065489] [<80651fc4>] phylink_fwnode_phy_connect+0x15c/0x23c
-[ 1362.071480] [<8066ee18>] mtk_open+0x7c/0xba0
-[ 1362.075849] [<806d714c>] __dev_open+0x280/0x2b0
-[ 1362.080384] [<806d7668>] __dev_change_flags+0x244/0x24c
-[ 1362.085598] [<806d7698>] dev_change_flags+0x28/0x78
-[ 1362.090528] [<807150e4>] dev_ioctl+0x4c0/0x654                       <-- Hold lock "rtnl_mutex" by calling rtnl_lock();
-[ 1362.094985] [<80694360>] sock_ioctl+0x2f4/0x4e0
-[ 1362.099567] [<802e9c4c>] sys_ioctl+0x32c/0xd8c
-[ 1362.104022] [<80014504>] syscall_common+0x34/0x58
-
-Here LED_TRIGGER_PHY is registering LED triggers during phy_attach
-while holding RTNL and then taking triggers_list_lock.
-
-[ 1362.191101] [<806c2640>] register_netdevice_notifier+0x60/0x168      <-- Trying to get lock "rtnl_mutex" via rtnl_lock();
-[ 1362.197073] [<805504ac>] netdev_trig_activate+0x194/0x1e4
-[ 1362.202490] [<8054e28c>] led_trigger_set+0x1d4/0x360                 <-- Hold lock "triggers_list_lock" by down_read(&triggers_list_lock);
-[ 1362.207511] [<8054eb38>] led_trigger_write+0xd8/0x14c
-[ 1362.212566] [<80381d98>] sysfs_kf_bin_write+0x80/0xbc
-[ 1362.217688] [<8037fcd8>] kernfs_fop_write_iter+0x17c/0x28c
-[ 1362.223174] [<802cbd70>] vfs_write+0x21c/0x3c4
-[ 1362.227712] [<802cc0c4>] ksys_write+0x78/0x12c
-[ 1362.232164] [<80014504>] syscall_common+0x34/0x58
-
-Here LEDS_TRIGGER_NETDEV is being enabled on an LED. It first takes
-triggers_list_lock and then RTNL. A classical AB-BA deadlock.
-
-phy_led_triggers_registers() does not require the RTNL, it does not
-make any calls into the network stack which require protection. There
-is also no requirement the PHY has been attached to a MAC, the
-triggers only make use of phydev state. This allows the call to
-phy_led_triggers_registers() to be placed elsewhere. PHY probe() and
-release() don't hold RTNL, so solving the AB-BA deadlock.
-
-Reported-by: Shiji Yang <yangshiji66@outlook.com>
-Closes: https://lore.kernel.org/all/OS7PR01MB13602B128BA1AD3FA38B6D1FFBC69A@OS7PR01MB13602.jpnprd01.prod.outlook.com/
-Fixes: 06f502f57d0d ("leds: trigger: Introduce a NETDEV trigger")
-Signed-off-by: Andrew Lunn <andrew@lunn.ch>
----
- drivers/net/phy/phy_device.c | 25 +++++++++++++++++--------
- 1 file changed, 17 insertions(+), 8 deletions(-)
-
---- a/drivers/net/phy/phy_device.c
-+++ b/drivers/net/phy/phy_device.c
-@@ -1684,8 +1684,6 @@ int phy_attach_direct(struct net_device
-               goto error;
-       phy_resume(phydev);
--      if (!phydev->is_on_sfp_module)
--              phy_led_triggers_register(phydev);
-       /**
-        * If the external phy used by current mac interface is managed by
-@@ -2058,9 +2056,6 @@ void phy_detach(struct phy_device *phyde
-       }
-       phydev->phylink = NULL;
--      if (!phydev->is_on_sfp_module)
--              phy_led_triggers_unregister(phydev);
--
-       if (phydev->mdio.dev.driver)
-               module_put(phydev->mdio.dev.driver->owner);
-@@ -3691,17 +3686,28 @@ static int phy_probe(struct device *dev)
-       /* Set the state to READY by default */
-       phydev->state = PHY_READY;
-+      /* Register the PHY LED triggers */
-+      if (!phydev->is_on_sfp_module)
-+              phy_led_triggers_register(phydev);
-+
-       /* Get the LEDs from the device tree, and instantiate standard
-        * LEDs for them.
-        */
-       if (IS_ENABLED(CONFIG_PHYLIB_LEDS) && !phy_driver_is_genphy(phydev) &&
--          !phy_driver_is_genphy_10g(phydev))
-+          !phy_driver_is_genphy_10g(phydev)) {
-               err = of_phy_leds(phydev);
-+              if (err)
-+                      goto out;
-+      }
-+
-+      return 0;
- out:
-+      if (!phydev->is_on_sfp_module)
-+              phy_led_triggers_unregister(phydev);
-+
-       /* Re-assert the reset signal on error */
--      if (err)
--              phy_device_reset(phydev, 1);
-+      phy_device_reset(phydev, 1);
-       return err;
- }
-@@ -3716,6 +3722,9 @@ static int phy_remove(struct device *dev
-           !phy_driver_is_genphy_10g(phydev))
-               phy_leds_unregister(phydev);
-+      if (!phydev->is_on_sfp_module)
-+              phy_led_triggers_unregister(phydev);
-+
-       phydev->state = PHY_DOWN;
-       sfp_bus_del_upstream(phydev->sfp_bus);
index 50d3403772d2401c6dd065b935e1518f7bf7403d..0e55a560990d29e81ec0619366f311254a296309 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -2224,7 +2224,7 @@ struct net_device {
+@@ -2226,7 +2226,7 @@ struct net_device {
  #if IS_ENABLED(CONFIG_AX25)
        struct ax25_dev __rcu   *ax25_ptr;
  #endif
index c0e77d17152bd498c07eb35b51c9c03a7173cec5..843ca14b644e3e6cf390595b139e957a112563c0 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/include/net/dsa.h
 +++ b/include/net/dsa.h
-@@ -832,6 +832,19 @@ dsa_tree_offloads_bridge_dev(struct dsa_
+@@ -833,6 +833,19 @@ dsa_tree_offloads_bridge_dev(struct dsa_
        return false;
  }
  
index 37891ffe39a24eedd12ca14c1cefb1a22021482b..af90028b983d1ecff0952324af91f18e16f3c201 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/include/net/dsa.h
 +++ b/include/net/dsa.h
-@@ -832,15 +832,18 @@ dsa_tree_offloads_bridge_dev(struct dsa_
+@@ -833,15 +833,18 @@ dsa_tree_offloads_bridge_dev(struct dsa_
        return false;
  }
  
index 19da9a0010a479696424b9906b34a0767e2ec3b1..bd0e9ef6286f63c001b09b71231823ceaf7fffb1 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/include/net/dsa.h
 +++ b/include/net/dsa.h
-@@ -1185,6 +1185,9 @@ struct dsa_switch_ops {
+@@ -1186,6 +1186,9 @@ struct dsa_switch_ops {
        int     (*devlink_info_get)(struct dsa_switch *ds,
                                    struct devlink_info_req *req,
                                    struct netlink_ext_ack *extack);
index 4b497d9fbf8f4649ffb74181e521bbedf8af355d..f4458afb127279e02cdcd7eb72fd109949c28061 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
-@@ -4807,6 +4818,9 @@ void __ata_qc_complete(struct ata_queued
+@@ -4812,6 +4823,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 &&
-@@ -5536,6 +5550,9 @@ struct ata_port *ata_port_alloc(struct a
+@@ -5541,6 +5555,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);
-@@ -5552,6 +5569,12 @@ void ata_port_free(struct ata_port *ap)
+@@ -5557,6 +5574,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);
-@@ -5956,7 +5979,23 @@ int ata_host_register(struct ata_host *h
+@@ -5961,7 +5984,23 @@ int ata_host_register(struct ata_host *h
                WARN_ON(1);
                return -EINVAL;
        }
index 3bf2fce4fbed736789cb5192754296b269becf5c..aca7ae15ccf7ffc002dd570155426640205b7af9 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
 
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1888,6 +1888,15 @@ config ARCH_HAS_MEMBARRIER_CALLBACKS
+@@ -1891,6 +1891,15 @@ config ARCH_HAS_MEMBARRIER_CALLBACKS
  config ARCH_HAS_MEMBARRIER_SYNC_CORE
        bool
  
index 325b3ad795c7dedd7e79c7e254d9220f7e815ddb..ddbdc981a3b1ce570aec59447083de2675323926 100644 (file)
@@ -19,7 +19,7 @@
        },
        [PORT_NPCM] = {
                .name           = "Nuvoton 16550",
-@@ -2729,6 +2729,11 @@ serial8250_do_set_termios(struct uart_po
+@@ -2735,6 +2735,11 @@ serial8250_do_set_termios(struct uart_po
        unsigned long flags;
        unsigned int baud, quot, frac = 0;
  
index c4fa4045ef2ee10db8cf752028b455028262f851..04fa9eeb044ab1d3f87b4527dd5947fbc7ba7d1c 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
  
 --- a/drivers/mtd/spi-nor/core.c
 +++ b/drivers/mtd/spi-nor/core.c
-@@ -3300,6 +3300,18 @@ static const struct flash_info *spi_nor_
+@@ -3441,6 +3441,18 @@ static const struct flash_info *spi_nor_
        return NULL;
  }
  
@@ -45,7 +45,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
  static const struct flash_info *spi_nor_get_flash_info(struct spi_nor *nor,
                                                       const char *name)
  {
-@@ -3474,6 +3486,9 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -3615,6 +3627,9 @@ int spi_nor_scan(struct spi_nor *nor, co
        if (ret)
                return ret;
  
index 2a6cf46caec3f79fe72e39238c4ee19b1d2cb686..a79ac703b909f0a047d63386f45d4c9c39d7fb34 100644 (file)
@@ -37,7 +37,7 @@
         * CONFIG_CMDLINE is meant to be a default in case nothing else
 --- a/arch/arm64/Kconfig
 +++ b/arch/arm64/Kconfig
-@@ -2382,6 +2382,14 @@ config CMDLINE_FORCE
+@@ -2383,6 +2383,14 @@ config CMDLINE_FORCE
  
  endchoice
  
index a67ac4cdfddea89b7ad87da366221fa93f4ab41b..6822eafc6aad35c08686a708b0b986869ada65c8 100644 (file)
@@ -201,7 +201,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
 
 --- a/drivers/i2c/busses/i2c-pxa.c
 +++ b/drivers/i2c/busses/i2c-pxa.c
-@@ -1330,6 +1330,12 @@ static void i2c_pxa_unprepare_recovery(s
+@@ -1336,6 +1336,12 @@ static void i2c_pxa_unprepare_recovery(s
        i2c_pxa_enable(i2c);
  }
  
@@ -214,7 +214,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
  static int i2c_pxa_init_recovery(struct pxa_i2c *i2c)
  {
        struct i2c_bus_recovery_info *bri = &i2c->recovery;
-@@ -1398,6 +1404,7 @@ static int i2c_pxa_init_recovery(struct
+@@ -1404,6 +1410,7 @@ static int i2c_pxa_init_recovery(struct
                return 0;
        }
  
index 77c3a2c24c85b22ee38aa6aa1749f184f3731668..a03127bee49036df88f64e160ec6c08a7f624109 100644 (file)
@@ -242,7 +242,7 @@ the controller from the bad state described in the previous patch.
  
        struct i2c_bus_recovery_info recovery;
        struct pinctrl          *pinctrl;
-@@ -429,7 +431,7 @@ static int i2c_pxa_wait_bus_not_busy(str
+@@ -430,7 +432,7 @@ static int i2c_pxa_wait_bus_not_busy(str
  
        while (1) {
                isr = readl(_ISR(i2c));
@@ -251,7 +251,7 @@ the controller from the bad state described in the previous patch.
                        return 0;
  
                if (isr & ISR_SAD)
-@@ -466,7 +468,7 @@ static int i2c_pxa_wait_master(struct px
+@@ -467,7 +469,7 @@ static int i2c_pxa_wait_master(struct px
                 * quick check of the i2c lines themselves to ensure they've
                 * gone high...
                 */
@@ -260,7 +260,7 @@ the controller from the bad state described in the previous patch.
                    readl(_IBMR(i2c)) == (IBMR_SCLS | IBMR_SDAS)) {
                        if (i2c_debug > 0)
                                dev_dbg(&i2c->adap.dev, "%s: done\n", __func__);
-@@ -487,7 +489,7 @@ static int i2c_pxa_set_master(struct pxa
+@@ -488,7 +490,7 @@ static int i2c_pxa_set_master(struct pxa
        if (i2c_debug)
                dev_dbg(&i2c->adap.dev, "setting to bus master\n");
  
@@ -269,7 +269,7 @@ the controller from the bad state described in the previous patch.
                dev_dbg(&i2c->adap.dev, "%s: unit is busy\n", __func__);
                if (!i2c_pxa_wait_master(i2c)) {
                        dev_dbg(&i2c->adap.dev, "%s: error: unit busy\n", __func__);
-@@ -513,7 +515,7 @@ static int i2c_pxa_wait_slave(struct pxa
+@@ -514,7 +516,7 @@ static int i2c_pxa_wait_slave(struct pxa
                        dev_dbg(&i2c->adap.dev, "%s: %ld: ISR=%08x, ICR=%08x, IBMR=%02x\n",
                                __func__, (long)jiffies, readl(_ISR(i2c)), readl(_ICR(i2c)), readl(_IBMR(i2c)));
  
@@ -278,7 +278,7 @@ the controller from the bad state described in the previous patch.
                    (readl(_ISR(i2c)) & ISR_SAD) != 0 ||
                    (readl(_ICR(i2c)) & ICR_SCLE) == 0) {
                        if (i2c_debug > 1)
-@@ -1171,7 +1173,7 @@ static int i2c_pxa_pio_set_master(struct
+@@ -1177,7 +1179,7 @@ static int i2c_pxa_pio_set_master(struct
        /*
         * Wait for the bus to become free.
         */
@@ -287,7 +287,7 @@ the controller from the bad state described in the previous patch.
                udelay(1000);
  
        if (timeout < 0) {
-@@ -1316,7 +1318,7 @@ static void i2c_pxa_unprepare_recovery(s
+@@ -1322,7 +1324,7 @@ static void i2c_pxa_unprepare_recovery(s
         * handing control of the bus back to avoid the bus changing state.
         */
        isr = readl(_ISR(i2c));
@@ -296,7 +296,7 @@ the controller from the bad state described in the previous patch.
                dev_dbg(&i2c->adap.dev,
                        "recovery: resetting controller, ISR=0x%08x\n", isr);
                i2c_pxa_do_reset(i2c);
-@@ -1480,6 +1482,10 @@ static int i2c_pxa_probe(struct platform
+@@ -1486,6 +1488,10 @@ static int i2c_pxa_probe(struct platform
        i2c->fm_mask = pxa_reg_layout[i2c_type].fm;
        i2c->hs_mask = pxa_reg_layout[i2c_type].hs;
  
index 41aadc16678637af18118c1d01f7419a5c76cc0e..ec812864313164124fd9a80deae6620c42f47afe 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
  
  /**
   * struct mii_bus - Represents an MDIO bus
-@@ -2277,6 +2278,11 @@ static inline bool phy_package_probe_onc
+@@ -2290,6 +2291,11 @@ static inline bool phy_package_probe_onc
        return __phy_package_set_once(phydev, PHY_SHARED_F_PROBE_DONE);
  }
  
index 5f7e96358ac53cb10d2d9d1bbbb934413817409f..be172fa076dac52dba3f1f6190c98f844e05be50 100644 (file)
@@ -70,7 +70,7 @@ Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
  struct dsa_chip_data {
 --- a/include/net/dsa.h
 +++ b/include/net/dsa.h
-@@ -480,7 +480,7 @@ struct dsa_switch {
+@@ -481,7 +481,7 @@ struct dsa_switch {
        /*
         * User mii_bus and devices for the individual ports.
         */
@@ -79,7 +79,7 @@ Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
        struct mii_bus          *user_mii_bus;
  
        /* Ageing Time limits in msecs */
-@@ -616,24 +616,24 @@ static inline bool dsa_is_user_port(stru
+@@ -617,24 +617,24 @@ static inline bool dsa_is_user_port(stru
        dsa_switch_for_each_port_continue_reverse((_dp), (_ds)) \
                if (dsa_port_is_cpu((_dp)))
  
index ef1e51f1cc08b0172d3f0be827654190ed6d4946..4311203ffede99720a886d8653299695f5025849 100644 (file)
@@ -253,7 +253,7 @@ Link: https://lore.kernel.org/all/20241002141630.433502-2-steven.price@arm.com
                if (!page)
                        return false;
  
-@@ -3401,7 +3484,6 @@ static struct its_device *its_create_dev
+@@ -3402,7 +3485,6 @@ static struct its_device *its_create_dev
        if (WARN_ON(!is_power_of_2(nvecs)))
                nvecs = roundup_pow_of_two(nvecs);
  
@@ -261,7 +261,7 @@ Link: https://lore.kernel.org/all/20241002141630.433502-2-steven.price@arm.com
        /*
         * Even if the device wants a single LPI, the ITT must be
         * sized as a power of two (and you need at least one bit...).
-@@ -3409,7 +3491,11 @@ static struct its_device *its_create_dev
+@@ -3413,7 +3495,11 @@ static struct its_device *its_create_dev
        nr_ites = max(2, nvecs);
        sz = nr_ites * (FIELD_GET(GITS_TYPER_ITT_ENTRY_SIZE, its->typer) + 1);
        sz = max(sz, ITS_ITT_ALIGN) + ITS_ITT_ALIGN - 1;
@@ -274,7 +274,7 @@ Link: https://lore.kernel.org/all/20241002141630.433502-2-steven.price@arm.com
        if (alloc_lpis) {
                lpi_map = its_lpi_alloc(nvecs, &lpi_base, &nr_lpis);
                if (lpi_map)
-@@ -3421,9 +3507,9 @@ static struct its_device *its_create_dev
+@@ -3425,9 +3511,9 @@ static struct its_device *its_create_dev
                lpi_base = 0;
        }
  
@@ -286,7 +286,7 @@ Link: https://lore.kernel.org/all/20241002141630.433502-2-steven.price@arm.com
                bitmap_free(lpi_map);
                kfree(col_map);
                return NULL;
-@@ -3433,6 +3519,7 @@ static struct its_device *its_create_dev
+@@ -3437,6 +3523,7 @@ static struct its_device *its_create_dev
  
        dev->its = its;
        dev->itt = itt;
@@ -294,7 +294,7 @@ Link: https://lore.kernel.org/all/20241002141630.433502-2-steven.price@arm.com
        dev->nr_ites = nr_ites;
        dev->event_map.lpi_map = lpi_map;
        dev->event_map.col_map = col_map;
-@@ -3460,7 +3547,7 @@ static void its_free_device(struct its_d
+@@ -3464,7 +3551,7 @@ static void its_free_device(struct its_d
        list_del(&its_dev->entry);
        raw_spin_unlock_irqrestore(&its_dev->its->lock, flags);
        kfree(its_dev->event_map.col_map);
@@ -303,7 +303,7 @@ Link: https://lore.kernel.org/all/20241002141630.433502-2-steven.price@arm.com
        kfree(its_dev);
  }
  
-@@ -5160,8 +5247,9 @@ static int __init its_probe_one(struct i
+@@ -5164,8 +5251,9 @@ static int __init its_probe_one(struct i
                }
        }
  
@@ -315,7 +315,7 @@ Link: https://lore.kernel.org/all/20241002141630.433502-2-steven.price@arm.com
        if (!page) {
                err = -ENOMEM;
                goto out_unmap_sgir;
-@@ -5225,7 +5313,7 @@ static int __init its_probe_one(struct i
+@@ -5229,7 +5317,7 @@ static int __init its_probe_one(struct i
  out_free_tables:
        its_free_tables(its);
  out_free_cmd:
@@ -324,7 +324,7 @@ Link: https://lore.kernel.org/all/20241002141630.433502-2-steven.price@arm.com
  out_unmap_sgir:
        if (its->sgir_base)
                iounmap(its->sgir_base);
-@@ -5711,6 +5799,10 @@ int __init its_init(struct fwnode_handle
+@@ -5715,6 +5803,10 @@ int __init its_init(struct fwnode_handle
        bool has_v4_1 = false;
        int err;
  
index 388e256f87f8d69d9032a70dac9926b0979ffecf..351a91da8011d3bbb1f69b0d383ddbf8be6071bf 100644 (file)
@@ -35,7 +35,7 @@ Link: https://lore.kernel.org/all/20250216221634.364158-2-dmitry.osipenko@collab
  +----------------+-----------------+-----------------+-----------------------------+
 --- a/arch/arm64/Kconfig
 +++ b/arch/arm64/Kconfig
-@@ -1297,6 +1297,15 @@ config NVIDIA_CARMEL_CNP_ERRATUM
+@@ -1298,6 +1298,15 @@ config NVIDIA_CARMEL_CNP_ERRATUM
  
          If unsure, say Y.
  
@@ -70,7 +70,7 @@ Link: https://lore.kernel.org/all/20250216221634.364158-2-dmitry.osipenko@collab
  
        if (!page)
                return NULL;
-@@ -4888,6 +4890,17 @@ static bool __maybe_unused its_enable_qu
+@@ -4892,6 +4894,17 @@ static bool __maybe_unused its_enable_qu
        return true;
  }
  
@@ -88,7 +88,7 @@ Link: https://lore.kernel.org/all/20250216221634.364158-2-dmitry.osipenko@collab
  static const struct gic_quirk its_quirks[] = {
  #ifdef CONFIG_CAVIUM_ERRATUM_22375
        {
-@@ -4955,6 +4968,14 @@ static const struct gic_quirk its_quirks
+@@ -4959,6 +4972,14 @@ static const struct gic_quirk its_quirks
                .property = "dma-noncoherent",
                .init   = its_set_non_coherent,
        },
index 5b7d42c7164cf17bf5c84c729dc56a2f344d8513..92515582c61bacfefc6f749fbb9f8b6880fad04c 100644 (file)
@@ -67,7 +67,7 @@ Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
  }
  
  /*
-@@ -2768,7 +2781,6 @@ serial8250_do_set_termios(struct uart_po
+@@ -2774,7 +2787,6 @@ serial8250_do_set_termios(struct uart_po
                if (termios->c_cflag & CRTSCTS)
                        up->mcr |= UART_MCR_AFE;
        }
index 7629d4dad143afc0561d9cd11d18f2cc77e1c016..7ddad8358522e0998839efdd4fa300f26dddbbc7 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Matteo Croce <mcroce@microsoft.com>
  
        if (priv->dma_cap.host_dma_width <= 32)
                gfp |= GFP_DMA32;
-@@ -4791,7 +4791,7 @@ static inline void stmmac_rx_refill(stru
+@@ -4756,7 +4756,7 @@ static inline void stmmac_rx_refill(stru
        struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue];
        int dirty = stmmac_rx_dirty(priv, queue);
        unsigned int entry = rx_q->dirty_rx;