[openwrt/openwrt] kernel: bump 6.12 to 6.12.58

LEDE Commits lede-commits at lists.infradead.org
Thu Nov 20 12:31:27 PST 2025


hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/738876e76bb20e9fffac7da54aeee642cd59e51e

commit 738876e76bb20e9fffac7da54aeee642cd59e51e
Author: gongzi miao <miaogongzi0227 at gmail.com>
AuthorDate: Fri Nov 14 12:27:56 2025 +0800

    kernel: bump 6.12 to 6.12.58
    
    changelogs:
    https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.58
    
    Removed upstreamed patches:
    1. target/linux/generic/backport-6.12/612-01-v6.17-net-dsa-tag_brcm-legacy-reorganize-functions.patch
       Upstream: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.58&id=a4daaf063f8269a5881154c5b77c5ef6639d65d3
    
    2. target/linux/qualcommax/patches-6.12/0151-arm64-qcom-ipq6018-nss_port5.patch
       Upstream: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.58&id=9a7a5d50ee2e035325de9c720e4842d6759d2374
    
    3. target/linux/realtek/patches-6.12/020-01-v6.18-timer-rtl-otto-work-around-dying-timers.patch
       Upstream: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.58&id=d0e217b33d42bfe52ef7ef447916a23a586e6e5c
    
    4. target/linux/realtek/patches-6.12/020-03-v6.18-timer-rtl-otto-do-not-interfere-with-interrupts.patch
       Upstream: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.58&id=8cc561dd9d02f1753ae34dfdd565662828be9a9d
    
    Additional changes:
    - Manually adapted bcm27xx patch:
      * 950-0410-media-i2c-adv7180-Add-support-for-V4L2_CID_LINK_FREQ.patch
        Rebased and adjusted for kernel 6.12 to fix context conflicts.
    - Synced lantiq DTS (danube.dtsi) with upstream bindings
      to fix DT validation issues on kernel 6.12.
    - Manually adapted DTS to match OpenWrt's lantiq DTS layout.
    
    Compile-tested on x86_64
    Run-tested on x86_64
    
    Signed-off-by: gongzi miao <miaogongzi0227 at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/20777
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 ...-adv7180-Default-to-the-first-valid-input.patch |   4 +-
 ...ia-adv7180-Add-YPrPb-support-for-ADV7282M.patch |   2 +-
 ...v7180-Nasty-hack-to-allow-input-selection.patch |   8 +-
 ...oth-hci_sync-Add-fallback-bd-address-prop.patch |   4 +-
 ...-client-to-request-a-particular-dev-fbN-n.patch |   2 +-
 ...rmal-step_wise-add-support-for-hysteresis.patch |   8 +-
 ...dv7180-Use-MEDIA_BUS_FMT_UYVY8_1X16-for-C.patch |   4 +-
 ...dv7180-Add-support-for-V4L2_CID_LINK_FREQ.patch |  51 +++++----
 ...uetooth-hci_sync-Fix-crash-on-NULL-parent.patch |   2 +-
 .../950-0692-cgroup-Add-cgroup_enable-option.patch |   2 +-
 ...-work-around-VL805-firmware-ASPM-meddling.patch |   2 +-
 ...cm531x5-fix-cpu-rgmii-mode-interpretation.patch |   4 +-
 ...-marvell-implement-phy_inband_caps-method.patch |   6 +-
 ...hy-marvell-implement-config_inband-method.patch |   6 +-
 ...net-dsa-b53-mdio-add-support-for-BCM53101.patch |   4 +-
 ...net-dsa-b53-implement-setting-ageing-time.patch |   6 +-
 ...-do-not-configure-bcm63xx-s-IMP-port-inte.patch |   4 +-
 ...-dsa-tag_brcm-legacy-reorganize-functions.patch |  99 ----------------
 ...-tag_brcm-add-support-for-legacy-FCS-tags.patch |   6 +-
 ...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 |  18 +--
 ...fix-unicast-multicast-flooding-on-BCM5325.patch |   2 +-
 ...14-net-phy-Constify-struct-mdio_device_id.patch |   2 +-
 ...8169-adjust-version-numbering-for-RTL8126.patch |   2 +-
 ...69-merge-chip-versions-70-and-71-RTL8126A.patch |   2 +-
 ...0-42-v6.16-r8169-add-support-for-RTL8127A.patch |   2 +-
 ...ol-try-to-free-deferred-skbs-while-waitin.patch |   4 +-
 .../780-usb-net-MeigLink_modem_support.patch       |   4 +-
 .../linux/generic/hack-6.12/902-debloat_proc.patch |   2 +-
 target/linux/generic/kernel-6.12                   |   4 +-
 ...NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch |   2 +-
 ...ge-add-knob-for-filtering-rx-tx-BPDU-pack.patch |   4 +-
 ...rovide-old-opp-to-config_clks-on-_set_opp.patch |   4 +-
 .../810-pci_disable_common_quirks.patch            |   6 +-
 ...ip-link-up-workaround-for-newer-platforms.patch |   6 +-
 ...dhci-msm-use-sdhci_set_clock-instead-of-s.patch |   2 +-
 ...ci-msm-comment-unused-sdhci_msm_set_clock.patch |   2 +-
 .../files/arch/mips/boot/dts/lantiq/danube.dtsi    |   2 +-
 ...rmal-step_wise-add-support-for-hysteresis.patch |   2 +-
 .../0151-arm64-qcom-ipq6018-nss_port5.patch        | 125 ---------------------
 ...-qcom-q6v5-Add-multipd-interrupts-support.patch |   6 +-
 .../810-uvc-add-iPassion-iP2970-support.patch      |   2 +-
 ...8-timer-rtl-otto-work-around-dying-timers.patch | 103 -----------------
 ...rtl-otto-do-not-interfere-with-interrupts.patch |  60 ----------
 ...scsi-ufs-core-Export-ufshcd_dme_reset-and.patch |  10 +-
 ...t-IRQCHIP_EOI_THREADED-in-PREEMPT_RT-case.patch |   4 +-
 47 files changed, 116 insertions(+), 498 deletions(-)

diff --git a/target/linux/bcm27xx/patches-6.12/950-0103-media-adv7180-Default-to-the-first-valid-input.patch b/target/linux/bcm27xx/patches-6.12/950-0103-media-adv7180-Default-to-the-first-valid-input.patch
index 52a113906f..c294e5286a 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0103-media-adv7180-Default-to-the-first-valid-input.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0103-media-adv7180-Default-to-the-first-valid-input.patch
@@ -16,7 +16,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
 
 --- a/drivers/media/i2c/adv7180.c
 +++ b/drivers/media/i2c/adv7180.c
