summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGoetz Goerisch2026-04-01 19:11:59 +0000
committerHauke Mehrtens2026-04-12 18:06:33 +0000
commit032575c72a2237db2c74536283bcfa6d3b63c4cb (patch)
tree2c1b3d7a4a7462856645e30f4a68affcffd81400
parent9d0bafca525d8309b836e7fa1780f9decb3a0c20 (diff)
downloadopenwrt-032575c72a2237db2c74536283bcfa6d3b63c4cb.tar.gz
kernel: bump 6.6 to 6.6.130
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.130 Manually refreshed patches: generic/hack-6.6/790-SFP-GE-T-ignore-TX_FAULT.patch [1] generic/pending-6.6/680-net-add-TCP-fraglist-GRO-support.patch [4] Dropped upstreamed patches: airoha/patches-6.6/083-01-v6.13-resource-Add-resource-set-range-and-size-helpers.patch [2] generic/pending-6.6/685-net-gso-fix-tcp-fraglist-segmentation-after-pull-fro.patch [3] All other patches autorefreshed. [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.130&id=783025a3babbc526dd0b31f36cc4edc8c2153c8a [2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.130&id=ffe8617e2e5b388d43462a56c5042e35f701195b [3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.130&id=e19201b0c67da5146eaac06fd3d44bd7945c3448 [4] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.130&id=1f2b859225eb8d1ec974214ce4a581f8c528ae57 Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com> Link: https://github.com/openwrt/openwrt/pull/22752 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-rw-r--r--include/kernel-6.64
-rw-r--r--target/linux/airoha/patches-6.6/083-01-v6.13-resource-Add-resource-set-range-and-size-helpers.patch73
-rw-r--r--target/linux/airoha/patches-6.6/105-uart-add-en7523-support.patch2
-rw-r--r--target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch6
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0065-cgroup-Disable-cgroup-memory-by-default.patch8
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0077-sound-Demote-deferral-errors-to-INFO-level.patch4
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0081-lan78xx-Enable-LEDs-and-auto-negotiation.patch6
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0087-Add-dwc_otg-driver.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0103-Improve-__copy_to_user-and-__copy_from_user-performa.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch4
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0120-lan78xx-Read-initial-EEE-status-from-DT.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0125-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0127-lan78xx-Move-enabling-of-EEE-into-PHY-init-code.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0133-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0204-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch4
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0417-hwmon-aht10-Add-DT-compatible-string.patch4
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch6
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0514-sdhci-Add-SD-Express-hook.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0518-net-macb-Also-set-DMA-coherent-mask.patch40
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0552-soc-bcm-bcm2835-power-Add-support-for-BCM2712.patch8
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-1059-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch4
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-1116-mmc-sdhci-extend-maximum-ADMA-transfer-length-to-4Mi.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-1340-mm-numa-Allow-override-of-kernel-s-default-NUMA-poli.patch10
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-1349-cgroup-Use-kernel-command-line-to-disable-memory-cgr.patch8
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-1366-drm-Increase-plane_mask-to-64bit.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-1423-net-macb-Add-support-for-Raspberry-Pi-RP1-ethernet-c.patch4
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-1438-nvme-pci-Disable-Host-Memory-Buffer-usage.patch6
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-1445-fixup-cgroup-Use-kernel-command-line-to-disable-memo.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-1452-Revert-PCI-Warn-if-no-host-bridge-NUMA-node-info.patch2
-rw-r--r--target/linux/bcm4908/patches-6.6/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch2
-rw-r--r--target/linux/bcm4908/patches-6.6/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch2
-rw-r--r--target/linux/generic/backport-6.6/400-v6.9-mtd-rawnand-brcmnand-Support-write-protection-settin.patch2
-rw-r--r--target/linux/generic/backport-6.6/611-01-v6.11-udp-Allow-GSO-transmit-from-devices-with-no-checksum.patch2
-rw-r--r--target/linux/generic/backport-6.6/714-v6.8-02-net-phy-extend-PHY-package-API-to-support-multiple-g.patch14
-rw-r--r--target/linux/generic/backport-6.6/716-v6.9-03-net-phy-add-devm-of_phy_package_join-helper.patch8
-rw-r--r--target/linux/generic/backport-6.6/716-v6.9-06-net-phy-provide-whether-link-has-changed-in-c37_read.patch4
-rw-r--r--target/linux/generic/backport-6.6/751-01-v6.8-net-ethernet-mediatek-split-tx-and-rx-fields-in-mtk_.patch20
-rw-r--r--target/linux/generic/backport-6.6/751-02-v6.8-net-ethernet-mediatek-use-QDMA-instead-of-ADMAv2-on-.patch6
-rw-r--r--target/linux/generic/backport-6.6/752-25-v6.10-net-ethernet-mtk_eth_soc-handle-dma-buffer-size-soc-.patch26
-rw-r--r--target/linux/generic/backport-6.6/752-26-v6.10-net-ethernet-mtk_eth_soc-ppe-add-support-for-multipl.patch14
-rw-r--r--target/linux/generic/backport-6.6/752-30-v6.10-net-ethernet-mtk_eth_soc-implement-.-get-set-_pausep.patch4
-rw-r--r--target/linux/generic/backport-6.6/763-v6.10-net-dsa-introduce-dsa_phylink_to_port.patch2
-rw-r--r--target/linux/generic/backport-6.6/764-v6.10-net-dsa-allow-DSA-switch-drivers-to-provide-their-ow.patch4
-rw-r--r--target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch12
-rw-r--r--target/linux/generic/backport-6.6/785-01-v6.8-net-sfp-rework-the-RollBall-PHY-waiting-code.patch18
-rw-r--r--target/linux/generic/backport-6.6/785-02-v6.8-net-sfp-fix-PHY-discovery-for-FS-SFP-10G-T-module.patch12
-rw-r--r--target/linux/generic/backport-6.6/785-03-v6.10-net-sfp-update-comment-for-FS-SFP-10G-T-quirk.patch4
-rw-r--r--target/linux/generic/backport-6.6/785-04-v6.10-net-sfp-enhance-quirk-for-Fibrestore-2.5G-copper-SFP-module.patch8
-rw-r--r--target/linux/generic/backport-6.6/785-05-v6.15-net-sfp-add-quirk-for-FS-SFP-10GM-T-copper-SFP-module.patch6
-rw-r--r--target/linux/generic/backport-6.6/792-v6.16-igc-enable-HW-vlan-tag-insertion-stripping-by-defaul.patch2
-rw-r--r--target/linux/generic/backport-6.6/835-v6.9-net-phy-add-support-for-PHY-LEDs-polarity-modes.patch4
-rw-r--r--target/linux/generic/backport-6.6/841-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch2
-rw-r--r--target/linux/generic/hack-6.6/790-SFP-GE-T-ignore-TX_FAULT.patch29
-rw-r--r--target/linux/generic/pending-6.6/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch22
-rw-r--r--target/linux/generic/pending-6.6/680-net-add-TCP-fraglist-GRO-support.patch177
-rw-r--r--target/linux/generic/pending-6.6/685-net-gso-fix-tcp-fraglist-segmentation-after-pull-fro.patch74
-rw-r--r--target/linux/generic/pending-6.6/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch2
-rw-r--r--target/linux/generic/pending-6.6/703-phy-add-detach-callback-to-struct-phy_driver.patch2
-rw-r--r--target/linux/generic/pending-6.6/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch14
-rw-r--r--target/linux/generic/pending-6.6/738-01-net-ethernet-mtk_eth_soc-reduce-rx-ring-size-for-older.patch16
-rw-r--r--target/linux/generic/pending-6.6/738-02-net-ethernet-mtk_eth_soc-do-not-enable-page-pool-sta.patch4
-rw-r--r--target/linux/generic/pending-6.6/810-pci_disable_common_quirks.patch6
-rw-r--r--target/linux/mediatek/patches-6.6/410-bt-mtk-serial-fix.patch2
-rw-r--r--target/linux/mvebu/patches-6.6/830-02-i2c-pxa-prevent-calling-of-the-generic-recovery-init-code.patch4
-rw-r--r--target/linux/mvebu/patches-6.6/830-03-i2c-pxa-handle-Early-Bus-Busy-condition-on-Armada-3700.patch14
-rw-r--r--target/linux/realtek/patches-6.6/710-net-phy-sfp-re-probe-modules-on-DEV_UP-event.patch2
-rw-r--r--target/linux/realtek/patches-6.6/714-net-phy-sfp-add-support-for-SMBus.patch6
-rw-r--r--target/linux/rockchip/patches-6.6/020-v6.13-irqchip-gic-v3-its-Share-ITS-tables-with-a-non-trust.patch16
-rw-r--r--target/linux/rockchip/patches-6.6/022-v6.15-irqchip-gic-v3-Add-Rockchip-3568002-erratum-workaround.patch4
-rw-r--r--target/linux/starfive/patches-6.6/0066-uart-8250-Add-dw-auto-flow-ctrl-support.patch2
-rw-r--r--target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch2
-rw-r--r--target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch2
72 files changed, 238 insertions, 563 deletions
diff --git a/include/kernel-6.6 b/include/kernel-6.6
index 44dfecfe1e..c9ded66880 100644
--- a/include/kernel-6.6
+++ b/include/kernel-6.6
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.6 = .129
-LINUX_KERNEL_HASH-6.6.129 = caa08f0122224fbbfab177e2a37cc2a94a0046bd2e7e87f03f8913f2b812448a
+LINUX_VERSION-6.6 = .130
+LINUX_KERNEL_HASH-6.6.130 = 2460aa67b9494cff6f9fc2b235470867d2005469d40f29da452e8ee82940248d
diff --git a/target/linux/airoha/patches-6.6/083-01-v6.13-resource-Add-resource-set-range-and-size-helpers.patch b/target/linux/airoha/patches-6.6/083-01-v6.13-resource-Add-resource-set-range-and-size-helpers.patch
deleted file mode 100644
index 36a5300ad0..0000000000
--- a/target/linux/airoha/patches-6.6/083-01-v6.13-resource-Add-resource-set-range-and-size-helpers.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 9fb6fef0fb49124291837af1da5028f79d53f98e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>
-Date: Fri, 14 Jun 2024 13:06:03 +0300
-Subject: [PATCH] resource: Add resource set range and size helpers
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Setting the end address for a resource with a given size lacks a helper and
-is therefore coded manually unlike the getter side which has a helper for
-resource size calculation. Also, almost all callsites that calculate the
-end address for a resource also set the start address right before it like
-this:
-
- res->start = start_addr;
- res->end = res->start + size - 1;
-
-Add resource_set_range(res, start_addr, size) that sets the start address
-and calculates the end address to simplify this often repeated fragment.
-
-Also add resource_set_size() for the cases where setting the start address
-of the resource is not necessary but mention in its kerneldoc that
-resource_set_range() is preferred when setting both addresses.
-
-Link: https://lore.kernel.org/r/20240614100606.15830-2-ilpo.jarvinen@linux.intel.com
-Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
-Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
-Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
----
- include/linux/ioport.h | 32 ++++++++++++++++++++++++++++++++
- 1 file changed, 32 insertions(+)
-
---- a/include/linux/ioport.h
-+++ b/include/linux/ioport.h
-@@ -216,6 +216,38 @@ struct resource *lookup_resource(struct
- int adjust_resource(struct resource *res, resource_size_t start,
- resource_size_t size);
- resource_size_t resource_alignment(struct resource *res);
-+
-+/**
-+ * resource_set_size - Calculate resource end address from size and start
-+ * @res: Resource descriptor
-+ * @size: Size of the resource
-+ *
-+ * Calculate the end address for @res based on @size.
-+ *
-+ * Note: The start address of @res must be set when calling this function.
-+ * Prefer resource_set_range() if setting both the start address and @size.
-+ */
-+static inline void resource_set_size(struct resource *res, resource_size_t size)
-+{
-+ res->end = res->start + size - 1;
-+}
-+
-+/**
-+ * resource_set_range - Set resource start and end addresses
-+ * @res: Resource descriptor
-+ * @start: Start address for the resource
-+ * @size: Size of the resource
-+ *
-+ * Set @res start address and calculate the end address based on @size.
-+ */
-+static inline void resource_set_range(struct resource *res,
-+ resource_size_t start,
-+ resource_size_t size)
-+{
-+ res->start = start;
-+ resource_set_size(res, size);
-+}
-+
- static inline resource_size_t resource_size(const struct resource *res)
- {
- return res->end - res->start + 1;
diff --git a/target/linux/airoha/patches-6.6/105-uart-add-en7523-support.patch b/target/linux/airoha/patches-6.6/105-uart-add-en7523-support.patch
index 39a4944daf..f8b6ca6ed4 100644
--- a/target/linux/airoha/patches-6.6/105-uart-add-en7523-support.patch
+++ b/target/linux/airoha/patches-6.6/105-uart-add-en7523-support.patch
@@ -122,7 +122,7 @@
};
/* Uart divisor latch read */
-@@ -2888,6 +2896,12 @@ serial8250_do_set_termios(struct uart_po
+@@ -2894,6 +2902,12 @@ serial8250_do_set_termios(struct uart_po
serial8250_set_divisor(port, baud, quot, frac);
diff --git a/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch b/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch
index f4a2110f8c..99290d2a55 100644
--- a/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch
+++ b/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch
@@ -259,7 +259,7 @@ SVN-Revision: 35130
#include <linux/uaccess.h>
#include <linux/ipv6.h>
#include <linux/icmpv6.h>
-@@ -891,10 +892,10 @@ static void tcp_v6_send_response(const s
+@@ -892,10 +893,10 @@ static void tcp_v6_send_response(const s
topt = (__be32 *)(t1 + 1);
if (tsecr) {
@@ -867,7 +867,7 @@ SVN-Revision: 35130
iph->daddr == iph2->daddr && iph->saddr == iph2->saddr)
return segs;
-@@ -267,7 +267,7 @@ struct sk_buff *tcp_gro_lookup(struct li
+@@ -268,7 +268,7 @@ struct sk_buff *tcp_gro_lookup(struct li
continue;
th2 = tcp_hdr(p);
@@ -876,7 +876,7 @@ SVN-Revision: 35130
NAPI_GRO_CB(p)->same_flow = 0;
continue;
}
-@@ -333,8 +333,8 @@ struct sk_buff *tcp_gro_receive(struct l
+@@ -334,8 +334,8 @@ struct sk_buff *tcp_gro_receive(struct l
~(TCP_FLAG_CWR | TCP_FLAG_FIN | TCP_FLAG_PSH));
flush |= (__force int)(th->ack_seq ^ th2->ack_seq);
for (i = sizeof(*th); i < thlen; i += 4)
diff --git a/target/linux/bcm27xx/patches-6.6/950-0065-cgroup-Disable-cgroup-memory-by-default.patch b/target/linux/bcm27xx/patches-6.6/950-0065-cgroup-Disable-cgroup-memory-by-default.patch
index b3cce67f3b..a330438182 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0065-cgroup-Disable-cgroup-memory-by-default.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0065-cgroup-Disable-cgroup-memory-by-default.patch
@@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
-@@ -6082,6 +6082,9 @@ int __init cgroup_init_early(void)
+@@ -6083,6 +6083,9 @@ int __init cgroup_init_early(void)
return 0;
}
@@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
/**
* cgroup_init - cgroup initialization
*
-@@ -6115,6 +6118,12 @@ int __init cgroup_init(void)
+@@ -6116,6 +6119,12 @@ int __init cgroup_init(void)
cgroup_unlock();
@@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
for_each_subsys(ss, ssid) {
if (ss->early_init) {
struct cgroup_subsys_state *css =
-@@ -6785,6 +6794,10 @@ static int __init cgroup_disable(char *s
+@@ -6786,6 +6795,10 @@ static int __init cgroup_disable(char *s
strcmp(token, ss->legacy_name))
continue;
@@ -51,7 +51,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
static_branch_disable(cgroup_subsys_enabled_key[i]);
pr_info("Disabling %s control group subsystem\n",
ss->name);
-@@ -6803,6 +6816,31 @@ static int __init cgroup_disable(char *s
+@@ -6804,6 +6817,31 @@ static int __init cgroup_disable(char *s
}
__setup("cgroup_disable=", cgroup_disable);
diff --git a/target/linux/bcm27xx/patches-6.6/950-0077-sound-Demote-deferral-errors-to-INFO-level.patch b/target/linux/bcm27xx/patches-6.6/950-0077-sound-Demote-deferral-errors-to-INFO-level.patch
index 9255c4480f..7d7b796f73 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0077-sound-Demote-deferral-errors-to-INFO-level.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0077-sound-Demote-deferral-errors-to-INFO-level.patch
@@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
-@@ -1083,7 +1083,7 @@ static int snd_soc_add_pcm_runtime(struc
+@@ -1082,7 +1082,7 @@ static int snd_soc_add_pcm_runtime(struc
for_each_link_cpus(dai_link, i, cpu) {
asoc_rtd_to_cpu(rtd, i) = snd_soc_find_dai(cpu);
if (!asoc_rtd_to_cpu(rtd, i)) {
@@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
cpu->dai_name);
goto _err_defer;
}
-@@ -1094,7 +1094,7 @@ static int snd_soc_add_pcm_runtime(struc
+@@ -1093,7 +1093,7 @@ static int snd_soc_add_pcm_runtime(struc
for_each_link_codecs(dai_link, i, codec) {
asoc_rtd_to_codec(rtd, i) = snd_soc_find_dai(codec);
if (!asoc_rtd_to_codec(rtd, i)) {
diff --git a/target/linux/bcm27xx/patches-6.6/950-0081-lan78xx-Enable-LEDs-and-auto-negotiation.patch b/target/linux/bcm27xx/patches-6.6/950-0081-lan78xx-Enable-LEDs-and-auto-negotiation.patch
index f17aa18d82..d6e55cedc3 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0081-lan78xx-Enable-LEDs-and-auto-negotiation.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0081-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
-@@ -2900,6 +2900,11 @@ static int lan78xx_reset(struct lan78xx_
+@@ -2904,6 +2904,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)
-@@ -2966,6 +2971,10 @@ static int lan78xx_reset(struct lan78xx_
+@@ -2970,6 +2975,10 @@ static int lan78xx_reset(struct lan78xx_
buf |= HW_CFG_MEF_;
@@ -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;
-@@ -3065,6 +3074,9 @@ static int lan78xx_reset(struct lan78xx_
+@@ -3069,6 +3078,9 @@ static int lan78xx_reset(struct lan78xx_
buf |= MAC_CR_AUTO_DUPLEX_ | MAC_CR_AUTO_SPEED_;
}
}
diff --git a/target/linux/bcm27xx/patches-6.6/950-0087-Add-dwc_otg-driver.patch b/target/linux/bcm27xx/patches-6.6/950-0087-Add-dwc_otg-driver.patch
index 0dd0c03400..c4e906226f 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0087-Add-dwc_otg-driver.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0087-Add-dwc_otg-driver.patch
@@ -1200,7 +1200,7 @@ Signed-off-by: Alexander Winkowski <dereference23@outlook.com>
USB_PORT_FEAT_C_OVER_CURRENT);
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
-@@ -2177,6 +2177,85 @@ free_interfaces:
+@@ -2235,6 +2235,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.6/950-0103-Improve-__copy_to_user-and-__copy_from_user-performa.patch b/target/linux/bcm27xx/patches-6.6/950-0103-Improve-__copy_to_user-and-__copy_from_user-performa.patch
index eb51e4fe77..ed18cf810b 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0103-Improve-__copy_to_user-and-__copy_from_user-performa.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0103-Improve-__copy_to_user-and-__copy_from_user-performa.patch
@@ -87,7 +87,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/arch/arm/include/asm/string.h
+++ b/arch/arm/include/asm/string.h
-@@ -68,4 +68,9 @@ static inline void *memset64(uint64_t *p
+@@ -72,4 +72,9 @@ static inline void *memset64(uint64_t *p
#endif
diff --git a/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch b/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch
index 283ffaf104..d94dba6d12 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch
@@ -17546,7 +17546,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
+#endif /* _TAS5713_H */
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
-@@ -1319,7 +1319,15 @@ int snd_soc_runtime_set_dai_fmt(struct s
+@@ -1318,7 +1318,15 @@ int snd_soc_runtime_set_dai_fmt(struct s
return 0;
for_each_rtd_codec_dais(rtd, i, codec_dai) {
@@ -17583,7 +17583,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
* For devices with more than one control interface, we assume the
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
-@@ -2295,6 +2295,8 @@ static const struct usb_audio_quirk_flag
+@@ -2297,6 +2297,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.6/950-0120-lan78xx-Read-initial-EEE-status-from-DT.patch b/target/linux/bcm27xx/patches-6.6/950-0120-lan78xx-Read-initial-EEE-status-from-DT.patch
index 6d49f050c5..65c6af00d3 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0120-lan78xx-Read-initial-EEE-status-from-DT.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0120-lan78xx-Read-initial-EEE-status-from-DT.patch
@@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
-@@ -3130,6 +3130,22 @@ static int lan78xx_open(struct net_devic
+@@ -3134,6 +3134,22 @@ static int lan78xx_open(struct net_devic
netif_dbg(dev, ifup, dev->net, "phy initialised successfully");
diff --git a/target/linux/bcm27xx/patches-6.6/950-0125-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch b/target/linux/bcm27xx/patches-6.6/950-0125-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch
index 1cfd5f0072..cce05bef06 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0125-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0125-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch
@@ -38,7 +38,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;
-@@ -3490,8 +3499,14 @@ static int lan78xx_bind(struct lan78xx_n
+@@ -3494,8 +3503,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.6/950-0127-lan78xx-Move-enabling-of-EEE-into-PHY-init-code.patch b/target/linux/bcm27xx/patches-6.6/950-0127-lan78xx-Move-enabling-of-EEE-into-PHY-init-code.patch
index 3ad6369241..4d7553cfd0 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0127-lan78xx-Move-enabling-of-EEE-into-PHY-init-code.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0127-lan78xx-Move-enabling-of-EEE-into-PHY-init-code.patch
@@ -39,7 +39,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
if (phydev->mdio.dev.of_node) {
u32 reg;
int len;
-@@ -3139,22 +3155,6 @@ static int lan78xx_open(struct net_devic
+@@ -3143,22 +3159,6 @@ static int lan78xx_open(struct net_devic
netif_dbg(dev, ifup, dev->net, "phy initialised successfully");
diff --git a/target/linux/bcm27xx/patches-6.6/950-0133-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch b/target/linux/bcm27xx/patches-6.6/950-0133-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch
index ecc8f40bdb..571ea3b1d4 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0133-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0133-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch
@@ -29,7 +29,7 @@ See: https://github.com/raspberrypi/linux/issues/2447
static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data)
{
u32 *buf;
-@@ -4474,7 +4479,13 @@ static int lan78xx_probe(struct usb_inte
+@@ -4480,7 +4485,13 @@ static int lan78xx_probe(struct usb_inte
if (ret < 0)
goto out4;
diff --git a/target/linux/bcm27xx/patches-6.6/950-0204-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch b/target/linux/bcm27xx/patches-6.6/950-0204-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch
index 000cad941d..fbee3cc437 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0204-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0204-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
-@@ -3757,6 +3757,7 @@ static int spi_set_cs_timing(struct spi_
+@@ -3756,6 +3756,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 = 0;
-@@ -3777,6 +3778,14 @@ int spi_setup(struct spi_device *spi)
+@@ -3776,6 +3777,14 @@ int spi_setup(struct spi_device *spi)
(SPI_TX_DUAL | SPI_TX_QUAD | SPI_TX_OCTAL |
SPI_RX_DUAL | SPI_RX_QUAD | SPI_RX_OCTAL)))
return -EINVAL;
diff --git a/target/linux/bcm27xx/patches-6.6/950-0417-hwmon-aht10-Add-DT-compatible-string.patch b/target/linux/bcm27xx/patches-6.6/950-0417-hwmon-aht10-Add-DT-compatible-string.patch
index 1c0558f7a1..18729e5a09 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0417-hwmon-aht10-Add-DT-compatible-string.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0417-hwmon-aht10-Add-DT-compatible-string.patch
@@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/drivers/hwmon/aht10.c
+++ b/drivers/hwmon/aht10.c
-@@ -57,6 +57,12 @@ static const struct i2c_device_id aht10_
+@@ -62,6 +62,12 @@ static const struct i2c_device_id aht10_
};
MODULE_DEVICE_TABLE(i2c, aht10_id);
@@ -23,7 +23,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
/**
* struct aht10_data - All the data required to operate an AHT10/AHT20 chip
* @client: the i2c client associated with the AHT10/AHT20
-@@ -381,6 +387,7 @@ static int aht10_probe(struct i2c_client
+@@ -396,6 +402,7 @@ static int aht10_probe(struct i2c_client
static struct i2c_driver aht10_driver = {
.driver = {
.name = "aht10",
diff --git a/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch b/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
index d55227f633..25ce5cb6d7 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0485-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
-@@ -3729,6 +3729,48 @@ static int xhci_align_td(struct xhci_hcd
+@@ -3730,6 +3730,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)
-@@ -3885,6 +3927,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3886,6 +3928,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;
-@@ -4034,6 +4078,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
+@@ -4035,6 +4079,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.6/950-0514-sdhci-Add-SD-Express-hook.patch b/target/linux/bcm27xx/patches-6.6/950-0514-sdhci-Add-SD-Express-hook.patch
index fcf4e8bd7f..2ccd1d75cb 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0514-sdhci-Add-SD-Express-hook.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0514-sdhci-Add-SD-Express-hook.patch
@@ -50,7 +50,7 @@ sdhci: remove PYA0_INTR_BUG quirk. Add quirks to disable some of the higher SDR
};
/*****************************************************************************\
-@@ -4583,6 +4593,15 @@ int sdhci_setup_host(struct sdhci_host *
+@@ -4590,6 +4600,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.6/950-0518-net-macb-Also-set-DMA-coherent-mask.patch b/target/linux/bcm27xx/patches-6.6/950-0518-net-macb-Also-set-DMA-coherent-mask.patch
index ddaeb30ccd..2791a2cd8b 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0518-net-macb-Also-set-DMA-coherent-mask.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0518-net-macb-Also-set-DMA-coherent-mask.patch
@@ -118,7 +118,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
/* Bitfields in PBUFRXCUT */
#define GEM_ENCUTTHRU_OFFSET 31 /* Enable RX partial store and forward */
-@@ -807,6 +824,7 @@
+@@ -812,6 +829,7 @@
})
#define MACB_READ_NSR(bp) macb_readl(bp, NSR)
@@ -126,7 +126,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
/* struct macb_dma_desc - Hardware DMA descriptor
* @addr: DMA address of data buffer
-@@ -1222,6 +1240,7 @@ struct macb_queue {
+@@ -1227,6 +1245,7 @@ struct macb_queue {
dma_addr_t tx_ring_dma;
struct work_struct tx_error_task;
bool txubr_pending;
@@ -134,7 +134,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
struct napi_struct napi_tx;
dma_addr_t rx_ring_dma;
-@@ -1287,9 +1306,15 @@ struct macb {
+@@ -1294,9 +1313,15 @@ struct macb {
u32 caps;
unsigned int dma_burst_length;
@@ -152,8 +152,8 @@ 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
-@@ -40,6 +40,9 @@
- #include <linux/firmware/xlnx-zynqmp.h>
+@@ -41,6 +41,9 @@
+ #include <linux/gcd.h>
#include "macb.h"
+static unsigned int txdelay = 35;
@@ -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);
-@@ -2772,6 +2800,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;
-@@ -2800,6 +2859,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 */
-@@ -3167,6 +3231,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);
-@@ -3761,6 +3871,8 @@ static const struct ethtool_ops macb_eth
+@@ -3893,6 +4003,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,
-@@ -3770,6 +3882,8 @@ static const struct ethtool_ops gem_etht
+@@ -3902,6 +4014,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,
-@@ -5066,6 +5180,11 @@ static int macb_probe(struct platform_de
+@@ -5198,6 +5312,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);
-@@ -5126,6 +5245,21 @@ static int macb_probe(struct platform_de
+@@ -5258,6 +5377,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)
-@@ -5202,6 +5336,19 @@ static int macb_remove(struct platform_d
+@@ -5334,6 +5468,19 @@ static int macb_remove(struct platform_d
return 0;
}
@@ -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);
-@@ -5416,6 +5563,7 @@ static const struct dev_pm_ops macb_pm_o
+@@ -5580,6 +5727,7 @@ static const struct dev_pm_ops macb_pm_o
static struct platform_driver macb_driver = {
.probe = macb_probe,
.remove = macb_remove,
diff --git a/target/linux/bcm27xx/patches-6.6/950-0552-soc-bcm-bcm2835-power-Add-support-for-BCM2712.patch b/target/linux/bcm27xx/patches-6.6/950-0552-soc-bcm-bcm2835-power-Add-support-for-BCM2712.patch
index 2a1989c3ce..9de58e16b3 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0552-soc-bcm-bcm2835-power-Add-support-for-BCM2712.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0552-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.6/950-1059-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch b/target/linux/bcm27xx/patches-6.6/950-1059-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch
index 9c69bcb9fb..c10707c6c0 100644
--- a/target/linux/bcm27xx/patches-6.6/950-1059-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-1059-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
-@@ -1265,6 +1265,21 @@ static void remove_intf_ep_devs(struct u
+@@ -1323,6 +1323,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
-@@ -1888,6 +1888,8 @@ extern int usb_clear_halt(struct usb_dev
+@@ -1892,6 +1892,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.6/950-1116-mmc-sdhci-extend-maximum-ADMA-transfer-length-to-4Mi.patch b/target/linux/bcm27xx/patches-6.6/950-1116-mmc-sdhci-extend-maximum-ADMA-transfer-length-to-4Mi.patch
index f0756b5945..85382d4d3d 100644
--- a/target/linux/bcm27xx/patches-6.6/950-1116-mmc-sdhci-extend-maximum-ADMA-transfer-length-to-4Mi.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-1116-mmc-sdhci-extend-maximum-ADMA-transfer-length-to-4Mi.patch
@@ -24,7 +24,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
BUG_ON(data->blksz > host->mmc->max_blk_size);
BUG_ON(data->blocks > 65535);
-@@ -4727,11 +4727,16 @@ int sdhci_setup_host(struct sdhci_host *
+@@ -4734,11 +4734,16 @@ int sdhci_setup_host(struct sdhci_host *
spin_lock_init(&host->lock);
/*
diff --git a/target/linux/bcm27xx/patches-6.6/950-1340-mm-numa-Allow-override-of-kernel-s-default-NUMA-poli.patch b/target/linux/bcm27xx/patches-6.6/950-1340-mm-numa-Allow-override-of-kernel-s-default-NUMA-poli.patch
index f2d7a91b77..7bf7ae01d8 100644
--- a/target/linux/bcm27xx/patches-6.6/950-1340-mm-numa-Allow-override-of-kernel-s-default-NUMA-poli.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-1340-mm-numa-Allow-override-of-kernel-s-default-NUMA-poli.patch
@@ -23,7 +23,7 @@ Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
-@@ -2947,7 +2947,9 @@ void __init numa_policy_init(void)
+@@ -2945,7 +2945,9 @@ void __init numa_policy_init(void)
/* Reset policy of current process to default */
void numa_default_policy(void)
{
@@ -34,7 +34,7 @@ Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
}
/*
-@@ -2965,7 +2967,6 @@ static const char * const policy_modes[]
+@@ -2963,7 +2965,6 @@ static const char * const policy_modes[]
};
@@ -42,7 +42,7 @@ Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
/**
* mpol_parse_str - parse string to mempolicy, for tmpfs mpol mount option.
* @str: string containing mempolicy to parse
-@@ -2978,13 +2979,18 @@ static const char * const policy_modes[]
+@@ -2976,13 +2977,18 @@ static const char * const policy_modes[]
*/
int mpol_parse_str(char *str, struct mempolicy **mpol)
{
@@ -62,7 +62,7 @@ Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
if (flags)
*flags++ = '\0'; /* terminate mode string */
-@@ -3063,9 +3069,16 @@ int mpol_parse_str(char *str, struct mem
+@@ -3061,9 +3067,16 @@ int mpol_parse_str(char *str, struct mem
goto out;
}
@@ -82,7 +82,7 @@ Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
/*
* Save nodes for mpol_to_str() to show the tmpfs mount options
-@@ -3098,7 +3111,29 @@ out:
+@@ -3096,7 +3109,29 @@ out:
*mpol = new;
return err;
}
diff --git a/target/linux/bcm27xx/patches-6.6/950-1349-cgroup-Use-kernel-command-line-to-disable-memory-cgr.patch b/target/linux/bcm27xx/patches-6.6/950-1349-cgroup-Use-kernel-command-line-to-disable-memory-cgr.patch
index af8543bb10..334cbbe23a 100644
--- a/target/linux/bcm27xx/patches-6.6/950-1349-cgroup-Use-kernel-command-line-to-disable-memory-cgr.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-1349-cgroup-Use-kernel-command-line-to-disable-memory-cgr.patch
@@ -148,7 +148,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
-@@ -6082,9 +6082,6 @@ int __init cgroup_init_early(void)
+@@ -6083,9 +6083,6 @@ int __init cgroup_init_early(void)
return 0;
}
@@ -158,7 +158,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
/**
* cgroup_init - cgroup initialization
*
-@@ -6118,12 +6115,6 @@ int __init cgroup_init(void)
+@@ -6119,12 +6116,6 @@ int __init cgroup_init(void)
cgroup_unlock();
@@ -171,7 +171,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
for_each_subsys(ss, ssid) {
if (ss->early_init) {
struct cgroup_subsys_state *css =
-@@ -6794,10 +6785,6 @@ static int __init cgroup_disable(char *s
+@@ -6795,10 +6786,6 @@ static int __init cgroup_disable(char *s
strcmp(token, ss->legacy_name))
continue;
@@ -182,7 +182,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
static_branch_disable(cgroup_subsys_enabled_key[i]);
pr_info("Disabling %s control group subsystem\n",
ss->name);
-@@ -6831,7 +6818,7 @@ static int __init cgroup_enable(char *st
+@@ -6832,7 +6819,7 @@ static int __init cgroup_enable(char *st
strcmp(token, ss->legacy_name))
continue;
diff --git a/target/linux/bcm27xx/patches-6.6/950-1366-drm-Increase-plane_mask-to-64bit.patch b/target/linux/bcm27xx/patches-6.6/950-1366-drm-Increase-plane_mask-to-64bit.patch
index f3ae9be4fd..4e27839486 100644
--- a/target/linux/bcm27xx/patches-6.6/950-1366-drm-Increase-plane_mask-to-64bit.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-1366-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
-@@ -636,7 +636,7 @@ void drm_mode_config_validate(struct drm
+@@ -639,7 +639,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.6/950-1423-net-macb-Add-support-for-Raspberry-Pi-RP1-ethernet-c.patch b/target/linux/bcm27xx/patches-6.6/950-1423-net-macb-Add-support-for-Raspberry-Pi-RP1-ethernet-c.patch
index 14220b754e..e8de156041 100644
--- a/target/linux/bcm27xx/patches-6.6/950-1423-net-macb-Add-support-for-Raspberry-Pi-RP1-ethernet-c.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-1423-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
-@@ -5027,6 +5027,17 @@ static const struct macb_config versal_c
+@@ -5159,6 +5159,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" },
-@@ -5047,6 +5058,7 @@ static const struct of_device_id macb_dt
+@@ -5179,6 +5190,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.6/950-1438-nvme-pci-Disable-Host-Memory-Buffer-usage.patch b/target/linux/bcm27xx/patches-6.6/950-1438-nvme-pci-Disable-Host-Memory-Buffer-usage.patch
index 751e6108b0..36c7c12404 100644
--- a/target/linux/bcm27xx/patches-6.6/950-1438-nvme-pci-Disable-Host-Memory-Buffer-usage.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-1438-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
-@@ -2008,6 +2008,7 @@ static void nvme_free_host_mem(struct nv
+@@ -2010,6 +2010,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)
{
-@@ -2076,9 +2077,11 @@ out:
+@@ -2078,9 +2079,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;
-@@ -2091,6 +2094,7 @@ static int nvme_alloc_host_mem(struct nv
+@@ -2093,6 +2096,7 @@ static int nvme_alloc_host_mem(struct nv
nvme_free_host_mem(dev);
}
}
diff --git a/target/linux/bcm27xx/patches-6.6/950-1445-fixup-cgroup-Use-kernel-command-line-to-disable-memo.patch b/target/linux/bcm27xx/patches-6.6/950-1445-fixup-cgroup-Use-kernel-command-line-to-disable-memo.patch
index 9a0f438e7a..7c0e633403 100644
--- a/target/linux/bcm27xx/patches-6.6/950-1445-fixup-cgroup-Use-kernel-command-line-to-disable-memo.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-1445-fixup-cgroup-Use-kernel-command-line-to-disable-memo.patch
@@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
-@@ -6818,11 +6818,19 @@ static int __init cgroup_enable(char *st
+@@ -6819,11 +6819,19 @@ static int __init cgroup_enable(char *st
strcmp(token, ss->legacy_name))
continue;
diff --git a/target/linux/bcm27xx/patches-6.6/950-1452-Revert-PCI-Warn-if-no-host-bridge-NUMA-node-info.patch b/target/linux/bcm27xx/patches-6.6/950-1452-Revert-PCI-Warn-if-no-host-bridge-NUMA-node-info.patch
index 8471b4af68..d153575fc7 100644
--- a/target/linux/bcm27xx/patches-6.6/950-1452-Revert-PCI-Warn-if-no-host-bridge-NUMA-node-info.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-1452-Revert-PCI-Warn-if-no-host-bridge-NUMA-node-info.patch
@@ -17,7 +17,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
-@@ -985,9 +985,6 @@ static int pci_register_host_bridge(stru
+@@ -983,9 +983,6 @@ static int pci_register_host_bridge(stru
else
pr_info("PCI host bridge to bus %s\n", name);
diff --git a/target/linux/bcm4908/patches-6.6/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch b/target/linux/bcm4908/patches-6.6/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch
index 8961bb298c..6b5aaa99a0 100644
--- a/target/linux/bcm4908/patches-6.6/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch
+++ b/target/linux/bcm4908/patches-6.6/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
-@@ -1524,10 +1524,14 @@ static int bcm_sf2_sw_probe(struct platf
+@@ -1528,10 +1528,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.6/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch b/target/linux/bcm4908/patches-6.6/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch
index ff3f44910b..69fb63c6f7 100644
--- a/target/linux/bcm4908/patches-6.6/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch
+++ b/target/linux/bcm4908/patches-6.6/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
-@@ -1538,6 +1538,12 @@ static int bcm_sf2_sw_probe(struct platf
+@@ -1542,6 +1542,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.6/400-v6.9-mtd-rawnand-brcmnand-Support-write-protection-settin.patch b/target/linux/generic/backport-6.6/400-v6.9-mtd-rawnand-brcmnand-Support-write-protection-settin.patch
index a7186208b2..090e72d007 100644
--- a/target/linux/generic/backport-6.6/400-v6.9-mtd-rawnand-brcmnand-Support-write-protection-settin.patch
+++ b/target/linux/generic/backport-6.6/400-v6.9-mtd-rawnand-brcmnand-Support-write-protection-settin.patch
@@ -23,7 +23,7 @@ Link: https://lore.kernel.org/linux-mtd/20240223034758.13753-14-william.zhang@br
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
-@@ -3194,6 +3194,10 @@ int brcmnand_probe(struct platform_devic
+@@ -3192,6 +3192,10 @@ int brcmnand_probe(struct platform_devic
/* Disable XOR addressing */
brcmnand_rmw_reg(ctrl, BRCMNAND_CS_XOR, 0xff, 0, 0);
diff --git a/target/linux/generic/backport-6.6/611-01-v6.11-udp-Allow-GSO-transmit-from-devices-with-no-checksum.patch b/target/linux/generic/backport-6.6/611-01-v6.11-udp-Allow-GSO-transmit-from-devices-with-no-checksum.patch
index 8edbce2168..14fff2f381 100644
--- a/target/linux/generic/backport-6.6/611-01-v6.11-udp-Allow-GSO-transmit-from-devices-with-no-checksum.patch
+++ b/target/linux/generic/backport-6.6/611-01-v6.11-udp-Allow-GSO-transmit-from-devices-with-no-checksum.patch
@@ -65,7 +65,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
}
--- a/net/ipv4/udp_offload.c
+++ b/net/ipv4/udp_offload.c
-@@ -448,6 +448,14 @@ struct sk_buff *__udp_gso_segment(struct
+@@ -449,6 +449,14 @@ struct sk_buff *__udp_gso_segment(struct
else
uh->check = gso_make_checksum(seg, ~check) ? : CSUM_MANGLED_0;
diff --git a/target/linux/generic/backport-6.6/714-v6.8-02-net-phy-extend-PHY-package-API-to-support-multiple-g.patch b/target/linux/generic/backport-6.6/714-v6.8-02-net-phy-extend-PHY-package-API-to-support-multiple-g.patch
index 7897615e16..9a8950d8ab 100644
--- a/target/linux/generic/backport-6.6/714-v6.8-02-net-phy-extend-PHY-package-API-to-support-multiple-g.patch
+++ b/target/linux/generic/backport-6.6/714-v6.8-02-net-phy-extend-PHY-package-API-to-support-multiple-g.patch
@@ -121,7 +121,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
u32 vsc85xx_csr_read(struct phy_device *phydev,
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
-@@ -1684,20 +1684,22 @@ EXPORT_SYMBOL_GPL(phy_driver_is_genphy_1
+@@ -1682,20 +1682,22 @@ EXPORT_SYMBOL_GPL(phy_driver_is_genphy_1
/**
* phy_package_join - join a common PHY group
* @phydev: target phy_device struct
@@ -151,7 +151,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
*
* This will set the shared pointer of the phydev to the shared storage.
* If this is the first call for a this cookie the shared storage will be
-@@ -1707,17 +1709,17 @@ EXPORT_SYMBOL_GPL(phy_driver_is_genphy_1
+@@ -1705,17 +1707,17 @@ EXPORT_SYMBOL_GPL(phy_driver_is_genphy_1
* Returns < 1 on error, 0 on success. Esp. calling phy_package_join()
* with the same cookie but a different priv_size is an error.
*/
@@ -172,7 +172,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
if (!shared) {
ret = -ENOMEM;
shared = kzalloc(sizeof(*shared), GFP_KERNEL);
-@@ -1729,9 +1731,9 @@ int phy_package_join(struct phy_device *
+@@ -1727,9 +1729,9 @@ int phy_package_join(struct phy_device *
goto err_free;
shared->priv_size = priv_size;
}
@@ -184,7 +184,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
} else {
ret = -EINVAL;
if (priv_size && priv_size != shared->priv_size)
-@@ -1769,7 +1771,7 @@ void phy_package_leave(struct phy_device
+@@ -1767,7 +1769,7 @@ void phy_package_leave(struct phy_device
return;
if (refcount_dec_and_mutex_lock(&shared->refcnt, &bus->shared_lock)) {
@@ -193,7 +193,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
mutex_unlock(&bus->shared_lock);
kfree(shared->priv);
kfree(shared);
-@@ -1788,7 +1790,8 @@ static void devm_phy_package_leave(struc
+@@ -1786,7 +1788,8 @@ static void devm_phy_package_leave(struc
* devm_phy_package_join - resource managed phy_package_join()
* @dev: device that is registering this PHY package
* @phydev: target phy_device struct
@@ -203,7 +203,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
* @priv_size: if non-zero allocate this amount of bytes for private data
*
* Managed phy_package_join(). Shared storage fetched by this function,
-@@ -1796,7 +1799,7 @@ static void devm_phy_package_leave(struc
+@@ -1794,7 +1797,7 @@ static void devm_phy_package_leave(struc
* phy_package_join() for more information.
*/
int devm_phy_package_join(struct device *dev, struct phy_device *phydev,
@@ -212,7 +212,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
{
struct phy_device **ptr;
int ret;
-@@ -1806,7 +1809,7 @@ int devm_phy_package_join(struct device
+@@ -1804,7 +1807,7 @@ int devm_phy_package_join(struct device
if (!ptr)
return -ENOMEM;
diff --git a/target/linux/generic/backport-6.6/716-v6.9-03-net-phy-add-devm-of_phy_package_join-helper.patch b/target/linux/generic/backport-6.6/716-v6.9-03-net-phy-add-devm-of_phy_package_join-helper.patch
index d903f95f27..c2de8356dc 100644
--- a/target/linux/generic/backport-6.6/716-v6.9-03-net-phy-add-devm-of_phy_package_join-helper.patch
+++ b/target/linux/generic/backport-6.6/716-v6.9-03-net-phy-add-devm-of_phy_package_join-helper.patch
@@ -27,7 +27,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
-@@ -1732,6 +1732,7 @@ int phy_package_join(struct phy_device *
+@@ -1730,6 +1730,7 @@ int phy_package_join(struct phy_device *
shared->priv_size = priv_size;
}
shared->base_addr = base_addr;
@@ -35,7 +35,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
refcount_set(&shared->refcnt, 1);
bus->shared[base_addr] = shared;
} else {
-@@ -1755,6 +1756,63 @@ err_unlock:
+@@ -1753,6 +1754,63 @@ err_unlock:
EXPORT_SYMBOL_GPL(phy_package_join);
/**
@@ -99,7 +99,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
* phy_package_leave - leave a common PHY group
* @phydev: target phy_device struct
*
-@@ -1770,6 +1828,10 @@ void phy_package_leave(struct phy_device
+@@ -1768,6 +1826,10 @@ void phy_package_leave(struct phy_device
if (!shared)
return;
@@ -110,7 +110,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
if (refcount_dec_and_mutex_lock(&shared->refcnt, &bus->shared_lock)) {
bus->shared[shared->base_addr] = NULL;
mutex_unlock(&bus->shared_lock);
-@@ -1823,6 +1885,40 @@ int devm_phy_package_join(struct device
+@@ -1821,6 +1883,40 @@ int devm_phy_package_join(struct device
EXPORT_SYMBOL_GPL(devm_phy_package_join);
/**
diff --git a/target/linux/generic/backport-6.6/716-v6.9-06-net-phy-provide-whether-link-has-changed-in-c37_read.patch b/target/linux/generic/backport-6.6/716-v6.9-06-net-phy-provide-whether-link-has-changed-in-c37_read.patch
index cc1ce29a14..9265146127 100644
--- a/target/linux/generic/backport-6.6/716-v6.9-06-net-phy-provide-whether-link-has-changed-in-c37_read.patch
+++ b/target/linux/generic/backport-6.6/716-v6.9-06-net-phy-provide-whether-link-has-changed-in-c37_read.patch
@@ -41,7 +41,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
-@@ -2645,12 +2645,15 @@ EXPORT_SYMBOL(genphy_read_status);
+@@ -2640,12 +2640,15 @@ EXPORT_SYMBOL(genphy_read_status);
/**
* genphy_c37_read_status - check the link status and update current link state
* @phydev: target phy_device struct
@@ -58,7 +58,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
{
int lpa, err, old_link = phydev->link;
-@@ -2660,9 +2663,13 @@ int genphy_c37_read_status(struct phy_de
+@@ -2655,9 +2658,13 @@ int genphy_c37_read_status(struct phy_de
return err;
/* why bother the PHY if nothing can have changed */
diff --git a/target/linux/generic/backport-6.6/751-01-v6.8-net-ethernet-mediatek-split-tx-and-rx-fields-in-mtk_.patch b/target/linux/generic/backport-6.6/751-01-v6.8-net-ethernet-mediatek-split-tx-and-rx-fields-in-mtk_.patch
index 8369007dd1..3a4896a6a1 100644
--- a/target/linux/generic/backport-6.6/751-01-v6.8-net-ethernet-mediatek-split-tx-and-rx-fields-in-mtk_.patch
+++ b/target/linux/generic/backport-6.6/751-01-v6.8-net-ethernet-mediatek-split-tx-and-rx-fields-in-mtk_.patch
@@ -341,7 +341,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
napi_disable(&eth->tx_napi);
napi_disable(&eth->rx_napi);
-@@ -3963,9 +3963,9 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -3972,9 +3972,9 @@ static int mtk_hw_init(struct mtk_eth *e
/* FE int grouping */
mtk_w32(eth, MTK_TX_DONE_INT, reg_map->pdma.int_grp);
@@ -353,7 +353,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
mtk_w32(eth, 0x21021000, MTK_FE_INT_GRP);
if (mtk_is_netsys_v3_or_greater(eth)) {
-@@ -5073,11 +5073,15 @@ static const struct mtk_soc_data mt2701_
+@@ -5082,11 +5082,15 @@ static const struct mtk_soc_data mt2701_
.required_clks = MT7623_CLKS_BITMAP,
.required_pctl = true,
.version = 1,
@@ -374,7 +374,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
-@@ -5093,11 +5097,15 @@ static const struct mtk_soc_data mt7621_
+@@ -5102,11 +5106,15 @@ static const struct mtk_soc_data mt7621_
.offload_version = 1,
.hash_offset = 2,
.foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
@@ -395,7 +395,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
-@@ -5115,11 +5123,15 @@ static const struct mtk_soc_data mt7622_
+@@ -5124,11 +5132,15 @@ static const struct mtk_soc_data mt7622_
.hash_offset = 2,
.has_accounting = true,
.foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
@@ -416,7 +416,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
-@@ -5136,11 +5148,15 @@ static const struct mtk_soc_data mt7623_
+@@ -5145,11 +5157,15 @@ static const struct mtk_soc_data mt7623_
.hash_offset = 2,
.foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
.disable_pll_modes = true,
@@ -437,7 +437,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
-@@ -5155,11 +5171,15 @@ static const struct mtk_soc_data mt7629_
+@@ -5164,11 +5180,15 @@ static const struct mtk_soc_data mt7629_
.required_pctl = false,
.has_accounting = true,
.version = 1,
@@ -458,7 +458,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
-@@ -5177,11 +5197,15 @@ static const struct mtk_soc_data mt7981_
+@@ -5186,11 +5206,15 @@ static const struct mtk_soc_data mt7981_
.hash_offset = 4,
.has_accounting = true,
.foe_entry_size = MTK_FOE_ENTRY_V2_SIZE,
@@ -479,7 +479,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.dma_max_len = MTK_TX_DMA_BUF_LEN_V2,
.dma_len_offset = 8,
},
-@@ -5199,11 +5223,15 @@ static const struct mtk_soc_data mt7986_
+@@ -5208,11 +5232,15 @@ static const struct mtk_soc_data mt7986_
.hash_offset = 4,
.has_accounting = true,
.foe_entry_size = MTK_FOE_ENTRY_V2_SIZE,
@@ -500,7 +500,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.dma_max_len = MTK_TX_DMA_BUF_LEN_V2,
.dma_len_offset = 8,
},
-@@ -5221,11 +5249,15 @@ static const struct mtk_soc_data mt7988_
+@@ -5230,11 +5258,15 @@ static const struct mtk_soc_data mt7988_
.hash_offset = 4,
.has_accounting = true,
.foe_entry_size = MTK_FOE_ENTRY_V3_SIZE,
@@ -521,7 +521,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.dma_max_len = MTK_TX_DMA_BUF_LEN_V2,
.dma_len_offset = 8,
},
-@@ -5238,11 +5270,15 @@ static const struct mtk_soc_data rt5350_
+@@ -5247,11 +5279,15 @@ static const struct mtk_soc_data rt5350_
.required_clks = MT7628_CLKS_BITMAP,
.required_pctl = false,
.version = 1,
diff --git a/target/linux/generic/backport-6.6/751-02-v6.8-net-ethernet-mediatek-use-QDMA-instead-of-ADMAv2-on-.patch b/target/linux/generic/backport-6.6/751-02-v6.8-net-ethernet-mediatek-use-QDMA-instead-of-ADMAv2-on-.patch
index 4a868fad43..b70fe731f8 100644
--- a/target/linux/generic/backport-6.6/751-02-v6.8-net-ethernet-mediatek-use-QDMA-instead-of-ADMAv2-on-.patch
+++ b/target/linux/generic/backport-6.6/751-02-v6.8-net-ethernet-mediatek-use-QDMA-instead-of-ADMAv2-on-.patch
@@ -85,7 +85,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
rxd->rxd5 = 0;
rxd->rxd6 = 0;
rxd->rxd7 = 0;
-@@ -3909,7 +3909,7 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -3918,7 +3918,7 @@ static int mtk_hw_init(struct mtk_eth *e
else
mtk_hw_reset(eth);
@@ -94,7 +94,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
/* Set FE to PDMAv2 if necessary */
val = mtk_r32(eth, MTK_FE_GLO_MISC);
mtk_w32(eth, val | BIT(4), MTK_FE_GLO_MISC);
-@@ -5203,11 +5203,11 @@ static const struct mtk_soc_data mt7981_
+@@ -5212,11 +5212,11 @@ static const struct mtk_soc_data mt7981_
.dma_len_offset = 8,
},
.rx = {
@@ -110,7 +110,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
},
};
-@@ -5229,11 +5229,11 @@ static const struct mtk_soc_data mt7986_
+@@ -5238,11 +5238,11 @@ static const struct mtk_soc_data mt7986_
.dma_len_offset = 8,
},
.rx = {
diff --git a/target/linux/generic/backport-6.6/752-25-v6.10-net-ethernet-mtk_eth_soc-handle-dma-buffer-size-soc-.patch b/target/linux/generic/backport-6.6/752-25-v6.10-net-ethernet-mtk_eth_soc-handle-dma-buffer-size-soc-.patch
index 9b70b3b0cc..e962109716 100644
--- a/target/linux/generic/backport-6.6/752-25-v6.10-net-ethernet-mtk_eth_soc-handle-dma-buffer-size-soc-.patch
+++ b/target/linux/generic/backport-6.6/752-25-v6.10-net-ethernet-mtk_eth_soc-handle-dma-buffer-size-soc-.patch
@@ -181,7 +181,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
static bool mtk_hw_reset_check(struct mtk_eth *eth)
-@@ -5081,11 +5091,14 @@ static const struct mtk_soc_data mt2701_
+@@ -5090,11 +5100,14 @@ static const struct mtk_soc_data mt2701_
.desc_size = sizeof(struct mtk_tx_dma),
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
@@ -196,7 +196,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
-@@ -5105,11 +5118,14 @@ static const struct mtk_soc_data mt7621_
+@@ -5114,11 +5127,14 @@ static const struct mtk_soc_data mt7621_
.desc_size = sizeof(struct mtk_tx_dma),
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
@@ -211,7 +211,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
-@@ -5131,11 +5147,14 @@ static const struct mtk_soc_data mt7622_
+@@ -5140,11 +5156,14 @@ static const struct mtk_soc_data mt7622_
.desc_size = sizeof(struct mtk_tx_dma),
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
@@ -226,7 +226,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
-@@ -5156,11 +5175,14 @@ static const struct mtk_soc_data mt7623_
+@@ -5165,11 +5184,14 @@ static const struct mtk_soc_data mt7623_
.desc_size = sizeof(struct mtk_tx_dma),
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
@@ -241,7 +241,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
-@@ -5179,11 +5201,14 @@ static const struct mtk_soc_data mt7629_
+@@ -5188,11 +5210,14 @@ static const struct mtk_soc_data mt7629_
.desc_size = sizeof(struct mtk_tx_dma),
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
@@ -256,7 +256,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
-@@ -5205,6 +5230,8 @@ static const struct mtk_soc_data mt7981_
+@@ -5214,6 +5239,8 @@ static const struct mtk_soc_data mt7981_
.desc_size = sizeof(struct mtk_tx_dma_v2),
.dma_max_len = MTK_TX_DMA_BUF_LEN_V2,
.dma_len_offset = 8,
@@ -265,7 +265,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
},
.rx = {
.desc_size = sizeof(struct mtk_rx_dma),
-@@ -5212,6 +5239,7 @@ static const struct mtk_soc_data mt7981_
+@@ -5221,6 +5248,7 @@ static const struct mtk_soc_data mt7981_
.dma_l4_valid = RX_DMA_L4_VALID_V2,
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
@@ -273,7 +273,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
},
};
-@@ -5231,6 +5259,8 @@ static const struct mtk_soc_data mt7986_
+@@ -5240,6 +5268,8 @@ static const struct mtk_soc_data mt7986_
.desc_size = sizeof(struct mtk_tx_dma_v2),
.dma_max_len = MTK_TX_DMA_BUF_LEN_V2,
.dma_len_offset = 8,
@@ -282,7 +282,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
},
.rx = {
.desc_size = sizeof(struct mtk_rx_dma),
-@@ -5238,6 +5268,7 @@ static const struct mtk_soc_data mt7986_
+@@ -5247,6 +5277,7 @@ static const struct mtk_soc_data mt7986_
.dma_l4_valid = RX_DMA_L4_VALID_V2,
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
@@ -290,7 +290,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
},
};
-@@ -5257,6 +5288,8 @@ static const struct mtk_soc_data mt7988_
+@@ -5266,6 +5297,8 @@ static const struct mtk_soc_data mt7988_
.desc_size = sizeof(struct mtk_tx_dma_v2),
.dma_max_len = MTK_TX_DMA_BUF_LEN_V2,
.dma_len_offset = 8,
@@ -299,7 +299,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
},
.rx = {
.desc_size = sizeof(struct mtk_rx_dma_v2),
-@@ -5264,6 +5297,7 @@ static const struct mtk_soc_data mt7988_
+@@ -5273,6 +5306,7 @@ static const struct mtk_soc_data mt7988_
.dma_l4_valid = RX_DMA_L4_VALID_V2,
.dma_max_len = MTK_TX_DMA_BUF_LEN_V2,
.dma_len_offset = 8,
@@ -307,7 +307,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
},
};
-@@ -5278,6 +5312,7 @@ static const struct mtk_soc_data rt5350_
+@@ -5287,6 +5321,7 @@ static const struct mtk_soc_data rt5350_
.desc_size = sizeof(struct mtk_tx_dma),
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
@@ -315,7 +315,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
},
.rx = {
.desc_size = sizeof(struct mtk_rx_dma),
-@@ -5285,6 +5320,7 @@ static const struct mtk_soc_data rt5350_
+@@ -5294,6 +5329,7 @@ static const struct mtk_soc_data rt5350_
.dma_l4_valid = RX_DMA_L4_VALID_PDMA,
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
diff --git a/target/linux/generic/backport-6.6/752-26-v6.10-net-ethernet-mtk_eth_soc-ppe-add-support-for-multipl.patch b/target/linux/generic/backport-6.6/752-26-v6.10-net-ethernet-mtk_eth_soc-ppe-add-support-for-multipl.patch
index c75b40fd04..efda018c8c 100644
--- a/target/linux/generic/backport-6.6/752-26-v6.10-net-ethernet-mtk_eth_soc-ppe-add-support-for-multipl.patch
+++ b/target/linux/generic/backport-6.6/752-26-v6.10-net-ethernet-mtk_eth_soc-ppe-add-support-for-multipl.patch
@@ -200,7 +200,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
mtk_tx_irq_disable(eth, MTK_TX_DONE_INT);
mtk_rx_irq_disable(eth, eth->soc->rx.irq_done_mask);
-@@ -4993,23 +5018,24 @@ static int mtk_probe(struct platform_dev
+@@ -5002,23 +5027,24 @@ static int mtk_probe(struct platform_dev
}
if (eth->soc->offload_version) {
@@ -233,7 +233,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
}
for (i = 0; i < MTK_MAX_DEVS; i++) {
-@@ -5112,6 +5138,7 @@ static const struct mtk_soc_data mt7621_
+@@ -5121,6 +5147,7 @@ static const struct mtk_soc_data mt7621_
.required_pctl = false,
.version = 1,
.offload_version = 1,
@@ -241,7 +241,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.hash_offset = 2,
.foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
.tx = {
-@@ -5140,6 +5167,7 @@ static const struct mtk_soc_data mt7622_
+@@ -5149,6 +5176,7 @@ static const struct mtk_soc_data mt7622_
.required_pctl = false,
.version = 1,
.offload_version = 2,
@@ -249,7 +249,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.hash_offset = 2,
.has_accounting = true,
.foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
-@@ -5168,6 +5196,7 @@ static const struct mtk_soc_data mt7623_
+@@ -5177,6 +5205,7 @@ static const struct mtk_soc_data mt7623_
.required_pctl = true,
.version = 1,
.offload_version = 1,
@@ -257,7 +257,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.hash_offset = 2,
.foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
.disable_pll_modes = true,
-@@ -5223,6 +5252,7 @@ static const struct mtk_soc_data mt7981_
+@@ -5232,6 +5261,7 @@ static const struct mtk_soc_data mt7981_
.required_pctl = false,
.version = 2,
.offload_version = 2,
@@ -265,7 +265,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.hash_offset = 4,
.has_accounting = true,
.foe_entry_size = MTK_FOE_ENTRY_V2_SIZE,
-@@ -5252,6 +5282,7 @@ static const struct mtk_soc_data mt7986_
+@@ -5261,6 +5291,7 @@ static const struct mtk_soc_data mt7986_
.required_pctl = false,
.version = 2,
.offload_version = 2,
@@ -273,7 +273,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.hash_offset = 4,
.has_accounting = true,
.foe_entry_size = MTK_FOE_ENTRY_V2_SIZE,
-@@ -5281,6 +5312,7 @@ static const struct mtk_soc_data mt7988_
+@@ -5290,6 +5321,7 @@ static const struct mtk_soc_data mt7988_
.required_pctl = false,
.version = 3,
.offload_version = 2,
diff --git a/target/linux/generic/backport-6.6/752-30-v6.10-net-ethernet-mtk_eth_soc-implement-.-get-set-_pausep.patch b/target/linux/generic/backport-6.6/752-30-v6.10-net-ethernet-mtk_eth_soc-implement-.-get-set-_pausep.patch
index 6db2901cd0..e6e3a2f7fe 100644
--- a/target/linux/generic/backport-6.6/752-30-v6.10-net-ethernet-mtk_eth_soc-implement-.-get-set-_pausep.patch
+++ b/target/linux/generic/backport-6.6/752-30-v6.10-net-ethernet-mtk_eth_soc-implement-.-get-set-_pausep.patch
@@ -20,7 +20,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -4498,6 +4498,20 @@ static int mtk_set_rxnfc(struct net_devi
+@@ -4507,6 +4507,20 @@ static int mtk_set_rxnfc(struct net_devi
return ret;
}
@@ -41,7 +41,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
static u16 mtk_select_queue(struct net_device *dev, struct sk_buff *skb,
struct net_device *sb_dev)
{
-@@ -4526,8 +4540,10 @@ static const struct ethtool_ops mtk_etht
+@@ -4535,8 +4549,10 @@ static const struct ethtool_ops mtk_etht
.get_strings = mtk_get_strings,
.get_sset_count = mtk_get_sset_count,
.get_ethtool_stats = mtk_get_ethtool_stats,
diff --git a/target/linux/generic/backport-6.6/763-v6.10-net-dsa-introduce-dsa_phylink_to_port.patch b/target/linux/generic/backport-6.6/763-v6.10-net-dsa-introduce-dsa_phylink_to_port.patch
index 0e7ace9d1a..c8f06364e9 100644
--- a/target/linux/generic/backport-6.6/763-v6.10-net-dsa-introduce-dsa_phylink_to_port.patch
+++ b/target/linux/generic/backport-6.6/763-v6.10-net-dsa-introduce-dsa_phylink_to_port.patch
@@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/include/net/dsa.h
+++ b/include/net/dsa.h
-@@ -327,6 +327,12 @@ struct dsa_port {
+@@ -328,6 +328,12 @@ struct dsa_port {
};
};
diff --git a/target/linux/generic/backport-6.6/764-v6.10-net-dsa-allow-DSA-switch-drivers-to-provide-their-ow.patch b/target/linux/generic/backport-6.6/764-v6.10-net-dsa-allow-DSA-switch-drivers-to-provide-their-ow.patch
index b86935f9af..7d5fe535be 100644
--- a/target/linux/generic/backport-6.6/764-v6.10-net-dsa-allow-DSA-switch-drivers-to-provide-their-ow.patch
+++ b/target/linux/generic/backport-6.6/764-v6.10-net-dsa-allow-DSA-switch-drivers-to-provide-their-ow.patch
@@ -24,7 +24,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/include/net/dsa.h
+++ b/include/net/dsa.h
-@@ -458,6 +458,11 @@ struct dsa_switch {
+@@ -459,6 +459,11 @@ struct dsa_switch {
const struct dsa_switch_ops *ops;
/*
@@ -38,7 +38,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
u32 phys_mii_mask;
--- a/net/dsa/dsa.c
+++ b/net/dsa/dsa.c
-@@ -1549,6 +1549,17 @@ static int dsa_switch_probe(struct dsa_s
+@@ -1556,6 +1556,17 @@ static int dsa_switch_probe(struct dsa_s
if (!ds->num_ports)
return -EINVAL;
diff --git a/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch b/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch
index e0e3f7b5bd..55e1b09313 100644
--- a/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch
+++ b/target/linux/generic/backport-6.6/771-v6.7-02-net-stmmac-move-TX-timer-arm-after-DMA-enable.patch
@@ -42,7 +42,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
u64_stats_update_begin(&txq_stats->napi_syncp);
u64_stats_add(&txq_stats->napi.tx_packets, tx_packets);
-@@ -5622,6 +5626,7 @@ static int stmmac_napi_poll_tx(struct na
+@@ -5587,6 +5591,7 @@ static int stmmac_napi_poll_tx(struct na
container_of(napi, struct stmmac_channel, tx_napi);
struct stmmac_priv *priv = ch->priv_data;
struct stmmac_txq_stats *txq_stats;
@@ -50,7 +50,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
u32 chan = ch->index;
int work_done;
-@@ -5630,7 +5635,7 @@ static int stmmac_napi_poll_tx(struct na
+@@ -5595,7 +5600,7 @@ static int stmmac_napi_poll_tx(struct na
u64_stats_inc(&txq_stats->napi.poll);
u64_stats_update_end(&txq_stats->napi_syncp);
@@ -59,7 +59,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
work_done = min(work_done, budget);
if (work_done < budget && napi_complete_done(napi, work_done)) {
-@@ -5641,6 +5646,10 @@ static int stmmac_napi_poll_tx(struct na
+@@ -5606,6 +5611,10 @@ static int stmmac_napi_poll_tx(struct na
spin_unlock_irqrestore(&ch->lock, flags);
}
@@ -70,7 +70,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
return work_done;
}
-@@ -5649,6 +5658,7 @@ static int stmmac_napi_poll_rxtx(struct
+@@ -5614,6 +5623,7 @@ static int stmmac_napi_poll_rxtx(struct
struct stmmac_channel *ch =
container_of(napi, struct stmmac_channel, rxtx_napi);
struct stmmac_priv *priv = ch->priv_data;
@@ -78,7 +78,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
int rx_done, tx_done, rxtx_done;
struct stmmac_rxq_stats *rxq_stats;
struct stmmac_txq_stats *txq_stats;
-@@ -5664,7 +5674,7 @@ static int stmmac_napi_poll_rxtx(struct
+@@ -5629,7 +5639,7 @@ static int stmmac_napi_poll_rxtx(struct
u64_stats_inc(&txq_stats->napi.poll);
u64_stats_update_end(&txq_stats->napi_syncp);
@@ -87,7 +87,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
tx_done = min(tx_done, budget);
rx_done = stmmac_rx_zc(priv, budget, chan);
-@@ -5689,6 +5699,10 @@ static int stmmac_napi_poll_rxtx(struct
+@@ -5654,6 +5664,10 @@ static int stmmac_napi_poll_rxtx(struct
spin_unlock_irqrestore(&ch->lock, flags);
}
diff --git a/target/linux/generic/backport-6.6/785-01-v6.8-net-sfp-rework-the-RollBall-PHY-waiting-code.patch b/target/linux/generic/backport-6.6/785-01-v6.8-net-sfp-rework-the-RollBall-PHY-waiting-code.patch
index fe170d0a68..93edf9e60f 100644
--- a/target/linux/generic/backport-6.6/785-01-v6.8-net-sfp-rework-the-RollBall-PHY-waiting-code.patch
+++ b/target/linux/generic/backport-6.6/785-01-v6.8-net-sfp-rework-the-RollBall-PHY-waiting-code.patch
@@ -36,7 +36,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
/* SFP module presence detection is poor: the three MOD DEF signals are
* the same length on the PCB, which means it's possible for MOD DEF 0 to
-@@ -273,7 +273,7 @@ struct sfp {
+@@ -274,7 +274,7 @@ struct sfp {
struct sfp_eeprom_id id;
unsigned int module_power_mW;
unsigned int module_t_start_up;
@@ -45,7 +45,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
unsigned int rate_kbd;
unsigned int rs_threshold_kbd;
-@@ -357,18 +357,22 @@ static void sfp_fixup_10gbaset_30m(struc
+@@ -383,18 +383,22 @@ static void sfp_fixup_10gbaset_30m(struc
sfp->id.base.extended_cc = SFF8024_ECC_10GBASE_T_SR;
}
@@ -73,8 +73,8 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
static void sfp_fixup_halny_gsfp(struct sfp *sfp)
-@@ -380,12 +384,6 @@ static void sfp_fixup_halny_gsfp(struct
- sfp->state_hw_mask &= ~(SFP_F_TX_FAULT | SFP_F_LOS);
+@@ -418,12 +422,6 @@ static void sfp_fixup_potron(struct sfp
+ sfp_fixup_ignore_hw(sfp, SFP_F_TX_FAULT | SFP_F_LOS);
}
-static void sfp_fixup_rollball(struct sfp *sfp)
@@ -86,16 +86,16 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static void sfp_fixup_rollball_cc(struct sfp *sfp)
{
sfp_fixup_rollball(sfp);
-@@ -2323,7 +2321,7 @@ static int sfp_sm_mod_probe(struct sfp *
+@@ -2364,7 +2362,7 @@ static int sfp_sm_mod_probe(struct sfp *
mask |= SFP_F_RS1;
sfp->module_t_start_up = T_START_UP;
- sfp->module_t_wait = T_WAIT;
+ sfp->phy_t_retry = T_PHY_RETRY;
- sfp->tx_fault_ignore = false;
+ sfp->state_ignore_mask = 0;
-@@ -2557,10 +2555,9 @@ static void sfp_sm_main(struct sfp *sfp,
+@@ -2600,10 +2598,9 @@ static void sfp_sm_main(struct sfp *sfp,
/* We need to check the TX_FAULT state, which is not defined
* while TX_DISABLE is asserted. The earliest we want to do
@@ -108,7 +108,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
break;
case SFP_S_WAIT:
-@@ -2574,8 +2571,8 @@ static void sfp_sm_main(struct sfp *sfp,
+@@ -2617,8 +2614,8 @@ static void sfp_sm_main(struct sfp *sfp,
* deasserting.
*/
timeout = sfp->module_t_start_up;
@@ -119,7 +119,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
else
timeout = 1;
-@@ -2618,7 +2615,11 @@ static void sfp_sm_main(struct sfp *sfp,
+@@ -2661,7 +2658,11 @@ static void sfp_sm_main(struct sfp *sfp,
ret = sfp_sm_probe_for_phy(sfp);
if (ret == -ENODEV) {
if (--sfp->sm_phy_retries) {
diff --git a/target/linux/generic/backport-6.6/785-02-v6.8-net-sfp-fix-PHY-discovery-for-FS-SFP-10G-T-module.patch b/target/linux/generic/backport-6.6/785-02-v6.8-net-sfp-fix-PHY-discovery-for-FS-SFP-10G-T-module.patch
index 2b177fbe90..a9a14f7735 100644
--- a/target/linux/generic/backport-6.6/785-02-v6.8-net-sfp-fix-PHY-discovery-for-FS-SFP-10G-T-module.patch
+++ b/target/linux/generic/backport-6.6/785-02-v6.8-net-sfp-fix-PHY-discovery-for-FS-SFP-10G-T-module.patch
@@ -30,7 +30,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
-@@ -273,6 +273,7 @@ struct sfp {
+@@ -274,6 +274,7 @@ struct sfp {
struct sfp_eeprom_id id;
unsigned int module_power_mW;
unsigned int module_t_start_up;
@@ -38,7 +38,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
unsigned int phy_t_retry;
unsigned int rate_kbd;
-@@ -373,6 +374,12 @@ static void sfp_fixup_fs_10gt(struct sfp
+@@ -399,6 +400,12 @@ static void sfp_fixup_fs_10gt(struct sfp
{
sfp_fixup_10gbaset_30m(sfp);
sfp_fixup_rollball(sfp);
@@ -51,15 +51,15 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
static void sfp_fixup_halny_gsfp(struct sfp *sfp)
-@@ -2321,6 +2328,7 @@ static int sfp_sm_mod_probe(struct sfp *
+@@ -2362,6 +2369,7 @@ static int sfp_sm_mod_probe(struct sfp *
mask |= SFP_F_RS1;
sfp->module_t_start_up = T_START_UP;
+ sfp->module_t_wait = T_WAIT;
sfp->phy_t_retry = T_PHY_RETRY;
- sfp->tx_fault_ignore = false;
-@@ -2555,9 +2563,10 @@ static void sfp_sm_main(struct sfp *sfp,
+ sfp->state_ignore_mask = 0;
+@@ -2598,9 +2606,10 @@ static void sfp_sm_main(struct sfp *sfp,
/* We need to check the TX_FAULT state, which is not defined
* while TX_DISABLE is asserted. The earliest we want to do
@@ -72,7 +72,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
break;
case SFP_S_WAIT:
-@@ -2571,8 +2580,8 @@ static void sfp_sm_main(struct sfp *sfp,
+@@ -2614,8 +2623,8 @@ static void sfp_sm_main(struct sfp *sfp,
* deasserting.
*/
timeout = sfp->module_t_start_up;
diff --git a/target/linux/generic/backport-6.6/785-03-v6.10-net-sfp-update-comment-for-FS-SFP-10G-T-quirk.patch b/target/linux/generic/backport-6.6/785-03-v6.10-net-sfp-update-comment-for-FS-SFP-10G-T-quirk.patch
index 543d13a763..0acf53940f 100644
--- a/target/linux/generic/backport-6.6/785-03-v6.10-net-sfp-update-comment-for-FS-SFP-10G-T-quirk.patch
+++ b/target/linux/generic/backport-6.6/785-03-v6.10-net-sfp-update-comment-for-FS-SFP-10G-T-quirk.patch
@@ -22,9 +22,9 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
-@@ -456,8 +456,9 @@ static const struct sfp_quirk sfp_quirks
+@@ -494,8 +494,9 @@ static const struct sfp_quirk sfp_quirks
SFP_QUIRK("ALCATELLUCENT", "3FE46541AA", sfp_quirk_2500basex,
- sfp_fixup_long_startup),
+ sfp_fixup_nokia),
- // Fiberstore SFP-10G-T doesn't identify as copper, and uses the
- // Rollball protocol to talk to the PHY.
diff --git a/target/linux/generic/backport-6.6/785-04-v6.10-net-sfp-enhance-quirk-for-Fibrestore-2.5G-copper-SFP-module.patch b/target/linux/generic/backport-6.6/785-04-v6.10-net-sfp-enhance-quirk-for-Fibrestore-2.5G-copper-SFP-module.patch
index 67690b087e..c517c5acd4 100644
--- a/target/linux/generic/backport-6.6/785-04-v6.10-net-sfp-enhance-quirk-for-Fibrestore-2.5G-copper-SFP-module.patch
+++ b/target/linux/generic/backport-6.6/785-04-v6.10-net-sfp-enhance-quirk-for-Fibrestore-2.5G-copper-SFP-module.patch
@@ -27,7 +27,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
-@@ -370,18 +370,23 @@ static void sfp_fixup_rollball(struct sf
+@@ -396,18 +396,23 @@ static void sfp_fixup_rollball(struct sf
sfp->phy_t_retry = msecs_to_jiffies(1000);
}
@@ -54,7 +54,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
static void sfp_fixup_halny_gsfp(struct sfp *sfp)
{
/* Ignore the TX_FAULT and LOS signals on this module.
-@@ -461,6 +466,10 @@ static const struct sfp_quirk sfp_quirks
+@@ -499,6 +504,10 @@ static const struct sfp_quirk sfp_quirks
// PHY.
SFP_QUIRK_F("FS", "SFP-10G-T", sfp_fixup_fs_10gt),
@@ -65,9 +65,9 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
// Fiberstore GPON-ONU-34-20BI can operate at 2500base-X, but report 1.2GBd
// NRZ in their EEPROM
SFP_QUIRK("FS", "GPON-ONU-34-20BI", sfp_quirk_2500basex,
-@@ -477,9 +486,6 @@ static const struct sfp_quirk sfp_quirks
+@@ -515,9 +524,6 @@ static const struct sfp_quirk sfp_quirks
SFP_QUIRK("HUAWEI", "MA5671A", sfp_quirk_2500basex,
- sfp_fixup_ignore_tx_fault),
+ sfp_fixup_ignore_tx_fault_and_los),
- // FS 2.5G Base-T
- SFP_QUIRK_M("FS", "SFP-2.5G-T", sfp_quirk_oem_2_5g),
diff --git a/target/linux/generic/backport-6.6/785-05-v6.15-net-sfp-add-quirk-for-FS-SFP-10GM-T-copper-SFP-module.patch b/target/linux/generic/backport-6.6/785-05-v6.15-net-sfp-add-quirk-for-FS-SFP-10GM-T-copper-SFP-module.patch
index 740b3ea268..6aef7acdb0 100644
--- a/target/linux/generic/backport-6.6/785-05-v6.15-net-sfp-add-quirk-for-FS-SFP-10GM-T-copper-SFP-module.patch
+++ b/target/linux/generic/backport-6.6/785-05-v6.15-net-sfp-add-quirk-for-FS-SFP-10GM-T-copper-SFP-module.patch
@@ -16,7 +16,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
-@@ -370,7 +370,7 @@ static void sfp_fixup_rollball(struct sf
+@@ -396,7 +396,7 @@ static void sfp_fixup_rollball(struct sf
sfp->phy_t_retry = msecs_to_jiffies(1000);
}
@@ -25,7 +25,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
{
sfp_fixup_rollball(sfp);
-@@ -384,7 +384,7 @@ static void sfp_fixup_fs_2_5gt(struct sf
+@@ -410,7 +410,7 @@ static void sfp_fixup_fs_2_5gt(struct sf
static void sfp_fixup_fs_10gt(struct sfp *sfp)
{
sfp_fixup_10gbaset_30m(sfp);
@@ -34,7 +34,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
}
static void sfp_fixup_halny_gsfp(struct sfp *sfp)
-@@ -466,9 +466,10 @@ static const struct sfp_quirk sfp_quirks
+@@ -504,9 +504,10 @@ static const struct sfp_quirk sfp_quirks
// PHY.
SFP_QUIRK_F("FS", "SFP-10G-T", sfp_fixup_fs_10gt),
diff --git a/target/linux/generic/backport-6.6/792-v6.16-igc-enable-HW-vlan-tag-insertion-stripping-by-defaul.patch b/target/linux/generic/backport-6.6/792-v6.16-igc-enable-HW-vlan-tag-insertion-stripping-by-defaul.patch
index 5be2e83cce..b354686390 100644
--- a/target/linux/generic/backport-6.6/792-v6.16-igc-enable-HW-vlan-tag-insertion-stripping-by-defaul.patch
+++ b/target/linux/generic/backport-6.6/792-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
-@@ -6854,6 +6854,9 @@ static int igc_probe(struct pci_dev *pde
+@@ -6851,6 +6851,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.6/835-v6.9-net-phy-add-support-for-PHY-LEDs-polarity-modes.patch b/target/linux/generic/backport-6.6/835-v6.9-net-phy-add-support-for-PHY-LEDs-polarity-modes.patch
index 6cd25416d1..d22cd516b6 100644
--- a/target/linux/generic/backport-6.6/835-v6.9-net-phy-add-support-for-PHY-LEDs-polarity-modes.patch
+++ b/target/linux/generic/backport-6.6/835-v6.9-net-phy-add-support-for-PHY-LEDs-polarity-modes.patch
@@ -28,7 +28,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
-@@ -3232,6 +3232,7 @@ static int of_phy_led(struct phy_device
+@@ -3227,6 +3227,7 @@ static int of_phy_led(struct phy_device
struct device *dev = &phydev->mdio.dev;
struct led_init_data init_data = {};
struct led_classdev *cdev;
@@ -36,7 +36,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
struct phy_led *phyled;
u32 index;
int err;
-@@ -3249,6 +3250,21 @@ static int of_phy_led(struct phy_device
+@@ -3244,6 +3245,21 @@ static int of_phy_led(struct phy_device
if (index > U8_MAX)
return -EINVAL;
diff --git a/target/linux/generic/backport-6.6/841-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch b/target/linux/generic/backport-6.6/841-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch
index 6c271f8a23..dec26a9eed 100644
--- a/target/linux/generic/backport-6.6/841-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch
+++ b/target/linux/generic/backport-6.6/841-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch
@@ -19,7 +19,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
-@@ -3250,11 +3250,17 @@ static int of_phy_led(struct phy_device
+@@ -3245,11 +3245,17 @@ static int of_phy_led(struct phy_device
if (index > U8_MAX)
return -EINVAL;
diff --git a/target/linux/generic/hack-6.6/790-SFP-GE-T-ignore-TX_FAULT.patch b/target/linux/generic/hack-6.6/790-SFP-GE-T-ignore-TX_FAULT.patch
index 5d67e0ea8f..5a939d9b28 100644
--- a/target/linux/generic/hack-6.6/790-SFP-GE-T-ignore-TX_FAULT.patch
+++ b/target/linux/generic/hack-6.6/790-SFP-GE-T-ignore-TX_FAULT.patch
@@ -26,9 +26,9 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
-@@ -487,6 +487,9 @@ static const struct sfp_quirk sfp_quirks
+@@ -525,6 +525,9 @@ static const struct sfp_quirk sfp_quirks
SFP_QUIRK("HUAWEI", "MA5671A", sfp_quirk_2500basex,
- sfp_fixup_ignore_tx_fault),
+ sfp_fixup_ignore_tx_fault_and_los),
+ // OEM SFP-GE-T is 1000Base-T module
+ SFP_QUIRK_F("OEM", "SFP-GE-T", sfp_fixup_ignore_tx_fault),
@@ -36,28 +36,3 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
// Lantech 8330-262D-E can operate at 2500base-X, but incorrectly report
// 2500MBd NRZ in their EEPROM
SFP_QUIRK_M("Lantech", "8330-262D-E", sfp_quirk_2500basex),
-@@ -2608,7 +2611,8 @@ static void sfp_sm_main(struct sfp *sfp,
- * or t_start_up, so assume there is a fault.
- */
- sfp_sm_fault(sfp, SFP_S_INIT_TX_FAULT,
-- sfp->sm_fault_retries == N_FAULT_INIT);
-+ !sfp->tx_fault_ignore &&
-+ (sfp->sm_fault_retries == N_FAULT_INIT));
- } else if (event == SFP_E_TIMEOUT || event == SFP_E_TX_CLEAR) {
- init_done:
- /* Create mdiobus and start trying for PHY */
-@@ -2866,10 +2870,12 @@ static void sfp_check_state(struct sfp *
- mutex_lock(&sfp->st_mutex);
- state = sfp_get_state(sfp);
- changed = state ^ sfp->state;
-- if (sfp->tx_fault_ignore)
-+ if (sfp->tx_fault_ignore) {
- changed &= SFP_F_PRESENT | SFP_F_LOS;
-- else
-+ state &= ~SFP_F_TX_FAULT;
-+ } else {
- changed &= SFP_F_PRESENT | SFP_F_LOS | SFP_F_TX_FAULT;
-+ }
-
- for (i = 0; i < GPIO_MAX; i++)
- if (changed & BIT(i))
diff --git a/target/linux/generic/pending-6.6/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-6.6/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
index 4601737c5e..6f34a5e51f 100644
--- a/target/linux/generic/pending-6.6/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
+++ b/target/linux/generic/pending-6.6/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
@@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
static const struct rt6_info ip6_blk_hole_entry_template = {
.dst = {
.__rcuref = RCUREF_INIT(1),
-@@ -1086,6 +1100,7 @@ static const int fib6_prop[RTN_MAX + 1]
+@@ -1087,6 +1101,7 @@ static const int fib6_prop[RTN_MAX + 1]
[RTN_BLACKHOLE] = -EINVAL,
[RTN_UNREACHABLE] = -EHOSTUNREACH,
[RTN_PROHIBIT] = -EACCES,
@@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
[RTN_THROW] = -EAGAIN,
[RTN_NAT] = -EINVAL,
[RTN_XRESOLVE] = -EINVAL,
-@@ -1121,6 +1136,10 @@ static void ip6_rt_init_dst_reject(struc
+@@ -1122,6 +1137,10 @@ static void ip6_rt_init_dst_reject(struc
rt->dst.output = ip6_pkt_prohibit_out;
rt->dst.input = ip6_pkt_prohibit;
break;
@@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
case RTN_THROW:
case RTN_UNREACHABLE:
default:
-@@ -4598,6 +4617,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -4597,6 +4616,17 @@ static int ip6_pkt_prohibit_out(struct n
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
}
@@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
/*
* Allocate a dst for local (unicast / anycast) address.
*/
-@@ -5089,7 +5119,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -5088,7 +5118,8 @@ static int rtm_to_fib6_config(struct sk_
if (rtm->rtm_type == RTN_UNREACHABLE ||
rtm->rtm_type == RTN_BLACKHOLE ||
rtm->rtm_type == RTN_PROHIBIT ||
@@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
cfg->fc_flags |= RTF_REJECT;
if (rtm->rtm_type == RTN_LOCAL)
-@@ -6359,6 +6390,8 @@ static int ip6_route_dev_notify(struct n
+@@ -6358,6 +6389,8 @@ static int ip6_route_dev_notify(struct n
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
#endif
-@@ -6370,6 +6403,7 @@ static int ip6_route_dev_notify(struct n
+@@ -6369,6 +6402,7 @@ static int ip6_route_dev_notify(struct n
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
@@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
#endif
}
-@@ -6570,6 +6604,8 @@ static int __net_init ip6_route_net_init
+@@ -6569,6 +6603,8 @@ static int __net_init ip6_route_net_init
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.fib6_has_custom_rules = false;
@@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
sizeof(*net->ipv6.ip6_prohibit_entry),
GFP_KERNEL);
-@@ -6580,11 +6616,21 @@ static int __net_init ip6_route_net_init
+@@ -6579,11 +6615,21 @@ static int __net_init ip6_route_net_init
ip6_template_metrics, true);
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->dst.rt_uncached);
@@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
ip6_template_metrics, true);
-@@ -6611,6 +6657,8 @@ out:
+@@ -6610,6 +6656,8 @@ out:
return ret;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry:
-@@ -6630,6 +6678,7 @@ static void __net_exit ip6_route_net_exi
+@@ -6629,6 +6677,7 @@ static void __net_exit ip6_route_net_exi
kfree(net->ipv6.ip6_null_entry);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
kfree(net->ipv6.ip6_prohibit_entry);
@@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
kfree(net->ipv6.ip6_blk_hole_entry);
#endif
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
-@@ -6713,6 +6762,9 @@ void __init ip6_route_init_special_entri
+@@ -6712,6 +6761,9 @@ void __init ip6_route_init_special_entri
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
diff --git a/target/linux/generic/pending-6.6/680-net-add-TCP-fraglist-GRO-support.patch b/target/linux/generic/pending-6.6/680-net-add-TCP-fraglist-GRO-support.patch
index 3e9a233ced..217492f92c 100644
--- a/target/linux/generic/pending-6.6/680-net-add-TCP-fraglist-GRO-support.patch
+++ b/target/linux/generic/pending-6.6/680-net-add-TCP-fraglist-GRO-support.patch
@@ -81,88 +81,7 @@ Signe-off-by: Felix Fietkau <nbd@nbd.name>
{
--- a/net/ipv4/tcp_offload.c
+++ b/net/ipv4/tcp_offload.c
-@@ -31,6 +31,70 @@ static void tcp_gso_tstamp(struct sk_buf
- }
- }
-
-+static void __tcpv4_gso_segment_csum(struct sk_buff *seg,
-+ __be32 *oldip, __be32 newip,
-+ __be16 *oldport, __be16 newport)
-+{
-+ struct tcphdr *th;
-+ struct iphdr *iph;
-+
-+ if (*oldip == newip && *oldport == newport)
-+ return;
-+
-+ th = tcp_hdr(seg);
-+ iph = ip_hdr(seg);
-+
-+ inet_proto_csum_replace4(&th->check, seg, *oldip, newip, true);
-+ inet_proto_csum_replace2(&th->check, seg, *oldport, newport, false);
-+ *oldport = newport;
-+
-+ csum_replace4(&iph->check, *oldip, newip);
-+ *oldip = newip;
-+}
-+
-+static struct sk_buff *__tcpv4_gso_segment_list_csum(struct sk_buff *segs)
-+{
-+ const struct tcphdr *th;
-+ const struct iphdr *iph;
-+ struct sk_buff *seg;
-+ struct tcphdr *th2;
-+ struct iphdr *iph2;
-+
-+ seg = segs;
-+ th = tcp_hdr(seg);
-+ iph = ip_hdr(seg);
-+ th2 = tcp_hdr(seg->next);
-+ iph2 = ip_hdr(seg->next);
-+
-+ if (!(*(const u32 *)&th->source ^ *(const u32 *)&th2->source) &&
-+ iph->daddr == iph2->daddr && iph->saddr == iph2->saddr)
-+ return segs;
-+
-+ while ((seg = seg->next)) {
-+ th2 = tcp_hdr(seg);
-+ iph2 = ip_hdr(seg);
-+
-+ __tcpv4_gso_segment_csum(seg,
-+ &iph2->saddr, iph->saddr,
-+ &th2->source, th->source);
-+ __tcpv4_gso_segment_csum(seg,
-+ &iph2->daddr, iph->daddr,
-+ &th2->dest, th->dest);
-+ }
-+
-+ return segs;
-+}
-+
-+static struct sk_buff *__tcp4_gso_segment_list(struct sk_buff *skb,
-+ netdev_features_t features)
-+{
-+ skb = skb_segment_list(skb, features, skb_mac_header_len(skb));
-+ if (IS_ERR(skb))
-+ return skb;
-+
-+ return __tcpv4_gso_segment_list_csum(skb);
-+}
-+
- static struct sk_buff *tcp4_gso_segment(struct sk_buff *skb,
- netdev_features_t features)
- {
-@@ -40,6 +104,9 @@ static struct sk_buff *tcp4_gso_segment(
- if (!pskb_may_pull(skb, sizeof(struct tcphdr)))
- return ERR_PTR(-EINVAL);
-
-+ if (skb_shinfo(skb)->gso_type & SKB_GSO_FRAGLIST)
-+ return __tcp4_gso_segment_list(skb, features);
-+
- if (unlikely(skb->ip_summed != CHECKSUM_PARTIAL)) {
- const struct iphdr *iph = ip_hdr(skb);
- struct tcphdr *th = tcp_hdr(skb);
-@@ -184,61 +251,76 @@ out:
+@@ -258,61 +258,76 @@ out:
return segs;
}
@@ -269,7 +188,7 @@ Signe-off-by: Felix Fietkau <nbd@nbd.name>
flush = NAPI_GRO_CB(p)->flush;
flush |= (__force int)(flags & TCP_FLAG_CWR);
flush |= (__force int)((flags ^ tcp_flag_word(th2)) &
-@@ -275,6 +357,19 @@ found:
+@@ -349,6 +364,19 @@ found:
flush |= p->decrypted ^ skb->decrypted;
#endif
@@ -289,7 +208,7 @@ Signe-off-by: Felix Fietkau <nbd@nbd.name>
if (flush || skb_gro_receive(p, skb)) {
mss = 1;
goto out_check_final;
-@@ -296,7 +391,6 @@ out_check_final:
+@@ -370,7 +398,6 @@ out_check_final:
if (p && (!NAPI_GRO_CB(skb)->same_flow || flush))
pp = p;
@@ -297,7 +216,7 @@ Signe-off-by: Felix Fietkau <nbd@nbd.name>
NAPI_GRO_CB(skb)->flush |= (flush != 0);
return pp;
-@@ -320,18 +414,58 @@ void tcp_gro_complete(struct sk_buff *sk
+@@ -394,18 +421,58 @@ void tcp_gro_complete(struct sk_buff *sk
}
EXPORT_SYMBOL(tcp_gro_complete);
@@ -349,19 +268,19 @@ Signe-off-by: Felix Fietkau <nbd@nbd.name>
+ th = tcp_gro_pull_header(skb);
+ if (!th)
+ goto flush;
-
-- return tcp_gro_receive(head, skb);
++
+ tcp4_check_fraglist_gro(head, skb, th);
+
+ return tcp_gro_receive(head, skb, th);
-+
+
+- return tcp_gro_receive(head, skb);
+flush:
+ NAPI_GRO_CB(skb)->flush = 1;
+ return NULL;
}
INDIRECT_CALLABLE_SCOPE int tcp4_gro_complete(struct sk_buff *skb, int thoff)
-@@ -339,6 +473,15 @@ INDIRECT_CALLABLE_SCOPE int tcp4_gro_com
+@@ -413,6 +480,15 @@ INDIRECT_CALLABLE_SCOPE int tcp4_gro_com
const struct iphdr *iph = ip_hdr(skb);
struct tcphdr *th = tcp_hdr(skb);
@@ -379,7 +298,7 @@ Signe-off-by: Felix Fietkau <nbd@nbd.name>
skb_shinfo(skb)->gso_type |= SKB_GSO_TCPV4;
--- a/net/ipv4/udp_offload.c
+++ b/net/ipv4/udp_offload.c
-@@ -538,33 +538,6 @@ out:
+@@ -539,33 +539,6 @@ out:
return segs;
}
@@ -472,8 +391,7 @@ Signe-off-by: Felix Fietkau <nbd@nbd.name>
- }
+ ip6_gro_compute_pseudo))
+ goto flush;
-
-- return tcp_gro_receive(head, skb);
++
+ th = tcp_gro_pull_header(skb);
+ if (!th)
+ goto flush;
@@ -481,7 +399,8 @@ Signe-off-by: Felix Fietkau <nbd@nbd.name>
+ tcp6_check_fraglist_gro(head, skb, th);
+
+ return tcp_gro_receive(head, skb, th);
-+
+
+- return tcp_gro_receive(head, skb);
+flush:
+ NAPI_GRO_CB(skb)->flush = 1;
+ return NULL;
@@ -504,75 +423,3 @@ Signe-off-by: Felix Fietkau <nbd@nbd.name>
th->check = ~tcp_v6_check(skb->len - thoff, &iph->saddr,
&iph->daddr, 0);
skb_shinfo(skb)->gso_type |= SKB_GSO_TCPV6;
-@@ -40,6 +92,61 @@ INDIRECT_CALLABLE_SCOPE int tcp6_gro_com
- return 0;
- }
-
-+static void __tcpv6_gso_segment_csum(struct sk_buff *seg,
-+ __be16 *oldport, __be16 newport)
-+{
-+ struct tcphdr *th;
-+
-+ if (*oldport == newport)
-+ return;
-+
-+ th = tcp_hdr(seg);
-+ inet_proto_csum_replace2(&th->check, seg, *oldport, newport, false);
-+ *oldport = newport;
-+}
-+
-+static struct sk_buff *__tcpv6_gso_segment_list_csum(struct sk_buff *segs)
-+{
-+ const struct tcphdr *th;
-+ const struct ipv6hdr *iph;
-+ struct sk_buff *seg;
-+ struct tcphdr *th2;
-+ struct ipv6hdr *iph2;
-+
-+ seg = segs;
-+ th = tcp_hdr(seg);
-+ iph = ipv6_hdr(seg);
-+ th2 = tcp_hdr(seg->next);
-+ iph2 = ipv6_hdr(seg->next);
-+
-+ if (!(*(const u32 *)&th->source ^ *(const u32 *)&th2->source) &&
-+ ipv6_addr_equal(&iph->saddr, &iph2->saddr) &&
-+ ipv6_addr_equal(&iph->daddr, &iph2->daddr))
-+ return segs;
-+
-+ while ((seg = seg->next)) {
-+ th2 = tcp_hdr(seg);
-+ iph2 = ipv6_hdr(seg);
-+
-+ iph2->saddr = iph->saddr;
-+ iph2->daddr = iph->daddr;
-+ __tcpv6_gso_segment_csum(seg, &th2->source, th->source);
-+ __tcpv6_gso_segment_csum(seg, &th2->dest, th->dest);
-+ }
-+
-+ return segs;
-+}
-+
-+static struct sk_buff *__tcp6_gso_segment_list(struct sk_buff *skb,
-+ netdev_features_t features)
-+{
-+ skb = skb_segment_list(skb, features, skb_mac_header_len(skb));
-+ if (IS_ERR(skb))
-+ return skb;
-+
-+ return __tcpv6_gso_segment_list_csum(skb);
-+}
-+
- static struct sk_buff *tcp6_gso_segment(struct sk_buff *skb,
- netdev_features_t features)
- {
-@@ -51,6 +158,9 @@ static struct sk_buff *tcp6_gso_segment(
- if (!pskb_may_pull(skb, sizeof(*th)))
- return ERR_PTR(-EINVAL);
-
-+ if (skb_shinfo(skb)->gso_type & SKB_GSO_FRAGLIST)
-+ return __tcp6_gso_segment_list(skb, features);
-+
- if (unlikely(skb->ip_summed != CHECKSUM_PARTIAL)) {
- const struct ipv6hdr *ipv6h = ipv6_hdr(skb);
- struct tcphdr *th = tcp_hdr(skb);
diff --git a/target/linux/generic/pending-6.6/685-net-gso-fix-tcp-fraglist-segmentation-after-pull-fro.patch b/target/linux/generic/pending-6.6/685-net-gso-fix-tcp-fraglist-segmentation-after-pull-fro.patch
deleted file mode 100644
index ea0fe0c9ab..0000000000
--- a/target/linux/generic/pending-6.6/685-net-gso-fix-tcp-fraglist-segmentation-after-pull-fro.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From: Felix Fietkau <nbd@nbd.name>
-Date: Thu, 26 Sep 2024 10:41:30 +0200
-Subject: [PATCH] net: gso: fix tcp fraglist segmentation after pull from
- frag_list
-
-Detect tcp gso fraglist skbs with corrupted geometry (see below) and
-pass these to skb_segment instead of skb_segment_list, as the first
-can segment them correctly.
-
-Valid SKB_GSO_FRAGLIST skbs
-- consist of two or more segments
-- the head_skb holds the protocol headers plus first gso_size
-- one or more frag_list skbs hold exactly one segment
-- all but the last must be gso_size
-
-Optional datapath hooks such as NAT and BPF (bpf_skb_pull_data) can
-modify these skbs, breaking these invariants.
-
-In extreme cases they pull all data into skb linear. For TCP, this
-causes a NULL ptr deref in __tcpv4_gso_segment_list_csum at
-tcp_hdr(seg->next).
-
-Detect invalid geometry due to pull, by checking head_skb size.
-Don't just drop, as this may blackhole a destination. Convert to be
-able to pass to regular skb_segment.
-
-Approach and description based on a patch by Willem de Bruijn.
-
-Link: https://lore.kernel.org/netdev/20240428142913.18666-1-shiming.cheng@mediatek.com/
-Link: https://lore.kernel.org/netdev/20240922150450.3873767-1-willemdebruijn.kernel@gmail.com/
-Fixes: bee88cd5bd83 ("net: add support for segmenting TCP fraglist GSO packets")
-Cc: stable@vger.kernel.org
-Cc: Willem de Bruijn <willemb@google.com>
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- a/net/ipv4/tcp_offload.c
-+++ b/net/ipv4/tcp_offload.c
-@@ -104,8 +104,14 @@ static struct sk_buff *tcp4_gso_segment(
- if (!pskb_may_pull(skb, sizeof(struct tcphdr)))
- return ERR_PTR(-EINVAL);
-
-- if (skb_shinfo(skb)->gso_type & SKB_GSO_FRAGLIST)
-- return __tcp4_gso_segment_list(skb, features);
-+ if (skb_shinfo(skb)->gso_type & SKB_GSO_FRAGLIST) {
-+ struct tcphdr *th = tcp_hdr(skb);
-+
-+ if (skb_pagelen(skb) - th->doff * 4 == skb_shinfo(skb)->gso_size)
-+ return __tcp4_gso_segment_list(skb, features);
-+
-+ skb->ip_summed = CHECKSUM_NONE;
-+ }
-
- if (unlikely(skb->ip_summed != CHECKSUM_PARTIAL)) {
- const struct iphdr *iph = ip_hdr(skb);
---- a/net/ipv6/tcpv6_offload.c
-+++ b/net/ipv6/tcpv6_offload.c
-@@ -158,8 +158,14 @@ static struct sk_buff *tcp6_gso_segment(
- if (!pskb_may_pull(skb, sizeof(*th)))
- return ERR_PTR(-EINVAL);
-
-- if (skb_shinfo(skb)->gso_type & SKB_GSO_FRAGLIST)
-- return __tcp6_gso_segment_list(skb, features);
-+ if (skb_shinfo(skb)->gso_type & SKB_GSO_FRAGLIST) {
-+ struct tcphdr *th = tcp_hdr(skb);
-+
-+ if (skb_pagelen(skb) - th->doff * 4 == skb_shinfo(skb)->gso_size)
-+ return __tcp6_gso_segment_list(skb, features);
-+
-+ skb->ip_summed = CHECKSUM_NONE;
-+ }
-
- if (unlikely(skb->ip_summed != CHECKSUM_PARTIAL)) {
- const struct ipv6hdr *ipv6h = ipv6_hdr(skb);
diff --git a/target/linux/generic/pending-6.6/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch b/target/linux/generic/pending-6.6/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch
index 63435530c1..82eac4b6b1 100644
--- a/target/linux/generic/pending-6.6/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch
+++ b/target/linux/generic/pending-6.6/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -5072,6 +5072,8 @@ static int mtk_probe(struct platform_dev
+@@ -5081,6 +5081,8 @@ static int mtk_probe(struct platform_dev
* for NAPI to work
*/
init_dummy_netdev(&eth->dummy_dev);
diff --git a/target/linux/generic/pending-6.6/703-phy-add-detach-callback-to-struct-phy_driver.patch b/target/linux/generic/pending-6.6/703-phy-add-detach-callback-to-struct-phy_driver.patch
index 9cbf8ac2dd..0f620ee2c7 100644
--- a/target/linux/generic/pending-6.6/703-phy-add-detach-callback-to-struct-phy_driver.patch
+++ b/target/linux/generic/pending-6.6/703-phy-add-detach-callback-to-struct-phy_driver.patch
@@ -11,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
-@@ -1938,6 +1938,9 @@ void phy_detach(struct phy_device *phyde
+@@ -1936,6 +1936,9 @@ void phy_detach(struct phy_device *phyde
phydev->devlink = NULL;
}
diff --git a/target/linux/generic/pending-6.6/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch b/target/linux/generic/pending-6.6/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch
index 379df48308..7ea7f0ca88 100644
--- a/target/linux/generic/pending-6.6/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch
+++ b/target/linux/generic/pending-6.6/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch
@@ -510,7 +510,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
return 0;
}
-@@ -4608,6 +4755,7 @@ static const struct net_device_ops mtk_n
+@@ -4617,6 +4764,7 @@ static const struct net_device_ops mtk_n
static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
{
const __be32 *_id = of_get_property(np, "reg", NULL);
@@ -518,7 +518,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
phy_interface_t phy_mode;
struct phylink *phylink;
struct mtk_mac *mac;
-@@ -4644,16 +4792,41 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4653,16 +4801,41 @@ static int mtk_add_mac(struct mtk_eth *e
mac->id = id;
mac->hw = eth;
mac->of_node = np;
@@ -568,7 +568,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
}
memset(mac->hwlro_ip, 0, sizeof(mac->hwlro_ip));
-@@ -4736,8 +4909,21 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4745,8 +4918,21 @@ static int mtk_add_mac(struct mtk_eth *e
phy_interface_zero(mac->phylink_config.supported_interfaces);
__set_bit(PHY_INTERFACE_MODE_INTERNAL,
mac->phylink_config.supported_interfaces);
@@ -590,7 +590,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
phylink = phylink_create(&mac->phylink_config,
of_fwnode_handle(mac->of_node),
phy_mode, &mtk_phylink_ops);
-@@ -4788,6 +4974,26 @@ free_netdev:
+@@ -4797,6 +4983,26 @@ free_netdev:
return err;
}
@@ -617,7 +617,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
void mtk_eth_set_dma_device(struct mtk_eth *eth, struct device *dma_dev)
{
struct net_device *dev, *tmp;
-@@ -4934,7 +5140,8 @@ static int mtk_probe(struct platform_dev
+@@ -4943,7 +5149,8 @@ static int mtk_probe(struct platform_dev
regmap_write(cci, 0, 3);
}
@@ -627,7 +627,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
err = mtk_sgmii_init(eth);
if (err)
-@@ -5045,6 +5252,24 @@ static int mtk_probe(struct platform_dev
+@@ -5054,6 +5261,24 @@ static int mtk_probe(struct platform_dev
}
}
@@ -652,7 +652,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT)) {
err = devm_request_irq(eth->dev, eth->irq[0],
mtk_handle_irq, 0,
-@@ -5148,6 +5373,11 @@ static int mtk_remove(struct platform_de
+@@ -5157,6 +5382,11 @@ static int mtk_remove(struct platform_de
mtk_stop(eth->netdev[i]);
mac = netdev_priv(eth->netdev[i]);
phylink_disconnect_phy(mac->phylink);
diff --git a/target/linux/generic/pending-6.6/738-01-net-ethernet-mtk_eth_soc-reduce-rx-ring-size-for-older.patch b/target/linux/generic/pending-6.6/738-01-net-ethernet-mtk_eth_soc-reduce-rx-ring-size-for-older.patch
index 2a9ae9647a..1684672e76 100644
--- a/target/linux/generic/pending-6.6/738-01-net-ethernet-mtk_eth_soc-reduce-rx-ring-size-for-older.patch
+++ b/target/linux/generic/pending-6.6/738-01-net-ethernet-mtk_eth_soc-reduce-rx-ring-size-for-older.patch
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -5409,7 +5409,7 @@ static const struct mtk_soc_data mt2701_
+@@ -5418,7 +5418,7 @@ static const struct mtk_soc_data mt2701_
.desc_size = sizeof(struct mtk_rx_dma),
.irq_done_mask = MTK_RX_DONE_INT,
.dma_l4_valid = RX_DMA_L4_VALID,
@@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
-@@ -5437,7 +5437,7 @@ static const struct mtk_soc_data mt7621_
+@@ -5446,7 +5446,7 @@ static const struct mtk_soc_data mt7621_
.desc_size = sizeof(struct mtk_rx_dma),
.irq_done_mask = MTK_RX_DONE_INT,
.dma_l4_valid = RX_DMA_L4_VALID,
@@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
-@@ -5467,7 +5467,7 @@ static const struct mtk_soc_data mt7622_
+@@ -5476,7 +5476,7 @@ static const struct mtk_soc_data mt7622_
.desc_size = sizeof(struct mtk_rx_dma),
.irq_done_mask = MTK_RX_DONE_INT,
.dma_l4_valid = RX_DMA_L4_VALID,
@@ -57,7 +57,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
-@@ -5496,7 +5496,7 @@ static const struct mtk_soc_data mt7623_
+@@ -5505,7 +5505,7 @@ static const struct mtk_soc_data mt7623_
.desc_size = sizeof(struct mtk_rx_dma),
.irq_done_mask = MTK_RX_DONE_INT,
.dma_l4_valid = RX_DMA_L4_VALID,
@@ -66,7 +66,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
-@@ -5522,7 +5522,7 @@ static const struct mtk_soc_data mt7629_
+@@ -5531,7 +5531,7 @@ static const struct mtk_soc_data mt7629_
.desc_size = sizeof(struct mtk_rx_dma),
.irq_done_mask = MTK_RX_DONE_INT,
.dma_l4_valid = RX_DMA_L4_VALID,
@@ -75,7 +75,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
},
-@@ -5554,7 +5554,7 @@ static const struct mtk_soc_data mt7981_
+@@ -5563,7 +5563,7 @@ static const struct mtk_soc_data mt7981_
.dma_l4_valid = RX_DMA_L4_VALID_V2,
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
@@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
},
};
-@@ -5584,7 +5584,7 @@ static const struct mtk_soc_data mt7986_
+@@ -5593,7 +5593,7 @@ static const struct mtk_soc_data mt7986_
.dma_l4_valid = RX_DMA_L4_VALID_V2,
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
@@ -93,7 +93,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
},
};
-@@ -5637,7 +5637,7 @@ static const struct mtk_soc_data rt5350_
+@@ -5646,7 +5646,7 @@ static const struct mtk_soc_data rt5350_
.dma_l4_valid = RX_DMA_L4_VALID_PDMA,
.dma_max_len = MTK_TX_DMA_BUF_LEN,
.dma_len_offset = 16,
diff --git a/target/linux/generic/pending-6.6/738-02-net-ethernet-mtk_eth_soc-do-not-enable-page-pool-sta.patch b/target/linux/generic/pending-6.6/738-02-net-ethernet-mtk_eth_soc-do-not-enable-page-pool-sta.patch
index 431ddf6dd6..7519e7b830 100644
--- a/target/linux/generic/pending-6.6/738-02-net-ethernet-mtk_eth_soc-do-not-enable-page-pool-sta.patch
+++ b/target/linux/generic/pending-6.6/738-02-net-ethernet-mtk_eth_soc-do-not-enable-page-pool-sta.patch
@@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
help
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -4580,6 +4580,7 @@ static int mtk_get_sset_count(struct net
+@@ -4589,6 +4589,7 @@ static int mtk_get_sset_count(struct net
static void mtk_ethtool_pp_stats(struct mtk_eth *eth, u64 *data)
{
@@ -33,7 +33,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
struct page_pool_stats stats = {};
int i;
-@@ -4592,6 +4593,7 @@ static void mtk_ethtool_pp_stats(struct
+@@ -4601,6 +4602,7 @@ static void mtk_ethtool_pp_stats(struct
page_pool_get_stats(ring->page_pool, &stats);
}
page_pool_ethtool_stats_get(data, &stats);
diff --git a/target/linux/generic/pending-6.6/810-pci_disable_common_quirks.patch b/target/linux/generic/pending-6.6/810-pci_disable_common_quirks.patch
index 2d138d123a..cd624c9984 100644
--- a/target/linux/generic/pending-6.6/810-pci_disable_common_quirks.patch
+++ b/target/linux/generic/pending-6.6/810-pci_disable_common_quirks.patch
@@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
/*
* The Mellanox Tavor device gives false positive parity errors. Disable
* parity error reporting.
-@@ -3502,6 +3503,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
+@@ -3509,6 +3510,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
@@ -42,7 +42,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
/*
* Ivytown NTB BAR sizes are misreported by the hardware due to an erratum.
* To work around this, query the size it should be configured to by the
-@@ -3527,6 +3530,8 @@ static void quirk_intel_ntb(struct pci_d
+@@ -3534,6 +3537,8 @@ static void quirk_intel_ntb(struct pci_d
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e08, quirk_intel_ntb);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e0d, quirk_intel_ntb);
@@ -51,7 +51,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
/*
* Some BIOS implementations leave the Intel GPU interrupts enabled, even
* though no one is handling them (e.g., if the i915 driver is never
-@@ -3565,6 +3570,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
+@@ -3572,6 +3577,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);
diff --git a/target/linux/mediatek/patches-6.6/410-bt-mtk-serial-fix.patch b/target/linux/mediatek/patches-6.6/410-bt-mtk-serial-fix.patch
index 907c0fb765..f8c6b4d9ea 100644
--- a/target/linux/mediatek/patches-6.6/410-bt-mtk-serial-fix.patch
+++ b/target/linux/mediatek/patches-6.6/410-bt-mtk-serial-fix.patch
@@ -19,7 +19,7 @@
},
[PORT_NPCM] = {
.name = "Nuvoton 16550",
-@@ -2782,6 +2782,11 @@ serial8250_do_set_termios(struct uart_po
+@@ -2788,6 +2788,11 @@ serial8250_do_set_termios(struct uart_po
unsigned long flags;
unsigned int baud, quot, frac = 0;
diff --git a/target/linux/mvebu/patches-6.6/830-02-i2c-pxa-prevent-calling-of-the-generic-recovery-init-code.patch b/target/linux/mvebu/patches-6.6/830-02-i2c-pxa-prevent-calling-of-the-generic-recovery-init-code.patch
index a05cedcefe..7f083c7b6f 100644
--- a/target/linux/mvebu/patches-6.6/830-02-i2c-pxa-prevent-calling-of-the-generic-recovery-init-code.patch
+++ b/target/linux/mvebu/patches-6.6/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
-@@ -1331,6 +1331,12 @@ static void i2c_pxa_unprepare_recovery(s
+@@ -1337,6 +1337,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;
-@@ -1399,6 +1405,7 @@ static int i2c_pxa_init_recovery(struct
+@@ -1405,6 +1411,7 @@ static int i2c_pxa_init_recovery(struct
return 0;
}
diff --git a/target/linux/mvebu/patches-6.6/830-03-i2c-pxa-handle-Early-Bus-Busy-condition-on-Armada-3700.patch b/target/linux/mvebu/patches-6.6/830-03-i2c-pxa-handle-Early-Bus-Busy-condition-on-Armada-3700.patch
index 52ccb8cf08..025418e93f 100644
--- a/target/linux/mvebu/patches-6.6/830-03-i2c-pxa-handle-Early-Bus-Busy-condition-on-Armada-3700.patch
+++ b/target/linux/mvebu/patches-6.6/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;
-@@ -428,7 +430,7 @@ static int i2c_pxa_wait_bus_not_busy(str
+@@ -429,7 +431,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)
-@@ -465,7 +467,7 @@ static int i2c_pxa_wait_master(struct px
+@@ -466,7 +468,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__);
-@@ -486,7 +488,7 @@ static int i2c_pxa_set_master(struct pxa
+@@ -487,7 +489,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__);
-@@ -512,7 +514,7 @@ static int i2c_pxa_wait_slave(struct pxa
+@@ -513,7 +515,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)
-@@ -1170,7 +1172,7 @@ static int i2c_pxa_pio_set_master(struct
+@@ -1176,7 +1178,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) {
-@@ -1317,7 +1319,7 @@ static void i2c_pxa_unprepare_recovery(s
+@@ -1323,7 +1325,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);
-@@ -1481,6 +1483,10 @@ static int i2c_pxa_probe(struct platform
+@@ -1487,6 +1489,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.6/710-net-phy-sfp-re-probe-modules-on-DEV_UP-event.patch b/target/linux/realtek/patches-6.6/710-net-phy-sfp-re-probe-modules-on-DEV_UP-event.patch
index 76a722f0d5..9ad189a9de 100644
--- a/target/linux/realtek/patches-6.6/710-net-phy-sfp-re-probe-modules-on-DEV_UP-event.patch
+++ b/target/linux/realtek/patches-6.6/710-net-phy-sfp-re-probe-modules-on-DEV_UP-event.patch
@@ -10,7 +10,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
-@@ -2434,6 +2434,13 @@ static void sfp_sm_module(struct sfp *sf
+@@ -2477,6 +2477,13 @@ static void sfp_sm_module(struct sfp *sf
return;
}
diff --git a/target/linux/realtek/patches-6.6/714-net-phy-sfp-add-support-for-SMBus.patch b/target/linux/realtek/patches-6.6/714-net-phy-sfp-add-support-for-SMBus.patch
index 4d0bb28c3b..570bf011da 100644
--- a/target/linux/realtek/patches-6.6/714-net-phy-sfp-add-support-for-SMBus.patch
+++ b/target/linux/realtek/patches-6.6/714-net-phy-sfp-add-support-for-SMBus.patch
@@ -10,7 +10,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
-@@ -680,10 +680,64 @@ static int sfp_i2c_write(struct sfp *sfp
+@@ -720,10 +720,64 @@ static int sfp_i2c_write(struct sfp *sfp
return ret == ARRAY_SIZE(msgs) ? len : 0;
}
@@ -77,7 +77,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
sfp->i2c = i2c;
sfp->read = sfp_i2c_read;
-@@ -715,6 +769,29 @@ static int sfp_i2c_mdiobus_create(struct
+@@ -755,6 +809,29 @@ static int sfp_i2c_mdiobus_create(struct
return 0;
}
@@ -107,7 +107,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
static void sfp_i2c_mdiobus_destroy(struct sfp *sfp)
{
mdiobus_unregister(sfp->i2c_mii);
-@@ -1888,8 +1965,15 @@ static void sfp_sm_fault(struct sfp *sfp
+@@ -1929,8 +2006,15 @@ static void sfp_sm_fault(struct sfp *sfp
static int sfp_sm_add_mdio_bus(struct sfp *sfp)
{
diff --git a/target/linux/rockchip/patches-6.6/020-v6.13-irqchip-gic-v3-its-Share-ITS-tables-with-a-non-trust.patch b/target/linux/rockchip/patches-6.6/020-v6.13-irqchip-gic-v3-its-Share-ITS-tables-with-a-non-trust.patch
index 92e9bf6c86..198ad0b777 100644
--- a/target/linux/rockchip/patches-6.6/020-v6.13-irqchip-gic-v3-its-Share-ITS-tables-with-a-non-trust.patch
+++ b/target/linux/rockchip/patches-6.6/020-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;
-@@ -3410,7 +3493,6 @@ static struct its_device *its_create_dev
+@@ -3411,7 +3494,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...).
-@@ -3418,7 +3500,11 @@ static struct its_device *its_create_dev
+@@ -3422,7 +3504,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)
-@@ -3430,9 +3516,9 @@ static struct its_device *its_create_dev
+@@ -3434,9 +3520,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;
-@@ -3442,6 +3528,7 @@ static struct its_device *its_create_dev
+@@ -3446,6 +3532,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;
-@@ -3469,7 +3556,7 @@ static void its_free_device(struct its_d
+@@ -3473,7 +3560,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);
}
-@@ -5112,8 +5199,9 @@ static int __init its_probe_one(struct i
+@@ -5116,8 +5203,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;
-@@ -5177,7 +5265,7 @@ static int __init its_probe_one(struct i
+@@ -5181,7 +5269,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);
-@@ -5659,6 +5747,10 @@ int __init its_init(struct fwnode_handle
+@@ -5663,6 +5751,10 @@ int __init its_init(struct fwnode_handle
bool has_v4_1 = false;
int err;
diff --git a/target/linux/rockchip/patches-6.6/022-v6.15-irqchip-gic-v3-Add-Rockchip-3568002-erratum-workaround.patch b/target/linux/rockchip/patches-6.6/022-v6.15-irqchip-gic-v3-Add-Rockchip-3568002-erratum-workaround.patch
index b5c548ecce..171d7f700c 100644
--- a/target/linux/rockchip/patches-6.6/022-v6.15-irqchip-gic-v3-Add-Rockchip-3568002-erratum-workaround.patch
+++ b/target/linux/rockchip/patches-6.6/022-v6.15-irqchip-gic-v3-Add-Rockchip-3568002-erratum-workaround.patch
@@ -70,7 +70,7 @@ Link: https://lore.kernel.org/all/20250216221634.364158-2-dmitry.osipenko@collab
if (!page)
return NULL;
-@@ -4851,6 +4853,17 @@ static bool its_set_non_coherent(void *d
+@@ -4855,6 +4857,17 @@ static bool its_set_non_coherent(void *d
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
{
-@@ -4910,6 +4923,14 @@ static const struct gic_quirk its_quirks
+@@ -4914,6 +4927,14 @@ static const struct gic_quirk its_quirks
.property = "dma-noncoherent",
.init = its_set_non_coherent,
},
diff --git a/target/linux/starfive/patches-6.6/0066-uart-8250-Add-dw-auto-flow-ctrl-support.patch b/target/linux/starfive/patches-6.6/0066-uart-8250-Add-dw-auto-flow-ctrl-support.patch
index 68e495112c..5839ccf59f 100644
--- a/target/linux/starfive/patches-6.6/0066-uart-8250-Add-dw-auto-flow-ctrl-support.patch
+++ b/target/linux/starfive/patches-6.6/0066-uart-8250-Add-dw-auto-flow-ctrl-support.patch
@@ -67,7 +67,7 @@ Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
}
/*
-@@ -2821,7 +2834,6 @@ serial8250_do_set_termios(struct uart_po
+@@ -2827,7 +2840,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.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch b/target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch
index 3b99a4fcdc..66de004065 100644
--- a/target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch
+++ b/target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch
@@ -160,7 +160,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
}
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
-@@ -3722,7 +3722,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3723,7 +3723,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
full_len = urb->transfer_buffer_length;
/* If we have scatter/gather list, we use it. */
diff --git a/target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch b/target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch
index c3d9170c3b..e2ea7e9a5b 100644
--- a/target/linux/starfive/patches-6.6/1009-net-stmmac-use-GFP_DMA32.patch
+++ b/target/linux/starfive/patches-6.6/1009-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;
-@@ -4691,7 +4691,7 @@ static inline void stmmac_rx_refill(stru
+@@ -4656,7 +4656,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;