summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Audia2026-03-25 12:15:25 +0000
committerHauke Mehrtens2026-04-02 21:23:41 +0000
commitff235f09b5002d7d95ef6c41f5de7a3ef523fbef (patch)
tree3af9a5a28c6f2ed4c83b481567e39b3c4532bb0d
parent5c59e2f9ff5db820048fa7cba8d1b608ba8c1e69 (diff)
downloadopenwrt-ff235f09b5002d7d95ef6c41f5de7a3ef523fbef.tar.gz
kernel: bump 6.12 to 6.12.78
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] (cherry picked from commit bb3da35c904f15980c3e0c328ff599862356b489) Link: https://github.com/openwrt/openwrt/pull/22699 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-rw-r--r--target/linux/airoha/patches-6.12/014-01-v6.13-net-airoha-fix-PSE-memory-configuration-in-airoha_fe.patch40
-rw-r--r--target/linux/airoha/patches-6.12/014-02-v6.13-net-airoha-read-default-PSE-reserved-pages-value-bef.patch52
-rw-r--r--target/linux/airoha/patches-6.12/017-v6.13-net-airoha-Implement-BQL-support.patch4
-rw-r--r--target/linux/airoha/patches-6.12/031-01-v6.13-net-airoha-Read-completion-queue-data-in-airoha_qdma.patch92
-rw-r--r--target/linux/airoha/patches-6.12/048-01-v6.15-net-airoha-Move-airoha_eth-driver-in-a-dedicated-fol.patch6
-rw-r--r--target/linux/airoha/patches-6.12/048-05-v6.15-net-airoha-Move-DSA-tag-in-DMA-descriptor.patch4
-rw-r--r--target/linux/airoha/patches-6.12/048-13-v6.15-net-airoha-Introduce-flowtable-offload-support.patch2
-rw-r--r--target/linux/airoha/patches-6.12/099-03-v6.19-net-airoha-Add-airoha_eth_soc_data-struct.patch2
-rw-r--r--target/linux/airoha/patches-6.12/099-10-v6.19-net-airoha-Refactor-src-port-configuration-in-airhoh.patch2
-rw-r--r--target/linux/airoha/patches-6.12/099-12-v6.19-net-airoha-Add-AN7583-SoC-support.patch4
-rw-r--r--target/linux/airoha/patches-6.12/116-07-airoha-ethernet-drop-xsi-mac-reset.patch4
-rw-r--r--target/linux/airoha/patches-6.12/116-10-net-airoha-add-phylink-support-for-GDM2-4.patch4
-rw-r--r--target/linux/airoha/patches-6.12/606-net-airoha-disable-external-phy-code-if-PCS_AIROHA-i.patch4
-rw-r--r--target/linux/airoha/patches-6.12/886-uart-add-en7523-support.patch2
-rw-r--r--target/linux/ath79/patches-6.12/400-mtd-nor-support-mtd-name-from-device-tree.patch2
-rw-r--r--target/linux/ath79/patches-6.12/900-unaligned_access_hacks.patch6
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0005-Revert-net-bcmgenet-Request-APD-DLL-disable-and-IDDQ.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0054-Add-dwc_otg-driver.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0073-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch4
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0094-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0096-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0099-lan78xx-Enable-LEDs-and-auto-negotiation.patch6
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0122-bcmgenet-Better-coalescing-parameter-defaults.patch4
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0123-net-genet-enable-link-energy-detect-powerdown-for-ex.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0124-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch4
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0133-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0172-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch4
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0297-net-bcmgenet-Add-eee-module-parameter.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch6
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0344-sdhci-Add-SD-Express-hook.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0347-net-macb-Also-set-DMA-coherent-mask.patch32
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0371-soc-bcm-bcm2835-power-Add-support-for-BCM2712.patch8
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0437-mmc-sdhci-extend-maximum-ADMA-transfer-length-to-4Mi.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0528-drm-Increase-plane_mask-to-64bit.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0565-net-macb-Add-support-for-Raspberry-Pi-RP1-ethernet-c.patch4
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0685-nvme-pci-Disable-Host-Memory-Buffer-usage.patch6
-rw-r--r--target/linux/bcm27xx/patches-6.12/950-0692-cgroup-Add-cgroup_enable-option.patch2
-rw-r--r--target/linux/bcm4908/patches-6.12/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch2
-rw-r--r--target/linux/bcm4908/patches-6.12/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch2
-rw-r--r--target/linux/generic/backport-6.12/420-01-v6.16-mtd-rawnand-brcmnand-remove-unused-parameters.patch4
-rw-r--r--target/linux/generic/backport-6.12/420-03-v6.16-mtd-rawnand-brcmnand-legacy-exec_op-implementation.patch6
-rw-r--r--target/linux/generic/backport-6.12/710-v6.16-igc-enable-HW-vlan-tag-insertion-stripping-by-defaul.patch2
-rw-r--r--target/linux/generic/backport-6.12/730-03-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch2
-rw-r--r--target/linux/generic/hack-6.12/253-ksmbd-config.patch2
-rw-r--r--target/linux/generic/hack-6.12/721-net-add-packet-mangeling.patch6
-rw-r--r--target/linux/generic/kernel-6.124
-rw-r--r--target/linux/generic/pending-6.12/103-kbuild-export-SUBARCH.patch2
-rw-r--r--target/linux/generic/pending-6.12/203-kallsyms_uncompressed.patch2
-rw-r--r--target/linux/generic/pending-6.12/402-mtd-spi-nor-write-support-for-minor-aligned-partitions.patch6
-rw-r--r--target/linux/generic/pending-6.12/620-net-sfp-improve-Huawei-MA5671a-fixup.patch149
-rw-r--r--target/linux/generic/pending-6.12/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch2
-rw-r--r--target/linux/generic/pending-6.12/703-phy-add-detach-callback-to-struct-phy_driver.patch2
-rw-r--r--target/linux/generic/pending-6.12/704-net-phy-register-phy-led_triggers-during-probe-to-av.patch116
-rw-r--r--target/linux/generic/pending-6.12/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch2
-rw-r--r--target/linux/generic/pending-6.12/834-ledtrig-libata.patch8
-rw-r--r--target/linux/generic/pending-6.12/920-mangle_bootargs.patch2
-rw-r--r--target/linux/mediatek/patches-6.12/410-bt-mtk-serial-fix.patch2
-rw-r--r--target/linux/mediatek/patches-6.12/436-drivers-mtd-spi-nor-Add-calibration-support-for-spi-.patch4
-rw-r--r--target/linux/mediatek/patches-6.12/901-arm-add-cmdline-override.patch2
-rw-r--r--target/linux/mvebu/patches-6.12/830-02-i2c-pxa-prevent-calling-of-the-generic-recovery-init-code.patch4
-rw-r--r--target/linux/mvebu/patches-6.12/830-03-i2c-pxa-handle-Early-Bus-Busy-condition-on-Armada-3700.patch14
-rw-r--r--target/linux/realtek/patches-6.12/700-dsa-mdio-increase-max-ports-for-rtl839x-rtl931x.patch4
-rw-r--r--target/linux/rockchip/patches-6.12/030-01-v6.13-irqchip-gic-v3-its-Share-ITS-tables-with-a-non-trust.patch16
-rw-r--r--target/linux/rockchip/patches-6.12/030-03-v6.15-irqchip-gic-v3-Add-Rockchip-3568002-erratum-workaround.patch6
-rw-r--r--target/linux/starfive/patches-6.12/0009-uart-8250-Add-dw-auto-flow-ctrl-support.patch2
-rw-r--r--target/linux/starfive/patches-6.12/1011-net-stmmac-use-GFP_DMA32.patch2
66 files changed, 128 insertions, 579 deletions
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
index fb86423733..0000000000
--- a/target/linux/airoha/patches-6.12/014-01-v6.13-net-airoha-fix-PSE-memory-configuration-in-airoha_fe.patch
+++ /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
index a2e5c4fdd9..0000000000
--- a/target/linux/airoha/patches-6.12/014-02-v6.13-net-airoha-read-default-PSE-reserved-pages-value-bef.patch
+++ /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));
diff --git a/target/linux/airoha/patches-6.12/017-v6.13-net-airoha-Implement-BQL-support.patch b/target/linux/airoha/patches-6.12/017-v6.13-net-airoha-Implement-BQL-support.patch
index 7787207f43..dd432007ba 100644
--- a/target/linux/airoha/patches-6.12/017-v6.13-net-airoha-Implement-BQL-support.patch
+++ b/target/linux/airoha/patches-6.12/017-v6.13-net-airoha-Implement-BQL-support.patch
@@ -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
index 390d21b290..0000000000
--- a/target/linux/airoha/patches-6.12/031-01-v6.13-net-airoha-Read-completion-queue-data-in-airoha_qdma.patch
+++ /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);
- }
- }
diff --git a/target/linux/airoha/patches-6.12/048-01-v6.15-net-airoha-Move-airoha_eth-driver-in-a-dedicated-fol.patch b/target/linux/airoha/patches-6.12/048-01-v6.15-net-airoha-Move-airoha_eth-driver-in-a-dedicated-fol.patch
index d2771e6361..9b9a054839 100644
--- a/target/linux/airoha/patches-6.12/048-01-v6.15-net-airoha-Move-airoha_eth-driver-in-a-dedicated-fol.patch
+++ b/target/linux/airoha/patches-6.12/048-01-v6.15-net-airoha-Move-airoha_eth-driver-in-a-dedicated-fol.patch
@@ -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);
diff --git a/target/linux/airoha/patches-6.12/048-05-v6.15-net-airoha-Move-DSA-tag-in-DMA-descriptor.patch b/target/linux/airoha/patches-6.12/048-05-v6.15-net-airoha-Move-DSA-tag-in-DMA-descriptor.patch
index 45f5fe327d..4bd450ba4a 100644
--- a/target/linux/airoha/patches-6.12/048-05-v6.15-net-airoha-Move-DSA-tag-in-DMA-descriptor.patch
+++ b/target/linux/airoha/patches-6.12/048-05-v6.15-net-airoha-Move-DSA-tag-in-DMA-descriptor.patch
@@ -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);
}
diff --git a/target/linux/airoha/patches-6.12/048-13-v6.15-net-airoha-Introduce-flowtable-offload-support.patch b/target/linux/airoha/patches-6.12/048-13-v6.15-net-airoha-Introduce-flowtable-offload-support.patch
index ca7925304e..7bafddc0e3 100644
--- a/target/linux/airoha/patches-6.12/048-13-v6.15-net-airoha-Introduce-flowtable-offload-support.patch
+++ b/target/linux/airoha/patches-6.12/048-13-v6.15-net-airoha-Introduce-flowtable-offload-support.patch
@@ -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);
diff --git a/target/linux/airoha/patches-6.12/099-03-v6.19-net-airoha-Add-airoha_eth_soc_data-struct.patch b/target/linux/airoha/patches-6.12/099-03-v6.19-net-airoha-Add-airoha_eth_soc_data-struct.patch
index 9035e21447..63cb4de964 100644
--- a/target/linux/airoha/patches-6.12/099-03-v6.19-net-airoha-Add-airoha_eth_soc_data-struct.patch
+++ b/target/linux/airoha/patches-6.12/099-03-v6.19-net-airoha-Add-airoha_eth_soc_data-struct.patch
@@ -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);
}
diff --git a/target/linux/airoha/patches-6.12/099-10-v6.19-net-airoha-Refactor-src-port-configuration-in-airhoh.patch b/target/linux/airoha/patches-6.12/099-10-v6.19-net-airoha-Refactor-src-port-configuration-in-airhoh.patch
index cec079845c..81409b68c9 100644
--- a/target/linux/airoha/patches-6.12/099-10-v6.19-net-airoha-Refactor-src-port-configuration-in-airhoh.patch
+++ b/target/linux/airoha/patches-6.12/099-10-v6.19-net-airoha-Refactor-src-port-configuration-in-airhoh.patch
@@ -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",
};
diff --git a/target/linux/airoha/patches-6.12/099-12-v6.19-net-airoha-Add-AN7583-SoC-support.patch b/target/linux/airoha/patches-6.12/099-12-v6.19-net-airoha-Add-AN7583-SoC-support.patch
index 7f34a05ab5..c3b5ccd175 100644
--- a/target/linux/airoha/patches-6.12/099-12-v6.19-net-airoha-Add-AN7583-SoC-support.patch
+++ b/target/linux/airoha/patches-6.12/099-12-v6.19-net-airoha-Add-AN7583-SoC-support.patch
@@ -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
},
};
diff --git a/target/linux/airoha/patches-6.12/116-07-airoha-ethernet-drop-xsi-mac-reset.patch b/target/linux/airoha/patches-6.12/116-07-airoha-ethernet-drop-xsi-mac-reset.patch
index 7e0fc5a798..e0a1a51010 100644
--- a/target/linux/airoha/patches-6.12/116-07-airoha-ethernet-drop-xsi-mac-reset.patch
+++ b/target/linux/airoha/patches-6.12/116-07-airoha-ethernet-drop-xsi-mac-reset.patch
@@ -15,7 +15,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
--- a/drivers/net/ethernet/airoha/airoha_eth.c
+++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -3088,7 +3088,6 @@ static void airoha_remove(struct platfor
+@@ -3087,7 +3087,6 @@ static void airoha_remove(struct platfor
}
static const char * const en7581_xsi_rsts_names[] = {
@@ -23,7 +23,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
"hsi0-mac",
"hsi1-mac",
"hsi-mac",
-@@ -3120,7 +3119,6 @@ static int airoha_en7581_get_src_port_id
+@@ -3119,7 +3118,6 @@ static int airoha_en7581_get_src_port_id
}
static const char * const an7583_xsi_rsts_names[] = {
diff --git a/target/linux/airoha/patches-6.12/116-10-net-airoha-add-phylink-support-for-GDM2-4.patch b/target/linux/airoha/patches-6.12/116-10-net-airoha-add-phylink-support-for-GDM2-4.patch
index d0e658b81e..3bd2766fcc 100644
--- a/target/linux/airoha/patches-6.12/116-10-net-airoha-add-phylink-support-for-GDM2-4.patch
+++ b/target/linux/airoha/patches-6.12/116-10-net-airoha-add-phylink-support-for-GDM2-4.patch
@@ -210,8 +210,8 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
}
}
free_netdev(eth->napi_dev);
-@@ -3080,6 +3219,10 @@ static void airoha_remove(struct platfor
- airoha_dev_stop(port->dev);
+@@ -3079,6 +3218,10 @@ static void airoha_remove(struct platfor
+
unregister_netdev(port->dev);
airoha_metadata_dst_free(port);
+ if (airhoa_is_phy_external(port)) {
diff --git a/target/linux/airoha/patches-6.12/606-net-airoha-disable-external-phy-code-if-PCS_AIROHA-i.patch b/target/linux/airoha/patches-6.12/606-net-airoha-disable-external-phy-code-if-PCS_AIROHA-i.patch
index bcc80b002d..38796ea922 100644
--- a/target/linux/airoha/patches-6.12/606-net-airoha-disable-external-phy-code-if-PCS_AIROHA-i.patch
+++ b/target/linux/airoha/patches-6.12/606-net-airoha-disable-external-phy-code-if-PCS_AIROHA-i.patch
@@ -116,8 +116,8 @@ Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
}
}
free_netdev(eth->napi_dev);
-@@ -3222,10 +3236,12 @@ static void airoha_remove(struct platfor
- airoha_dev_stop(port->dev);
+@@ -3221,10 +3235,12 @@ static void airoha_remove(struct platfor
+
unregister_netdev(port->dev);
airoha_metadata_dst_free(port);
+#if defined(CONFIG_PCS_AIROHA)
diff --git a/target/linux/airoha/patches-6.12/886-uart-add-en7523-support.patch b/target/linux/airoha/patches-6.12/886-uart-add-en7523-support.patch
index cad2a715d9..486208f71a 100644
--- a/target/linux/airoha/patches-6.12/886-uart-add-en7523-support.patch
+++ b/target/linux/airoha/patches-6.12/886-uart-add-en7523-support.patch
@@ -122,7 +122,7 @@
};
/* 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);
diff --git a/target/linux/ath79/patches-6.12/400-mtd-nor-support-mtd-name-from-device-tree.patch b/target/linux/ath79/patches-6.12/400-mtd-nor-support-mtd-name-from-device-tree.patch
index 39f3fa76fc..ccef8fe7ef 100644
--- a/target/linux/ath79/patches-6.12/400-mtd-nor-support-mtd-name-from-device-tree.patch
+++ b/target/linux/ath79/patches-6.12/400-mtd-nor-support-mtd-name-from-device-tree.patch
@@ -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;
diff --git a/target/linux/ath79/patches-6.12/900-unaligned_access_hacks.patch b/target/linux/ath79/patches-6.12/900-unaligned_access_hacks.patch
index 43017e10c2..4a5a1a32bd 100644
--- a/target/linux/ath79/patches-6.12/900-unaligned_access_hacks.patch
+++ b/target/linux/ath79/patches-6.12/900-unaligned_access_hacks.patch
@@ -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
diff --git a/target/linux/bcm27xx/patches-6.12/950-0005-Revert-net-bcmgenet-Request-APD-DLL-disable-and-IDDQ.patch b/target/linux/bcm27xx/patches-6.12/950-0005-Revert-net-bcmgenet-Request-APD-DLL-disable-and-IDDQ.patch
index 0bde0756e5..75aac5c5f3 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0005-Revert-net-bcmgenet-Request-APD-DLL-disable-and-IDDQ.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0005-Revert-net-bcmgenet-Request-APD-DLL-disable-and-IDDQ.patch
@@ -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;
diff --git a/target/linux/bcm27xx/patches-6.12/950-0054-Add-dwc_otg-driver.patch b/target/linux/bcm27xx/patches-6.12/950-0054-Add-dwc_otg-driver.patch
index 9502cdf2cf..47fda506c3 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0054-Add-dwc_otg-driver.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0054-Add-dwc_otg-driver.patch
@@ -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);
diff --git a/target/linux/bcm27xx/patches-6.12/950-0073-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch b/target/linux/bcm27xx/patches-6.12/950-0073-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch
index fdb67cea01..0f750e485c 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0073-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0073-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch
@@ -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),
diff --git a/target/linux/bcm27xx/patches-6.12/950-0094-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch b/target/linux/bcm27xx/patches-6.12/950-0094-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch
index 50c86eba3c..930c7493ae 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0094-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0094-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch
@@ -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;
diff --git a/target/linux/bcm27xx/patches-6.12/950-0096-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch b/target/linux/bcm27xx/patches-6.12/950-0096-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch
index c885918f8f..9dd0937ddc 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0096-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0096-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch
@@ -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;
diff --git a/target/linux/bcm27xx/patches-6.12/950-0099-lan78xx-Enable-LEDs-and-auto-negotiation.patch b/target/linux/bcm27xx/patches-6.12/950-0099-lan78xx-Enable-LEDs-and-auto-negotiation.patch
index 8b0be11deb..a92714c493 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0099-lan78xx-Enable-LEDs-and-auto-negotiation.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0099-lan78xx-Enable-LEDs-and-auto-negotiation.patch
@@ -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_;
}
}
diff --git a/target/linux/bcm27xx/patches-6.12/950-0122-bcmgenet-Better-coalescing-parameter-defaults.patch b/target/linux/bcm27xx/patches-6.12/950-0122-bcmgenet-Better-coalescing-parameter-defaults.patch
index 8a562bf1fd..a1c80428de 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0122-bcmgenet-Better-coalescing-parameter-defaults.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0122-bcmgenet-Better-coalescing-parameter-defaults.patch
@@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell <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 */
diff --git a/target/linux/bcm27xx/patches-6.12/950-0123-net-genet-enable-link-energy-detect-powerdown-for-ex.patch b/target/linux/bcm27xx/patches-6.12/950-0123-net-genet-enable-link-energy-detect-powerdown-for-ex.patch
index 99c43b28fb..7c1243a59d 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0123-net-genet-enable-link-energy-detect-powerdown-for-ex.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0123-net-genet-enable-link-energy-detect-powerdown-for-ex.patch
@@ -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;
diff --git a/target/linux/bcm27xx/patches-6.12/950-0124-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch b/target/linux/bcm27xx/patches-6.12/950-0124-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch
index 77c0f826ed..c31cb6838c 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0124-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0124-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch
@@ -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);
diff --git a/target/linux/bcm27xx/patches-6.12/950-0133-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch b/target/linux/bcm27xx/patches-6.12/950-0133-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch
index 27eeecba1a..7c8e6cc714 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0133-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0133-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch
@@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <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);
diff --git a/target/linux/bcm27xx/patches-6.12/950-0172-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch b/target/linux/bcm27xx/patches-6.12/950-0172-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch
index df416916c8..4d5aae743a 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0172-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0172-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch
@@ -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;
}
diff --git a/target/linux/bcm27xx/patches-6.12/950-0297-net-bcmgenet-Add-eee-module-parameter.patch b/target/linux/bcm27xx/patches-6.12/950-0297-net-bcmgenet-Add-eee-module-parameter.patch
index 9b2df1979c..903c8cdf87 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0297-net-bcmgenet-Add-eee-module-parameter.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0297-net-bcmgenet-Add-eee-module-parameter.patch
@@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <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);
diff --git a/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch b/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
index b99b85649a..066de8ee26 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
@@ -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);
diff --git a/target/linux/bcm27xx/patches-6.12/950-0344-sdhci-Add-SD-Express-hook.patch b/target/linux/bcm27xx/patches-6.12/950-0344-sdhci-Add-SD-Express-hook.patch
index 67fefbf0a5..c351e132d0 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0344-sdhci-Add-SD-Express-hook.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0344-sdhci-Add-SD-Express-hook.patch
@@ -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;
diff --git a/target/linux/bcm27xx/patches-6.12/950-0347-net-macb-Also-set-DMA-coherent-mask.patch b/target/linux/bcm27xx/patches-6.12/950-0347-net-macb-Also-set-DMA-coherent-mask.patch
index 92495f3981..dcac114e9f 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0347-net-macb-Also-set-DMA-coherent-mask.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0347-net-macb-Also-set-DMA-coherent-mask.patch
@@ -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,
diff --git a/target/linux/bcm27xx/patches-6.12/950-0371-soc-bcm-bcm2835-power-Add-support-for-BCM2712.patch b/target/linux/bcm27xx/patches-6.12/950-0371-soc-bcm-bcm2835-power-Add-support-for-BCM2712.patch
index 62564233bc..bfaa37e08e 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0371-soc-bcm-bcm2835-power-Add-support-for-BCM2712.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0371-soc-bcm-bcm2835-power-Add-support-for-BCM2712.patch
@@ -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;
diff --git a/target/linux/bcm27xx/patches-6.12/950-0437-mmc-sdhci-extend-maximum-ADMA-transfer-length-to-4Mi.patch b/target/linux/bcm27xx/patches-6.12/950-0437-mmc-sdhci-extend-maximum-ADMA-transfer-length-to-4Mi.patch
index dc580e53ee..39c26127fb 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0437-mmc-sdhci-extend-maximum-ADMA-transfer-length-to-4Mi.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0437-mmc-sdhci-extend-maximum-ADMA-transfer-length-to-4Mi.patch
@@ -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);
/*
diff --git a/target/linux/bcm27xx/patches-6.12/950-0528-drm-Increase-plane_mask-to-64bit.patch b/target/linux/bcm27xx/patches-6.12/950-0528-drm-Increase-plane_mask-to-64bit.patch
index 1ae93a6b42..2c4861f986 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0528-drm-Increase-plane_mask-to-64bit.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0528-drm-Increase-plane_mask-to-64bit.patch
@@ -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;
diff --git a/target/linux/bcm27xx/patches-6.12/950-0565-net-macb-Add-support-for-Raspberry-Pi-RP1-ethernet-c.patch b/target/linux/bcm27xx/patches-6.12/950-0565-net-macb-Add-support-for-Raspberry-Pi-RP1-ethernet-c.patch
index 3e1dce2bad..ae6f61d81c 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0565-net-macb-Add-support-for-Raspberry-Pi-RP1-ethernet-c.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0565-net-macb-Add-support-for-Raspberry-Pi-RP1-ethernet-c.patch
@@ -15,7 +15,7 @@ Signed-off-by: Dave Stevenson <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 },
diff --git a/target/linux/bcm27xx/patches-6.12/950-0685-nvme-pci-Disable-Host-Memory-Buffer-usage.patch b/target/linux/bcm27xx/patches-6.12/950-0685-nvme-pci-Disable-Host-Memory-Buffer-usage.patch
index ec963fd3e7..9e5476c9fd 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0685-nvme-pci-Disable-Host-Memory-Buffer-usage.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0685-nvme-pci-Disable-Host-Memory-Buffer-usage.patch
@@ -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);
}
}
diff --git a/target/linux/bcm27xx/patches-6.12/950-0692-cgroup-Add-cgroup_enable-option.patch b/target/linux/bcm27xx/patches-6.12/950-0692-cgroup-Add-cgroup_enable-option.patch
index 64176cbfc7..db8f3304cd 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0692-cgroup-Add-cgroup_enable-option.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0692-cgroup-Add-cgroup_enable-option.patch
@@ -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);
diff --git a/target/linux/bcm4908/patches-6.12/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch b/target/linux/bcm4908/patches-6.12/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch
index b3ccf1623a..db35928150 100644
--- a/target/linux/bcm4908/patches-6.12/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch
+++ b/target/linux/bcm4908/patches-6.12/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch
@@ -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;
diff --git a/target/linux/bcm4908/patches-6.12/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch b/target/linux/bcm4908/patches-6.12/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch
index 36b1c23946..6e91c0208e 100644
--- a/target/linux/bcm4908/patches-6.12/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch
+++ b/target/linux/bcm4908/patches-6.12/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch
@@ -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);
diff --git a/target/linux/generic/backport-6.12/420-01-v6.16-mtd-rawnand-brcmnand-remove-unused-parameters.patch b/target/linux/generic/backport-6.12/420-01-v6.16-mtd-rawnand-brcmnand-remove-unused-parameters.patch
index 3bc6038711..9d9061ed35 100644
--- a/target/linux/generic/backport-6.12/420-01-v6.16-mtd-rawnand-brcmnand-remove-unused-parameters.patch
+++ b/target/linux/generic/backport-6.12/420-01-v6.16-mtd-rawnand-brcmnand-remove-unused-parameters.patch
@@ -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;
diff --git a/target/linux/generic/backport-6.12/420-03-v6.16-mtd-rawnand-brcmnand-legacy-exec_op-implementation.patch b/target/linux/generic/backport-6.12/420-03-v6.16-mtd-rawnand-brcmnand-legacy-exec_op-implementation.patch
index 6c75c2bbf2..13e55f1e72 100644
--- a/target/linux/generic/backport-6.12/420-03-v6.16-mtd-rawnand-brcmnand-legacy-exec_op-implementation.patch
+++ b/target/linux/generic/backport-6.12/420-03-v6.16-mtd-rawnand-brcmnand-legacy-exec_op-implementation.patch
@@ -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;
diff --git a/target/linux/generic/backport-6.12/710-v6.16-igc-enable-HW-vlan-tag-insertion-stripping-by-defaul.patch b/target/linux/generic/backport-6.12/710-v6.16-igc-enable-HW-vlan-tag-insertion-stripping-by-defaul.patch
index 48d03f15e7..fe36bc3b05 100644
--- a/target/linux/generic/backport-6.12/710-v6.16-igc-enable-HW-vlan-tag-insertion-stripping-by-defaul.patch
+++ b/target/linux/generic/backport-6.12/710-v6.16-igc-enable-HW-vlan-tag-insertion-stripping-by-defaul.patch
@@ -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;
diff --git a/target/linux/generic/backport-6.12/730-03-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch b/target/linux/generic/backport-6.12/730-03-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch
index 6822dc0f22..95e8638c39 100644
--- a/target/linux/generic/backport-6.12/730-03-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch
+++ b/target/linux/generic/backport-6.12/730-03-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch
@@ -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;
diff --git a/target/linux/generic/hack-6.12/253-ksmbd-config.patch b/target/linux/generic/hack-6.12/253-ksmbd-config.patch
index d9587fbe84..0b74e88cb8 100644
--- a/target/linux/generic/hack-6.12/253-ksmbd-config.patch
+++ b/target/linux/generic/hack-6.12/253-ksmbd-config.patch
@@ -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
diff --git a/target/linux/generic/hack-6.12/721-net-add-packet-mangeling.patch b/target/linux/generic/hack-6.12/721-net-add-packet-mangeling.patch
index 32228bb34c..1fb8809180 100644
--- a/target/linux/generic/hack-6.12/721-net-add-packet-mangeling.patch
+++ b/target/linux/generic/hack-6.12/721-net-add-packet-mangeling.patch
@@ -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
diff --git a/target/linux/generic/kernel-6.12 b/target/linux/generic/kernel-6.12
index 848f89c66c..71021f1a38 100644
--- a/target/linux/generic/kernel-6.12
+++ b/target/linux/generic/kernel-6.12
@@ -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
diff --git a/target/linux/generic/pending-6.12/103-kbuild-export-SUBARCH.patch b/target/linux/generic/pending-6.12/103-kbuild-export-SUBARCH.patch
index 0cedbeca40..46c88a0682 100644
--- a/target/linux/generic/pending-6.12/103-kbuild-export-SUBARCH.patch
+++ b/target/linux/generic/pending-6.12/103-kbuild-export-SUBARCH.patch
@@ -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)
diff --git a/target/linux/generic/pending-6.12/203-kallsyms_uncompressed.patch b/target/linux/generic/pending-6.12/203-kallsyms_uncompressed.patch
index 40de8f6072..5e9a0da585 100644
--- a/target/linux/generic/pending-6.12/203-kallsyms_uncompressed.patch
+++ b/target/linux/generic/pending-6.12/203-kallsyms_uncompressed.patch
@@ -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
diff --git a/target/linux/generic/pending-6.12/402-mtd-spi-nor-write-support-for-minor-aligned-partitions.patch b/target/linux/generic/pending-6.12/402-mtd-spi-nor-write-support-for-minor-aligned-partitions.patch
index e8ad204337..c9bbe1442b 100644
--- a/target/linux/generic/pending-6.12/402-mtd-spi-nor-write-support-for-minor-aligned-partitions.patch
+++ b/target/linux/generic/pending-6.12/402-mtd-spi-nor-write-support-for-minor-aligned-partitions.patch
@@ -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
index dd0a4a57f5..0000000000
--- a/target/linux/generic/pending-6.12/620-net-sfp-improve-Huawei-MA5671a-fixup.patch
+++ /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.
diff --git a/target/linux/generic/pending-6.12/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch b/target/linux/generic/pending-6.12/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
index d07b282e25..31a22db7f9 100644
--- a/target/linux/generic/pending-6.12/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
+++ b/target/linux/generic/pending-6.12/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
@@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <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);
diff --git a/target/linux/generic/pending-6.12/703-phy-add-detach-callback-to-struct-phy_driver.patch b/target/linux/generic/pending-6.12/703-phy-add-detach-callback-to-struct-phy_driver.patch
index 4e00118e53..474470b806 100644
--- a/target/linux/generic/pending-6.12/703-phy-add-detach-callback-to-struct-phy_driver.patch
+++ b/target/linux/generic/pending-6.12/703-phy-add-detach-callback-to-struct-phy_driver.patch
@@ -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
index 126275c7ec..0000000000
--- a/target/linux/generic/pending-6.12/704-net-phy-register-phy-led_triggers-during-probe-to-av.patch
+++ /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);
diff --git a/target/linux/generic/pending-6.12/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch b/target/linux/generic/pending-6.12/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch
index 50d3403772..0e55a56099 100644
--- a/target/linux/generic/pending-6.12/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch
+++ b/target/linux/generic/pending-6.12/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch
@@ -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
diff --git a/target/linux/generic/pending-6.12/834-ledtrig-libata.patch b/target/linux/generic/pending-6.12/834-ledtrig-libata.patch
index 4b497d9fbf..f4458afb12 100644
--- a/target/linux/generic/pending-6.12/834-ledtrig-libata.patch
+++ b/target/linux/generic/pending-6.12/834-ledtrig-libata.patch
@@ -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;
}
diff --git a/target/linux/generic/pending-6.12/920-mangle_bootargs.patch b/target/linux/generic/pending-6.12/920-mangle_bootargs.patch
index 3bf2fce4fb..aca7ae15cc 100644
--- a/target/linux/generic/pending-6.12/920-mangle_bootargs.patch
+++ b/target/linux/generic/pending-6.12/920-mangle_bootargs.patch
@@ -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
diff --git a/target/linux/mediatek/patches-6.12/410-bt-mtk-serial-fix.patch b/target/linux/mediatek/patches-6.12/410-bt-mtk-serial-fix.patch
index 325b3ad795..ddbdc981a3 100644
--- a/target/linux/mediatek/patches-6.12/410-bt-mtk-serial-fix.patch
+++ b/target/linux/mediatek/patches-6.12/410-bt-mtk-serial-fix.patch
@@ -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;
diff --git a/target/linux/mediatek/patches-6.12/436-drivers-mtd-spi-nor-Add-calibration-support-for-spi-.patch b/target/linux/mediatek/patches-6.12/436-drivers-mtd-spi-nor-Add-calibration-support-for-spi-.patch
index 27c488d3e0..caf65e2a92 100644
--- a/target/linux/mediatek/patches-6.12/436-drivers-mtd-spi-nor-Add-calibration-support-for-spi-.patch
+++ b/target/linux/mediatek/patches-6.12/436-drivers-mtd-spi-nor-Add-calibration-support-for-spi-.patch
@@ -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;
diff --git a/target/linux/mediatek/patches-6.12/901-arm-add-cmdline-override.patch b/target/linux/mediatek/patches-6.12/901-arm-add-cmdline-override.patch
index 2a6cf46cae..a79ac703b9 100644
--- a/target/linux/mediatek/patches-6.12/901-arm-add-cmdline-override.patch
+++ b/target/linux/mediatek/patches-6.12/901-arm-add-cmdline-override.patch
@@ -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
diff --git a/target/linux/mvebu/patches-6.12/830-02-i2c-pxa-prevent-calling-of-the-generic-recovery-init-code.patch b/target/linux/mvebu/patches-6.12/830-02-i2c-pxa-prevent-calling-of-the-generic-recovery-init-code.patch
index a67ac4cdfd..6822eafc6a 100644
--- a/target/linux/mvebu/patches-6.12/830-02-i2c-pxa-prevent-calling-of-the-generic-recovery-init-code.patch
+++ b/target/linux/mvebu/patches-6.12/830-02-i2c-pxa-prevent-calling-of-the-generic-recovery-init-code.patch
@@ -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;
}
diff --git a/target/linux/mvebu/patches-6.12/830-03-i2c-pxa-handle-Early-Bus-Busy-condition-on-Armada-3700.patch b/target/linux/mvebu/patches-6.12/830-03-i2c-pxa-handle-Early-Bus-Busy-condition-on-Armada-3700.patch
index 77c3a2c24c..a03127bee4 100644
--- a/target/linux/mvebu/patches-6.12/830-03-i2c-pxa-handle-Early-Bus-Busy-condition-on-Armada-3700.patch
+++ b/target/linux/mvebu/patches-6.12/830-03-i2c-pxa-handle-Early-Bus-Busy-condition-on-Armada-3700.patch
@@ -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;
diff --git a/target/linux/realtek/patches-6.12/700-dsa-mdio-increase-max-ports-for-rtl839x-rtl931x.patch b/target/linux/realtek/patches-6.12/700-dsa-mdio-increase-max-ports-for-rtl839x-rtl931x.patch
index 29500e47fe..9b4bdb41b3 100644
--- a/target/linux/realtek/patches-6.12/700-dsa-mdio-increase-max-ports-for-rtl839x-rtl931x.patch
+++ b/target/linux/realtek/patches-6.12/700-dsa-mdio-increase-max-ports-for-rtl839x-rtl931x.patch
@@ -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
-@@ -475,7 +475,7 @@ struct dsa_switch {
+@@ -476,7 +476,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 */
-@@ -611,24 +611,24 @@ static inline bool dsa_is_user_port(stru
+@@ -612,24 +612,24 @@ static inline bool dsa_is_user_port(stru
dsa_switch_for_each_port_continue_reverse((_dp), (_ds)) \
if (dsa_port_is_cpu((_dp)))
diff --git a/target/linux/rockchip/patches-6.12/030-01-v6.13-irqchip-gic-v3-its-Share-ITS-tables-with-a-non-trust.patch b/target/linux/rockchip/patches-6.12/030-01-v6.13-irqchip-gic-v3-its-Share-ITS-tables-with-a-non-trust.patch
index ef1e51f1cc..4311203ffe 100644
--- a/target/linux/rockchip/patches-6.12/030-01-v6.13-irqchip-gic-v3-its-Share-ITS-tables-with-a-non-trust.patch
+++ b/target/linux/rockchip/patches-6.12/030-01-v6.13-irqchip-gic-v3-its-Share-ITS-tables-with-a-non-trust.patch
@@ -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;
diff --git a/target/linux/rockchip/patches-6.12/030-03-v6.15-irqchip-gic-v3-Add-Rockchip-3568002-erratum-workaround.patch b/target/linux/rockchip/patches-6.12/030-03-v6.15-irqchip-gic-v3-Add-Rockchip-3568002-erratum-workaround.patch
index 388e256f87..351a91da80 100644
--- a/target/linux/rockchip/patches-6.12/030-03-v6.15-irqchip-gic-v3-Add-Rockchip-3568002-erratum-workaround.patch
+++ b/target/linux/rockchip/patches-6.12/030-03-v6.15-irqchip-gic-v3-Add-Rockchip-3568002-erratum-workaround.patch
@@ -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,
},
diff --git a/target/linux/starfive/patches-6.12/0009-uart-8250-Add-dw-auto-flow-ctrl-support.patch b/target/linux/starfive/patches-6.12/0009-uart-8250-Add-dw-auto-flow-ctrl-support.patch
index 5b7d42c716..92515582c6 100644
--- a/target/linux/starfive/patches-6.12/0009-uart-8250-Add-dw-auto-flow-ctrl-support.patch
+++ b/target/linux/starfive/patches-6.12/0009-uart-8250-Add-dw-auto-flow-ctrl-support.patch
@@ -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;
}
diff --git a/target/linux/starfive/patches-6.12/1011-net-stmmac-use-GFP_DMA32.patch b/target/linux/starfive/patches-6.12/1011-net-stmmac-use-GFP_DMA32.patch
index 7629d4dad1..7ddad83585 100644
--- a/target/linux/starfive/patches-6.12/1011-net-stmmac-use-GFP_DMA32.patch
+++ b/target/linux/starfive/patches-6.12/1011-net-stmmac-use-GFP_DMA32.patch
@@ -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;