-@@ -1362,6 +1362,7 @@ static const struct adv7180_chip_info ad
+@@ -1352,6 +1352,7 @@ static const struct adv7180_chip_info ad
  static int init_device(struct adv7180_state *state)
  {
  	int ret;
@@ -24,7 +24,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
  
  	mutex_lock(&state->mutex);
  
-@@ -1409,6 +1410,18 @@ static int init_device(struct adv7180_st
+@@ -1399,6 +1400,18 @@ static int init_device(struct adv7180_st
  			goto out_unlock;
  	}
  
diff --git a/target/linux/bcm27xx/patches-6.12/950-0104-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch b/target/linux/bcm27xx/patches-6.12/950-0104-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch
index 8669c93edb..1552f6358c 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0104-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0104-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch
@@ -14,7 +14,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
 
 --- a/drivers/media/i2c/adv7180.c
 +++ b/drivers/media/i2c/adv7180.c
-@@ -1351,6 +1351,7 @@ static const struct adv7180_chip_info ad
+@@ -1341,6 +1341,7 @@ static const struct adv7180_chip_info ad
  		BIT(ADV7182_INPUT_SVIDEO_AIN1_AIN2) |
  		BIT(ADV7182_INPUT_SVIDEO_AIN3_AIN4) |
  		BIT(ADV7182_INPUT_SVIDEO_AIN7_AIN8) |
diff --git a/target/linux/bcm27xx/patches-6.12/950-0295-media-adv7180-Nasty-hack-to-allow-input-selection.patch b/target/linux/bcm27xx/patches-6.12/950-0295-media-adv7180-Nasty-hack-to-allow-input-selection.patch
index c36033642b..fca52578af 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0295-media-adv7180-Nasty-hack-to-allow-input-selection.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0295-media-adv7180-Nasty-hack-to-allow-input-selection.patch
@@ -30,7 +30,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
  struct adv7180_state;
  
  #define ADV7180_FLAG_RESET_POWERED	BIT(0)
-@@ -408,10 +412,24 @@ out:
+@@ -403,10 +407,24 @@ out:
  	return ret;
  }
  
@@ -56,7 +56,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
  	if (ret)
  		return ret;
  
-@@ -437,7 +455,11 @@ static int adv7180_program_std(struct ad
+@@ -432,7 +450,11 @@ static int adv7180_program_std(struct ad
  static int adv7180_s_std(struct v4l2_subdev *sd, v4l2_std_id std)
  {
  	struct adv7180_state *state = to_state(sd);
@@ -69,7 +69,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
  
  	if (ret)
  		return ret;
-@@ -459,6 +481,8 @@ static int adv7180_g_std(struct v4l2_sub
+@@ -454,6 +476,8 @@ static int adv7180_g_std(struct v4l2_sub
  {
  	struct adv7180_state *state = to_state(sd);
  
@@ -78,7 +78,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
  	*norm = state->curr_norm;
  
  	return 0;
-@@ -900,6 +924,8 @@ static int adv7180_s_stream(struct v4l2_
+@@ -890,6 +914,8 @@ static int adv7180_s_stream(struct v4l2_
  		return 0;
  	}
  
diff --git a/target/linux/bcm27xx/patches-6.12/950-0322-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch b/target/linux/bcm27xx/patches-6.12/950-0322-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch
index 81e8d31c1b..aea33e7533 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0322-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0322-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch
@@ -20,7 +20,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 
 --- a/net/bluetooth/hci_sync.c
 +++ b/net/bluetooth/hci_sync.c
-@@ -4930,6 +4930,7 @@ static const struct {
+@@ -4935,6 +4935,7 @@ static const struct {
   */
  static int hci_dev_setup_sync(struct hci_dev *hdev)
  {
@@ -28,7 +28,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	int ret = 0;
  	bool invalid_bdaddr;
  	size_t i;
-@@ -4958,7 +4959,8 @@ static int hci_dev_setup_sync(struct hci
+@@ -4963,7 +4964,8 @@ static int hci_dev_setup_sync(struct hci
  			 test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
  	if (!ret) {
  		if (test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks) &&
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 13e8d1bb3c..7b993d9987 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
@@ -55,7 +55,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  
  #ifdef CONFIG_GUMSTIX_AM200EPD
  	{
-@@ -506,6 +509,12 @@ static void do_unregister_framebuffer(st
+@@ -507,6 +510,12 @@ static void do_unregister_framebuffer(st
  	put_fb_info(fb_info);
  }
  
diff --git a/target/linux/bcm27xx/patches-6.12/950-0402-drivers-thermal-step_wise-add-support-for-hysteresis.patch b/target/linux/bcm27xx/patches-6.12/950-0402-drivers-thermal-step_wise-add-support-for-hysteresis.patch
index d0c9fab6d4..b47c4322da 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0402-drivers-thermal-step_wise-add-support-for-hysteresis.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0402-drivers-thermal-step_wise-add-support-for-hysteresis.patch
@@ -36,7 +36,7 @@ Signed-off-by: Jürgen Kreileder <jk at blackdown.de>
 
 --- a/drivers/thermal/gov_step_wise.c
 +++ b/drivers/thermal/gov_step_wise.c
-@@ -17,11 +17,11 @@
+@@ -17,13 +17,13 @@
  #include "thermal_core.h"
  
  /*
@@ -44,13 +44,15 @@ Signed-off-by: Jürgen Kreileder <jk at blackdown.de>
 + * If the temperature is higher than a hysteresis temperature,
   *    a. if the trend is THERMAL_TREND_RAISING, use higher cooling
   *       state for this trip point
-  *    b. if the trend is THERMAL_TREND_DROPPING, do nothing
+  *    b. if the trend is THERMAL_TREND_DROPPING, use a lower cooling state
+  *       for this trip point, but keep the cooling state above the applicable
+  *       minimum
 - * If the temperature is lower than a trip point,
 + * If the temperature is lower than a hysteresis temperature,
   *    a. if the trend is THERMAL_TREND_RAISING, do nothing
   *    b. if the trend is THERMAL_TREND_DROPPING, use lower cooling
   *       state for this trip point, if the cooling state already
-@@ -74,19 +74,35 @@ static void thermal_zone_trip_update(str
+@@ -87,19 +87,35 @@ static void thermal_zone_trip_update(str
  	int trip_id = thermal_zone_trip_id(tz, trip);
  	struct thermal_instance *instance;
  	bool throttle = false;
diff --git a/target/linux/bcm27xx/patches-6.12/950-0409-media-i2c-adv7180-Use-MEDIA_BUS_FMT_UYVY8_1X16-for-C.patch b/target/linux/bcm27xx/patches-6.12/950-0409-media-i2c-adv7180-Use-MEDIA_BUS_FMT_UYVY8_1X16-for-C.patch
index 5790d79ade..9b86b31a5d 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0409-media-i2c-adv7180-Use-MEDIA_BUS_FMT_UYVY8_1X16-for-C.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0409-media-i2c-adv7180-Use-MEDIA_BUS_FMT_UYVY8_1X16-for-C.patch
@@ -17,7 +17,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
 
 --- a/drivers/media/i2c/adv7180.c
 +++ b/drivers/media/i2c/adv7180.c
-@@ -737,10 +737,15 @@ static int adv7180_enum_mbus_code(struct
+@@ -732,10 +732,15 @@ static int adv7180_enum_mbus_code(struct
  				  struct v4l2_subdev_state *sd_state,
  				  struct v4l2_subdev_mbus_code_enum *code)
  {
@@ -34,7 +34,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  
  	return 0;
  }
-@@ -750,7 +755,10 @@ static int adv7180_mbus_fmt(struct v4l2_
+@@ -745,7 +750,10 @@ static int adv7180_mbus_fmt(struct v4l2_
  {
  	struct adv7180_state *state = to_state(sd);
  
diff --git a/target/linux/bcm27xx/patches-6.12/950-0410-media-i2c-adv7180-Add-support-for-V4L2_CID_LINK_FREQ.patch b/target/linux/bcm27xx/patches-6.12/950-0410-media-i2c-adv7180-Add-support-for-V4L2_CID_LINK_FREQ.patch
index 4bc7a684eb..d67112a069 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0410-media-i2c-adv7180-Add-support-for-V4L2_CID_LINK_FREQ.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0410-media-i2c-adv7180-Add-support-for-V4L2_CID_LINK_FREQ.patch
@@ -1,18 +1,14 @@
-From 7e58b9c99676d641ef76edd9c097f1c3c4e6c464 Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <dave.stevenson at raspberrypi.com>
-Date: Thu, 21 Dec 2023 18:03:34 +0000
-Subject: [PATCH] media: i2c: adv7180: Add support for V4L2_CID_LINK_FREQ
-
-For CSI2 receivers that need to know the link frequency,
-add it as a control to the driver.
-Interlaced modes are 216Mbp/s or 108MHz, whilst going through
-the I2P to deinterlace gives 432Mb/s or 216MHz.
-
-Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
----
- drivers/media/i2c/adv7180.c | 32 +++++++++++++++++++++++++++++++-
- 1 file changed, 31 insertions(+), 1 deletion(-)
-
+From 954129f16c200e41a00ebebe2e22efc01b243538 Mon Sep 17 00:00:00 2001
+From: Dom Cobley <popcornmix at gmail.com>
+Date: Fri, 14 Nov 2025 14:08:18 +0000
+Subject: [PATCH] Revert "Revert "media: i2c: adv7180: Add support for
+ V4L2_CID_LINK_FREQ""
+
+This reverts commit 00ecb85c58501f8f7ae75fcb069bbbad5542e853.
+---
+ drivers/media/i2c/adv7180.c | 39 +++++++++++++++++++++++++++++++++++--
+ 1 file changed, 37 insertions(+), 2 deletions(-)
+
 --- a/drivers/media/i2c/adv7180.c
 +++ b/drivers/media/i2c/adv7180.c
 @@ -189,6 +189,16 @@
@@ -40,7 +36,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  };
  #define to_adv7180_sd(_ctrl) (&container_of(_ctrl->handler,		\
  					    struct adv7180_state,	\
-@@ -630,6 +641,9 @@ static int adv7180_s_ctrl(struct v4l2_ct
+@@ -625,6 +636,9 @@ static int adv7180_s_ctrl(struct v4l2_ct
  
  	if (ret)
  		return ret;
@@ -50,7 +46,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	val = ctrl->val;
  	switch (ctrl->id) {
  	case V4L2_CID_BRIGHTNESS:
-@@ -671,6 +685,7 @@ static int adv7180_s_ctrl(struct v4l2_ct
+@@ -666,6 +680,7 @@ static int adv7180_s_ctrl(struct v4l2_ct
  		ret = -EINVAL;
  	}
  
@@ -58,7 +54,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	mutex_unlock(&state->mutex);
  	return ret;
  }
-@@ -691,7 +706,7 @@ static const struct v4l2_ctrl_config adv
+@@ -686,7 +701,7 @@ static const struct v4l2_ctrl_config adv
  
  static int adv7180_init_controls(struct adv7180_state *state)
  {
@@ -67,7 +63,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  
  	v4l2_ctrl_new_std(&state->ctrl_hdl, &adv7180_ctrl_ops,
  			  V4L2_CID_BRIGHTNESS, ADV7180_BRI_MIN,
-@@ -717,6 +732,17 @@ static int adv7180_init_controls(struct
+@@ -712,6 +727,17 @@ static int adv7180_init_controls(struct
  					     test_pattern_menu);
  	}
  
@@ -85,14 +81,21 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	state->sd.ctrl_handler = &state->ctrl_hdl;
  	if (state->ctrl_hdl.error) {
  		int err = state->ctrl_hdl.error;
-@@ -849,6 +875,10 @@ static int adv7180_set_pad_format(struct
- 			adv7180_set_power(state, false);
- 			adv7180_set_field_mode(state);
- 			adv7180_set_power(state, true);
+@@ -839,7 +865,16 @@ static int adv7180_set_pad_format(struct
+ 	ret = adv7180_mbus_fmt(sd,  &format->format);
+ 
+ 	if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE) {
+-		state->field = format->format.field;
++		if (state->field != format->format.field) {
++			state->field = format->format.field;
++			adv7180_set_power(state, false);
++			adv7180_set_field_mode(state);
++			adv7180_set_power(state, true);
 +			if (state->chip_info->flags & ADV7180_FLAG_MIPI_CSI2)
 +				__v4l2_ctrl_s_ctrl(state->link_freq,
 +						   (state->field == V4L2_FIELD_NONE) ?
 +						   I2P_IDX : INTERLACED_IDX);
- 		}
++		}
  	} else {
  		framefmt = v4l2_subdev_state_get_format(sd_state, 0);
+ 		*framefmt = format->format;
diff --git a/target/linux/bcm27xx/patches-6.12/950-0502-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch b/target/linux/bcm27xx/patches-6.12/950-0502-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch
index cb98eb72fb..db23f1f1ff 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0502-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0502-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch
@@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 
 --- a/net/bluetooth/hci_sync.c
 +++ b/net/bluetooth/hci_sync.c
-@@ -4930,7 +4930,8 @@ static const struct {
+@@ -4935,7 +4935,8 @@ static const struct {
   */
  static int hci_dev_setup_sync(struct hci_dev *hdev)
  {
diff --git a/target/linux/bcm27xx/patches-6.12/950-0692-cgroup-Add-cgroup_enable-option.patch b/target/linux/bcm27xx/patches-6.12/950-0692-cgroup-Add-cgroup_enable-option.patch
index d44e050e02..64176cbfc7 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0692-cgroup-Add-cgroup_enable-option.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0692-cgroup-Add-cgroup_enable-option.patch
@@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 
 --- a/kernel/cgroup/cgroup.c
 +++ b/kernel/cgroup/cgroup.c
-@@ -6916,6 +6916,39 @@ static int __init cgroup_disable(char *s
+@@ -6932,6 +6932,39 @@ static int __init cgroup_disable(char *s
  }
  __setup("cgroup_disable=", cgroup_disable);
  
diff --git a/target/linux/bcm27xx/patches-6.12/950-0949-PCI-quirks-work-around-VL805-firmware-ASPM-meddling.patch b/target/linux/bcm27xx/patches-6.12/950-0949-PCI-quirks-work-around-VL805-firmware-ASPM-meddling.patch
index e0c0cc105f..acc981dc2e 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0949-PCI-quirks-work-around-VL805-firmware-ASPM-meddling.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0949-PCI-quirks-work-around-VL805-firmware-ASPM-meddling.patch
@@ -18,7 +18,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
 
 --- a/drivers/pci/quirks.c
 +++ b/drivers/pci/quirks.c
-@@ -6255,6 +6255,22 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
+@@ -6256,6 +6256,22 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56b1, aspm_l1_acceptable_latency);
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56c0, aspm_l1_acceptable_latency);
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56c1, aspm_l1_acceptable_latency);
diff --git a/target/linux/bmips/patches-6.12/110-net-dsa-b53-bcm531x5-fix-cpu-rgmii-mode-interpretation.patch b/target/linux/bmips/patches-6.12/110-net-dsa-b53-bcm531x5-fix-cpu-rgmii-mode-interpretation.patch
index 30f346ff1e..e27c4cd98f 100644
--- a/target/linux/bmips/patches-6.12/110-net-dsa-b53-bcm531x5-fix-cpu-rgmii-mode-interpretation.patch
+++ b/target/linux/bmips/patches-6.12/110-net-dsa-b53-bcm531x5-fix-cpu-rgmii-mode-interpretation.patch
@@ -58,7 +58,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski at gmail.com>
 +	  the phy interface, but actually requires internal delays enabled.
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -1426,6 +1426,16 @@ static void b53_adjust_531x5_rgmii(struc
+@@ -1435,6 +1435,16 @@ static void b53_adjust_531x5_rgmii(struc
  	else
  		off = B53_RGMII_CTRL_P(port);
  
@@ -75,7 +75,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski at gmail.com>
  	/* Configure the port RGMII clock delay by DLL disabled and
  	 * tx_clk aligned timing (restoring to reset defaults)
  	 */
-@@ -1437,19 +1447,24 @@ static void b53_adjust_531x5_rgmii(struc
+@@ -1446,19 +1456,24 @@ static void b53_adjust_531x5_rgmii(struc
  	 * account for this internal delay that is inserted, otherwise
  	 * the switch won't be able to receive correctly.
  	 *
diff --git a/target/linux/generic/backport-6.12/601-06-v6.14-net-phy-marvell-implement-phy_inband_caps-method.patch b/target/linux/generic/backport-6.12/601-06-v6.14-net-phy-marvell-implement-phy_inband_caps-method.patch
index fb5d9c20af..e2dfeba1d5 100644
--- a/target/linux/generic/backport-6.12/601-06-v6.14-net-phy-marvell-implement-phy_inband_caps-method.patch
+++ b/target/linux/generic/backport-6.12/601-06-v6.14-net-phy-marvell-implement-phy_inband_caps-method.patch
@@ -37,7 +37,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  static int m88e1111_config_aneg(struct phy_device *phydev)
  {
  	int extsr = phy_read(phydev, MII_M1111_PHY_EXT_SR);
-@@ -3667,6 +3681,7 @@ static struct phy_driver marvell_drivers
+@@ -3704,6 +3718,7 @@ static struct phy_driver marvell_drivers
  		.name = "Marvell 88E1112",
  		/* PHY_GBIT_FEATURES */
  		.probe = marvell_probe,
@@ -45,7 +45,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.config_init = m88e1112_config_init,
  		.config_aneg = marvell_config_aneg,
  		.config_intr = marvell_config_intr,
-@@ -3688,6 +3703,7 @@ static struct phy_driver marvell_drivers
+@@ -3725,6 +3740,7 @@ static struct phy_driver marvell_drivers
  		/* PHY_GBIT_FEATURES */
  		.flags = PHY_POLL_CABLE_TEST,
  		.probe = marvell_probe,
@@ -53,7 +53,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.config_init = m88e1111gbe_config_init,
  		.config_aneg = m88e1111_config_aneg,
  		.read_status = marvell_read_status,
-@@ -3711,6 +3727,7 @@ static struct phy_driver marvell_drivers
+@@ -3748,6 +3764,7 @@ static struct phy_driver marvell_drivers
  		.name = "Marvell 88E1111 (Finisar)",
  		/* PHY_GBIT_FEATURES */
  		.probe = marvell_probe,
diff --git a/target/linux/generic/backport-6.12/601-08-v6.14-net-phy-marvell-implement-config_inband-method.patch b/target/linux/generic/backport-6.12/601-08-v6.14-net-phy-marvell-implement-config_inband-method.patch
index 00788d42fc..4531c507e2 100644
--- a/target/linux/generic/backport-6.12/601-08-v6.14-net-phy-marvell-implement-config_inband-method.patch
+++ b/target/linux/generic/backport-6.12/601-08-v6.14-net-phy-marvell-implement-config_inband-method.patch
@@ -51,7 +51,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  static int m88e1111_config_aneg(struct phy_device *phydev)
  {
  	int extsr = phy_read(phydev, MII_M1111_PHY_EXT_SR);
-@@ -3682,6 +3710,7 @@ static struct phy_driver marvell_drivers
+@@ -3719,6 +3747,7 @@ static struct phy_driver marvell_drivers
  		/* PHY_GBIT_FEATURES */
  		.probe = marvell_probe,
  		.inband_caps = m88e1111_inband_caps,
@@ -59,7 +59,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.config_init = m88e1112_config_init,
  		.config_aneg = marvell_config_aneg,
  		.config_intr = marvell_config_intr,
-@@ -3704,6 +3733,7 @@ static struct phy_driver marvell_drivers
+@@ -3741,6 +3770,7 @@ static struct phy_driver marvell_drivers
  		.flags = PHY_POLL_CABLE_TEST,
  		.probe = marvell_probe,
  		.inband_caps = m88e1111_inband_caps,
@@ -67,7 +67,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.config_init = m88e1111gbe_config_init,
  		.config_aneg = m88e1111_config_aneg,
  		.read_status = marvell_read_status,
-@@ -3728,6 +3758,7 @@ static struct phy_driver marvell_drivers
+@@ -3765,6 +3795,7 @@ static struct phy_driver marvell_drivers
  		/* PHY_GBIT_FEATURES */
  		.probe = marvell_probe,
  		.inband_caps = m88e1111_inband_caps,
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 6d69ec0648..0ec9f51395 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
-@@ -2584,6 +2584,19 @@ static const struct b53_chip_data b53_sw
+@@ -2603,6 +2603,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,
-@@ -2964,6 +2977,7 @@ int b53_switch_detect(struct b53_device
+@@ -2983,6 +2996,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 5c993a6119..1e1756d04a 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
@@ -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");
-@@ -2444,6 +2449,28 @@ static int b53_get_max_mtu(struct dsa_sw
+@@ -2463,6 +2468,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,
-@@ -2468,6 +2495,7 @@ static const struct dsa_switch_ops b53_s
+@@ -2487,6 +2514,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
-@@ -225,6 +225,13 @@
+@@ -224,6 +224,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-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 f2c4464b06..e70f09e050 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>
-@@ -1360,24 +1361,17 @@ static void b53_adjust_63xx_rgmii(struct
+@@ -1369,24 +1370,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));
-@@ -1528,7 +1522,7 @@ static void b53_phylink_mac_config(struc
+@@ -1537,7 +1531,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-01-v6.17-net-dsa-tag_brcm-legacy-reorganize-functions.patch b/target/linux/generic/backport-6.12/612-01-v6.17-net-dsa-tag_brcm-legacy-reorganize-functions.patch
deleted file mode 100644
index 23d4929eaa..0000000000
--- a/target/linux/generic/backport-6.12/612-01-v6.17-net-dsa-tag_brcm-legacy-reorganize-functions.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From a4daaf063f8269a5881154c5b77c5ef6639d65d3 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:47 +0200
-Subject: [PATCH] net: dsa: tag_brcm: legacy: reorganize functions
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Move brcm_leg_tag_rcv() definition to top.
-This function is going to be shared between two different tags.
-
-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-2-noltari@gmail.com
-Signed-off-by: Jakub Kicinski <kuba at kernel.org>
----
- net/dsa/tag_brcm.c | 64 +++++++++++++++++++++++-----------------------
- 1 file changed, 32 insertions(+), 32 deletions(-)
-
---- a/net/dsa/tag_brcm.c
-+++ b/net/dsa/tag_brcm.c
-@@ -213,6 +213,38 @@ MODULE_ALIAS_DSA_TAG_DRIVER(DSA_TAG_PROT
- #endif
- 
- #if IS_ENABLED(CONFIG_NET_DSA_TAG_BRCM_LEGACY)
-+static struct sk_buff *brcm_leg_tag_rcv(struct sk_buff *skb,
-+					struct net_device *dev)
-+{
-+	int len = BRCM_LEG_TAG_LEN;
-+	int source_port;
-+	u8 *brcm_tag;
-+
-+	if (unlikely(!pskb_may_pull(skb, BRCM_LEG_TAG_LEN + VLAN_HLEN)))
-+		return NULL;
-+
-+	brcm_tag = dsa_etype_header_pos_rx(skb);
-+
-+	source_port = brcm_tag[5] & BRCM_LEG_PORT_ID;
-+
-+	skb->dev = dsa_conduit_find_user(dev, 0, source_port);
-+	if (!skb->dev)
-+		return NULL;
-+
-+	/* VLAN tag is added by BCM63xx internal switch */
-+	if (netdev_uses_dsa(skb->dev))
-+		len += VLAN_HLEN;
-+
-+	/* Remove Broadcom tag and update checksum */
-+	skb_pull_rcsum(skb, len);
-+
-+	dsa_default_offload_fwd_mark(skb);
-+
-+	dsa_strip_etype_header(skb, len);
-+
-+	return skb;
-+}
-+
- static struct sk_buff *brcm_leg_tag_xmit(struct sk_buff *skb,
- 					 struct net_device *dev)
- {
-@@ -249,38 +281,6 @@ static struct sk_buff *brcm_leg_tag_xmit
- 
- 	return skb;
- }
--
--static struct sk_buff *brcm_leg_tag_rcv(struct sk_buff *skb,
--					struct net_device *dev)
--{
--	int len = BRCM_LEG_TAG_LEN;
--	int source_port;
--	u8 *brcm_tag;
--
--	if (unlikely(!pskb_may_pull(skb, BRCM_LEG_TAG_LEN + VLAN_HLEN)))
--		return NULL;
--
--	brcm_tag = dsa_etype_header_pos_rx(skb);
--
--	source_port = brcm_tag[5] & BRCM_LEG_PORT_ID;
--
--	skb->dev = dsa_conduit_find_user(dev, 0, source_port);
--	if (!skb->dev)
--		return NULL;
--
--	/* VLAN tag is added by BCM63xx internal switch */
--	if (netdev_uses_dsa(skb->dev))
--		len += VLAN_HLEN;
--
--	/* Remove Broadcom tag and update checksum */
--	skb_pull_rcsum(skb, len);
--
--	dsa_default_offload_fwd_mark(skb);
--
--	dsa_strip_etype_header(skb, len);
--
--	return skb;
--}
- 
- static const struct dsa_device_ops brcm_legacy_netdev_ops = {
- 	.name = BRCM_LEGACY_NAME,
diff --git a/target/linux/generic/backport-6.12/612-02-v6.17-net-dsa-tag_brcm-add-support-for-legacy-FCS-tags.patch b/target/linux/generic/backport-6.12/612-02-v6.17-net-dsa-tag_brcm-add-support-for-legacy-FCS-tags.patch
index 9f6b71ff64..88f10be377 100644
--- a/target/linux/generic/backport-6.12/612-02-v6.17-net-dsa-tag_brcm-add-support-for-legacy-FCS-tags.patch
+++ b/target/linux/generic/backport-6.12/612-02-v6.17-net-dsa-tag_brcm-add-support-for-legacy-FCS-tags.patch
@@ -99,7 +99,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  static struct sk_buff *brcm_leg_tag_rcv(struct sk_buff *skb,
  					struct net_device *dev)
  {
-@@ -244,7 +250,9 @@ static struct sk_buff *brcm_leg_tag_rcv(
+@@ -250,7 +256,9 @@ static struct sk_buff *brcm_leg_tag_rcv(
  
  	return skb;
  }
@@ -109,7 +109,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  static struct sk_buff *brcm_leg_tag_xmit(struct sk_buff *skb,
  					 struct net_device *dev)
  {
-@@ -294,6 +302,66 @@ DSA_TAG_DRIVER(brcm_legacy_netdev_ops);
+@@ -300,6 +308,66 @@ DSA_TAG_DRIVER(brcm_legacy_netdev_ops);
  MODULE_ALIAS_DSA_TAG_DRIVER(DSA_TAG_PROTO_BRCM_LEGACY, BRCM_LEGACY_NAME);
  #endif /* CONFIG_NET_DSA_TAG_BRCM_LEGACY */
  
@@ -176,7 +176,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  #if IS_ENABLED(CONFIG_NET_DSA_TAG_BRCM_PREPEND)
  static struct sk_buff *brcm_tag_xmit_prepend(struct sk_buff *skb,
  					     struct net_device *dev)
-@@ -328,6 +396,9 @@ static struct dsa_tag_driver *dsa_tag_dr
+@@ -334,6 +402,9 @@ static struct dsa_tag_driver *dsa_tag_dr
  #if IS_ENABLED(CONFIG_NET_DSA_TAG_BRCM_LEGACY)
  	&DSA_TAG_DRIVER_NAME(brcm_legacy_netdev_ops),
  #endif
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 3fbc697f01..d04c97ef7b 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
-@@ -2285,8 +2285,11 @@ enum dsa_tag_protocol b53_get_tag_protoc
+@@ -2304,8 +2304,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 04ded31a8f..c7af2f2f80 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
-@@ -1816,7 +1816,8 @@ static int b53_arl_op(struct b53_device
+@@ -1835,7 +1835,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);
-@@ -2884,6 +2885,9 @@ static int b53_switch_init(struct b53_de
+@@ -2903,6 +2904,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);
-@@ -2985,10 +2989,24 @@ int b53_switch_detect(struct b53_device
+@@ -3004,10 +3008,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 113528a6d5..509806acf1 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
-@@ -1802,6 +1802,45 @@ static int b53_arl_read(struct b53_devic
+@@ -1821,6 +1821,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)
  {
-@@ -1824,7 +1863,10 @@ static int b53_arl_op(struct b53_device
+@@ -1843,7 +1882,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)
-@@ -1868,12 +1910,17 @@ static int b53_arl_op(struct b53_device
+@@ -1887,12 +1929,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);
  }
-@@ -1885,12 +1932,6 @@ int b53_fdb_add(struct dsa_switch *ds, i
+@@ -1904,12 +1951,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);
-@@ -1917,10 +1958,15 @@ EXPORT_SYMBOL(b53_fdb_del);
+@@ -1936,10 +1977,15 @@ EXPORT_SYMBOL(b53_fdb_del);
  static int b53_arl_search_wait(struct b53_device *dev)
  {
  	unsigned int timeout = 1000;
@@ -132,9 +132,9 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
 -		b53_read8(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_CTL, &reg);
 +		b53_read8(dev, B53_ARLIO_PAGE, offset, &reg);
  		if (!(reg & ARL_SRCH_STDN))
- 			return 0;
+ 			return -ENOENT;
  
-@@ -1937,13 +1983,24 @@ static void b53_arl_search_rd(struct b53
+@@ -1956,13 +2002,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,
-@@ -1964,14 +2021,20 @@ int b53_fdb_dump(struct dsa_switch *ds,
+@@ -1983,14 +2040,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
-@@ -329,9 +329,10 @@
+@@ -328,9 +328,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-12-v6.17-net-dsa-b53-fix-unicast-multicast-flooding-on-BCM5325.patch b/target/linux/generic/backport-6.12/612-12-v6.17-net-dsa-b53-fix-unicast-multicast-flooding-on-BCM5325.patch
index 063622398a..6b9c86ed0c 100644
--- a/target/linux/generic/backport-6.12/612-12-v6.17-net-dsa-b53-fix-unicast-multicast-flooding-on-BCM5325.patch
+++ b/target/linux/generic/backport-6.12/612-12-v6.17-net-dsa-b53-fix-unicast-multicast-flooding-on-BCM5325.patch
@@ -107,7 +107,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  
  /* PHY Registers */
  #define B53_PORT_MII_PAGE(i)		(0x10 + (i)) /* Port i MII Registers */
-@@ -372,6 +373,18 @@
+@@ -371,6 +372,18 @@
  #define B53_ARL_SRCH_RSTL(x)		(B53_ARL_SRCH_RSTL_0 + ((x) * 0x10))
  
  /*************************************************************************
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 3a6e0ac80a..bad53cf177 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
@@ -403,7 +403,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  };
 --- a/drivers/net/phy/marvell.c
 +++ b/drivers/net/phy/marvell.c
-@@ -4181,7 +4181,7 @@ static struct phy_driver marvell_drivers
+@@ -4218,7 +4218,7 @@ static struct phy_driver marvell_drivers
  
  module_phy_driver(marvell_drivers);
  
diff --git a/target/linux/generic/backport-6.12/780-23-v6.14-r8169-adjust-version-numbering-for-RTL8126.patch b/target/linux/generic/backport-6.12/780-23-v6.14-r8169-adjust-version-numbering-for-RTL8126.patch
index 815c1fcf72..9e3fd0a66e 100644
--- a/target/linux/generic/backport-6.12/780-23-v6.14-r8169-adjust-version-numbering-for-RTL8126.patch
+++ b/target/linux/generic/backport-6.12/780-23-v6.14-r8169-adjust-version-numbering-for-RTL8126.patch
@@ -183,7 +183,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	else if (tp->mac_version == RTL_GIGA_MAC_VER_63)
  		r8168_mac_ocp_modify(tp, 0xe614, 0x0700, 0x0200);
 @@ -3742,8 +3742,8 @@ static void rtl_hw_start_8125_common(str
- 	r8168_mac_ocp_modify(tp, 0xe056, 0x00f0, 0x0030);
+ 	r8168_mac_ocp_modify(tp, 0xe056, 0x00f0, 0x0000);
  	r8168_mac_ocp_modify(tp, 0xe040, 0x1000, 0x0000);
  	r8168_mac_ocp_modify(tp, 0xea1c, 0x0003, 0x0001);
 -	if (tp->mac_version == RTL_GIGA_MAC_VER_65 ||
diff --git a/target/linux/generic/backport-6.12/780-39-v6.16-r8169-merge-chip-versions-70-and-71-RTL8126A.patch b/target/linux/generic/backport-6.12/780-39-v6.16-r8169-merge-chip-versions-70-and-71-RTL8126A.patch
index da105f6fe3..ecc04ef6ae 100644
--- a/target/linux/generic/backport-6.12/780-39-v6.16-r8169-merge-chip-versions-70-and-71-RTL8126A.patch
+++ b/target/linux/generic/backport-6.12/780-39-v6.16-r8169-merge-chip-versions-70-and-71-RTL8126A.patch
@@ -69,7 +69,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	else if (tp->mac_version == RTL_GIGA_MAC_VER_63)
  		r8168_mac_ocp_modify(tp, 0xe614, 0x0700, 0x0200);
 @@ -3714,8 +3710,7 @@ static void rtl_hw_start_8125_common(str
- 	r8168_mac_ocp_modify(tp, 0xe056, 0x00f0, 0x0030);
+ 	r8168_mac_ocp_modify(tp, 0xe056, 0x00f0, 0x0000);
  	r8168_mac_ocp_modify(tp, 0xe040, 0x1000, 0x0000);
  	r8168_mac_ocp_modify(tp, 0xea1c, 0x0003, 0x0001);
 -	if (tp->mac_version == RTL_GIGA_MAC_VER_70 ||
diff --git a/target/linux/generic/backport-6.12/780-42-v6.16-r8169-add-support-for-RTL8127A.patch b/target/linux/generic/backport-6.12/780-42-v6.16-r8169-add-support-for-RTL8127A.patch
index 37a2d8667e..5ed1f341ec 100644
--- a/target/linux/generic/backport-6.12/780-42-v6.16-r8169-add-support-for-RTL8127A.patch
+++ b/target/linux/generic/backport-6.12/780-42-v6.16-r8169-add-support-for-RTL8127A.patch
@@ -97,7 +97,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	else if (tp->mac_version == RTL_GIGA_MAC_VER_63)
  		r8168_mac_ocp_modify(tp, 0xe614, 0x0700, 0x0200);
 @@ -3708,7 +3720,8 @@ static void rtl_hw_start_8125_common(str
- 	r8168_mac_ocp_modify(tp, 0xe056, 0x00f0, 0x0030);
+ 	r8168_mac_ocp_modify(tp, 0xe056, 0x00f0, 0x0000);
  	r8168_mac_ocp_modify(tp, 0xe040, 0x1000, 0x0000);
  	r8168_mac_ocp_modify(tp, 0xea1c, 0x0003, 0x0001);
 -	if (tp->mac_version == RTL_GIGA_MAC_VER_70)
diff --git a/target/linux/generic/hack-6.12/610-net-page_pool-try-to-free-deferred-skbs-while-waitin.patch b/target/linux/generic/hack-6.12/610-net-page_pool-try-to-free-deferred-skbs-while-waitin.patch
index 82a23e6e44..7f79e041df 100644
--- a/target/linux/generic/hack-6.12/610-net-page_pool-try-to-free-deferred-skbs-while-waitin.patch
+++ b/target/linux/generic/hack-6.12/610-net-page_pool-try-to-free-deferred-skbs-while-waitin.patch
@@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/net/core/page_pool.c
 +++ b/net/core/page_pool.c
-@@ -1153,8 +1153,9 @@ static void page_pool_release_retry(stru
+@@ -1155,8 +1155,9 @@ static void page_pool_release_retry(stru
  {
  	struct delayed_work *dwq = to_delayed_work(wq);
  	struct page_pool *pool = container_of(dwq, typeof(*pool), release_dw);
@@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  	inflight = page_pool_release(pool);
  	/* In rare cases, a driver bug may cause inflight to go negative.
-@@ -1166,6 +1167,21 @@ static void page_pool_release_retry(stru
+@@ -1168,6 +1169,21 @@ static void page_pool_release_retry(stru
  	if (inflight <= 0)
  		return;
  
diff --git a/target/linux/generic/hack-6.12/780-usb-net-MeigLink_modem_support.patch b/target/linux/generic/hack-6.12/780-usb-net-MeigLink_modem_support.patch
index 099bd428eb..eff038fbd0 100644
--- a/target/linux/generic/hack-6.12/780-usb-net-MeigLink_modem_support.patch
+++ b/target/linux/generic/hack-6.12/780-usb-net-MeigLink_modem_support.patch
@@ -10,7 +10,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
 
 --- a/drivers/net/usb/qmi_wwan.c
 +++ b/drivers/net/usb/qmi_wwan.c
-@@ -1076,6 +1076,11 @@ static const struct usb_device_id produc
+@@ -1082,6 +1082,11 @@ static const struct usb_device_id produc
  		USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0x581d, USB_CLASS_VENDOR_SPEC, 1, 7),
  		.driver_info = (unsigned long)&qmi_wwan_info,
  	},
@@ -22,7 +22,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
  	{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0122)},	/* Quectel RG650V */
  	{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0125)},	/* Quectel EC25, EC20 R2.0  Mini PCIe */
  	{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0306)},	/* Quectel EP06/EG06/EM06 */
-@@ -1083,6 +1088,7 @@ static const struct usb_device_id produc
+@@ -1089,6 +1094,7 @@ static const struct usb_device_id produc
  	{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0620)},	/* Quectel EM160R-GL */
  	{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0800)},	/* Quectel RM500Q-GL */
  	{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0801)},	/* Quectel RM520N */
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 b46b821aff..cd7241e6af 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
-@@ -4277,6 +4277,8 @@ static __net_initdata struct pernet_oper
+@@ -4280,6 +4280,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 3abf72c3ac..920ea0645e 100644
--- a/target/linux/generic/kernel-6.12
+++ b/target/linux/generic/kernel-6.12
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.12 = .57
-LINUX_KERNEL_HASH-6.12.57 = 165ca1c37c4607b90e731996b7c1e3311285167d13deeedf08f3f1f0b9d2541a
+LINUX_VERSION-6.12 = .58
+LINUX_KERNEL_HASH-6.12.58 = 5f1c4c546660a6a81046fdfa6195306bad2c8d17c0d69876dc100a85ad4613ac
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 81f30b4a8c..66926bd5fb 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
@@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	if (sk_can_gso(sk)) {
 --- a/net/mac80211/ieee80211_i.h
 +++ b/net/mac80211/ieee80211_i.h
-@@ -2021,7 +2021,7 @@ void ieee80211_color_collision_detection
+@@ -2023,7 +2023,7 @@ void ieee80211_color_collision_detection
  /* interface handling */
  #define MAC80211_SUPPORTED_FEATURES_TX	(NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | \
  					 NETIF_F_HW_CSUM | NETIF_F_SG | \
diff --git a/target/linux/generic/pending-6.12/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch b/target/linux/generic/pending-6.12/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch
index 7842889a98..2f90df6013 100644
--- a/target/linux/generic/pending-6.12/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch
+++ b/target/linux/generic/pending-6.12/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch
@@ -24,7 +24,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
 --- a/net/bridge/br_forward.c
 +++ b/net/bridge/br_forward.c
-@@ -201,6 +201,7 @@ void br_flood(struct net_bridge *br, str
+@@ -202,6 +202,7 @@ void br_flood(struct net_bridge *br, str
  	      enum br_pkt_type pkt_type, bool local_rcv, bool local_orig,
  	      u16 vid)
  {
@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	struct net_bridge_port *prev = NULL;
  	struct net_bridge_port *p;
  
-@@ -218,6 +219,10 @@ void br_flood(struct net_bridge *br, str
+@@ -219,6 +220,10 @@ void br_flood(struct net_bridge *br, str
  		case BR_PKT_MULTICAST:
  			if (!(p->flags & BR_MCAST_FLOOD) && skb->dev != br->dev)
  				continue;
diff --git a/target/linux/generic/pending-6.12/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch b/target/linux/generic/pending-6.12/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch
index 7a25825537..042afdc391 100644
--- a/target/linux/generic/pending-6.12/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch
+++ b/target/linux/generic/pending-6.12/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch
@@ -74,7 +74,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  		}
 --- a/drivers/ufs/core/ufshcd.c
 +++ b/drivers/ufs/core/ufshcd.c
-@@ -1119,8 +1119,8 @@ out:
+@@ -1122,8 +1122,8 @@ out:
  }
  
  int ufshcd_opp_config_clks(struct device *dev, struct opp_table *opp_table,
@@ -121,7 +121,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
  }
 --- a/include/ufs/ufshcd.h
 +++ b/include/ufs/ufshcd.h
-@@ -1326,8 +1326,8 @@ void ufshcd_mcq_enable(struct ufs_hba *h
+@@ -1333,8 +1333,8 @@ void ufshcd_mcq_enable(struct ufs_hba *h
  void ufshcd_mcq_config_esi(struct ufs_hba *hba, struct msi_msg *msg);
  
  int ufshcd_opp_config_clks(struct device *dev, struct opp_table *opp_table,
diff --git a/target/linux/generic/pending-6.12/810-pci_disable_common_quirks.patch b/target/linux/generic/pending-6.12/810-pci_disable_common_quirks.patch
index 559348332f..89dcbc2786 100644
--- a/target/linux/generic/pending-6.12/810-pci_disable_common_quirks.patch
+++ b/target/linux/generic/pending-6.12/810-pci_disable_common_quirks.patch
@@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
  /*
   * The Mellanox Tavor device gives false positive parity errors.  Disable
   * parity error reporting.
-@@ -3508,6 +3509,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
+@@ -3509,6 +3510,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
  
@@ -42,7 +42,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
  /*
   * Ivytown NTB BAR sizes are misreported by the hardware due to an erratum.
   * To work around this, query the size it should be configured to by the
-@@ -3533,6 +3536,8 @@ static void quirk_intel_ntb(struct pci_d
+@@ -3534,6 +3537,8 @@ static void quirk_intel_ntb(struct pci_d
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e08, quirk_intel_ntb);
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e0d, quirk_intel_ntb);
  
@@ -51,7 +51,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
  /*
   * Some BIOS implementations leave the Intel GPU interrupts enabled, even
   * though no one is handling them (e.g., if the i915 driver is never
-@@ -3571,6 +3576,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
+@@ -3572,6 +3577,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);
  
diff --git a/target/linux/imx/patches-6.12/506-6.16-PCI-imx6-Skip-link-up-workaround-for-newer-platforms.patch b/target/linux/imx/patches-6.12/506-6.16-PCI-imx6-Skip-link-up-workaround-for-newer-platforms.patch
index cc92d0a665..c13596f302 100644
--- a/target/linux/imx/patches-6.12/506-6.16-PCI-imx6-Skip-link-up-workaround-for-newer-platforms.patch
+++ b/target/linux/imx/patches-6.12/506-6.16-PCI-imx6-Skip-link-up-workaround-for-newer-platforms.patch
@@ -72,7 +72,7 @@ Link: https://patch.msgid.link/20250416081314.3929794-2-hongxing.zhu@nxp.com
  		}
  
  		/* Make sure link training is finished as well! */
-@@ -1546,7 +1540,7 @@ static const struct imx_pcie_drvdata drv
+@@ -1550,7 +1544,7 @@ static const struct imx_pcie_drvdata drv
  	[IMX6Q] = {
  		.variant = IMX6Q,
  		.flags = IMX_PCIE_FLAG_IMX_PHY |
@@ -81,7 +81,7 @@ Link: https://patch.msgid.link/20250416081314.3929794-2-hongxing.zhu@nxp.com
  			 IMX_PCIE_FLAG_BROKEN_SUSPEND |
  			 IMX_PCIE_FLAG_SUPPORTS_SUSPEND,
  		.dbi_length = 0x200,
-@@ -1564,7 +1558,7 @@ static const struct imx_pcie_drvdata drv
+@@ -1568,7 +1562,7 @@ static const struct imx_pcie_drvdata drv
  	[IMX6SX] = {
  		.variant = IMX6SX,
  		.flags = IMX_PCIE_FLAG_IMX_PHY |
@@ -90,7 +90,7 @@ Link: https://patch.msgid.link/20250416081314.3929794-2-hongxing.zhu@nxp.com
  			 IMX_PCIE_FLAG_SUPPORTS_SUSPEND,
  		.gpr = "fsl,imx6q-iomuxc-gpr",
  		.clk_names = imx6sx_clks,
-@@ -1580,7 +1574,7 @@ static const struct imx_pcie_drvdata drv
+@@ -1584,7 +1578,7 @@ static const struct imx_pcie_drvdata drv
  	[IMX6QP] = {
  		.variant = IMX6QP,
  		.flags = IMX_PCIE_FLAG_IMX_PHY |
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 737da1e2fe..dc3faee799 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
-@@ -2383,7 +2383,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat
+@@ -2398,7 +2398,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 6e0f35b6fc..8a81756d67 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
-@@ -1818,49 +1818,49 @@ static unsigned int sdhci_msm_get_min_cl
+@@ -1833,49 +1833,49 @@ static unsigned int sdhci_msm_get_min_cl
  	return SDHCI_MSM_MIN_CLOCK;
  }
  
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube.dtsi
index aa25a611c7..8c75f4ad43 100644
--- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube.dtsi
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube.dtsi
@@ -141,7 +141,7 @@
 			interrupts = <126 127 128 129 130 131>;
 		};
 
-		gpios: stp at e100bb0 {
+		stp0: gpio at e100bb0 {
 			#gpio-cells = <2>;
 			compatible = "lantiq,gpio-stp-xway";
 			gpio-controller;
diff --git a/target/linux/mvebu/patches-6.12/350-drivers-thermal-step_wise-add-support-for-hysteresis.patch b/target/linux/mvebu/patches-6.12/350-drivers-thermal-step_wise-add-support-for-hysteresis.patch
index b0db0450f1..d98e585db5 100644
--- a/target/linux/mvebu/patches-6.12/350-drivers-thermal-step_wise-add-support-for-hysteresis.patch
+++ b/target/linux/mvebu/patches-6.12/350-drivers-thermal-step_wise-add-support-for-hysteresis.patch
@@ -24,7 +24,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 
 --- a/drivers/thermal/gov_step_wise.c
 +++ b/drivers/thermal/gov_step_wise.c
-@@ -74,19 +74,28 @@ static void thermal_zone_trip_update(str
+@@ -87,19 +87,28 @@ static void thermal_zone_trip_update(str
  	int trip_id = thermal_zone_trip_id(tz, trip);
  	struct thermal_instance *instance;
  	bool throttle = false;
diff --git a/target/linux/qualcommax/patches-6.12/0151-arm64-qcom-ipq6018-nss_port5.patch b/target/linux/qualcommax/patches-6.12/0151-arm64-qcom-ipq6018-nss_port5.patch
deleted file mode 100644
index 9e4372a878..0000000000
--- a/target/linux/qualcommax/patches-6.12/0151-arm64-qcom-ipq6018-nss_port5.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From 9989fcd49c52500a2bf1f6d49411690dec45d2dc Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= <marko.makela at iki.fi>
-Date: Sat, 2 Aug 2025 12:47:08 +0300
-Subject: [PATCH] clk: qcom: gcc-ipq6018: rework nss_port5 clock to multiple
- conf
-
-Rework nss_port5 to use the new multiple configuration implementation
-and correctly fix the clocks for this port under some corner case.
-
-In OpenWrt, this patch avoids intermittent dmesg errors of the form
-nss_port5_rx_clk_src: rcg didn't update its configuration.
-
-This is a mechanical, straightforward port of
-commit e88f03230dc07aa3293b6aeb078bd27370bb2594
-("clk: qcom: gcc-ipq8074: rework nss_port5/6 clock to multiple conf")
-to gcc-ipq6018, with two conflicts resolved: different frequency of the
-P_XO clock source, and only 5 Ethernet ports.
-
-This was originally developed by JiaY-shi <shi05275 at 163.com>.
-
-Link: https://lore.kernel.org/all/20231220221724.3822-4-ansuelsmth@gmail.com/
-Signed-off-by: Marko Mäkelä <marko.makela at iki.fi>
-Tested-by: Marko Mäkelä <marko.makela at iki.fi>
----
- drivers/clk/qcom/gcc-ipq6018.c | 60 +++++++++++++++++++++-------------
- 1 file changed, 38 insertions(+), 22 deletions(-)
-
---- a/drivers/clk/qcom/gcc-ipq6018.c
-+++ b/drivers/clk/qcom/gcc-ipq6018.c
-@@ -511,15 +511,23 @@ static struct clk_rcg2 apss_ahb_clk_src
- 	},
- };
- 
--static const struct freq_tbl ftbl_nss_port5_rx_clk_src[] = {
--	F(24000000, P_XO, 1, 0, 0),
--	F(25000000, P_UNIPHY1_RX, 12.5, 0, 0),
--	F(25000000, P_UNIPHY0_RX, 5, 0, 0),
--	F(78125000, P_UNIPHY1_RX, 4, 0, 0),
--	F(125000000, P_UNIPHY1_RX, 2.5, 0, 0),
--	F(125000000, P_UNIPHY0_RX, 1, 0, 0),
--	F(156250000, P_UNIPHY1_RX, 2, 0, 0),
--	F(312500000, P_UNIPHY1_RX, 1, 0, 0),
-+static const struct freq_conf ftbl_nss_port5_rx_clk_src_25[] = {
-+	C(P_UNIPHY1_RX, 12.5, 0, 0),
-+	C(P_UNIPHY0_RX, 5, 0, 0),
-+};
-+
-+static const struct freq_conf ftbl_nss_port5_rx_clk_src_125[] = {
-+	C(P_UNIPHY1_RX, 2.5, 0, 0),
-+	C(P_UNIPHY0_RX, 1, 0, 0),
-+};
-+
-+static const struct freq_multi_tbl ftbl_nss_port5_rx_clk_src[] = {
-+	FMS(24000000, P_XO, 1, 0, 0),
-+	FM(25000000, ftbl_nss_port5_rx_clk_src_25),
-+	FMS(78125000, P_UNIPHY1_RX, 4, 0, 0),
-+	FM(125000000, ftbl_nss_port5_rx_clk_src_125),
-+	FMS(156250000, P_UNIPHY1_RX, 2, 0, 0),
-+	FMS(312500000, P_UNIPHY1_RX, 1, 0, 0),
- 	{ }
- };
- 
-@@ -547,26 +555,34 @@ gcc_xo_uniphy0_rx_tx_uniphy1_rx_tx_ubi32
- 
- static struct clk_rcg2 nss_port5_rx_clk_src = {
- 	.cmd_rcgr = 0x68060,
--	.freq_tbl = ftbl_nss_port5_rx_clk_src,
-+	.freq_multi_tbl = ftbl_nss_port5_rx_clk_src,
- 	.hid_width = 5,
- 	.parent_map = gcc_xo_uniphy0_rx_tx_uniphy1_rx_tx_ubi32_bias_map,
- 	.clkr.hw.init = &(struct clk_init_data){
- 		.name = "nss_port5_rx_clk_src",
- 		.parent_data = gcc_xo_uniphy0_rx_tx_uniphy1_rx_tx_ubi32_bias,
- 		.num_parents = 7,
--		.ops = &clk_rcg2_ops,
-+		.ops = &clk_rcg2_fm_ops,
- 	},
- };
- 
--static const struct freq_tbl ftbl_nss_port5_tx_clk_src[] = {
--	F(24000000, P_XO, 1, 0, 0),
--	F(25000000, P_UNIPHY1_TX, 12.5, 0, 0),
--	F(25000000, P_UNIPHY0_TX, 5, 0, 0),
--	F(78125000, P_UNIPHY1_TX, 4, 0, 0),
--	F(125000000, P_UNIPHY1_TX, 2.5, 0, 0),
--	F(125000000, P_UNIPHY0_TX, 1, 0, 0),
--	F(156250000, P_UNIPHY1_TX, 2, 0, 0),
--	F(312500000, P_UNIPHY1_TX, 1, 0, 0),
-+static const struct freq_conf ftbl_nss_port5_tx_clk_src_25[] = {
-+	C(P_UNIPHY1_TX, 12.5, 0, 0),
-+	C(P_UNIPHY0_TX, 5, 0, 0),
-+};
-+
-+static const struct freq_conf ftbl_nss_port5_tx_clk_src_125[] = {
-+	C(P_UNIPHY1_TX, 2.5, 0, 0),
-+	C(P_UNIPHY0_TX, 1, 0, 0),
-+};
-+
-+static const struct freq_multi_tbl ftbl_nss_port5_tx_clk_src[] = {
-+	FMS(24000000, P_XO, 1, 0, 0),
-+	FM(25000000, ftbl_nss_port5_tx_clk_src_25),
-+	FMS(78125000, P_UNIPHY1_TX, 4, 0, 0),
-+	FM(125000000, ftbl_nss_port5_tx_clk_src_125),
-+	FMS(156250000, P_UNIPHY1_TX, 2, 0, 0),
-+	FMS(312500000, P_UNIPHY1_TX, 1, 0, 0),
- 	{ }
- };
- 
-@@ -594,14 +610,14 @@ gcc_xo_uniphy0_tx_rx_uniphy1_tx_rx_ubi32
- 
- static struct clk_rcg2 nss_port5_tx_clk_src = {
- 	.cmd_rcgr = 0x68068,
--	.freq_tbl = ftbl_nss_port5_tx_clk_src,
-+	.freq_multi_tbl = ftbl_nss_port5_tx_clk_src,
- 	.hid_width = 5,
- 	.parent_map = gcc_xo_uniphy0_tx_rx_uniphy1_tx_rx_ubi32_bias_map,
- 	.clkr.hw.init = &(struct clk_init_data){
- 		.name = "nss_port5_tx_clk_src",
- 		.parent_data = gcc_xo_uniphy0_tx_rx_uniphy1_tx_rx_ubi32_bias,
- 		.num_parents = 7,
--		.ops = &clk_rcg2_ops,
-+		.ops = &clk_rcg2_fm_ops,
- 	},
- };
- 
diff --git a/target/linux/qualcommax/patches-6.12/0804-remoteproc-qcom-q6v5-Add-multipd-interrupts-support.patch b/target/linux/qualcommax/patches-6.12/0804-remoteproc-qcom-q6v5-Add-multipd-interrupts-support.patch
index 0238ba828a..1dae38aeaa 100644
--- a/target/linux/qualcommax/patches-6.12/0804-remoteproc-qcom-q6v5-Add-multipd-interrupts-support.patch
+++ b/target/linux/qualcommax/patches-6.12/0804-remoteproc-qcom-q6v5-Add-multipd-interrupts-support.patch
@@ -47,7 +47,7 @@ Signed-off-by: Manikanta Mylavarapu <quic_mmanikan at quicinc.com>
  
  /**
   * qcom_q6v5_wait_for_start() - wait for remote processor start signal
-@@ -174,7 +176,17 @@ static irqreturn_t q6v5_handover_interru
+@@ -179,7 +181,17 @@ static irqreturn_t q6v5_handover_interru
  	return IRQ_HANDLED;
  }
  
@@ -66,7 +66,7 @@ Signed-off-by: Manikanta Mylavarapu <quic_mmanikan at quicinc.com>
  {
  	struct qcom_q6v5 *q6v5 = data;
  
-@@ -182,6 +194,7 @@ static irqreturn_t q6v5_stop_interrupt(i
+@@ -187,6 +199,7 @@ static irqreturn_t q6v5_stop_interrupt(i
  
  	return IRQ_HANDLED;
  }
@@ -74,7 +74,7 @@ Signed-off-by: Manikanta Mylavarapu <quic_mmanikan at quicinc.com>
  
  /**
   * qcom_q6v5_request_stop() - request the remote processor to stop
-@@ -212,6 +225,28 @@ int qcom_q6v5_request_stop(struct qcom_q
+@@ -217,6 +230,28 @@ int qcom_q6v5_request_stop(struct qcom_q
  EXPORT_SYMBOL_GPL(qcom_q6v5_request_stop);
  
  /**
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 d042d33c2c..56f837b5c3 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
-@@ -3216,6 +3216,18 @@ static const struct usb_device_id uvc_id
+@@ -3229,6 +3229,18 @@ static const struct usb_device_id uvc_id
  	  .bInterfaceSubClass	= 1,
  	  .bInterfaceProtocol	= 0,
  	  .driver_info		= UVC_INFO_META(V4L2_META_FMT_D4XX) },
diff --git a/target/linux/realtek/patches-6.12/020-01-v6.18-timer-rtl-otto-work-around-dying-timers.patch b/target/linux/realtek/patches-6.12/020-01-v6.18-timer-rtl-otto-work-around-dying-timers.patch
deleted file mode 100644
index 19bbc384a2..0000000000
--- a/target/linux/realtek/patches-6.12/020-01-v6.18-timer-rtl-otto-work-around-dying-timers.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 9f146b3e0b9e098cf36ebe42b4aa69270113c6bf Mon Sep 17 00:00:00 2001
-From: Markus Stockhausen <markus.stockhausen at gmx.de>
-Date: Mon, 4 Aug 2025 04:03:25 -0400
-Subject: clocksource/drivers/timer-rtl-otto: Work around dying timers
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The OpenWrt distribution has switched from kernel longterm 6.6 to
-6.12. Reports show that devices with the Realtek Otto switch platform
-die during operation and are rebooted by the watchdog. Sorting out
-other possible reasons the Otto timer is to blame. The platform
-currently consists of 4 targets with different hardware revisions.
-It is not 100% clear which devices and revisions are affected.
-
-Analysis shows:
-
-A more aggressive sched/deadline handling leads to more timer starts
-with small intervals. This increases the bug chances. See
-https://marc.info/?l=linux-kernel&m=175276556023276&w=2
-
-Focusing on the real issue a hardware limitation on some devices was
-found. There is a minimal chance that a timer ends without firing an
-interrupt if it is reprogrammed within the 5us before its expiration
-time. Work around this issue by introducing a bounce() function. It
-restarts the timer directly before the normal restart functions as
-follows:
-
-- Stop timer
-- Restart timer with a slow frequency.
-- Target time will be >5us
-- The subsequent normal restart is outside the critical window
-
-Downstream has already tested and confirmed a patch. See
-https://github.com/openwrt/openwrt/pull/19468
-https://forum.openwrt.org/t/support-for-rtl838x-based-managed-switches/57875/3788
-
-Tested-by: Stephen Howell <howels at allthatwemight.be>
-Tested-by: Bjørn Mork <bjorn at mork.no>
-Signed-off-by: Markus Stockhausen <markus.stockhausen at gmx.de>
-Link: https://lore.kernel.org/r/20250804080328.2609287-2-markus.stockhausen@gmx.de
-Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
----
- drivers/clocksource/timer-rtl-otto.c | 20 ++++++++++++++++++++
- 1 file changed, 20 insertions(+)
-
---- a/drivers/clocksource/timer-rtl-otto.c
-+++ b/drivers/clocksource/timer-rtl-otto.c
-@@ -38,6 +38,7 @@
- #define RTTM_BIT_COUNT		28
- #define RTTM_MIN_DELTA		8
- #define RTTM_MAX_DELTA		CLOCKSOURCE_MASK(28)
-+#define RTTM_MAX_DIVISOR	GENMASK(15, 0)
- 
- /*
-  * Timers are derived from the LXB clock frequency. Usually this is a fixed
-@@ -112,6 +113,22 @@ static irqreturn_t rttm_timer_interrupt(
- 	return IRQ_HANDLED;
- }
- 
-+static void rttm_bounce_timer(void __iomem *base, u32 mode)
-+{
-+	/*
-+	 * When a running timer has less than ~5us left, a stop/start sequence
-+	 * might fail. While the details are unknown the most evident effect is
-+	 * that the subsequent interrupt will not be fired.
-+	 *
-+	 * As a workaround issue an intermediate restart with a very slow
-+	 * frequency of ~3kHz keeping the target counter (>=8). So the follow
-+	 * up restart will always be issued outside the critical window.
-+	 */
-+
-+	rttm_disable_timer(base);
-+	rttm_enable_timer(base, mode, RTTM_MAX_DIVISOR);
-+}
-+
- static void rttm_stop_timer(void __iomem *base)
- {
- 	rttm_disable_timer(base);
-@@ -129,6 +146,7 @@ static int rttm_next_event(unsigned long
- 	struct timer_of *to = to_timer_of(clkevt);
- 
- 	RTTM_DEBUG(to->of_base.base);
-+	rttm_bounce_timer(to->of_base.base, RTTM_CTRL_COUNTER);
- 	rttm_stop_timer(to->of_base.base);
- 	rttm_set_period(to->of_base.base, delta);
- 	rttm_start_timer(to, RTTM_CTRL_COUNTER);
-@@ -141,6 +159,7 @@ static int rttm_state_oneshot(struct clo
- 	struct timer_of *to = to_timer_of(clkevt);
- 
- 	RTTM_DEBUG(to->of_base.base);
-+	rttm_bounce_timer(to->of_base.base, RTTM_CTRL_COUNTER);
- 	rttm_stop_timer(to->of_base.base);
- 	rttm_set_period(to->of_base.base, RTTM_TICKS_PER_SEC / HZ);
- 	rttm_start_timer(to, RTTM_CTRL_COUNTER);
-@@ -153,6 +172,7 @@ static int rttm_state_periodic(struct cl
- 	struct timer_of *to = to_timer_of(clkevt);
- 
- 	RTTM_DEBUG(to->of_base.base);
-+	rttm_bounce_timer(to->of_base.base, RTTM_CTRL_TIMER);
- 	rttm_stop_timer(to->of_base.base);
- 	rttm_set_period(to->of_base.base, RTTM_TICKS_PER_SEC / HZ);
- 	rttm_start_timer(to, RTTM_CTRL_TIMER);
diff --git a/target/linux/realtek/patches-6.12/020-03-v6.18-timer-rtl-otto-do-not-interfere-with-interrupts.patch b/target/linux/realtek/patches-6.12/020-03-v6.18-timer-rtl-otto-do-not-interfere-with-interrupts.patch
deleted file mode 100644
index c806a217ab..0000000000
--- a/target/linux/realtek/patches-6.12/020-03-v6.18-timer-rtl-otto-do-not-interfere-with-interrupts.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From add0d895aa6f66320f9b1d901b66259f4308af04 Mon Sep 17 00:00:00 2001
-From: Markus Stockhausen <markus.stockhausen at gmx.de>
-Date: Mon, 4 Aug 2025 04:03:27 -0400
-Subject: clocksource/drivers/timer-rtl-otto: Do not interfere with interrupts
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-During normal operation the timers are reprogrammed including an
-interrupt acknowledgement. This has no effect as the whole timer
-is setup from scratch afterwards. Especially in an interrupt this
-has already been done by rttm_timer_interrupt().
-
-Change the behaviour as follows:
-
-- Use rttm_disable_timer() during reprogramming
-- Keep rttm_stop_timer() for all other use cases.
-
-Downstream has already tested and confirmed a patch. See
-https://github.com/openwrt/openwrt/pull/19468
-https://forum.openwrt.org/t/support-for-rtl838x-based-managed-switches/57875/3788
-
-Tested-by: Stephen Howell <howels at allthatwemight.be>
-Tested-by: Bjørn Mork <bjorn at mork.no>
-Signed-off-by: Markus Stockhausen <markus.stockhausen at gmx.de>
-Link: https://lore.kernel.org/r/20250804080328.2609287-4-markus.stockhausen@gmx.de
-Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
----
- drivers/clocksource/timer-rtl-otto.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
---- a/drivers/clocksource/timer-rtl-otto.c
-+++ b/drivers/clocksource/timer-rtl-otto.c
-@@ -141,7 +141,7 @@ static int rttm_next_event(unsigned long
- 
- 	RTTM_DEBUG(to->of_base.base);
- 	rttm_bounce_timer(to->of_base.base, RTTM_CTRL_COUNTER);
--	rttm_stop_timer(to->of_base.base);
-+	rttm_disable_timer(to->of_base.base);
- 	rttm_set_period(to->of_base.base, delta);
- 	rttm_start_timer(to, RTTM_CTRL_COUNTER);
- 
-@@ -154,7 +154,7 @@ static int rttm_state_oneshot(struct clo
- 
- 	RTTM_DEBUG(to->of_base.base);
- 	rttm_bounce_timer(to->of_base.base, RTTM_CTRL_COUNTER);
--	rttm_stop_timer(to->of_base.base);
-+	rttm_disable_timer(to->of_base.base);
- 	rttm_set_period(to->of_base.base, RTTM_TICKS_PER_SEC / HZ);
- 	rttm_start_timer(to, RTTM_CTRL_COUNTER);
- 
-@@ -167,7 +167,7 @@ static int rttm_state_periodic(struct cl
- 
- 	RTTM_DEBUG(to->of_base.base);
- 	rttm_bounce_timer(to->of_base.base, RTTM_CTRL_TIMER);
--	rttm_stop_timer(to->of_base.base);
-+	rttm_disable_timer(to->of_base.base);
- 	rttm_set_period(to->of_base.base, RTTM_TICKS_PER_SEC / HZ);
- 	rttm_start_timer(to, RTTM_CTRL_TIMER);
- 
diff --git a/target/linux/rockchip/patches-6.12/037-01-v6.15-scsi-ufs-core-Export-ufshcd_dme_reset-and.patch b/target/linux/rockchip/patches-6.12/037-01-v6.15-scsi-ufs-core-Export-ufshcd_dme_reset-and.patch
index f7419f61be..7b96a42ca6 100644
--- a/target/linux/rockchip/patches-6.12/037-01-v6.15-scsi-ufs-core-Export-ufshcd_dme_reset-and.patch
+++ b/target/linux/rockchip/patches-6.12/037-01-v6.15-scsi-ufs-core-Export-ufshcd_dme_reset-and.patch
@@ -19,7 +19,7 @@ Signed-off-by: Martin K. Petersen <martin.petersen at oracle.com>
 
 --- a/drivers/ufs/core/ufshcd.c
 +++ b/drivers/ufs/core/ufshcd.c
-@@ -4043,7 +4043,7 @@ static int ufshcd_dme_link_startup(struc
+@@ -4046,7 +4046,7 @@ static int ufshcd_dme_link_startup(struc
   *
   * Return: 0 on success, non-zero value on failure.
   */
@@ -28,7 +28,7 @@ Signed-off-by: Martin K. Petersen <martin.petersen at oracle.com>
  {
  	struct uic_command uic_cmd = {
  		.command = UIC_CMD_DME_RESET,
-@@ -4057,6 +4057,7 @@ static int ufshcd_dme_reset(struct ufs_h
+@@ -4060,6 +4060,7 @@ static int ufshcd_dme_reset(struct ufs_h
  
  	return ret;
  }
@@ -36,7 +36,7 @@ Signed-off-by: Martin K. Petersen <martin.petersen at oracle.com>
  
  int ufshcd_dme_configure_adapt(struct ufs_hba *hba,
  			       int agreed_gear,
-@@ -4082,7 +4083,7 @@ EXPORT_SYMBOL_GPL(ufshcd_dme_configure_a
+@@ -4085,7 +4086,7 @@ EXPORT_SYMBOL_GPL(ufshcd_dme_configure_a
   *
   * Return: 0 on success, non-zero value on failure.
   */
@@ -45,7 +45,7 @@ Signed-off-by: Martin K. Petersen <martin.petersen at oracle.com>
  {
  	struct uic_command uic_cmd = {
  		.command = UIC_CMD_DME_ENABLE,
-@@ -4096,6 +4097,7 @@ static int ufshcd_dme_enable(struct ufs_
+@@ -4099,6 +4100,7 @@ static int ufshcd_dme_enable(struct ufs_
  
  	return ret;
  }
@@ -55,7 +55,7 @@ Signed-off-by: Martin K. Petersen <martin.petersen at oracle.com>
  {
 --- a/include/ufs/ufshcd.h
 +++ b/include/ufs/ufshcd.h
-@@ -1361,6 +1361,8 @@ extern int ufshcd_system_thaw(struct dev
+@@ -1368,6 +1368,8 @@ extern int ufshcd_system_thaw(struct dev
  extern int ufshcd_system_restore(struct device *dev);
  #endif
  
diff --git a/target/linux/starfive/patches-6.12/0017-plic-irq-Set-IRQCHIP_EOI_THREADED-in-PREEMPT_RT-case.patch b/target/linux/starfive/patches-6.12/0017-plic-irq-Set-IRQCHIP_EOI_THREADED-in-PREEMPT_RT-case.patch
index edfc554983..61491c57a2 100644
--- a/target/linux/starfive/patches-6.12/0017-plic-irq-Set-IRQCHIP_EOI_THREADED-in-PREEMPT_RT-case.patch
+++ b/target/linux/starfive/patches-6.12/0017-plic-irq-Set-IRQCHIP_EOI_THREADED-in-PREEMPT_RT-case.patch
@@ -17,7 +17,7 @@ Signed-off-by: Minda Chen <minda.chen at starfivetech.com>
 
 --- a/drivers/irqchip/irq-sifive-plic.c
 +++ b/drivers/irqchip/irq-sifive-plic.c
-@@ -202,6 +202,9 @@ static struct irq_chip plic_edge_chip =
+@@ -204,6 +204,9 @@ static struct irq_chip plic_edge_chip =
  #endif
  	.irq_set_type	= plic_irq_set_type,
  	.flags		= IRQCHIP_SKIP_SET_WAKE |
@@ -27,7 +27,7 @@ Signed-off-by: Minda Chen <minda.chen at starfivetech.com>
  			  IRQCHIP_AFFINITY_PRE_STARTUP,
  };
  
-@@ -217,6 +220,9 @@ static struct irq_chip plic_chip = {
+@@ -219,6 +222,9 @@ static struct irq_chip plic_chip = {
  #endif
  	.irq_set_type	= plic_irq_set_type,
  	.flags		= IRQCHIP_SKIP_SET_WAKE |




More information about the lede-commits mailing list