[openwrt/openwrt] kernel: bump 6.12 to 6.12.43

LEDE Commits lede-commits at lists.infradead.org
Tue Aug 26 12:35:44 PDT 2025


robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/f39c7e103f9a9aaa1381c9057c88b0827ca4010c

commit f39c7e103f9a9aaa1381c9057c88b0827ca4010c
Author: John Audia <therealgraysky at proton.me>
AuthorDate: Sat Aug 23 16:04:04 2025 -0400

    kernel: bump 6.12 to 6.12.43
    
    Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.43
    
    Removed upstreamed:
        generic/backport-6.12/612-07-v6.17-net-dsa-b53-prevent-SWITCH_CTRL-access-on-BCM5325.patch[1]
        generic-backport/612-08-v6.17-net-dsa-b53-fix-IP_MULTICAST_CTRL-on-BCM5325.patch[2]
        generic-backport/612-09-v6.17-net-dsa-b53-prevent-DIS_LEARNING-access-on-BCM5325.patch[3]
        generic-backport/612-11-v6.17-net-dsa-b53-prevent-GMII_PORT_OVERRIDE_CTRL-access-on-BCM5325.patch[4]
        generic-backport/612-14-v6.17-net-dsa-b53-ensure-BCM5325-PHYs-are-enabled.patch[5]
        generic-backport/830-v6.17-Revert-leds-trigger-netdev-Configure-LED-blink-inter.patch[6]
        bcm27xx/patches-6.12/950-0100-media-tc358743-Increase-FIFO-level-to-374.patch[7]
        bcm27xx/patches-6.12/950-0102-media-tc358743-Check-I2C-succeeded-during-probe.patch[8]
        bcm27xx/patches-6.12/950-0107-media-tc358743-Return-an-appropriate-colorspace-from.patch[9]
        bcm27xx/patches-6.12/950-0341-Allow-RESET_BRCMSTB-on-ARCH_BCM2835.patch[10]
        lantiq/patches-6.12/102-11-v6.17-MIPS-lantiq-falcon-sysctrl-fix-request-memory-check-.patch[11]
        lantiq/patches-6.12/102-12-v6.17-MIPS-vpe-mt-add-missing-prototypes-for-vpe_-alloc-st.patch[12]
        qualcommax/patches-6.12/0170-clk-qcom-gcc-ipq8074-fix-broken-freq-table-for-nss_port6_tx_clk_src.patch[13]
        generic/backport-6.12/612-13-v6.17-net-dsa-b53-fix-b53_imp_vlan_setup-for-BCM5325.patch[14]
    
    All other patches automatically rebased.
    
    1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=f16f96ccfe56ef2d627c20ba47f6d9d7dea40f5b
    2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=394bd12d1f93ed2fa0fa1d8f31ffd3c344681e85
    3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=9f45e4858f8096bb27f9a2c75fc24a538dffad67
    4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=15cf46cc6ecc7a54b397294675d11c379ddf69ef
    5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=0d250ad617a035904744cef74a5d5dc43d0199b9
    6. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=cb9bb872366e10fa42e1e0200a0c2e5d05a27bec
    7. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=f25d566c5674decd0051a3e624805fc1524729bf
    8. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=3e03ee3b65baeac4c253b30650492ffffad9b608
    9. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=b42b107293b52ac8d46238815b1071138a47a7e4
    10. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=e285cdb9d2e4ba2e4515ae898f92e9f38be64eb3
    11. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=1e9079ff83eac962bc3b1e2fbad73b2f7d5256f4
    12. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=8520c843d9a2770012f23da08e4e2ccf1bb05ba6
    13. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=f1c5c55fb6cda312f5ed15505588caaf05a69043
    14. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=757955c80663ac3df7053abaf6fcc75051ef7a7c
    
    Build system: x86/64 (Intel N150 based)
    Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64-glibc
    Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64-glibc
    
    Signed-off-by: John Audia <therealgraysky at proton.me>
    Link: https://github.com/openwrt/openwrt/pull/19618
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 .../patches-6.12/900-unaligned_access_hacks.patch  |   2 +-
 ...pport-for-all-the-downstream-rpi-sound-ca.patch |   2 +-
 ...media-tc358743-Increase-FIFO-level-to-374.patch |  31 -----
 ...58743-Add-support-for-972Mbit-s-link-freq.patch |   4 +-
 ...tc358743-Check-I2C-succeeded-during-probe.patch |  98 --------------
 ...743-Return-an-appropriate-colorspace-from.patch | 110 ----------------
 ...ent-xhci_fixup_endpoint-for-interval-adju.patch |   4 +-
 ...op-and-add-the-endpoint-context-in-xhci_f.patch |   2 +-
 ...m-split-out-the-BCM54213PE-from-the-BCM54.patch |   6 +-
 ...05-fixups-for-driver-submitted-to-mailing.patch |   8 +-
 ...-Populate-phy-driver-block-for-BCM54213PE.patch |   2 +-
 ...34-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch |   6 +-
 ...0-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch |   6 +-
 ...-0341-Allow-RESET_BRCMSTB-on-ARCH_BCM2835.patch |  20 ---
 ...-client-to-request-a-particular-dev-fbN-n.patch |  10 +-
 ...nvme-pci-Disable-Host-Memory-Buffer-usage.patch |   6 +-
 ...fault-to-Intel-scheme-for-calculating-U1-.patch |   4 +-
 ...-02-v6.13-block-introduce-add_disk_fwnode.patch |   2 +-
 ...-v6.13-net-dsa-use-ethtool-string-helpers.patch |   2 +-
 ...b53-bcm_sf2-implement-.support_eee-method.patch |   6 +-
 ...net-dsa-b53-mdio-add-support-for-BCM53101.patch |   4 +-
 ...net-dsa-b53-implement-setting-ageing-time.patch |   8 +-
 ...-net-dsa-b53-do-not-enable-EEE-on-bcm63xx.patch |   4 +-
 ...-do-not-configure-bcm63xx-s-IMP-port-inte.patch |   4 +-
 ...v6.17-net-dsa-b53-support-legacy-FCS-tags.patch |   2 +-
 ...v6.17-net-dsa-b53-detect-BCM5325-variants.patch |   6 +-
 ...d-support-for-FDB-operations-on-5325-5365.patch |  16 +--
 ...sa-b53-prevent-FAST_AGE-access-on-BCM5325.patch |   6 +-
 ...b53-prevent-SWITCH_CTRL-access-on-BCM5325.patch |  39 ------
 ...-dsa-b53-fix-IP_MULTICAST_CTRL-on-BCM5325.patch |  57 --------
 ...53-prevent-DIS_LEARNING-access-on-BCM5325.patch |  46 -------
 ...-prevent-BRCM_HDR-access-on-older-devices.patch |   2 +-
 ...GMII_PORT_OVERRIDE_CTRL-access-on-BCM5325.patch |  77 -----------
 ...sa-b53-fix-b53_imp_vlan_setup-for-BCM5325.patch |  32 -----
 ...t-dsa-b53-ensure-BCM5325-PHYs-are-enabled.patch |  59 ---------
 ...14-net-phy-Constify-struct-mdio_device_id.patch |   6 +-
 ...-trigger-netdev-Configure-LED-blink-inter.patch |  81 ------------
 .../linux/generic/hack-6.12/204-module_strip.patch |   8 +-
 .../generic/hack-6.12/901-debloat_sock_diag.patch  |   2 +-
 .../linux/generic/hack-6.12/902-debloat_proc.patch |   2 +-
 target/linux/generic/kernel-6.12                   |   4 +-
 .../454-block-add-support-for-notifications.patch  |   2 +-
 ...NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch |   2 +-
 .../generic/pending-6.12/834-ledtrig-libata.patch  |   2 +-
 ...dhci-msm-use-sdhci_set_clock-instead-of-s.patch |   2 +-
 ...ci-msm-comment-unused-sdhci_msm_set_clock.patch |   2 +-
 ...-net-dsa-add-out-of-band-tagging-protocol.patch |   2 +-
 .../001-MIPS-lantiq-add-pcie-driver.patch          |   2 +-
 ...-falcon-sysctrl-fix-request-memory-check-.patch |  65 ----------
 ...-add-missing-prototypes-for-vpe_-alloc-st.patch |  44 -------
 ...-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch |   2 +-
 ...roken-freq-table-for-nss_port6_tx_clk_src.patch | 143 ---------------------
 .../810-uvc-add-iPassion-iP2970-support.patch      |   6 +-
 53 files changed, 84 insertions(+), 986 deletions(-)

diff --git a/target/linux/ath79/patches-6.12/900-unaligned_access_hacks.patch b/target/linux/ath79/patches-6.12/900-unaligned_access_hacks.patch
index 12fbc59e98..cb3aa56dc0 100644
--- a/target/linux/ath79/patches-6.12/900-unaligned_access_hacks.patch
+++ b/target/linux/ath79/patches-6.12/900-unaligned_access_hacks.patch
@@ -784,7 +784,7 @@ SVN-Revision: 35130
  
 --- a/include/net/neighbour.h
 +++ b/include/net/neighbour.h
-@@ -286,8 +286,10 @@ static inline bool neigh_key_eq128(const
+@@ -287,8 +287,10 @@ static inline bool neigh_key_eq128(const
  	const u32 *n32 = (const u32 *)n->primary_key;
  	const u32 *p32 = pkey;
  
diff --git a/target/linux/bcm27xx/patches-6.12/950-0073-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch b/target/linux/bcm27xx/patches-6.12/950-0073-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch
index 2da70b23d8..59105068c1 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0073-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0073-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch
@@ -18589,7 +18589,7 @@ Signed-off-by: j-schambacher <joerg at hifiberry.com>
  	u32 xfer_resolution;
 --- a/sound/soc/soc-core.c
 +++ b/sound/soc/soc-core.c
-@@ -1434,7 +1434,15 @@ int snd_soc_runtime_set_dai_fmt(struct s
+@@ -1437,7 +1437,15 @@ int snd_soc_runtime_set_dai_fmt(struct s
  		return 0;
  
  	for_each_rtd_codec_dais(rtd, i, codec_dai) {
diff --git a/target/linux/bcm27xx/patches-6.12/950-0100-media-tc358743-Increase-FIFO-level-to-374.patch b/target/linux/bcm27xx/patches-6.12/950-0100-media-tc358743-Increase-FIFO-level-to-374.patch
deleted file mode 100644
index 2981e5c663..0000000000
--- a/target/linux/bcm27xx/patches-6.12/950-0100-media-tc358743-Increase-FIFO-level-to-374.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 6fd71667a133560b84946a5008e3c9375b5115b7 Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <dave.stevenson at raspberrypi.org>
-Date: Wed, 31 Oct 2018 14:56:59 +0000
-Subject: [PATCH] media: tc358743: Increase FIFO level to 374.
-
-The existing fixed value of 16 worked for UYVY 720P60 over
-2 lanes at 594MHz, or UYVY 1080P60 over 4 lanes. (RGB888
-1080P60 needs 6 lanes at 594MHz).
-It doesn't allow for lower resolutions to work as the FIFO
-underflows.
-
-374 is required for 1080P24-30 UYVY over 2 lanes @ 972Mbit/s, but
->374 means that the FIFO underflows on 1080P50 UYVY over 2 lanes
-@ 972Mbit/s.
-
-Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
----
- drivers/media/i2c/tc358743.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/media/i2c/tc358743.c
-+++ b/drivers/media/i2c/tc358743.c
-@@ -1942,7 +1942,7 @@ static int tc358743_probe_of(struct tc35
- 	state->pdata.ddc5v_delay = DDC5V_DELAY_100_MS;
- 	state->pdata.enable_hdcp = false;
- 	/* A FIFO level of 16 should be enough for 2-lane 720p60 at 594 MHz. */
--	state->pdata.fifo_level = 16;
-+	state->pdata.fifo_level = 374;
- 	/*
- 	 * The PLL input clock is obtained by dividing refclk by pll_prd.
- 	 * It must be between 6 MHz and 40 MHz, lower frequency is better.
diff --git a/target/linux/bcm27xx/patches-6.12/950-0101-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch b/target/linux/bcm27xx/patches-6.12/950-0101-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch
index 247b83d938..4dc5d19c94 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0101-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0101-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch
@@ -24,7 +24,7 @@ Signed-off-by: Jacko Dirks <jdirks.linuxdev at gmail.com>
 
 --- a/drivers/media/i2c/tc358743.c
 +++ b/drivers/media/i2c/tc358743.c
-@@ -1962,6 +1962,7 @@ static int tc358743_probe_of(struct tc35
+@@ -1980,6 +1980,7 @@ static int tc358743_probe_of(struct tc35
  	/*
  	 * The CSI bps per lane must be between 62.5 Mbps and 1 Gbps.
  	 * The default is 594 Mbps for 4-lane 1080p60 or 2-lane 720p60.
@@ -32,7 +32,7 @@ Signed-off-by: Jacko Dirks <jdirks.linuxdev at gmail.com>
  	 */
  	bps_pr_lane = 2 * endpoint.link_frequencies[0];
  	if (bps_pr_lane < 62500000U || bps_pr_lane > 1000000000U) {
-@@ -1975,23 +1976,42 @@ static int tc358743_probe_of(struct tc35
+@@ -1993,23 +1994,42 @@ static int tc358743_probe_of(struct tc35
  			       state->pdata.refclk_hz * state->pdata.pll_prd;
  
  	/*
diff --git a/target/linux/bcm27xx/patches-6.12/950-0102-media-tc358743-Check-I2C-succeeded-during-probe.patch b/target/linux/bcm27xx/patches-6.12/950-0102-media-tc358743-Check-I2C-succeeded-during-probe.patch
deleted file mode 100644
index 77194eef03..0000000000
--- a/target/linux/bcm27xx/patches-6.12/950-0102-media-tc358743-Check-I2C-succeeded-during-probe.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 307615221ab3249fcfdd21b81a8aca138ed7a1ed Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <dave.stevenson at raspberrypi.org>
-Date: Wed, 31 Oct 2018 14:57:34 +0000
-Subject: [PATCH] media: tc358743: Check I2C succeeded during probe.
-
-The probe for the TC358743 reads the CHIPID register from
-the device and compares it to the expected value of 0.
-If the I2C request fails then that also returns 0, so
-the driver loads thinking that the device is there.
-
-Generally I2C communications are reliable so there is
-limited need to check the return value on every transfer,
-therefore only amend the one read during probe to check
-for I2C errors.
-
-Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
----
- drivers/media/i2c/tc358743.c | 27 +++++++++++++++++++++++----
- 1 file changed, 23 insertions(+), 4 deletions(-)
-
---- a/drivers/media/i2c/tc358743.c
-+++ b/drivers/media/i2c/tc358743.c
-@@ -110,7 +110,7 @@ static inline struct tc358743_state *to_
- 
- /* --------------- I2C --------------- */
- 
--static void i2c_rd(struct v4l2_subdev *sd, u16 reg, u8 *values, u32 n)
-+static int i2c_rd(struct v4l2_subdev *sd, u16 reg, u8 *values, u32 n)
- {
- 	struct tc358743_state *state = to_state(sd);
- 	struct i2c_client *client = state->i2c_client;
-@@ -136,6 +136,7 @@ static void i2c_rd(struct v4l2_subdev *s
- 		v4l2_err(sd, "%s: reading register 0x%x from 0x%x failed: %d\n",
- 				__func__, reg, client->addr, err);
- 	}
-+	return err != ARRAY_SIZE(msgs);
- }
- 
- static void i2c_wr(struct v4l2_subdev *sd, u16 reg, u8 *values, u32 n)
-@@ -192,15 +193,24 @@ static void i2c_wr(struct v4l2_subdev *s
- 	}
- }
- 
--static noinline u32 i2c_rdreg(struct v4l2_subdev *sd, u16 reg, u32 n)
-+static noinline u32 i2c_rdreg_err(struct v4l2_subdev *sd, u16 reg, u32 n,
-+				  int *err)
- {
-+	int error;
- 	__le32 val = 0;
- 
--	i2c_rd(sd, reg, (u8 __force *)&val, n);
-+	error = i2c_rd(sd, reg, (u8 __force *)&val, n);
-+	if (err)
-+		*err = error;
- 
- 	return le32_to_cpu(val);
- }
- 
-+static inline u32 i2c_rdreg(struct v4l2_subdev *sd, u16 reg, u32 n)
-+{
-+	return i2c_rdreg_err(sd, reg, n, NULL);
-+}
-+
- static noinline void i2c_wrreg(struct v4l2_subdev *sd, u16 reg, u32 val, u32 n)
- {
- 	__le32 raw = cpu_to_le32(val);
-@@ -229,6 +239,13 @@ static u16 i2c_rd16(struct v4l2_subdev *
- 	return i2c_rdreg(sd, reg, 2);
- }
- 
-+static int i2c_rd16_err(struct v4l2_subdev *sd, u16 reg, u16 *value)
-+{
-+	int err;
-+	*value = i2c_rdreg_err(sd, reg, 2, &err);
-+	return err;
-+}
-+
- static void i2c_wr16(struct v4l2_subdev *sd, u16 reg, u16 val)
- {
- 	i2c_wrreg(sd, reg, val, 2);
-@@ -2050,6 +2067,7 @@ static int tc358743_probe(struct i2c_cli
- 	struct tc358743_platform_data *pdata = client->dev.platform_data;
- 	struct v4l2_subdev *sd;
- 	u16 irq_mask = MASK_HDMI_MSK | MASK_CSI_MSK;
-+	u16 chipid;
- 	int err;
- 
- 	if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA))
-@@ -2081,7 +2099,8 @@ static int tc358743_probe(struct i2c_cli
- 	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_HAS_EVENTS;
- 
- 	/* i2c access */
--	if ((i2c_rd16(sd, CHIPID) & MASK_CHIPID) != 0) {
-+	if (i2c_rd16_err(sd, CHIPID, &chipid) ||
-+	    (chipid & MASK_CHIPID) != 0) {
- 		v4l2_info(sd, "not a TC358743 on address 0x%x\n",
- 			  client->addr << 1);
- 		return -ENODEV;
diff --git a/target/linux/bcm27xx/patches-6.12/950-0107-media-tc358743-Return-an-appropriate-colorspace-from.patch b/target/linux/bcm27xx/patches-6.12/950-0107-media-tc358743-Return-an-appropriate-colorspace-from.patch
deleted file mode 100644
index 0ac1a1a9f2..0000000000
--- a/target/linux/bcm27xx/patches-6.12/950-0107-media-tc358743-Return-an-appropriate-colorspace-from.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From 1745cb8447123a894db6c0b579259ec5d976808f Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <dave.stevenson at raspberrypi.org>
-Date: Thu, 22 Nov 2018 17:31:06 +0000
-Subject: [PATCH] media: tc358743: Return an appropriate colorspace from
- tc358743_set_fmt
-
-When calling tc358743_set_fmt, the code was calling tc358743_get_fmt
-to choose a valid format. However that sets the colorspace
-based on what was read back from the chip. When you set the format,
-then the driver would choose and program the colorspace based
-on the format code.
-
-The result was that if you called try or set format for UYVY
-when the current format was RGB3 then you would get told sRGB,
-and try RGB3 when current was UYVY and you would get told
-SMPTE170M.
-
-The value programmed into the chip is determined by this driver,
-therefore there is no need to read back the value. Return the
-colorspace based on the format set/tried instead.
-
-Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
-
-media: i2c: tc358743: Only allow supported pixel fmts in set_fmt
-
-Fix commit "media: tc358743: Return an appropriate colorspace from
-tc358743_set_fmt" to ensure that the format passed in to set_fmt
-is checked to be valid, and reset to the current format if not.
-
-Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
----
- drivers/media/i2c/tc358743.c | 44 ++++++++++++++----------------------
- 1 file changed, 17 insertions(+), 27 deletions(-)
-
---- a/drivers/media/i2c/tc358743.c
-+++ b/drivers/media/i2c/tc358743.c
-@@ -1677,12 +1677,23 @@ static int tc358743_enum_mbus_code(struc
- 	return 0;
- }
- 
-+static u32 tc358743_g_colorspace(u32 code)
-+{
-+	switch (code) {
-+	case MEDIA_BUS_FMT_RGB888_1X24:
-+		return V4L2_COLORSPACE_SRGB;
-+	case MEDIA_BUS_FMT_UYVY8_1X16:
-+		return V4L2_COLORSPACE_SMPTE170M;
-+	default:
-+		return 0;
-+	}
-+}
-+
- static int tc358743_get_fmt(struct v4l2_subdev *sd,
- 		struct v4l2_subdev_state *sd_state,
- 		struct v4l2_subdev_format *format)
- {
- 	struct tc358743_state *state = to_state(sd);
--	u8 vi_rep = i2c_rd8(sd, VI_REP);
- 
- 	if (format->pad != 0)
- 		return -EINVAL;
-@@ -1692,23 +1703,7 @@ static int tc358743_get_fmt(struct v4l2_
- 	format->format.height = state->timings.bt.height;
- 	format->format.field = V4L2_FIELD_NONE;
- 
--	switch (vi_rep & MASK_VOUT_COLOR_SEL) {
--	case MASK_VOUT_COLOR_RGB_FULL:
--	case MASK_VOUT_COLOR_RGB_LIMITED:
--		format->format.colorspace = V4L2_COLORSPACE_SRGB;
--		break;
--	case MASK_VOUT_COLOR_601_YCBCR_LIMITED:
--	case MASK_VOUT_COLOR_601_YCBCR_FULL:
--		format->format.colorspace = V4L2_COLORSPACE_SMPTE170M;
--		break;
--	case MASK_VOUT_COLOR_709_YCBCR_FULL:
--	case MASK_VOUT_COLOR_709_YCBCR_LIMITED:
--		format->format.colorspace = V4L2_COLORSPACE_REC709;
--		break;
--	default:
--		format->format.colorspace = 0;
--		break;
--	}
-+	format->format.colorspace = tc358743_g_colorspace(format->format.code);
- 
- 	return 0;
- }
-@@ -1722,19 +1717,14 @@ static int tc358743_set_fmt(struct v4l2_
- 	u32 code = format->format.code; /* is overwritten by get_fmt */
- 	int ret = tc358743_get_fmt(sd, sd_state, format);
- 
--	format->format.code = code;
-+	if (code == MEDIA_BUS_FMT_RGB888_1X24 ||
-+	    code == MEDIA_BUS_FMT_UYVY8_1X16)
-+		format->format.code = code;
-+	format->format.colorspace = tc358743_g_colorspace(format->format.code);
- 
- 	if (ret)
- 		return ret;
- 
--	switch (code) {
--	case MEDIA_BUS_FMT_RGB888_1X24:
--	case MEDIA_BUS_FMT_UYVY8_1X16:
--		break;
--	default:
--		return -EINVAL;
--	}
--
- 	if (format->which == V4L2_SUBDEV_FORMAT_TRY)
- 		return 0;
- 
diff --git a/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch b/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch
index 041d364b89..b3f1233293 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch
@@ -14,7 +14,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.org>
 
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -1517,6 +1517,109 @@ static int xhci_check_ep0_maxpacket(stru
+@@ -1519,6 +1519,109 @@ static int xhci_check_ep0_maxpacket(stru
  }
  
  /*
@@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.org>
   * non-error returns are a promise to giveback() the urb later
   * we drop ownership so next owner (or urb unlink) can get it
   */
-@@ -5381,6 +5484,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5383,6 +5486,7 @@ static const struct hc_driver xhci_hc_dr
  	.endpoint_reset =	xhci_endpoint_reset,
  	.check_bandwidth =	xhci_check_bandwidth,
  	.reset_bandwidth =	xhci_reset_bandwidth,
diff --git a/target/linux/bcm27xx/patches-6.12/950-0127-usb-xhci-drop-and-add-the-endpoint-context-in-xhci_f.patch b/target/linux/bcm27xx/patches-6.12/950-0127-usb-xhci-drop-and-add-the-endpoint-context-in-xhci_f.patch
index c6f2196c32..1ac575a2ce 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0127-usb-xhci-drop-and-add-the-endpoint-context-in-xhci_f.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0127-usb-xhci-drop-and-add-the-endpoint-context-in-xhci_f.patch
@@ -19,7 +19,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
 
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -1606,7 +1606,7 @@ static void xhci_fixup_endpoint(struct u
+@@ -1608,7 +1608,7 @@ static void xhci_fixup_endpoint(struct u
  		return;
  	}
  	ctrl_ctx->add_flags = xhci_get_endpoint_flag_from_index(ep_index);
diff --git a/target/linux/bcm27xx/patches-6.12/950-0157-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch b/target/linux/bcm27xx/patches-6.12/950-0157-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch
index 950e93c5db..b62142dd9f 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0157-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0157-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch
@@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.org>
  		return;
  
  	val = bcm_phy_read_shadow(phydev, BCM54XX_SHD_SCR3);
-@@ -1444,7 +1445,7 @@ static struct phy_driver broadcom_driver
+@@ -1461,7 +1462,7 @@ static struct phy_driver broadcom_driver
  	.link_change_notify	= bcm54xx_link_change_notify,
  }, {
  	.phy_id		= PHY_ID_BCM54210E,
@@ -35,7 +35,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.org>
  	.name		= "Broadcom BCM54210E",
  	/* PHY_GBIT_FEATURES */
  	.flags		= PHY_ALWAYS_CALL_SUSPEND,
-@@ -1462,6 +1463,13 @@ static struct phy_driver broadcom_driver
+@@ -1479,6 +1480,13 @@ static struct phy_driver broadcom_driver
  	.set_wol	= bcm54xx_phy_set_wol,
  	.led_brightness_set	= bcm_phy_led_brightness_set,
  }, {
@@ -49,7 +49,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.org>
  	.phy_id		= PHY_ID_BCM5461,
  	.phy_id_mask	= 0xfffffff0,
  	.name		= "Broadcom BCM5461",
-@@ -1728,7 +1736,8 @@ module_phy_driver(broadcom_drivers);
+@@ -1745,7 +1753,8 @@ module_phy_driver(broadcom_drivers);
  static const struct mdio_device_id __maybe_unused broadcom_tbl[] = {
  	{ PHY_ID_BCM5411, 0xfffffff0 },
  	{ PHY_ID_BCM5421, 0xfffffff0 },
diff --git a/target/linux/bcm27xx/patches-6.12/950-0284-hwmon-emc2305-fixups-for-driver-submitted-to-mailing.patch b/target/linux/bcm27xx/patches-6.12/950-0284-hwmon-emc2305-fixups-for-driver-submitted-to-mailing.patch
index 453b052824..ef86c0ee60 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0284-hwmon-emc2305-fixups-for-driver-submitted-to-mailing.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0284-hwmon-emc2305-fixups-for-driver-submitted-to-mailing.patch
@@ -165,7 +165,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  
  	if (IS_ERR(data->cdev_data[cdev_idx].cdev)) {
  		dev_err(dev, "Failed to register cooling device %s\n", emc2305_fan_name[idx]);
-@@ -347,9 +410,11 @@ static void emc2305_unset_tz(struct devi
+@@ -353,9 +416,11 @@ static void emc2305_unset_tz(struct devi
  	int i;
  
  	/* Unregister cooling device. */
@@ -180,7 +180,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  }
  
  static umode_t
-@@ -571,11 +636,18 @@ static int emc2305_probe(struct i2c_clie
+@@ -577,11 +642,18 @@ static int emc2305_probe(struct i2c_clie
  		data->pwm_separate = pdata->pwm_separate;
  		for (i = 0; i < EMC2305_PWM_MAX; i++)
  			data->pwm_min[i] = pdata->pwm_min[i];
@@ -199,7 +199,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	}
  
  	data->hwmon_dev = devm_hwmon_device_register_with_info(dev, "emc2305", data,
-@@ -596,6 +668,12 @@ static int emc2305_probe(struct i2c_clie
+@@ -602,6 +674,12 @@ static int emc2305_probe(struct i2c_clie
  			return ret;
  	}
  
@@ -212,7 +212,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	return 0;
  }
  
-@@ -610,6 +688,7 @@ static void emc2305_remove(struct i2c_cl
+@@ -616,6 +694,7 @@ static void emc2305_remove(struct i2c_cl
  static struct i2c_driver emc2305_driver = {
  	.driver = {
  		.name = "emc2305",
diff --git a/target/linux/bcm27xx/patches-6.12/950-0290-Populate-phy-driver-block-for-BCM54213PE.patch b/target/linux/bcm27xx/patches-6.12/950-0290-Populate-phy-driver-block-for-BCM54213PE.patch
index b41c40e2e4..4c8a087924 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0290-Populate-phy-driver-block-for-BCM54213PE.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0290-Populate-phy-driver-block-for-BCM54213PE.patch
@@ -16,7 +16,7 @@ Signed-off-by: Jonathan Lemon <jonathan.lemon at gmail.com>
 
 --- a/drivers/net/phy/broadcom.c
 +++ b/drivers/net/phy/broadcom.c
-@@ -1478,8 +1478,14 @@ static struct phy_driver broadcom_driver
+@@ -1495,8 +1495,14 @@ static struct phy_driver broadcom_driver
  	.phy_id_mask	= 0xffffffff,
  	.name		= "Broadcom BCM54213PE",
  	/* PHY_GBIT_FEATURES */
diff --git a/target/linux/bcm27xx/patches-6.12/950-0334-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch b/target/linux/bcm27xx/patches-6.12/950-0334-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch
index 8fec64dcc1..4e1c1bd76b 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0334-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0334-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch
@@ -34,7 +34,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
 
 --- a/drivers/usb/host/xhci-mem.c
 +++ b/drivers/usb/host/xhci-mem.c
-@@ -1395,6 +1395,7 @@ int xhci_endpoint_init(struct xhci_hcd *
+@@ -1397,6 +1397,7 @@ int xhci_endpoint_init(struct xhci_hcd *
  	unsigned int ep_index;
  	struct xhci_ep_ctx *ep_ctx;
  	struct xhci_ring *ep_ring;
@@ -42,7 +42,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	unsigned int max_packet;
  	enum xhci_ring_type ring_type;
  	u32 max_esit_payload;
-@@ -1404,6 +1405,8 @@ int xhci_endpoint_init(struct xhci_hcd *
+@@ -1406,6 +1407,8 @@ int xhci_endpoint_init(struct xhci_hcd *
  	unsigned int mult;
  	unsigned int avg_trb_len;
  	unsigned int err_count = 0;
@@ -51,7 +51,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  
  	ep_index = xhci_get_endpoint_index(&ep->desc);
  	ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index);
-@@ -1439,9 +1442,35 @@ int xhci_endpoint_init(struct xhci_hcd *
+@@ -1441,9 +1444,35 @@ int xhci_endpoint_init(struct xhci_hcd *
  
  	mult = xhci_get_endpoint_mult(udev, ep);
  	max_packet = usb_endpoint_maxp(&ep->desc);
diff --git a/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch b/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
index 37f9e20e3f..4bc4330daa 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
@@ -75,7 +75,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
 --- a/drivers/usb/host/xhci-ring.c
 +++ b/drivers/usb/host/xhci-ring.c
-@@ -3656,6 +3656,48 @@ static int xhci_align_td(struct xhci_hcd
+@@ -3659,6 +3659,48 @@ static int xhci_align_td(struct xhci_hcd
  	return 1;
  }
  
@@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell <jonathan at 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)
-@@ -3810,6 +3852,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3813,6 +3855,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 at raspberrypi.com>
  	giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id,
  			start_cycle, start_trb);
  	return 0;
-@@ -3958,6 +4002,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
+@@ -3961,6 +4005,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
  			/* Event on completion */
  			field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state);
  
diff --git a/target/linux/bcm27xx/patches-6.12/950-0341-Allow-RESET_BRCMSTB-on-ARCH_BCM2835.patch b/target/linux/bcm27xx/patches-6.12/950-0341-Allow-RESET_BRCMSTB-on-ARCH_BCM2835.patch
deleted file mode 100644
index b24622a9de..0000000000
--- a/target/linux/bcm27xx/patches-6.12/950-0341-Allow-RESET_BRCMSTB-on-ARCH_BCM2835.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-From c921a4d6cfed23d22f583dd18a25f61fdde3735a Mon Sep 17 00:00:00 2001
-From: Phil Elwell <phil at raspberrypi.com>
-Date: Thu, 27 May 2021 11:46:30 +0100
-Subject: [PATCH] Allow RESET_BRCMSTB on ARCH_BCM2835
-
----
- drivers/reset/Kconfig | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/reset/Kconfig
-+++ b/drivers/reset/Kconfig
-@@ -51,7 +51,7 @@ config RESET_BERLIN
- 
- config RESET_BRCMSTB
- 	tristate "Broadcom STB reset controller"
--	depends on ARCH_BRCMSTB || COMPILE_TEST
-+	depends on ARCH_BRCMSTB || ARCH_BCM2835 || COMPILE_TEST
- 	default ARCH_BRCMSTB
- 	help
- 	  This enables the reset controller driver for Broadcom STB SoCs using
diff --git a/target/linux/bcm27xx/patches-6.12/950-0392-fbdev-Allow-client-to-request-a-particular-dev-fbN-n.patch b/target/linux/bcm27xx/patches-6.12/950-0392-fbdev-Allow-client-to-request-a-particular-dev-fbN-n.patch
index 9322cedab0..13e8d1bb3c 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0392-fbdev-Allow-client-to-request-a-particular-dev-fbN-n.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0392-fbdev-Allow-client-to-request-a-particular-dev-fbN-n.patch
@@ -36,9 +36,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
 +		fb_info->node = i;
 +	}
  
- 	if (!fb_info->modelist.prev || !fb_info->modelist.next)
- 		INIT_LIST_HEAD(&fb_info->modelist);
-@@ -411,7 +415,6 @@ static int do_register_framebuffer(struc
+ 	if (i >= FB_MAX)
+ 		return -ENXIO;
+@@ -414,7 +418,6 @@ static int do_register_framebuffer(struc
  	if (err < 0)
  		return err;
  
@@ -46,7 +46,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	refcount_set(&fb_info->count, 1);
  	mutex_init(&fb_info->lock);
  	mutex_init(&fb_info->mm_lock);
-@@ -442,7 +445,7 @@ static int do_register_framebuffer(struc
+@@ -445,7 +448,7 @@ static int do_register_framebuffer(struc
  		pm_vt_switch_required(fb_info->device, true);
  
  	num_registered_fb++;
@@ -55,7 +55,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  
  #ifdef CONFIG_GUMSTIX_AM200EPD
  	{
-@@ -503,6 +506,12 @@ static void do_unregister_framebuffer(st
+@@ -506,6 +509,12 @@ static void do_unregister_framebuffer(st
  	put_fb_info(fb_info);
  }
  
diff --git a/target/linux/bcm27xx/patches-6.12/950-0685-nvme-pci-Disable-Host-Memory-Buffer-usage.patch b/target/linux/bcm27xx/patches-6.12/950-0685-nvme-pci-Disable-Host-Memory-Buffer-usage.patch
index 874ddc47c1..5ae8f6c966 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0685-nvme-pci-Disable-Host-Memory-Buffer-usage.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0685-nvme-pci-Disable-Host-Memory-Buffer-usage.patch
@@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 
 --- a/drivers/nvme/host/pci.c
 +++ b/drivers/nvme/host/pci.c
-@@ -2083,6 +2083,7 @@ static void nvme_free_host_mem(struct nv
+@@ -2103,6 +2103,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 at raspberrypi.com>
  static int __nvme_alloc_host_mem(struct nvme_dev *dev, u64 preferred,
  		u32 chunk_size)
  {
-@@ -2151,9 +2152,11 @@ out:
+@@ -2171,9 +2172,11 @@ out:
  	dev->host_mem_descs = NULL;
  	return -ENOMEM;
  }
@@ -38,7 +38,7 @@ Signed-off-by: Phil Elwell <phil at 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;
-@@ -2166,6 +2169,7 @@ static int nvme_alloc_host_mem(struct nv
+@@ -2186,6 +2189,7 @@ static int nvme_alloc_host_mem(struct nv
  			nvme_free_host_mem(dev);
  		}
  	}
diff --git a/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch b/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch
index 8be659cdd0..3a52a38589 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch
@@ -40,7 +40,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  static bool td_on_ring(struct xhci_td *td, struct xhci_ring *ring)
  {
  	struct xhci_segment *seg = ring->first_seg;
-@@ -4786,7 +4790,7 @@ static u16 xhci_calculate_u1_timeout(str
+@@ -4788,7 +4792,7 @@ static u16 xhci_calculate_u1_timeout(str
  		}
  	}
  
@@ -49,7 +49,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  		timeout_ns = xhci_calculate_intel_u1_timeout(udev, desc);
  	else
  		timeout_ns = udev->u1_params.sel;
-@@ -4850,7 +4854,7 @@ static u16 xhci_calculate_u2_timeout(str
+@@ -4852,7 +4856,7 @@ static u16 xhci_calculate_u2_timeout(str
  		}
  	}
  
diff --git a/target/linux/generic/backport-6.12/500-02-v6.13-block-introduce-add_disk_fwnode.patch b/target/linux/generic/backport-6.12/500-02-v6.13-block-introduce-add_disk_fwnode.patch
index b9fabe6742..381838d8ea 100644
--- a/target/linux/generic/backport-6.12/500-02-v6.13-block-introduce-add_disk_fwnode.patch
+++ b/target/linux/generic/backport-6.12/500-02-v6.13-block-introduce-add_disk_fwnode.patch
@@ -82,7 +82,7 @@ Signed-off-by: Jens Axboe <axboe at kernel.dk>
  static void blk_report_disk_dead(struct gendisk *disk, bool surprise)
 --- a/include/linux/blkdev.h
 +++ b/include/linux/blkdev.h
-@@ -734,6 +734,9 @@ static inline unsigned int blk_queue_dep
+@@ -789,6 +789,9 @@ static inline unsigned int blk_queue_dep
  #define for_each_bio(_bio)		\
  	for (; _bio; _bio = _bio->bi_next)
  
diff --git a/target/linux/generic/backport-6.12/610-01-v6.13-net-dsa-use-ethtool-string-helpers.patch b/target/linux/generic/backport-6.12/610-01-v6.13-net-dsa-use-ethtool-string-helpers.patch
index 003a896f30..a435e29144 100644
--- a/target/linux/generic/backport-6.12/610-01-v6.13-net-dsa-use-ethtool-string-helpers.patch
+++ b/target/linux/generic/backport-6.12/610-01-v6.13-net-dsa-use-ethtool-string-helpers.patch
@@ -18,7 +18,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -1061,8 +1061,7 @@ void b53_get_strings(struct dsa_switch *
+@@ -1086,8 +1086,7 @@ void b53_get_strings(struct dsa_switch *
  
  	if (stringset == ETH_SS_STATS) {
  		for (i = 0; i < mib_size; i++)
diff --git a/target/linux/generic/backport-6.12/610-02-v6.14-net-dsa-b53-bcm_sf2-implement-.support_eee-method.patch b/target/linux/generic/backport-6.12/610-02-v6.14-net-dsa-b53-bcm_sf2-implement-.support_eee-method.patch
index 4e9512c548..2658c6861b 100644
--- a/target/linux/generic/backport-6.12/610-02-v6.14-net-dsa-b53-bcm_sf2-implement-.support_eee-method.patch
+++ b/target/linux/generic/backport-6.12/610-02-v6.14-net-dsa-b53-bcm_sf2-implement-.support_eee-method.patch
@@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -2343,13 +2343,16 @@ int b53_eee_init(struct dsa_switch *ds,
+@@ -2387,13 +2387,16 @@ int b53_eee_init(struct dsa_switch *ds,
  }
  EXPORT_SYMBOL(b53_eee_init);
  
@@ -39,7 +39,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	return 0;
  }
  EXPORT_SYMBOL(b53_get_mac_eee);
-@@ -2359,9 +2362,6 @@ int b53_set_mac_eee(struct dsa_switch *d
+@@ -2403,9 +2406,6 @@ int b53_set_mac_eee(struct dsa_switch *d
  	struct b53_device *dev = ds->priv;
  	struct ethtool_keee *p = &dev->ports[port].eee;
  
@@ -49,7 +49,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	p->eee_enabled = e->eee_enabled;
  	b53_eee_enable_set(ds, port, e->eee_enabled);
  
-@@ -2418,6 +2418,7 @@ static const struct dsa_switch_ops b53_s
+@@ -2462,6 +2462,7 @@ static const struct dsa_switch_ops b53_s
  	.port_setup		= b53_setup_port,
  	.port_enable		= b53_enable_port,
  	.port_disable		= b53_disable_port,
diff --git a/target/linux/generic/backport-6.12/610-03-v6.15-net-dsa-b53-mdio-add-support-for-BCM53101.patch b/target/linux/generic/backport-6.12/610-03-v6.15-net-dsa-b53-mdio-add-support-for-BCM53101.patch
index deff0fe4d2..dd17c8f6aa 100644
--- a/target/linux/generic/backport-6.12/610-03-v6.15-net-dsa-b53-mdio-add-support-for-BCM53101.patch
+++ b/target/linux/generic/backport-6.12/610-03-v6.15-net-dsa-b53-mdio-add-support-for-BCM53101.patch
@@ -18,7 +18,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -2537,6 +2537,19 @@ static const struct b53_chip_data b53_sw
+@@ -2581,6 +2581,19 @@ static const struct b53_chip_data b53_sw
  		.jumbo_size_reg = B53_JUMBO_MAX_SIZE,
  	},
  	{
@@ -38,7 +38,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.chip_id = BCM53115_DEVICE_ID,
  		.dev_name = "BCM53115",
  		.vlans = 4096,
-@@ -2917,6 +2930,7 @@ int b53_switch_detect(struct b53_device
+@@ -2961,6 +2974,7 @@ int b53_switch_detect(struct b53_device
  			return ret;
  
  		switch (id32) {
diff --git a/target/linux/generic/backport-6.12/610-04-v6.16-net-dsa-b53-implement-setting-ageing-time.patch b/target/linux/generic/backport-6.12/610-04-v6.16-net-dsa-b53-implement-setting-ageing-time.patch
index a0b428e4d4..75ad5c5e3e 100644
--- a/target/linux/generic/backport-6.12/610-04-v6.16-net-dsa-b53-implement-setting-ageing-time.patch
+++ b/target/linux/generic/backport-6.12/610-04-v6.16-net-dsa-b53-implement-setting-ageing-time.patch
@@ -29,7 +29,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  #include <linux/module.h>
  #include <linux/platform_data/b53.h>
  #include <linux/phy.h>
-@@ -1202,6 +1203,10 @@ static int b53_setup(struct dsa_switch *
+@@ -1227,6 +1228,10 @@ static int b53_setup(struct dsa_switch *
  	 */
  	ds->untag_vlan_aware_bridge_pvid = true;
  
@@ -40,7 +40,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	ret = b53_reset_switch(dev);
  	if (ret) {
  		dev_err(ds->dev, "failed to reset switch\n");
-@@ -2397,6 +2402,28 @@ static int b53_get_max_mtu(struct dsa_sw
+@@ -2441,6 +2446,28 @@ static int b53_get_max_mtu(struct dsa_sw
  	return B53_MAX_MTU;
  }
  
@@ -69,7 +69,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  static const struct phylink_mac_ops b53_phylink_mac_ops = {
  	.mac_select_pcs	= b53_phylink_mac_select_pcs,
  	.mac_config	= b53_phylink_mac_config,
-@@ -2421,6 +2448,7 @@ static const struct dsa_switch_ops b53_s
+@@ -2465,6 +2492,7 @@ static const struct dsa_switch_ops b53_s
  	.support_eee		= b53_support_eee,
  	.get_mac_eee		= b53_get_mac_eee,
  	.set_mac_eee		= b53_set_mac_eee,
@@ -89,7 +89,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  void b53_br_leave(struct dsa_switch *ds, int port, struct dsa_bridge bridge);
 --- a/drivers/net/dsa/b53/b53_regs.h
 +++ b/drivers/net/dsa/b53/b53_regs.h
-@@ -220,6 +220,13 @@
+@@ -225,6 +225,13 @@
  #define   BRCM_HDR_P5_EN		BIT(1) /* Enable tagging on port 5 */
  #define   BRCM_HDR_P7_EN		BIT(2) /* Enable tagging on port 7 */
  
diff --git a/target/linux/generic/backport-6.12/610-05-v6.16-net-dsa-b53-do-not-enable-EEE-on-bcm63xx.patch b/target/linux/generic/backport-6.12/610-05-v6.16-net-dsa-b53-do-not-enable-EEE-on-bcm63xx.patch
index d1735c4100..39fb229f33 100644
--- a/target/linux/generic/backport-6.12/610-05-v6.16-net-dsa-b53-do-not-enable-EEE-on-bcm63xx.patch
+++ b/target/linux/generic/backport-6.12/610-05-v6.16-net-dsa-b53-do-not-enable-EEE-on-bcm63xx.patch
@@ -26,7 +26,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -2338,6 +2338,9 @@ int b53_eee_init(struct dsa_switch *ds,
+@@ -2382,6 +2382,9 @@ int b53_eee_init(struct dsa_switch *ds,
  {
  	int ret;
  
@@ -36,7 +36,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  	ret = phy_init_eee(phy, false);
  	if (ret)
  		return 0;
-@@ -2352,7 +2355,7 @@ bool b53_support_eee(struct dsa_switch *
+@@ -2396,7 +2399,7 @@ bool b53_support_eee(struct dsa_switch *
  {
  	struct b53_device *dev = ds->priv;
  
diff --git a/target/linux/generic/backport-6.12/610-07-v6.16-net-dsa-b53-do-not-configure-bcm63xx-s-IMP-port-inte.patch b/target/linux/generic/backport-6.12/610-07-v6.16-net-dsa-b53-do-not-configure-bcm63xx-s-IMP-port-inte.patch
index 17489e9b9f..f2c4464b06 100644
--- a/target/linux/generic/backport-6.12/610-07-v6.16-net-dsa-b53-do-not-configure-bcm63xx-s-IMP-port-inte.patch
+++ b/target/linux/generic/backport-6.12/610-07-v6.16-net-dsa-b53-do-not-configure-bcm63xx-s-IMP-port-inte.patch
@@ -28,7 +28,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  #include <linux/module.h>
  #include <linux/platform_data/b53.h>
  #include <linux/phy.h>
-@@ -1322,24 +1323,17 @@ static void b53_adjust_63xx_rgmii(struct
+@@ -1360,24 +1361,17 @@ static void b53_adjust_63xx_rgmii(struct
  				  phy_interface_t interface)
  {
  	struct b53_device *dev = ds->priv;
@@ -59,7 +59,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
  
  	dev_dbg(ds->dev, "Configured port %d for %s\n", port,
  		phy_modes(interface));
-@@ -1490,7 +1484,7 @@ static void b53_phylink_mac_config(struc
+@@ -1528,7 +1522,7 @@ static void b53_phylink_mac_config(struc
  	struct b53_device *dev = ds->priv;
  	int port = dp->index;
  
diff --git a/target/linux/generic/backport-6.12/612-03-v6.17-net-dsa-b53-support-legacy-FCS-tags.patch b/target/linux/generic/backport-6.12/612-03-v6.17-net-dsa-b53-support-legacy-FCS-tags.patch
index 55227b643c..3fbc697f01 100644
--- a/target/linux/generic/backport-6.12/612-03-v6.17-net-dsa-b53-support-legacy-FCS-tags.patch
+++ b/target/linux/generic/backport-6.12/612-03-v6.17-net-dsa-b53-support-legacy-FCS-tags.patch
@@ -32,7 +32,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	  This driver adds support for Broadcom managed switch chips. It supports
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -2241,8 +2241,11 @@ enum dsa_tag_protocol b53_get_tag_protoc
+@@ -2285,8 +2285,11 @@ enum dsa_tag_protocol b53_get_tag_protoc
  		goto out;
  	}
  
diff --git a/target/linux/generic/backport-6.12/612-04-v6.17-net-dsa-b53-detect-BCM5325-variants.patch b/target/linux/generic/backport-6.12/612-04-v6.17-net-dsa-b53-detect-BCM5325-variants.patch
index 5ed003ad98..04ded31a8f 100644
--- a/target/linux/generic/backport-6.12/612-04-v6.17-net-dsa-b53-detect-BCM5325-variants.patch
+++ b/target/linux/generic/backport-6.12/612-04-v6.17-net-dsa-b53-detect-BCM5325-variants.patch
@@ -21,7 +21,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -1778,7 +1778,8 @@ static int b53_arl_op(struct b53_device
+@@ -1816,7 +1816,8 @@ static int b53_arl_op(struct b53_device
  
  	/* Perform a read for the given MAC and VID */
  	b53_write48(dev, B53_ARLIO_PAGE, B53_MAC_ADDR_IDX, mac);
@@ -31,7 +31,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	/* Issue a read operation for this MAC */
  	ret = b53_arl_rw_op(dev, 1);
-@@ -2840,6 +2841,9 @@ static int b53_switch_init(struct b53_de
+@@ -2884,6 +2885,9 @@ static int b53_switch_init(struct b53_de
  		}
  	}
  
@@ -41,7 +41,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	dev->num_ports = fls(dev->enabled_ports);
  
  	dev->ds->num_ports = min_t(unsigned int, dev->num_ports, DSA_MAX_PORTS);
-@@ -2941,10 +2945,24 @@ int b53_switch_detect(struct b53_device
+@@ -2985,10 +2989,24 @@ int b53_switch_detect(struct b53_device
  		b53_write16(dev, B53_VLAN_PAGE, B53_VLAN_TABLE_ACCESS_25, 0xf);
  		b53_read16(dev, B53_VLAN_PAGE, B53_VLAN_TABLE_ACCESS_25, &tmp);
  
diff --git a/target/linux/generic/backport-6.12/612-05-v6.17-net-dsa-b53-add-support-for-FDB-operations-on-5325-5365.patch b/target/linux/generic/backport-6.12/612-05-v6.17-net-dsa-b53-add-support-for-FDB-operations-on-5325-5365.patch
index 099638131c..113528a6d5 100644
--- a/target/linux/generic/backport-6.12/612-05-v6.17-net-dsa-b53-add-support-for-FDB-operations-on-5325-5365.patch
+++ b/target/linux/generic/backport-6.12/612-05-v6.17-net-dsa-b53-add-support-for-FDB-operations-on-5325-5365.patch
@@ -24,7 +24,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -1764,6 +1764,45 @@ static int b53_arl_read(struct b53_devic
+@@ -1802,6 +1802,45 @@ static int b53_arl_read(struct b53_devic
  	return *idx >= dev->num_arl_bins ? -ENOSPC : -ENOENT;
  }
  
@@ -70,7 +70,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  static int b53_arl_op(struct b53_device *dev, int op, int port,
  		      const unsigned char *addr, u16 vid, bool is_valid)
  {
-@@ -1786,7 +1825,10 @@ static int b53_arl_op(struct b53_device
+@@ -1824,7 +1863,10 @@ static int b53_arl_op(struct b53_device
  	if (ret)
  		return ret;
  
@@ -82,7 +82,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	/* If this is a read, just finish now */
  	if (op)
-@@ -1830,12 +1872,17 @@ static int b53_arl_op(struct b53_device
+@@ -1868,12 +1910,17 @@ static int b53_arl_op(struct b53_device
  	ent.is_static = true;
  	ent.is_age = false;
  	memcpy(ent.mac, addr, ETH_ALEN);
@@ -103,7 +103,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  	return b53_arl_rw_op(dev, 0);
  }
-@@ -1847,12 +1894,6 @@ int b53_fdb_add(struct dsa_switch *ds, i
+@@ -1885,12 +1932,6 @@ int b53_fdb_add(struct dsa_switch *ds, i
  	struct b53_device *priv = ds->priv;
  	int ret;
  
@@ -116,7 +116,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	mutex_lock(&priv->arl_mutex);
  	ret = b53_arl_op(priv, 0, port, addr, vid, true);
  	mutex_unlock(&priv->arl_mutex);
-@@ -1879,10 +1920,15 @@ EXPORT_SYMBOL(b53_fdb_del);
+@@ -1917,10 +1958,15 @@ EXPORT_SYMBOL(b53_fdb_del);
  static int b53_arl_search_wait(struct b53_device *dev)
  {
  	unsigned int timeout = 1000;
@@ -134,7 +134,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		if (!(reg & ARL_SRCH_STDN))
  			return 0;
  
-@@ -1899,13 +1945,24 @@ static void b53_arl_search_rd(struct b53
+@@ -1937,13 +1983,24 @@ static void b53_arl_search_rd(struct b53
  			      struct b53_arl_entry *ent)
  {
  	u64 mac_vid;
@@ -165,7 +165,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  }
  
  static int b53_fdb_copy(int port, const struct b53_arl_entry *ent,
-@@ -1926,14 +1983,20 @@ int b53_fdb_dump(struct dsa_switch *ds,
+@@ -1964,14 +2021,20 @@ int b53_fdb_dump(struct dsa_switch *ds,
  	struct b53_device *priv = ds->priv;
  	struct b53_arl_entry results[2];
  	unsigned int count = 0;
@@ -234,7 +234,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  #include <linux/bcm47xx_nvram.h>
 --- a/drivers/net/dsa/b53/b53_regs.h
 +++ b/drivers/net/dsa/b53/b53_regs.h
-@@ -324,9 +324,10 @@
+@@ -329,9 +329,10 @@
  #define   ARLTBL_VID_MASK		0xfff
  #define   ARLTBL_DATA_PORT_ID_S_25	48
  #define   ARLTBL_DATA_PORT_ID_MASK_25	0xf
diff --git a/target/linux/generic/backport-6.12/612-06-v6.17-net-dsa-b53-prevent-FAST_AGE-access-on-BCM5325.patch b/target/linux/generic/backport-6.12/612-06-v6.17-net-dsa-b53-prevent-FAST_AGE-access-on-BCM5325.patch
index 492c701a2b..7397e3323c 100644
--- a/target/linux/generic/backport-6.12/612-06-v6.17-net-dsa-b53-prevent-FAST_AGE-access-on-BCM5325.patch
+++ b/target/linux/generic/backport-6.12/612-06-v6.17-net-dsa-b53-prevent-FAST_AGE-access-on-BCM5325.patch
@@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -487,6 +487,9 @@ static int b53_flush_arl(struct b53_devi
+@@ -492,6 +492,9 @@ static int b53_flush_arl(struct b53_devi
  {
  	unsigned int i;
  
@@ -29,7 +29,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	b53_write8(dev, B53_CTRL_PAGE, B53_FAST_AGE_CTRL,
  		   FAST_AGE_DONE | FAST_AGE_DYNAMIC | mask);
  
-@@ -511,6 +514,9 @@ out:
+@@ -516,6 +519,9 @@ out:
  
  static int b53_fast_age_port(struct b53_device *dev, int port)
  {
@@ -39,7 +39,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	b53_write8(dev, B53_CTRL_PAGE, B53_FAST_AGE_PORT_CTRL, port);
  
  	return b53_flush_arl(dev, FAST_AGE_PORT);
-@@ -518,6 +524,9 @@ static int b53_fast_age_port(struct b53_
+@@ -523,6 +529,9 @@ static int b53_fast_age_port(struct b53_
  
  static int b53_fast_age_vlan(struct b53_device *dev, u16 vid)
  {
diff --git a/target/linux/generic/backport-6.12/612-07-v6.17-net-dsa-b53-prevent-SWITCH_CTRL-access-on-BCM5325.patch b/target/linux/generic/backport-6.12/612-07-v6.17-net-dsa-b53-prevent-SWITCH_CTRL-access-on-BCM5325.patch
deleted file mode 100644
index 275c120fdc..0000000000
--- a/target/linux/generic/backport-6.12/612-07-v6.17-net-dsa-b53-prevent-SWITCH_CTRL-access-on-BCM5325.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 22ccaaca43440e90a3b68d2183045b42247dc4be Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari at gmail.com>
-Date: Sat, 14 Jun 2025 09:59:53 +0200
-Subject: [PATCH] net: dsa: b53: prevent SWITCH_CTRL access on BCM5325
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-BCM5325 doesn't implement SWITCH_CTRL register so we should avoid reading
-or writing it.
-
-Reviewed-by: Florian Fainelli <florian.fainelli at broadcom.com>
-Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
-Link: https://patch.msgid.link/20250614080000.1884236-8-noltari@gmail.com
-Signed-off-by: Jakub Kicinski <kuba at kernel.org>
----
- drivers/net/dsa/b53/b53_common.c | 11 ++++++-----
- 1 file changed, 6 insertions(+), 5 deletions(-)
-
---- a/drivers/net/dsa/b53/b53_common.c
-+++ b/drivers/net/dsa/b53/b53_common.c
-@@ -361,11 +361,12 @@ static void b53_set_forwarding(struct b5
- 
- 	b53_write8(dev, B53_CTRL_PAGE, B53_SWITCH_MODE, mgmt);
- 
--	/* Include IMP port in dumb forwarding mode
--	 */
--	b53_read8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, &mgmt);
--	mgmt |= B53_MII_DUMB_FWDG_EN;
--	b53_write8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, mgmt);
-+	if (!is5325(dev)) {
-+		/* Include IMP port in dumb forwarding mode */
-+		b53_read8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, &mgmt);
-+		mgmt |= B53_MII_DUMB_FWDG_EN;
-+		b53_write8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, mgmt);
-+	}
- 
- 	/* Look at B53_UC_FWD_EN and B53_MC_FWD_EN to decide whether
- 	 * frames should be flooded or not.
diff --git a/target/linux/generic/backport-6.12/612-08-v6.17-net-dsa-b53-fix-IP_MULTICAST_CTRL-on-BCM5325.patch b/target/linux/generic/backport-6.12/612-08-v6.17-net-dsa-b53-fix-IP_MULTICAST_CTRL-on-BCM5325.patch
deleted file mode 100644
index e5b13f60a5..0000000000
--- a/target/linux/generic/backport-6.12/612-08-v6.17-net-dsa-b53-fix-IP_MULTICAST_CTRL-on-BCM5325.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 044d5ce2788b165798bfd173548e61bf7b6baf4d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari at gmail.com>
-Date: Sat, 14 Jun 2025 09:59:54 +0200
-Subject: [PATCH] net: dsa: b53: fix IP_MULTICAST_CTRL on BCM5325
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-BCM5325 doesn't implement B53_UC_FWD_EN, B53_MC_FWD_EN or B53_IPMC_FWD_EN.
-
-Reviewed-by: Florian Fainelli <florian.fainelli at broadcom.com>
-Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
-Link: https://patch.msgid.link/20250614080000.1884236-9-noltari@gmail.com
-Signed-off-by: Jakub Kicinski <kuba at kernel.org>
----
- drivers/net/dsa/b53/b53_common.c | 18 +++++++++++-------
- drivers/net/dsa/b53/b53_regs.h   |  1 +
- 2 files changed, 12 insertions(+), 7 deletions(-)
-
---- a/drivers/net/dsa/b53/b53_common.c
-+++ b/drivers/net/dsa/b53/b53_common.c
-@@ -366,14 +366,18 @@ static void b53_set_forwarding(struct b5
- 		b53_read8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, &mgmt);
- 		mgmt |= B53_MII_DUMB_FWDG_EN;
- 		b53_write8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, mgmt);
--	}
- 
--	/* Look at B53_UC_FWD_EN and B53_MC_FWD_EN to decide whether
--	 * frames should be flooded or not.
--	 */
--	b53_read8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, &mgmt);
--	mgmt |= B53_UC_FWD_EN | B53_MC_FWD_EN | B53_IPMC_FWD_EN;
--	b53_write8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, mgmt);
-+		/* Look at B53_UC_FWD_EN and B53_MC_FWD_EN to decide whether
-+		 * frames should be flooded or not.
-+		 */
-+		b53_read8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, &mgmt);
-+		mgmt |= B53_UC_FWD_EN | B53_MC_FWD_EN | B53_IPMC_FWD_EN;
-+		b53_write8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, mgmt);
-+	} else {
-+		b53_read8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, &mgmt);
-+		mgmt |= B53_IP_MCAST_25;
-+		b53_write8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, mgmt);
-+	}
- }
- 
- static void b53_enable_vlan(struct b53_device *dev, int port, bool enable,
---- a/drivers/net/dsa/b53/b53_regs.h
-+++ b/drivers/net/dsa/b53/b53_regs.h
-@@ -106,6 +106,7 @@
- 
- /* IP Multicast control (8 bit) */
- #define B53_IP_MULTICAST_CTRL		0x21
-+#define  B53_IP_MCAST_25		BIT(0)
- #define  B53_IPMC_FWD_EN		BIT(1)
- #define  B53_UC_FWD_EN			BIT(6)
- #define  B53_MC_FWD_EN			BIT(7)
diff --git a/target/linux/generic/backport-6.12/612-09-v6.17-net-dsa-b53-prevent-DIS_LEARNING-access-on-BCM5325.patch b/target/linux/generic/backport-6.12/612-09-v6.17-net-dsa-b53-prevent-DIS_LEARNING-access-on-BCM5325.patch
deleted file mode 100644
index b9616f0dad..0000000000
--- a/target/linux/generic/backport-6.12/612-09-v6.17-net-dsa-b53-prevent-DIS_LEARNING-access-on-BCM5325.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 800728abd9f83bda4de62a30ce62a8b41c242020 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari at gmail.com>
-Date: Sat, 14 Jun 2025 09:59:55 +0200
-Subject: [PATCH] net: dsa: b53: prevent DIS_LEARNING access on BCM5325
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-BCM5325 doesn't implement DIS_LEARNING register so we should avoid reading
-or writing it.
-
-Reviewed-by: Florian Fainelli <florian.fainelli at broadcom.com>
-Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
-Link: https://patch.msgid.link/20250614080000.1884236-10-noltari@gmail.com
-Signed-off-by: Jakub Kicinski <kuba at kernel.org>
----
- drivers/net/dsa/b53/b53_common.c | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
---- a/drivers/net/dsa/b53/b53_common.c
-+++ b/drivers/net/dsa/b53/b53_common.c
-@@ -593,6 +593,9 @@ static void b53_port_set_learning(struct
- {
- 	u16 reg;
- 
-+	if (is5325(dev))
-+		return;
-+
- 	b53_read16(dev, B53_CTRL_PAGE, B53_DIS_LEARNING, &reg);
- 	if (learning)
- 		reg &= ~BIT(port);
-@@ -2243,7 +2246,13 @@ int b53_br_flags_pre(struct dsa_switch *
- 		     struct switchdev_brport_flags flags,
- 		     struct netlink_ext_ack *extack)
- {
--	if (flags.mask & ~(BR_FLOOD | BR_MCAST_FLOOD | BR_LEARNING))
-+	struct b53_device *dev = ds->priv;
-+	unsigned long mask = (BR_FLOOD | BR_MCAST_FLOOD);
-+
-+	if (!is5325(dev))
-+		mask |= BR_LEARNING;
-+
-+	if (flags.mask & ~mask)
- 		return -EINVAL;
- 
- 	return 0;
diff --git a/target/linux/generic/backport-6.12/612-10-v6.17-net-dsa-b53-prevent-BRCM_HDR-access-on-older-devices.patch b/target/linux/generic/backport-6.12/612-10-v6.17-net-dsa-b53-prevent-BRCM_HDR-access-on-older-devices.patch
index 6d058f8561..6ea836734a 100644
--- a/target/linux/generic/backport-6.12/612-10-v6.17-net-dsa-b53-prevent-BRCM_HDR-access-on-older-devices.patch
+++ b/target/linux/generic/backport-6.12/612-10-v6.17-net-dsa-b53-prevent-BRCM_HDR-access-on-older-devices.patch
@@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -730,6 +730,11 @@ void b53_brcm_hdr_setup(struct dsa_switc
+@@ -747,6 +747,11 @@ void b53_brcm_hdr_setup(struct dsa_switc
  		hdr_ctl |= GC_FRM_MGMT_PORT_M;
  	b53_write8(dev, B53_MGMT_PAGE, B53_GLOBAL_CONFIG, hdr_ctl);
  
diff --git a/target/linux/generic/backport-6.12/612-11-v6.17-net-dsa-b53-prevent-GMII_PORT_OVERRIDE_CTRL-access-on-BCM5325.patch b/target/linux/generic/backport-6.12/612-11-v6.17-net-dsa-b53-prevent-GMII_PORT_OVERRIDE_CTRL-access-on-BCM5325.patch
deleted file mode 100644
index 7f412a2b0e..0000000000
--- a/target/linux/generic/backport-6.12/612-11-v6.17-net-dsa-b53-prevent-GMII_PORT_OVERRIDE_CTRL-access-on-BCM5325.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 37883bbc45a8555d6eca88d3a9730504d2dac86c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari at gmail.com>
-Date: Sat, 14 Jun 2025 09:59:57 +0200
-Subject: [PATCH] net: dsa: b53: prevent GMII_PORT_OVERRIDE_CTRL access on
- BCM5325
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-BCM5325 doesn't implement GMII_PORT_OVERRIDE_CTRL register so we should
-avoid reading or writing it.
-PORT_OVERRIDE_RX_FLOW and PORT_OVERRIDE_TX_FLOW aren't defined on BCM5325
-and we should use PORT_OVERRIDE_LP_FLOW_25 instead.
-
-Reviewed-by: Florian Fainelli <florian.fainelli at broadcom.com>
-Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
-Link: https://patch.msgid.link/20250614080000.1884236-12-noltari@gmail.com
-Signed-off-by: Jakub Kicinski <kuba at kernel.org>
----
- drivers/net/dsa/b53/b53_common.c | 21 +++++++++++++++++----
- drivers/net/dsa/b53/b53_regs.h   |  1 +
- 2 files changed, 18 insertions(+), 4 deletions(-)
-
---- a/drivers/net/dsa/b53/b53_common.c
-+++ b/drivers/net/dsa/b53/b53_common.c
-@@ -1279,6 +1279,8 @@ static void b53_force_link(struct b53_de
- 	if (port == dev->imp_port) {
- 		off = B53_PORT_OVERRIDE_CTRL;
- 		val = PORT_OVERRIDE_EN;
-+	} else if (is5325(dev)) {
-+		return;
- 	} else {
- 		off = B53_GMII_PORT_OVERRIDE_CTRL(port);
- 		val = GMII_PO_EN;
-@@ -1303,6 +1305,8 @@ static void b53_force_port_config(struct
- 	if (port == dev->imp_port) {
- 		off = B53_PORT_OVERRIDE_CTRL;
- 		val = PORT_OVERRIDE_EN;
-+	} else if (is5325(dev)) {
-+		return;
- 	} else {
- 		off = B53_GMII_PORT_OVERRIDE_CTRL(port);
- 		val = GMII_PO_EN;
-@@ -1333,10 +1337,19 @@ static void b53_force_port_config(struct
- 		return;
- 	}
- 
--	if (rx_pause)
--		reg |= PORT_OVERRIDE_RX_FLOW;
--	if (tx_pause)
--		reg |= PORT_OVERRIDE_TX_FLOW;
-+	if (rx_pause) {
-+		if (is5325(dev))
-+			reg |= PORT_OVERRIDE_LP_FLOW_25;
-+		else
-+			reg |= PORT_OVERRIDE_RX_FLOW;
-+	}
-+
-+	if (tx_pause) {
-+		if (is5325(dev))
-+			reg |= PORT_OVERRIDE_LP_FLOW_25;
-+		else
-+			reg |= PORT_OVERRIDE_TX_FLOW;
-+	}
- 
- 	b53_write8(dev, B53_CTRL_PAGE, off, reg);
- }
---- a/drivers/net/dsa/b53/b53_regs.h
-+++ b/drivers/net/dsa/b53/b53_regs.h
-@@ -95,6 +95,7 @@
- #define   PORT_OVERRIDE_SPEED_10M	(0 << PORT_OVERRIDE_SPEED_S)
- #define   PORT_OVERRIDE_SPEED_100M	(1 << PORT_OVERRIDE_SPEED_S)
- #define   PORT_OVERRIDE_SPEED_1000M	(2 << PORT_OVERRIDE_SPEED_S)
-+#define   PORT_OVERRIDE_LP_FLOW_25	BIT(3) /* BCM5325 only */
- #define   PORT_OVERRIDE_RV_MII_25	BIT(4) /* BCM5325 only */
- #define   PORT_OVERRIDE_RX_FLOW		BIT(4)
- #define   PORT_OVERRIDE_TX_FLOW		BIT(5)
diff --git a/target/linux/generic/backport-6.12/612-13-v6.17-net-dsa-b53-fix-b53_imp_vlan_setup-for-BCM5325.patch b/target/linux/generic/backport-6.12/612-13-v6.17-net-dsa-b53-fix-b53_imp_vlan_setup-for-BCM5325.patch
deleted file mode 100644
index 9d7dcd8402..0000000000
--- a/target/linux/generic/backport-6.12/612-13-v6.17-net-dsa-b53-fix-b53_imp_vlan_setup-for-BCM5325.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From c00df1018791185ea398f78af415a2a0aaa0c79c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari at gmail.com>
-Date: Sat, 14 Jun 2025 09:59:59 +0200
-Subject: [PATCH] net: dsa: b53: fix b53_imp_vlan_setup for BCM5325
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-CPU port should be B53_CPU_PORT instead of B53_CPU_PORT_25 for
-B53_PVLAN_PORT_MASK register.
-
-Reviewed-by: Florian Fainelli <florian.fainelli at broadcom.com>
-Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
-Link: https://patch.msgid.link/20250614080000.1884236-14-noltari@gmail.com
-Signed-off-by: Jakub Kicinski <kuba at kernel.org>
----
- drivers/net/dsa/b53/b53_common.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
---- a/drivers/net/dsa/b53/b53_common.c
-+++ b/drivers/net/dsa/b53/b53_common.c
-@@ -543,6 +543,10 @@ void b53_imp_vlan_setup(struct dsa_switc
- 	unsigned int i;
- 	u16 pvlan;
- 
-+	/* BCM5325 CPU port is at 8 */
-+	if ((is5325(dev) || is5365(dev)) && cpu_port == B53_CPU_PORT_25)
-+		cpu_port = B53_CPU_PORT;
-+
- 	/* Enable the IMP port to be in the same VLAN as the other ports
- 	 * on a per-port basis such that we only have Port i and IMP in
- 	 * the same VLAN.
diff --git a/target/linux/generic/backport-6.12/612-14-v6.17-net-dsa-b53-ensure-BCM5325-PHYs-are-enabled.patch b/target/linux/generic/backport-6.12/612-14-v6.17-net-dsa-b53-ensure-BCM5325-PHYs-are-enabled.patch
deleted file mode 100644
index f9bea6133a..0000000000
--- a/target/linux/generic/backport-6.12/612-14-v6.17-net-dsa-b53-ensure-BCM5325-PHYs-are-enabled.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 966a83df36c6f27476ac3501771422e7852098bc Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari at gmail.com>
-Date: Sat, 14 Jun 2025 10:00:00 +0200
-Subject: [PATCH] net: dsa: b53: ensure BCM5325 PHYs are enabled
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-According to the datasheet, BCM5325 uses B53_PD_MODE_CTRL_25 register to
-disable clocking to individual PHYs.
-Only ports 1-4 can be enabled or disabled and the datasheet is explicit
-about not toggling BIT(0) since it disables the PLL power and the switch.
-
-Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
-Reviewed-by: Florian Fainelli <florian.fainelli at broadcom.com>
-Link: https://patch.msgid.link/20250614080000.1884236-15-noltari@gmail.com
-Signed-off-by: Jakub Kicinski <kuba at kernel.org>
----
- drivers/net/dsa/b53/b53_common.c | 13 +++++++++++++
- drivers/net/dsa/b53/b53_regs.h   |  5 ++++-
- 2 files changed, 17 insertions(+), 1 deletion(-)
-
---- a/drivers/net/dsa/b53/b53_common.c
-+++ b/drivers/net/dsa/b53/b53_common.c
-@@ -660,6 +660,19 @@ int b53_setup_port(struct dsa_switch *ds
- 	if (dsa_is_user_port(ds, port))
- 		b53_set_eap_mode(dev, port, EAP_MODE_SIMPLIFIED);
- 
-+	if (is5325(dev) &&
-+	    in_range(port, 1, 4)) {
-+		u8 reg;
-+
-+		b53_read8(dev, B53_CTRL_PAGE, B53_PD_MODE_CTRL_25, &reg);
-+		reg &= ~PD_MODE_POWER_DOWN_PORT(0);
-+		if (dsa_is_unused_port(ds, port))
-+			reg |= PD_MODE_POWER_DOWN_PORT(port);
-+		else
-+			reg &= ~PD_MODE_POWER_DOWN_PORT(port);
-+		b53_write8(dev, B53_CTRL_PAGE, B53_PD_MODE_CTRL_25, reg);
-+	}
-+
- 	return 0;
- }
- EXPORT_SYMBOL(b53_setup_port);
---- a/drivers/net/dsa/b53/b53_regs.h
-+++ b/drivers/net/dsa/b53/b53_regs.h
-@@ -103,8 +103,11 @@
- #define   PORT_OVERRIDE_SPEED_2000M	BIT(6) /* BCM5301X only, requires setting 1000M */
- #define   PORT_OVERRIDE_EN		BIT(7) /* Use the register contents */
- 
--/* Power-down mode control */
-+/* Power-down mode control (8 bit) */
- #define B53_PD_MODE_CTRL_25		0x0f
-+#define  PD_MODE_PORT_MASK		0x1f
-+/* Bit 0 also powers down the switch. */
-+#define  PD_MODE_POWER_DOWN_PORT(i)	BIT(i)
- 
- /* IP Multicast control (8 bit) */
- #define B53_IP_MULTICAST_CTRL		0x21
diff --git a/target/linux/generic/backport-6.12/720-09-v6.14-net-phy-Constify-struct-mdio_device_id.patch b/target/linux/generic/backport-6.12/720-09-v6.14-net-phy-Constify-struct-mdio_device_id.patch
index a1be891a09..aa5fc662fa 100644
--- a/target/linux/generic/backport-6.12/720-09-v6.14-net-phy-Constify-struct-mdio_device_id.patch
+++ b/target/linux/generic/backport-6.12/720-09-v6.14-net-phy-Constify-struct-mdio_device_id.patch
@@ -205,7 +205,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  };
 --- a/drivers/net/phy/broadcom.c
 +++ b/drivers/net/phy/broadcom.c
-@@ -1717,7 +1717,7 @@ static struct phy_driver broadcom_driver
+@@ -1734,7 +1734,7 @@ static struct phy_driver broadcom_driver
  
  module_phy_driver(broadcom_drivers);
  
@@ -458,7 +458,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	{ }
 --- a/drivers/net/phy/micrel.c
 +++ b/drivers/net/phy/micrel.c
-@@ -5691,7 +5691,7 @@ MODULE_DESCRIPTION("Micrel PHY driver");
+@@ -5701,7 +5701,7 @@ MODULE_DESCRIPTION("Micrel PHY driver");
  MODULE_AUTHOR("David J. Choi");
  MODULE_LICENSE("GPL");
  
@@ -645,7 +645,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  };
 --- a/drivers/net/phy/smsc.c
 +++ b/drivers/net/phy/smsc.c
-@@ -884,7 +884,7 @@ MODULE_DESCRIPTION("SMSC PHY driver");
+@@ -885,7 +885,7 @@ MODULE_DESCRIPTION("SMSC PHY driver");
  MODULE_AUTHOR("Herbert Valerio Riedel");
  MODULE_LICENSE("GPL");
  
diff --git a/target/linux/generic/backport-6.12/830-v6.17-Revert-leds-trigger-netdev-Configure-LED-blink-inter.patch b/target/linux/generic/backport-6.12/830-v6.17-Revert-leds-trigger-netdev-Configure-LED-blink-inter.patch
deleted file mode 100644
index ba83b8e069..0000000000
--- a/target/linux/generic/backport-6.12/830-v6.17-Revert-leds-trigger-netdev-Configure-LED-blink-inter.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 26f732791f2bcab18f59c61915bbe35225f30136 Mon Sep 17 00:00:00 2001
-From: Daniel Golle <daniel at makrotopia.org>
-Date: Sat, 12 Jul 2025 16:39:21 +0100
-Subject: [PATCH] Revert "leds: trigger: netdev: Configure LED blink interval
- for HW offload"
-
-This reverts commit c629c972b310af41e9e072febb6dae9a299edde6.
-
-While .led_blink_set() would previously put an LED into an unconditional
-permanently blinking state, the offending commit now uses same operation
-to (also?) set the blink timing of the netdev trigger when offloading.
-
-This breaks many if not all of the existing PHY drivers which offer
-offloading LED operations, as those drivers would just put the LED into
-blinking state after .led_blink_set() has been called.
-
-Unfortunately the change even made it into stable kernels for unknown
-reasons, so it should be reverted there as well.
-
-Fixes: c629c972b310a ("leds: trigger: netdev: Configure LED blink interval for HW offload")
-Link: https://lore.kernel.org/linux-leds/c6134e26-2e45-4121-aa15-58aaef327201@lunn.ch/T/#m9d6fe81bbcb273e59f12bbedbd633edd32118387
-Suggested-by: Andrew Lunn <andrew at lunn.ch>
-Cc: stable at vger.kernel.org
-Signed-off-by: Daniel Golle <daniel at makrotopia.org>
-Reviewed-by: Andrew Lunn <andrew at lunn.ch>
-Link: https://lore.kernel.org/r/6dcc77ee1c9676891d6250d8994850f521426a0f.1752334655.git.daniel@makrotopia.org
-Signed-off-by: Lee Jones <lee at kernel.org>
----
- drivers/leds/trigger/ledtrig-netdev.c | 16 +++-------------
- 1 file changed, 3 insertions(+), 13 deletions(-)
-
---- a/drivers/leds/trigger/ledtrig-netdev.c
-+++ b/drivers/leds/trigger/ledtrig-netdev.c
-@@ -68,7 +68,6 @@ struct led_netdev_data {
- 	unsigned int last_activity;
- 
- 	unsigned long mode;
--	unsigned long blink_delay;
- 	int link_speed;
- 	__ETHTOOL_DECLARE_LINK_MODE_MASK(supported_link_modes);
- 	u8 duplex;
-@@ -87,10 +86,6 @@ static void set_baseline_state(struct le
- 	/* Already validated, hw control is possible with the requested mode */
- 	if (trigger_data->hw_control) {
- 		led_cdev->hw_control_set(led_cdev, trigger_data->mode);
--		if (led_cdev->blink_set) {
--			led_cdev->blink_set(led_cdev, &trigger_data->blink_delay,
--					    &trigger_data->blink_delay);
--		}
- 
- 		return;
- 	}
-@@ -459,11 +454,10 @@ static ssize_t interval_store(struct dev
- 			      size_t size)
- {
- 	struct led_netdev_data *trigger_data = led_trigger_get_drvdata(dev);
--	struct led_classdev *led_cdev = trigger_data->led_cdev;
- 	unsigned long value;
- 	int ret;
- 
--	if (trigger_data->hw_control && !led_cdev->blink_set)
-+	if (trigger_data->hw_control)
- 		return -EINVAL;
- 
- 	ret = kstrtoul(buf, 0, &value);
-@@ -472,13 +466,9 @@ static ssize_t interval_store(struct dev
- 
- 	/* impose some basic bounds on the timer interval */
- 	if (value >= 5 && value <= 10000) {
--		if (trigger_data->hw_control) {
--			trigger_data->blink_delay = value;
--		} else {
--			cancel_delayed_work_sync(&trigger_data->work);
-+		cancel_delayed_work_sync(&trigger_data->work);
- 
--			atomic_set(&trigger_data->interval, msecs_to_jiffies(value));
--		}
-+		atomic_set(&trigger_data->interval, msecs_to_jiffies(value));
- 		set_baseline_state(trigger_data);	/* resets timer */
- 	}
- 
diff --git a/target/linux/generic/hack-6.12/204-module_strip.patch b/target/linux/generic/hack-6.12/204-module_strip.patch
index d999e0992c..1c67eb5de4 100644
--- a/target/linux/generic/hack-6.12/204-module_strip.patch
+++ b/target/linux/generic/hack-6.12/204-module_strip.patch
@@ -102,7 +102,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  endif # MODULES
 --- a/kernel/module/main.c
 +++ b/kernel/module/main.c
-@@ -999,6 +999,7 @@ size_t modinfo_attrs_count = ARRAY_SIZE(
+@@ -1001,6 +1001,7 @@ size_t modinfo_attrs_count = ARRAY_SIZE(
  
  static const char vermagic[] = VERMAGIC_STRING;
  
@@ -110,7 +110,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  int try_to_force_load(struct module *mod, const char *reason)
  {
  #ifdef CONFIG_MODULE_FORCE_LOAD
-@@ -1010,6 +1011,7 @@ int try_to_force_load(struct module *mod
+@@ -1012,6 +1013,7 @@ int try_to_force_load(struct module *mod
  	return -ENOEXEC;
  #endif
  }
@@ -118,7 +118,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  /* Parse tag=value strings from .modinfo section */
  char *module_next_tag_pair(char *string, unsigned long *secsize)
-@@ -2093,9 +2095,11 @@ static void module_augment_kernel_taints
+@@ -2095,9 +2097,11 @@ static void module_augment_kernel_taints
  
  static int check_modinfo(struct module *mod, struct load_info *info, int flags)
  {
@@ -131,7 +131,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	if (flags & MODULE_INIT_IGNORE_VERMAGIC)
  		modmagic = NULL;
  
-@@ -2109,6 +2113,7 @@ static int check_modinfo(struct module *
+@@ -2111,6 +2115,7 @@ static int check_modinfo(struct module *
  		       info->name, modmagic, vermagic);
  		return -ENOEXEC;
  	}
diff --git a/target/linux/generic/hack-6.12/901-debloat_sock_diag.patch b/target/linux/generic/hack-6.12/901-debloat_sock_diag.patch
index d130b82dd6..17a22d0528 100644
--- a/target/linux/generic/hack-6.12/901-debloat_sock_diag.patch
+++ b/target/linux/generic/hack-6.12/901-debloat_sock_diag.patch
@@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  INDIRECT_CALLABLE_DECLARE(struct dst_entry *ip6_dst_check(struct dst_entry *,
  							  u32));
  INDIRECT_CALLABLE_DECLARE(struct dst_entry *ipv4_dst_check(struct dst_entry *,
-@@ -2326,9 +2343,11 @@ static void __sk_free(struct sock *sk)
+@@ -2342,9 +2359,11 @@ static void __sk_free(struct sock *sk)
  	if (likely(sk->sk_net_refcnt))
  		sock_inuse_add(sock_net(sk), -1);
  
diff --git a/target/linux/generic/hack-6.12/902-debloat_proc.patch b/target/linux/generic/hack-6.12/902-debloat_proc.patch
index c52a7ac5f3..5b344a1982 100644
--- a/target/linux/generic/hack-6.12/902-debloat_proc.patch
+++ b/target/linux/generic/hack-6.12/902-debloat_proc.patch
@@ -331,7 +331,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -4256,6 +4256,8 @@ static __net_initdata struct pernet_oper
+@@ -4273,6 +4273,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
  {
diff --git a/target/linux/generic/kernel-6.12 b/target/linux/generic/kernel-6.12
index 51f0379fc1..78b4d39332 100644
--- a/target/linux/generic/kernel-6.12
+++ b/target/linux/generic/kernel-6.12
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.12 = .42
-LINUX_KERNEL_HASH-6.12.42 = 4804528a29cd20309a0b41c30e5aeffc35fa21ee3358f4a706d4586d003bc1fb
+LINUX_VERSION-6.12 = .43
+LINUX_KERNEL_HASH-6.12.43 = 0fcbbbbcd456e87bbbfc8bf37af541fda62ccfcce76903503424fd101ef7bdee
diff --git a/target/linux/generic/pending-6.12/454-block-add-support-for-notifications.patch b/target/linux/generic/pending-6.12/454-block-add-support-for-notifications.patch
index 300cbf7c7c..bb78fc368f 100644
--- a/target/linux/generic/pending-6.12/454-block-add-support-for-notifications.patch
+++ b/target/linux/generic/pending-6.12/454-block-add-support-for-notifications.patch
@@ -149,7 +149,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 +device_initcall(blk_notifications_init);
 --- a/include/linux/blkdev.h
 +++ b/include/linux/blkdev.h
-@@ -1696,4 +1696,12 @@ static inline bool bdev_can_atomic_write
+@@ -1751,4 +1751,12 @@ static inline bool bdev_can_atomic_write
  
  #define DEFINE_IO_COMP_BATCH(name)	struct io_comp_batch name = { }
  
diff --git a/target/linux/generic/pending-6.12/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch b/target/linux/generic/pending-6.12/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch
index e89e0d25f5..4cc5717b1c 100644
--- a/target/linux/generic/pending-6.12/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch
+++ b/target/linux/generic/pending-6.12/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch
@@ -96,7 +96,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  }
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -2533,7 +2533,7 @@ void sk_setup_caps(struct sock *sk, stru
+@@ -2550,7 +2550,7 @@ void sk_setup_caps(struct sock *sk, stru
  	if (sk_is_tcp(sk))
  		sk->sk_route_caps |= NETIF_F_GSO;
  	if (sk->sk_route_caps & NETIF_F_GSO)
diff --git a/target/linux/generic/pending-6.12/834-ledtrig-libata.patch b/target/linux/generic/pending-6.12/834-ledtrig-libata.patch
index 72e2a76b62..09c53ee875 100644
--- a/target/linux/generic/pending-6.12/834-ledtrig-libata.patch
+++ b/target/linux/generic/pending-6.12/834-ledtrig-libata.patch
@@ -132,7 +132,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  
  /*
   * Define if arch has non-standard setup.  This is a _PCI_ standard
-@@ -934,6 +937,10 @@ struct ata_port {
+@@ -935,6 +938,10 @@ struct ata_port {
  #ifdef CONFIG_ATA_ACPI
  	struct ata_acpi_gtm	__acpi_init_gtm; /* use ata_acpi_init_gtm() */
  #endif
diff --git a/target/linux/ipq40xx/patches-6.12/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch b/target/linux/ipq40xx/patches-6.12/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch
index 76c36db38f..737da1e2fe 100644
--- a/target/linux/ipq40xx/patches-6.12/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch
+++ b/target/linux/ipq40xx/patches-6.12/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch
@@ -13,7 +13,7 @@ Signed-off-by: Robert Marko <robert.marko at sartura.hr>
 
 --- a/drivers/mmc/host/sdhci-msm.c
 +++ b/drivers/mmc/host/sdhci-msm.c
-@@ -2369,7 +2369,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat
+@@ -2383,7 +2383,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat
  
  static const struct sdhci_ops sdhci_msm_ops = {
  	.reset = sdhci_and_cqhci_reset,
diff --git a/target/linux/ipq40xx/patches-6.12/401-mmc-sdhci-msm-comment-unused-sdhci_msm_set_clock.patch b/target/linux/ipq40xx/patches-6.12/401-mmc-sdhci-msm-comment-unused-sdhci_msm_set_clock.patch
index a90b0aaf9b..6e0f35b6fc 100644
--- a/target/linux/ipq40xx/patches-6.12/401-mmc-sdhci-msm-comment-unused-sdhci_msm_set_clock.patch
+++ b/target/linux/ipq40xx/patches-6.12/401-mmc-sdhci-msm-comment-unused-sdhci_msm_set_clock.patch
@@ -13,7 +13,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
 
 --- a/drivers/mmc/host/sdhci-msm.c
 +++ b/drivers/mmc/host/sdhci-msm.c
-@@ -1804,49 +1804,49 @@ static unsigned int sdhci_msm_get_min_cl
+@@ -1818,49 +1818,49 @@ static unsigned int sdhci_msm_get_min_cl
  	return SDHCI_MSM_MIN_CLOCK;
  }
  
diff --git a/target/linux/ipq40xx/patches-6.12/701-net-dsa-add-out-of-band-tagging-protocol.patch b/target/linux/ipq40xx/patches-6.12/701-net-dsa-add-out-of-band-tagging-protocol.patch
index b9be19232d..7d4f7a482f 100644
--- a/target/linux/ipq40xx/patches-6.12/701-net-dsa-add-out-of-band-tagging-protocol.patch
+++ b/target/linux/ipq40xx/patches-6.12/701-net-dsa-add-out-of-band-tagging-protocol.patch
@@ -93,7 +93,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier at bootlin.com>
 +#endif
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -4792,6 +4792,9 @@ enum skb_ext_id {
+@@ -4798,6 +4798,9 @@ enum skb_ext_id {
  #if IS_ENABLED(CONFIG_MCTP_FLOWS)
  	SKB_EXT_MCTP,
  #endif
diff --git a/target/linux/lantiq/patches-6.12/001-MIPS-lantiq-add-pcie-driver.patch b/target/linux/lantiq/patches-6.12/001-MIPS-lantiq-add-pcie-driver.patch
index a125b6bfb3..f325607dbf 100644
--- a/target/linux/lantiq/patches-6.12/001-MIPS-lantiq-add-pcie-driver.patch
+++ b/target/linux/lantiq/patches-6.12/001-MIPS-lantiq-add-pcie-driver.patch
@@ -5518,7 +5518,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  	  (transaction layer end-to-end CRC checking).
 --- a/include/linux/pci.h
 +++ b/include/linux/pci.h
-@@ -1629,6 +1629,8 @@ void pci_walk_bus_locked(struct pci_bus
+@@ -1643,6 +1643,8 @@ void pci_walk_bus_locked(struct pci_bus
  			 void *userdata);
  int pci_cfg_space_size(struct pci_dev *dev);
  unsigned char pci_bus_max_busnr(struct pci_bus *bus);
diff --git a/target/linux/lantiq/patches-6.12/102-11-v6.17-MIPS-lantiq-falcon-sysctrl-fix-request-memory-check-.patch b/target/linux/lantiq/patches-6.12/102-11-v6.17-MIPS-lantiq-falcon-sysctrl-fix-request-memory-check-.patch
deleted file mode 100644
index 13c72d826b..0000000000
--- a/target/linux/lantiq/patches-6.12/102-11-v6.17-MIPS-lantiq-falcon-sysctrl-fix-request-memory-check-.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 9c9a7ff9882fc6ba7d2f4050697e8bb80383e8dc Mon Sep 17 00:00:00 2001
-From: Shiji Yang <yangshiji66 at outlook.com>
-Date: Wed, 18 Jun 2025 22:53:23 +0800
-Subject: [PATCH 11/11] MIPS: lantiq: falcon: sysctrl: fix request memory check
- logic
-
-request_mem_region() will return NULL instead of error code
-when the memory request fails. Therefore, we should check if
-the return value is non-zero instead of less than zero. In
-this way, this patch also fixes the build warnings:
-
-arch/mips/lantiq/falcon/sysctrl.c:214:50: error: ordered comparison of pointer with integer zero [-Werror=extra]
-  214 |                                 res_status.name) < 0) ||
-      |                                                  ^
-arch/mips/lantiq/falcon/sysctrl.c:216:47: error: ordered comparison of pointer with integer zero [-Werror=extra]
-  216 |                                 res_ebu.name) < 0) ||
-      |                                               ^
-arch/mips/lantiq/falcon/sysctrl.c:219:50: error: ordered comparison of pointer with integer zero [-Werror=extra]
-  219 |                                 res_sys[0].name) < 0) ||
-      |                                                  ^
-arch/mips/lantiq/falcon/sysctrl.c:222:50: error: ordered comparison of pointer with integer zero [-Werror=extra]
-  222 |                                 res_sys[1].name) < 0) ||
-      |                                                  ^
-arch/mips/lantiq/falcon/sysctrl.c:225:50: error: ordered comparison of pointer with integer zero [-Werror=extra]
-  225 |                                 res_sys[2].name) < 0))
-      |
-
-Signed-off-by: Shiji Yang <yangshiji66 at outlook.com>
-Signed-off-by: Thomas Bogendoerfer <tsbogend at alpha.franken.de>
----
- arch/mips/lantiq/falcon/sysctrl.c | 23 ++++++++++-------------
- 1 file changed, 10 insertions(+), 13 deletions(-)
-
---- a/arch/mips/lantiq/falcon/sysctrl.c
-+++ b/arch/mips/lantiq/falcon/sysctrl.c
-@@ -210,19 +210,16 @@ void __init ltq_soc_init(void)
- 	of_node_put(np_syseth);
- 	of_node_put(np_sysgpe);
- 
--	if ((request_mem_region(res_status.start, resource_size(&res_status),
--				res_status.name) < 0) ||
--		(request_mem_region(res_ebu.start, resource_size(&res_ebu),
--				res_ebu.name) < 0) ||
--		(request_mem_region(res_sys[0].start,
--				resource_size(&res_sys[0]),
--				res_sys[0].name) < 0) ||
--		(request_mem_region(res_sys[1].start,
--				resource_size(&res_sys[1]),
--				res_sys[1].name) < 0) ||
--		(request_mem_region(res_sys[2].start,
--				resource_size(&res_sys[2]),
--				res_sys[2].name) < 0))
-+	if ((!request_mem_region(res_status.start, resource_size(&res_status),
-+				 res_status.name)) ||
-+	    (!request_mem_region(res_ebu.start, resource_size(&res_ebu),
-+				 res_ebu.name)) ||
-+	    (!request_mem_region(res_sys[0].start, resource_size(&res_sys[0]),
-+				 res_sys[0].name)) ||
-+	    (!request_mem_region(res_sys[1].start, resource_size(&res_sys[1]),
-+				 res_sys[1].name)) ||
-+	    (!request_mem_region(res_sys[2].start, resource_size(&res_sys[2]),
-+				 res_sys[2].name)))
- 		pr_err("Failed to request core resources");
- 
- 	status_membase = ioremap(res_status.start,
diff --git a/target/linux/lantiq/patches-6.12/102-12-v6.17-MIPS-vpe-mt-add-missing-prototypes-for-vpe_-alloc-st.patch b/target/linux/lantiq/patches-6.12/102-12-v6.17-MIPS-vpe-mt-add-missing-prototypes-for-vpe_-alloc-st.patch
deleted file mode 100644
index d3ed482bad..0000000000
--- a/target/linux/lantiq/patches-6.12/102-12-v6.17-MIPS-vpe-mt-add-missing-prototypes-for-vpe_-alloc-st.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 844615dd0f2d95c018ec66b943e08af22b62aff3 Mon Sep 17 00:00:00 2001
-From: Shiji Yang <yangshiji66 at outlook.com>
-Date: Thu, 3 Jul 2025 21:06:32 +0800
-Subject: [PATCH] MIPS: vpe-mt: add missing prototypes for
- vpe_{alloc,start,stop,free}
-
-These functions are exported but their prototypes are not defined.
-This patch adds the missing function prototypes to fix the following
-compilation warnings:
-
-arch/mips/kernel/vpe-mt.c:180:7: error: no previous prototype for 'vpe_alloc' [-Werror=missing-prototypes]
-  180 | void *vpe_alloc(void)
-      |       ^~~~~~~~~
-arch/mips/kernel/vpe-mt.c:198:5: error: no previous prototype for 'vpe_start' [-Werror=missing-prototypes]
-  198 | int vpe_start(void *vpe, unsigned long start)
-      |     ^~~~~~~~~
-arch/mips/kernel/vpe-mt.c:208:5: error: no previous prototype for 'vpe_stop' [-Werror=missing-prototypes]
-  208 | int vpe_stop(void *vpe)
-      |     ^~~~~~~~
-arch/mips/kernel/vpe-mt.c:229:5: error: no previous prototype for 'vpe_free' [-Werror=missing-prototypes]
-  229 | int vpe_free(void *vpe)
-      |     ^~~~~~~~
-
-Signed-off-by: Shiji Yang <yangshiji66 at outlook.com>
-Signed-off-by: Thomas Bogendoerfer <tsbogend at alpha.franken.de>
----
- arch/mips/include/asm/vpe.h | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
---- a/arch/mips/include/asm/vpe.h
-+++ b/arch/mips/include/asm/vpe.h
-@@ -119,4 +119,12 @@ void cleanup_tc(struct tc *tc);
- 
- int __init vpe_module_init(void);
- void __exit vpe_module_exit(void);
-+
-+#ifdef CONFIG_MIPS_VPE_LOADER_MT
-+void *vpe_alloc(void);
-+int vpe_start(void *vpe, unsigned long start);
-+int vpe_stop(void *vpe);
-+int vpe_free(void *vpe);
-+#endif /* CONFIG_MIPS_VPE_LOADER_MT */
-+
- #endif /* _ASM_VPE_H */
diff --git a/target/linux/layerscape/patches-6.12/400-LF-20-3-mtd-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch b/target/linux/layerscape/patches-6.12/400-LF-20-3-mtd-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch
index 71dc41569a..f9ea6a6e4e 100644
--- a/target/linux/layerscape/patches-6.12/400-LF-20-3-mtd-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch
+++ b/target/linux/layerscape/patches-6.12/400-LF-20-3-mtd-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch
@@ -15,7 +15,7 @@ Signed-off-by: Kuldeep Singh <kuldeep.singh at nxp.com>
 
 --- a/drivers/mtd/spi-nor/spansion.c
 +++ b/drivers/mtd/spi-nor/spansion.c
-@@ -828,9 +828,9 @@ static const struct flash_info spansion_
+@@ -859,9 +859,9 @@ static const struct flash_info spansion_
  		.name = "s25fs512s",
  		.size = SZ_64M,
  		.sector_size = SZ_256K,
diff --git a/target/linux/qualcommax/patches-6.12/0170-clk-qcom-gcc-ipq8074-fix-broken-freq-table-for-nss_port6_tx_clk_src.patch b/target/linux/qualcommax/patches-6.12/0170-clk-qcom-gcc-ipq8074-fix-broken-freq-table-for-nss_port6_tx_clk_src.patch
deleted file mode 100644
index 1f4c0904e6..0000000000
--- a/target/linux/qualcommax/patches-6.12/0170-clk-qcom-gcc-ipq8074-fix-broken-freq-table-for-nss_port6_tx_clk_src.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From patchwork Thu May 22 20:25:55 2025
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Christian Marangi <ansuelsmth at gmail.com>
-X-Patchwork-Id: 14097271
-Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com
- [209.85.221.50])
-	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
-	(No client certificate requested)
-	by smtp.subspace.kernel.org (Postfix) with ESMTPS id BE1BF2B9A9;
-	Thu, 22 May 2025 20:26:28 +0000 (UTC)
-Authentication-Results: smtp.subspace.kernel.org;
- arc=none smtp.client-ip=209.85.221.50
-ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
-	t=1747945590; cv=none;
- b=SJyQKJEIm31L7OgiCxpH5eSDCvy3pwWfc5Tm5ylnbA62aIfHLr9TAaJ3qgIEhatEmg1tASNg/kuDmfqVkvTcCgfN89i5AC/I6gvQRguLThtK4NHh5SuCKdUd49BWXk1X+Ma5cEIKEKY+Me0pO1q2XeLvwuWTFN3RHUkygO2Cias=
-ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org;
-	s=arc-20240116; t=1747945590; c=relaxed/simple;
-	bh=RcOtjmSun1IwEL5Wb3PSql0fo4oAT/kf0BO04Ne0FWo=;
-	h=From:To:Cc:Subject:Date:Message-ID:MIME-Version;
- b=lOheyUFV/bVQ1HRRivMF7JOVhTelzBEnWB7rGJmANrNWl2gcgEf+xEHi3nWPULWal/ppIdrVL9LjC0v7KEKoHe6XJ/WmqmhJgrNKiUSUJQbnmUZgaser6iyO9XJUCjR3TlgdSnZ2A8dsLXVbiK2UPLe+GUdb0V5O5ZChOm6rVAM=
-ARC-Authentication-Results: i=1; smtp.subspace.kernel.org;
- dmarc=pass (p=none dis=none) header.from=gmail.com;
- spf=pass smtp.mailfrom=gmail.com;
- dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com
- header.b=U3Ibckvp; arc=none smtp.client-ip=209.85.221.50
-Authentication-Results: smtp.subspace.kernel.org;
- dmarc=pass (p=none dis=none) header.from=gmail.com
-Authentication-Results: smtp.subspace.kernel.org;
- spf=pass smtp.mailfrom=gmail.com
-Authentication-Results: smtp.subspace.kernel.org;
-	dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com
- header.b="U3Ibckvp"
-Received: by mail-wr1-f50.google.com with SMTP id
- ffacd0b85a97d-3a367ec7840so3966539f8f.2;
-        Thu, 22 May 2025 13:26:28 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
-        d=gmail.com; s=20230601; t=1747945587; x=1748550387;
- darn=vger.kernel.org;
-        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
-         :to:from:from:to:cc:subject:date:message-id:reply-to;
-        bh=xgvKtt5DybnIrKc6mWPJ7EZTeS6I4nUMUzu2bm2zMtQ=;
-        b=U3IbckvpuScfyKSdVLd02B1axIbs/9630TXWceGPzDNFU/YHi8PIALyMXNVBZ5/DGb
-         fSlmQmam2bC0j5pk1bg2xqWs7I9sCteTah3Ygxo9X1vXhD9PnqbhJfgvQJp3KrNoLwC4
-         JdRzdVi/vjJIEEuMlveXpcanmLLn+BjOEYYMs8x3EZ3yLYQr7KkHtJ+V6HTWPsE47qA8
-         mOdp/ysLZ2jLPihravIjN6BlUSGMz5EkdYudIljy3wYNiga385aw4aQsa79gd/J7RxjD
-         o9GAIcFAtoRp4Co7G632DYC+zoYQw1G10ZfIzT7kOCPRZxoevlaGeRVxsgh9bCnsQ9LT
-         3aog==
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
-        d=1e100.net; s=20230601; t=1747945587; x=1748550387;
-        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
-         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
-         :reply-to;
-        bh=xgvKtt5DybnIrKc6mWPJ7EZTeS6I4nUMUzu2bm2zMtQ=;
-        b=Fdp0DTSGLe7u0fvh/rW+co2BBsFkL9sH5Y4cVO/uEyWrOuDZY4wEIY3k7tT9z/qusu
-         qsBqrFaiXgv99S3sOK6e4buTvnX+yvbk5hBq7kKb+WUSdLnvo7am0NzjlVz3/8ksSosU
-         g/6WFJbxG/UEf7eQS5ze9cOtfag1nj3qpj/wf1od2RAE8KLaGt1yT2RKXrxvWswjVtWc
-         TVKIc5mEANR4fTG4AwfOVG6QBU1JfLpTBS41O9THoy/vk3BI9id6by4w3zsD8BSc4Z6W
-         njvleK+s7I7draMy3YYcYM3etzGD2P5AiJj0NxoyEZ8hCSswjCDIcfQniPRhfblicRBT
-         Bi+Q==
-X-Forwarded-Encrypted: i=1;
- AJvYcCU//xD5uHyFhB4sHqPQHkUS/SeqLIOqpGrEMtx0zyh2/T2x39VopI/PnTpe2ESaMCDbmRl8MurqOBOJ at vger.kernel.org,
- AJvYcCWlko+5ICQgXGZZ6qZxD3WWDXE1EmkOd7Tw+6qOZDni1suR0Um5tG1VcHHtIJIp034hXQ7Tj5WK3veOVQgD at vger.kernel.org,
- AJvYcCXnJcB9/SJexBqJAU7vPtjnJ2eKMHLPx+eHgLCSNvPKpkH7r5TU+eAOzfjqSPvmxKNRZXM/L/CxkyxDzp+n at vger.kernel.org
-X-Gm-Message-State: AOJu0Ywgx5kKVjnck8zcNF5jiJmr1aap8FGVVIFxqqFyLqAdMsRpJ5RM
-	YGVflzDLCHubLU2D5IwFoaoiTDyGi/eHphmIPndSUeFP8moWY/T6O3Pd
-X-Gm-Gg: ASbGncunHQP8921RyvQsddVmY7ua8h+QTVvMvQHB4kaRgHeeD58OPdZJCqc3cNVNIP1
-	X/LZAzqXAmd7j1ls65igxC/kCtPSyDnS4zh1hu6AFlttxuOfgdWgiXbFyqdozanfhYDRhD11FD6
-	aAseq7i2gRb72LDgkGGmwREbBnHgtugTuSboaAJnCaoVVhU53SdpG0XfrAJBxVVHKFRv+WLtktr
-	o0itJiaG5BklL3SQ7I36EqdExH7yo3mPByvwYI5zarwBqgENcIqxoMbum72iweT8YSB7p6h0iMo
-	/dPKuoYps8Nt9k6kkL6oF2SkVLjTvYDQ4kna9JVBqwP0UdjBgTo+FMZBNy6UNnEnJC+4gKrLnE+
-	I1asottOJwbm+C7Ke4/O9
-X-Google-Smtp-Source: 
- AGHT+IE/fBAh0wuvEHRV8Pp3re+RzxCwE85Zo4u5IxHZMcKKHBmdPi+/PvNmPZSoI/27B1urc+XZXg==
-X-Received: by 2002:a05:6000:2281:b0:3a3:7be3:cba9 with SMTP id
- ffacd0b85a97d-3a37be3cebdmr9761395f8f.18.1747945586791;
-        Thu, 22 May 2025 13:26:26 -0700 (PDT)
-Received: from localhost.localdomain (93-34-88-225.ip49.fastwebnet.it.
- [93.34.88.225])
-        by smtp.googlemail.com with ESMTPSA id
- ffacd0b85a97d-3a35ca5a03fsm23883073f8f.22.2025.05.22.13.26.25
-        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
-        Thu, 22 May 2025 13:26:25 -0700 (PDT)
-From: Christian Marangi <ansuelsmth at gmail.com>
-To: Bjorn Andersson <andersson at kernel.org>,
-	Michael Turquette <mturquette at baylibre.com>,
-	Stephen Boyd <sboyd at kernel.org>,
-	Christian Marangi <ansuelsmth at gmail.com>,
-	linux-arm-msm at vger.kernel.org,
-	linux-clk at vger.kernel.org,
-	linux-kernel at vger.kernel.org
-Cc: stable at vger.kernel.org
-Subject: [PATCH] clk: qcom: gcc-ipq8074: fix broken freq table for
- nss_port6_tx_clk_src
-Date: Thu, 22 May 2025 22:25:55 +0200
-Message-ID: <20250522202600.4028-1-ansuelsmth at gmail.com>
-X-Mailer: git-send-email 2.48.1
-Precedence: bulk
-X-Mailing-List: linux-arm-msm at vger.kernel.org
-List-Id: <linux-arm-msm.vger.kernel.org>
-List-Subscribe: <mailto:linux-arm-msm+subscribe at vger.kernel.org>
-List-Unsubscribe: <mailto:linux-arm-msm+unsubscribe at vger.kernel.org>
-MIME-Version: 1.0
-
-With the conversion done by commit e88f03230dc0 ("clk: qcom: gcc-ipq8074:
-rework nss_port5/6 clock to multiple conf") a Copy-Paste error was made
-for the nss_port6_tx_clk_src frequency table.
-
-This was caused by the wrong setting of the parent in
-ftbl_nss_port6_tx_clk_src that was wrongly set to P_UNIPHY1_RX instead
-of P_UNIPHY2_TX.
-
-This cause the UNIPHY2 port to malfunction when it needs to be scaled to
-higher clock. The malfunction was observed with the example scenario
-with an Aquantia 10G PHY connected and a speed higher than 1G (example
-2.5G)
-
-Fix the broken frequency table to restore original functionality.
-
-Cc: stable at vger.kernel.org
-Fixes: e88f03230dc0 ("clk: qcom: gcc-ipq8074: rework nss_port5/6 clock to multiple conf")
-Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
----
- drivers/clk/qcom/gcc-ipq8074.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
---- a/drivers/clk/qcom/gcc-ipq8074.c
-+++ b/drivers/clk/qcom/gcc-ipq8074.c
-@@ -1895,10 +1895,10 @@ static const struct freq_conf ftbl_nss_p
- static const struct freq_multi_tbl ftbl_nss_port6_tx_clk_src[] = {
- 	FMS(19200000, P_XO, 1, 0, 0),
- 	FM(25000000, ftbl_nss_port6_tx_clk_src_25),
--	FMS(78125000, P_UNIPHY1_RX, 4, 0, 0),
-+	FMS(78125000, P_UNIPHY2_TX, 4, 0, 0),
- 	FM(125000000, ftbl_nss_port6_tx_clk_src_125),
--	FMS(156250000, P_UNIPHY1_RX, 2, 0, 0),
--	FMS(312500000, P_UNIPHY1_RX, 1, 0, 0),
-+	FMS(156250000, P_UNIPHY2_TX, 2, 0, 0),
-+	FMS(312500000, P_UNIPHY2_TX, 1, 0, 0),
- 	{ }
- };
- 
diff --git a/target/linux/ramips/patches-6.12/810-uvc-add-iPassion-iP2970-support.patch b/target/linux/ramips/patches-6.12/810-uvc-add-iPassion-iP2970-support.patch
index 0ab9517d88..489d223806 100644
--- a/target/linux/ramips/patches-6.12/810-uvc-add-iPassion-iP2970-support.patch
+++ b/target/linux/ramips/patches-6.12/810-uvc-add-iPassion-iP2970-support.patch
@@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
 
 --- a/drivers/media/usb/uvc/uvc_driver.c
 +++ b/drivers/media/usb/uvc/uvc_driver.c
-@@ -3185,6 +3185,18 @@ static const struct usb_device_id uvc_id
+@@ -3197,6 +3197,18 @@ static const struct usb_device_id uvc_id
  	  .bInterfaceSubClass	= 1,
  	  .bInterfaceProtocol	= 0,
  	  .driver_info		= UVC_INFO_META(V4L2_META_FMT_D4XX) },
@@ -64,7 +64,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  
  #include <media/jpeg.h>
  #include <media/v4l2-common.h>
-@@ -1344,9 +1349,149 @@ static void uvc_video_decode_data(struct
+@@ -1353,9 +1358,149 @@ static void uvc_video_decode_data(struct
  	uvc_urb->async_operations++;
  }
  
@@ -214,7 +214,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  	/* Mark the buffer as done if the EOF marker is set. */
  	if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) {
  		uvc_dbg(stream->dev, FRAME, "Frame complete (EOF found)\n");
-@@ -1928,6 +2073,8 @@ static int uvc_init_video_isoc(struct uv
+@@ -1937,6 +2082,8 @@ static int uvc_init_video_isoc(struct uv
  	if (npackets == 0)
  		return -ENOMEM;
  




More information about the lede-commits mailing list