[openwrt/openwrt] kernel: Update to version 5.15.181

LEDE Commits lede-commits at lists.infradead.org
Wed May 7 12:28:27 PDT 2025


hauke pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/87bc997e53cd0fc3e47aa8f7679005e7f0741554

commit 87bc997e53cd0fc3e47aa8f7679005e7f0741554
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sun May 4 20:00:31 2025 +0000

    kernel: Update to version 5.15.181
    
    Manually adapted the following patches:
       bcm27xx/patches-5.15/950-0612-media-i2c-ov7251-Make-the-enable-GPIO-optional.patch
    
    Link: https://github.com/openwrt/openwrt/pull/18710
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 include/kernel-5.15                                |  4 +--
 ...i2c-ov7251-Add-fwnode-properties-controls.patch |  6 ++--
 ...or-out-TRBS_PER_SEGMENT-define-in-runtime.patch |  4 +--
 ...-i2c-ov7251-Make-the-enable-GPIO-optional.patch |  6 ++--
 ...dd-and-initialise-an-orientation-field-to.patch |  4 +--
 ...d-a-quirk-for-Superspeed-bulk-OUT-transfe.patch |  6 ++--
 ...0719-media-i2c-Add-acpi-support-to-ov7251.patch |  2 +-
 ...0720-media-i2c-Provide-ov7251_check_hwcfg.patch |  4 +--
 ...0-0721-media-i2c-Add-ov7251_pll_configure.patch |  6 ++--
 ...c-Add-support-for-19.2MHz-clock-to-ov7251.patch |  4 +--
 ...950-0723-media-i2c-Add-ov7251_detect_chip.patch |  4 +--
 ...edia-i2c-Add-pm_runtime-support-to-ov7251.patch | 22 ++++++------
 ...725-media-i2c-Remove-.s_power-from-ov7251.patch |  8 ++---
 ...v7251-Reinstate-setting-ov7251_global_ini.patch |  2 +-
 ...a-i2c-ov7251-V4L2_CID_PIXEL_RATE-is-fixed.patch |  6 ++--
 ...c-ov7251-V4L2_CID_LINK_FREQUENCY-is-fixed.patch |  8 ++---
 ...v7251-Initialise-current_mode-during-prob.patch |  2 +-
 ...ia-i2c-ov7251-Add-V4L2_CID_HBLANK-control.patch | 10 +++---
 ...c-ov7251-Do-not-reset-gain-on-mode-change.patch |  6 ++--
 ...-i2c-ov7251-Fix-link_freq-validation-loop.patch |  2 +-
 ...v7251-Add-get_selection-for-NATIVE_SIZE-C.patch |  2 +-
 ...v7251-Set-VTS-instead-of-having-full-tabl.patch |  2 +-
 ...ia-i2c-ov7251-Limit-exposure-based-on-VTS.patch |  4 +--
 ...v7251-Separate-modes-from-frame-intervals.patch | 16 ++++-----
 ...0737-media-i2c-ov7251-Add-V4L2_CID_VBLANK.patch | 16 ++++-----
 ...v7251-Switch-from-V4L2_CID_GAIN-to-V4L2_C.patch |  4 +--
 ...hci-rework-XHCI_VLI_SS_BULK_OUT_BUG-quirk.patch |  6 ++--
 ...nvert-users-of-bitmap_foo-to-linkmode_foo.patch |  2 +-
 ...sa-b53-Include-all-ports-in-enabled_ports.patch | 24 ++++++-------
 ...-Drop-BCM5301x-workaround-for-a-wrong-CPU.patch |  2 +-
 ...53-Improve-flow-control-setup-on-BCM5301x.patch |  2 +-
 ...04-net-dsa-b53-Drop-unused-cpu_port-field.patch | 42 +++++++++++-----------
 .../linux/generic/hack-5.15/204-module_strip.patch |  2 +-
 .../linux/generic/hack-5.15/253-ksmbd-config.patch |  2 +-
 .../hack-5.15/721-net-add-packet-mangeling.patch   |  2 +-
 .../780-usb-net-MeigLink_modem_support.patch       |  4 +--
 .../generic/hack-5.15/901-debloat_sock_diag.patch  |  8 ++---
 .../linux/generic/hack-5.15/902-debloat_proc.patch |  2 +-
 ...jecting-with-source-address-failed-policy.patch |  4 +--
 ...80-NET-skip-GRO-for-foreign-MAC-addresses.patch | 10 +++---
 ...d-optional-threading-for-backlog-processi.patch | 18 +++++-----
 ...xxx-Request-assisted-learning-on-CPU-port.patch |  2 +-
 ...et-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch |  6 ++--
 ...-net-dsa-b53-mmap-allow-passing-a-chip-ID.patch |  2 +-
 ...-dsa-b53-add-BCM63268-RGMII-configuration.patch |  2 +-
 ...net-dsa-b53-mdio-add-support-for-BCM53134.patch |  4 +--
 .../patches-5.15/804-pwm-add-mt7986-support.patch  |  4 +--
 .../811-pwm-mediatek-Add-support-for-MT7981.patch  |  4 +--
 ...-i2c-move-drivers-from-strlcpy-to-strscpy.patch |  2 +-
 ...bios_root_bridge_prepare-access-bridge-wi.patch |  4 +--
 50 files changed, 160 insertions(+), 160 deletions(-)

diff --git a/include/kernel-5.15 b/include/kernel-5.15
index b90abee943..09e76b7f10 100644
--- a/include/kernel-5.15
+++ b/include/kernel-5.15
@@ -1,2 +1,2 @@
-LINUX_VERSION-5.15 = .180
-LINUX_KERNEL_HASH-5.15.180 = f51f68b8bbe60aca5e1ff3781f7e5d2ca6a31dd299c8446c39bf880bfff1cd39
+LINUX_VERSION-5.15 = .181
+LINUX_KERNEL_HASH-5.15.181 = 3346436d9efae810195b40922c6b73001d1a4dd7e5eeb5a7e8ed85e63960da38
diff --git a/target/linux/bcm27xx/patches-5.15/950-0459-media-i2c-ov7251-Add-fwnode-properties-controls.patch b/target/linux/bcm27xx/patches-5.15/950-0459-media-i2c-ov7251-Add-fwnode-properties-controls.patch
index 3d6e21d695..b1f67e2eae 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0459-media-i2c-ov7251-Add-fwnode-properties-controls.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0459-media-i2c-ov7251-Add-fwnode-properties-controls.patch
@@ -13,7 +13,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
 
 --- a/drivers/media/i2c/ov7251.c
 +++ b/drivers/media/i2c/ov7251.c
-@@ -1256,6 +1256,7 @@ static const struct v4l2_subdev_ops ov72
+@@ -1258,6 +1258,7 @@ static const struct v4l2_subdev_ops ov72
  
  static int ov7251_probe(struct i2c_client *client)
  {
@@ -21,7 +21,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	struct device *dev = &client->dev;
  	struct fwnode_handle *endpoint;
  	struct ov7251 *ov7251;
-@@ -1341,7 +1342,7 @@ static int ov7251_probe(struct i2c_clien
+@@ -1343,7 +1344,7 @@ static int ov7251_probe(struct i2c_clien
  
  	mutex_init(&ov7251->lock);
  
@@ -30,7 +30,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	ov7251->ctrls.lock = &ov7251->lock;
  
  	v4l2_ctrl_new_std(&ov7251->ctrls, &ov7251_ctrl_ops,
-@@ -1377,6 +1378,15 @@ static int ov7251_probe(struct i2c_clien
+@@ -1379,6 +1380,15 @@ static int ov7251_probe(struct i2c_clien
  		goto free_ctrl;
  	}
  
diff --git a/target/linux/bcm27xx/patches-5.15/950-0605-xhci-refactor-out-TRBS_PER_SEGMENT-define-in-runtime.patch b/target/linux/bcm27xx/patches-5.15/950-0605-xhci-refactor-out-TRBS_PER_SEGMENT-define-in-runtime.patch
index dc9932ba02..d4f9dce479 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0605-xhci-refactor-out-TRBS_PER_SEGMENT-define-in-runtime.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0605-xhci-refactor-out-TRBS_PER_SEGMENT-define-in-runtime.patch
@@ -205,7 +205,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  		xhci_err(xhci, "Tried to move enqueue past ring segment\n");
  		return;
  	}
-@@ -3316,7 +3319,7 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd
+@@ -3319,7 +3322,7 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd
  	 * that clears the EHB.
  	 */
  	while (xhci_handle_event(xhci, ir) > 0) {
@@ -214,7 +214,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  			continue;
  		xhci_update_erst_dequeue(xhci, ir, event_ring_deq);
  		event_ring_deq = ir->event_ring->dequeue;
-@@ -3458,7 +3461,8 @@ static int prepare_ring(struct xhci_hcd
+@@ -3461,7 +3464,8 @@ static int prepare_ring(struct xhci_hcd
  		}
  	}
  
diff --git a/target/linux/bcm27xx/patches-5.15/950-0612-media-i2c-ov7251-Make-the-enable-GPIO-optional.patch b/target/linux/bcm27xx/patches-5.15/950-0612-media-i2c-ov7251-Make-the-enable-GPIO-optional.patch
index 45010b6d3b..875678558d 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0612-media-i2c-ov7251-Make-the-enable-GPIO-optional.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0612-media-i2c-ov7251-Make-the-enable-GPIO-optional.patch
@@ -14,13 +14,13 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
 
 --- a/drivers/media/i2c/ov7251.c
 +++ b/drivers/media/i2c/ov7251.c
-@@ -1334,7 +1334,8 @@ static int ov7251_probe(struct i2c_clien
+@@ -1336,7 +1336,8 @@ static int ov7251_probe(struct i2c_clien
  		return PTR_ERR(ov7251->analog_regulator);
  	}
  
--	ov7251->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_HIGH);
+-	ov7251->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW);
 +	ov7251->enable_gpio = devm_gpiod_get_optional(dev, "enable",
-+						      GPIOD_OUT_HIGH);
++						      GPIOD_OUT_LOW);
  	if (IS_ERR(ov7251->enable_gpio)) {
  		dev_err(dev, "cannot get enable gpio\n");
  		return PTR_ERR(ov7251->enable_gpio);
diff --git a/target/linux/bcm27xx/patches-5.15/950-0688-drm-panel-Add-and-initialise-an-orientation-field-to.patch b/target/linux/bcm27xx/patches-5.15/950-0688-drm-panel-Add-and-initialise-an-orientation-field-to.patch
index a13fccb48b..1720f56f5b 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0688-drm-panel-Add-and-initialise-an-orientation-field-to.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0688-drm-panel-Add-and-initialise-an-orientation-field-to.patch
@@ -36,7 +36,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  
 --- a/drivers/gpu/drm/drm_panel.c
 +++ b/drivers/gpu/drm/drm_panel.c
-@@ -61,6 +61,9 @@ void drm_panel_init(struct drm_panel *pa
+@@ -64,6 +64,9 @@ void drm_panel_init(struct drm_panel *pa
  	panel->dev = dev;
  	panel->funcs = funcs;
  	panel->connector_type = connector_type;
@@ -46,7 +46,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  }
  EXPORT_SYMBOL(drm_panel_init);
  
-@@ -294,16 +297,18 @@ int of_drm_get_panel_orientation(const s
+@@ -297,16 +300,18 @@ int of_drm_get_panel_orientation(const s
  	if (ret < 0)
  		return ret;
  
diff --git a/target/linux/bcm27xx/patches-5.15/950-0717-usb-xhci-add-a-quirk-for-Superspeed-bulk-OUT-transfe.patch b/target/linux/bcm27xx/patches-5.15/950-0717-usb-xhci-add-a-quirk-for-Superspeed-bulk-OUT-transfe.patch
index 812c1c67da..d717fa505c 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0717-usb-xhci-add-a-quirk-for-Superspeed-bulk-OUT-transfe.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0717-usb-xhci-add-a-quirk-for-Superspeed-bulk-OUT-transfe.patch
@@ -36,7 +36,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
-@@ -3771,14 +3771,15 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3774,14 +3774,15 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
  	unsigned int num_trbs;
  	unsigned int start_cycle, num_sgs = 0;
  	unsigned int enqd_len, block_len, trb_buff_len, full_len;
@@ -54,7 +54,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	full_len = urb->transfer_buffer_length;
  	/* If we have scatter/gather list, we use it. */
  	if (urb->num_sgs && !(urb->transfer_flags & URB_DMA_MAP_SINGLE)) {
-@@ -3815,6 +3816,17 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3818,6 +3819,17 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
  	start_cycle = ring->cycle_state;
  	send_addr = addr;
  
@@ -72,7 +72,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	/* Queue the TRBs, even if they are zero-length */
  	for (enqd_len = 0; first_trb || enqd_len < full_len;
  			enqd_len += trb_buff_len) {
-@@ -3827,6 +3839,11 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3830,6 +3842,11 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
  		if (enqd_len + trb_buff_len > full_len)
  			trb_buff_len = full_len - enqd_len;
  
diff --git a/target/linux/bcm27xx/patches-5.15/950-0719-media-i2c-Add-acpi-support-to-ov7251.patch b/target/linux/bcm27xx/patches-5.15/950-0719-media-i2c-Add-acpi-support-to-ov7251.patch
index 5ec3d1b7a5..2970754322 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0719-media-i2c-Add-acpi-support-to-ov7251.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0719-media-i2c-Add-acpi-support-to-ov7251.patch
@@ -20,7 +20,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
  #include <linux/regulator/consumer.h>
  #include <linux/slab.h>
  #include <linux/types.h>
-@@ -1501,9 +1502,16 @@ static const struct of_device_id ov7251_
+@@ -1503,9 +1504,16 @@ static const struct of_device_id ov7251_
  };
  MODULE_DEVICE_TABLE(of, ov7251_of_match);
  
diff --git a/target/linux/bcm27xx/patches-5.15/950-0720-media-i2c-Provide-ov7251_check_hwcfg.patch b/target/linux/bcm27xx/patches-5.15/950-0720-media-i2c-Provide-ov7251_check_hwcfg.patch
index b4b99fc4a4..25fb7e0fc3 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0720-media-i2c-Provide-ov7251_check_hwcfg.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0720-media-i2c-Provide-ov7251_check_hwcfg.patch
@@ -16,7 +16,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
 
 --- a/drivers/media/i2c/ov7251.c
 +++ b/drivers/media/i2c/ov7251.c
-@@ -1255,11 +1255,74 @@ static const struct v4l2_subdev_ops ov72
+@@ -1257,11 +1257,74 @@ static const struct v4l2_subdev_ops ov72
  	.pad = &ov7251_subdev_pad_ops,
  };
  
@@ -92,7 +92,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
  	struct ov7251 *ov7251;
  	u8 chip_id_high, chip_id_low, chip_rev;
  	int ret;
-@@ -1271,24 +1334,9 @@ static int ov7251_probe(struct i2c_clien
+@@ -1273,24 +1336,9 @@ static int ov7251_probe(struct i2c_clien
  	ov7251->i2c_client = client;
  	ov7251->dev = dev;
  
diff --git a/target/linux/bcm27xx/patches-5.15/950-0721-media-i2c-Add-ov7251_pll_configure.patch b/target/linux/bcm27xx/patches-5.15/950-0721-media-i2c-Add-ov7251_pll_configure.patch
index 0408984273..a4d06daec5 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0721-media-i2c-Add-ov7251_pll_configure.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0721-media-i2c-Add-ov7251_pll_configure.patch
@@ -232,7 +232,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
  static int ov7251_set_exposure(struct ov7251 *ov7251, s32 exposure)
  {
  	u16 reg;
-@@ -1143,6 +1237,11 @@ static int ov7251_s_stream(struct v4l2_s
+@@ -1145,6 +1239,11 @@ static int ov7251_s_stream(struct v4l2_s
  	mutex_lock(&ov7251->lock);
  
  	if (enable) {
@@ -244,7 +244,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
  		ret = ov7251_set_register_array(ov7251,
  					ov7251->current_mode->data,
  					ov7251->current_mode->data_size);
-@@ -1326,6 +1425,7 @@ static int ov7251_probe(struct i2c_clien
+@@ -1328,6 +1427,7 @@ static int ov7251_probe(struct i2c_clien
  	struct ov7251 *ov7251;
  	u8 chip_id_high, chip_id_low, chip_rev;
  	int ret;
@@ -252,7 +252,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
  
  	ov7251 = devm_kzalloc(dev, sizeof(struct ov7251), GFP_KERNEL);
  	if (!ov7251)
-@@ -1364,6 +1464,11 @@ static int ov7251_probe(struct i2c_clien
+@@ -1366,6 +1466,11 @@ static int ov7251_probe(struct i2c_clien
  		dev_err(dev, "could not set xclk frequency\n");
  		return ret;
  	}
diff --git a/target/linux/bcm27xx/patches-5.15/950-0722-media-i2c-Add-support-for-19.2MHz-clock-to-ov7251.patch b/target/linux/bcm27xx/patches-5.15/950-0722-media-i2c-Add-support-for-19.2MHz-clock-to-ov7251.patch
index 6052cfa479..467618434b 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0722-media-i2c-Add-support-for-19.2MHz-clock-to-ov7251.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0722-media-i2c-Add-support-for-19.2MHz-clock-to-ov7251.patch
@@ -78,7 +78,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
  	[OV7251_24_MHZ] = 24000000,
  };
  
-@@ -1424,6 +1448,7 @@ static int ov7251_probe(struct i2c_clien
+@@ -1426,6 +1450,7 @@ static int ov7251_probe(struct i2c_clien
  	struct device *dev = &client->dev;
  	struct ov7251 *ov7251;
  	u8 chip_id_high, chip_id_low, chip_rev;
@@ -86,7 +86,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
  	int ret;
  	int i;
  
-@@ -1439,35 +1464,39 @@ static int ov7251_probe(struct i2c_clien
+@@ -1441,35 +1466,39 @@ static int ov7251_probe(struct i2c_clien
  		return ret;
  
  	/* get system clock (xclk) */
diff --git a/target/linux/bcm27xx/patches-5.15/950-0723-media-i2c-Add-ov7251_detect_chip.patch b/target/linux/bcm27xx/patches-5.15/950-0723-media-i2c-Add-ov7251_detect_chip.patch
index 526dd668bb..5d05bdc720 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0723-media-i2c-Add-ov7251_detect_chip.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0723-media-i2c-Add-ov7251_detect_chip.patch
@@ -13,7 +13,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
 
 --- a/drivers/media/i2c/ov7251.c
 +++ b/drivers/media/i2c/ov7251.c
-@@ -1442,12 +1442,44 @@ out_free_bus_cfg:
+@@ -1444,12 +1444,44 @@ out_free_bus_cfg:
  	return ret;
  }
  
@@ -59,7 +59,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
  	unsigned int rate = 0;
  	int ret;
  	int i;
-@@ -1589,34 +1621,10 @@ static int ov7251_probe(struct i2c_clien
+@@ -1591,34 +1623,10 @@ static int ov7251_probe(struct i2c_clien
  		goto free_entity;
  	}
  
diff --git a/target/linux/bcm27xx/patches-5.15/950-0724-media-i2c-Add-pm_runtime-support-to-ov7251.patch b/target/linux/bcm27xx/patches-5.15/950-0724-media-i2c-Add-pm_runtime-support-to-ov7251.patch
index 3f1c9b50f1..ee01747b3b 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0724-media-i2c-Add-pm_runtime-support-to-ov7251.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0724-media-i2c-Add-pm_runtime-support-to-ov7251.patch
@@ -20,7 +20,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
  #include <linux/regulator/consumer.h>
  #include <linux/slab.h>
  #include <linux/types.h>
-@@ -884,6 +885,24 @@ static void ov7251_set_power_off(struct
+@@ -886,6 +887,24 @@ static void ov7251_set_power_off(struct
  	ov7251_regulators_disable(ov7251);
  }
  
@@ -45,7 +45,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
  static int ov7251_s_power(struct v4l2_subdev *sd, int on)
  {
  	struct ov7251 *ov7251 = to_ov7251(sd);
-@@ -985,7 +1004,7 @@ static int ov7251_s_ctrl(struct v4l2_ctr
+@@ -987,7 +1006,7 @@ static int ov7251_s_ctrl(struct v4l2_ctr
  
  	/* v4l2_ctrl_lock() locks our mutex */
  
@@ -54,7 +54,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
  		return 0;
  
  	switch (ctrl->id) {
-@@ -1009,6 +1028,8 @@ static int ov7251_s_ctrl(struct v4l2_ctr
+@@ -1011,6 +1030,8 @@ static int ov7251_s_ctrl(struct v4l2_ctr
  		break;
  	}
  
@@ -63,7 +63,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
  	return ret;
  }
  
-@@ -1261,10 +1282,15 @@ static int ov7251_s_stream(struct v4l2_s
+@@ -1263,10 +1284,15 @@ static int ov7251_s_stream(struct v4l2_s
  	mutex_lock(&ov7251->lock);
  
  	if (enable) {
@@ -82,7 +82,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
  
  		ret = ov7251_set_register_array(ov7251,
  					ov7251->current_mode->data,
-@@ -1273,23 +1299,29 @@ static int ov7251_s_stream(struct v4l2_s
+@@ -1275,23 +1301,29 @@ static int ov7251_s_stream(struct v4l2_s
  			dev_err(ov7251->dev, "could not set mode %dx%d\n",
  				ov7251->current_mode->width,
  				ov7251->current_mode->height);
@@ -115,7 +115,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
  	return ret;
  }
  
-@@ -1615,23 +1647,24 @@ static int ov7251_probe(struct i2c_clien
+@@ -1617,23 +1649,24 @@ static int ov7251_probe(struct i2c_clien
  		goto free_ctrl;
  	}
  
@@ -145,7 +145,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
  	}
  
  	ret = ov7251_read_reg(ov7251, OV7251_TIMING_FORMAT1,
-@@ -1639,7 +1672,7 @@ static int ov7251_probe(struct i2c_clien
+@@ -1641,7 +1674,7 @@ static int ov7251_probe(struct i2c_clien
  	if (ret < 0) {
  		dev_err(dev, "could not read vflip value\n");
  		ret = -ENODEV;
@@ -154,7 +154,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
  	}
  
  	ret = ov7251_read_reg(ov7251, OV7251_TIMING_FORMAT2,
-@@ -1647,10 +1680,12 @@ static int ov7251_probe(struct i2c_clien
+@@ -1649,10 +1682,12 @@ static int ov7251_probe(struct i2c_clien
  	if (ret < 0) {
  		dev_err(dev, "could not read hflip value\n");
  		ret = -ENODEV;
@@ -169,7 +169,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
  
  	ret = v4l2_async_register_subdev(&ov7251->sd);
  	if (ret < 0) {
-@@ -1662,6 +1697,9 @@ static int ov7251_probe(struct i2c_clien
+@@ -1664,6 +1699,9 @@ static int ov7251_probe(struct i2c_clien
  
  	return 0;
  
@@ -179,7 +179,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
  power_down:
  	ov7251_s_power(&ov7251->sd, false);
  free_entity:
-@@ -1683,9 +1721,18 @@ static int ov7251_remove(struct i2c_clie
+@@ -1685,9 +1723,18 @@ static int ov7251_remove(struct i2c_clie
  	v4l2_ctrl_handler_free(&ov7251->ctrls);
  	mutex_destroy(&ov7251->lock);
  
@@ -198,7 +198,7 @@ Signed-off-by: Daniel Scally <djrscally at gmail.com>
  static const struct of_device_id ov7251_of_match[] = {
  	{ .compatible = "ovti,ov7251" },
  	{ /* sentinel */ }
-@@ -1703,6 +1750,7 @@ static struct i2c_driver ov7251_i2c_driv
+@@ -1705,6 +1752,7 @@ static struct i2c_driver ov7251_i2c_driv
  		.of_match_table = ov7251_of_match,
  		.acpi_match_table = ov7251_acpi_match,
  		.name  = "ov7251",
diff --git a/target/linux/bcm27xx/patches-5.15/950-0725-media-i2c-Remove-.s_power-from-ov7251.patch b/target/linux/bcm27xx/patches-5.15/950-0725-media-i2c-Remove-.s_power-from-ov7251.patch
index 0376a1a90a..bd282d5002 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0725-media-i2c-Remove-.s_power-from-ov7251.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0725-media-i2c-Remove-.s_power-from-ov7251.patch
@@ -15,7 +15,7 @@ Reported-by: kernel test robot <lkp at intel.com>
 
 --- a/drivers/media/i2c/ov7251.c
 +++ b/drivers/media/i2c/ov7251.c
-@@ -903,43 +903,6 @@ static int __maybe_unused ov7251_sensor_
+@@ -905,43 +905,6 @@ static int __maybe_unused ov7251_sensor_
  	return ov7251_set_power_on(ov7251);
  }
  
@@ -59,7 +59,7 @@ Reported-by: kernel test robot <lkp at intel.com>
  static int ov7251_set_hflip(struct ov7251 *ov7251, s32 value)
  {
  	u8 val = ov7251->timing_format2;
-@@ -1384,10 +1347,6 @@ exit:
+@@ -1386,10 +1349,6 @@ exit:
  	return ret;
  }
  
@@ -70,7 +70,7 @@ Reported-by: kernel test robot <lkp at intel.com>
  static const struct v4l2_subdev_video_ops ov7251_video_ops = {
  	.s_stream = ov7251_s_stream,
  	.g_frame_interval = ov7251_get_frame_interval,
-@@ -1405,7 +1364,6 @@ static const struct v4l2_subdev_pad_ops
+@@ -1407,7 +1366,6 @@ static const struct v4l2_subdev_pad_ops
  };
  
  static const struct v4l2_subdev_ops ov7251_subdev_ops = {
@@ -78,7 +78,7 @@ Reported-by: kernel test robot <lkp at intel.com>
  	.video = &ov7251_video_ops,
  	.pad = &ov7251_subdev_pad_ops,
  };
-@@ -1701,7 +1659,7 @@ err_pm_runtime:
+@@ -1703,7 +1661,7 @@ err_pm_runtime:
  	pm_runtime_disable(ov7251->dev);
  	pm_runtime_put_noidle(ov7251->dev);
  power_down:
diff --git a/target/linux/bcm27xx/patches-5.15/950-0726-media-i2c-ov7251-Reinstate-setting-ov7251_global_ini.patch b/target/linux/bcm27xx/patches-5.15/950-0726-media-i2c-ov7251-Reinstate-setting-ov7251_global_ini.patch
index 82370ae81f..67d20dcf93 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0726-media-i2c-ov7251-Reinstate-setting-ov7251_global_ini.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0726-media-i2c-ov7251-Reinstate-setting-ov7251_global_ini.patch
@@ -15,7 +15,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
 
 --- a/drivers/media/i2c/ov7251.c
 +++ b/drivers/media/i2c/ov7251.c
-@@ -1249,6 +1249,14 @@ static int ov7251_s_stream(struct v4l2_s
+@@ -1251,6 +1251,14 @@ static int ov7251_s_stream(struct v4l2_s
  		if (ret < 0)
  			return ret;
  
diff --git a/target/linux/bcm27xx/patches-5.15/950-0727-media-i2c-ov7251-V4L2_CID_PIXEL_RATE-is-fixed.patch b/target/linux/bcm27xx/patches-5.15/950-0727-media-i2c-ov7251-V4L2_CID_PIXEL_RATE-is-fixed.patch
index 80503693b6..d942e03c17 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0727-media-i2c-ov7251-V4L2_CID_PIXEL_RATE-is-fixed.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0727-media-i2c-ov7251-V4L2_CID_PIXEL_RATE-is-fixed.patch
@@ -64,7 +64,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  		.link_freq = 0, /* an index in link_freq[] */
  		.exposure_max = 552,
  		.exposure_def = 504,
-@@ -1155,11 +1152,6 @@ static int ov7251_set_format(struct v4l2
+@@ -1157,11 +1154,6 @@ static int ov7251_set_format(struct v4l2
  	__crop->height = new_mode->height;
  
  	if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE) {
@@ -76,7 +76,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  		ret = __v4l2_ctrl_s_ctrl(ov7251->link_freq,
  					 new_mode->link_freq);
  		if (ret < 0)
-@@ -1319,11 +1311,6 @@ static int ov7251_set_frame_interval(str
+@@ -1321,11 +1313,6 @@ static int ov7251_set_frame_interval(str
  	new_mode = ov7251_find_mode_by_ival(ov7251, &fi->interval);
  
  	if (new_mode != ov7251->current_mode) {
@@ -88,7 +88,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  		ret = __v4l2_ctrl_s_ctrl(ov7251->link_freq,
  					 new_mode->link_freq);
  		if (ret < 0)
-@@ -1571,10 +1558,9 @@ static int ov7251_probe(struct i2c_clien
+@@ -1573,10 +1560,9 @@ static int ov7251_probe(struct i2c_clien
  				     V4L2_CID_TEST_PATTERN,
  				     ARRAY_SIZE(ov7251_test_pattern_menu) - 1,
  				     0, 0, ov7251_test_pattern_menu);
diff --git a/target/linux/bcm27xx/patches-5.15/950-0728-media-i2c-ov7251-V4L2_CID_LINK_FREQUENCY-is-fixed.patch b/target/linux/bcm27xx/patches-5.15/950-0728-media-i2c-ov7251-V4L2_CID_LINK_FREQUENCY-is-fixed.patch
index ddd9e6e3b2..adb46ff1d7 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0728-media-i2c-ov7251-V4L2_CID_LINK_FREQUENCY-is-fixed.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0728-media-i2c-ov7251-V4L2_CID_LINK_FREQUENCY-is-fixed.patch
@@ -53,7 +53,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  		.exposure_max = 552,
  		.exposure_def = 504,
  		.timeperframe = {
-@@ -1152,11 +1147,6 @@ static int ov7251_set_format(struct v4l2
+@@ -1154,11 +1149,6 @@ static int ov7251_set_format(struct v4l2
  	__crop->height = new_mode->height;
  
  	if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE) {
@@ -65,7 +65,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  		ret = __v4l2_ctrl_modify_range(ov7251->exposure,
  					       1, new_mode->exposure_max,
  					       1, new_mode->exposure_def);
-@@ -1311,11 +1301,6 @@ static int ov7251_set_frame_interval(str
+@@ -1313,11 +1303,6 @@ static int ov7251_set_frame_interval(str
  	new_mode = ov7251_find_mode_by_ival(ov7251, &fi->interval);
  
  	if (new_mode != ov7251->current_mode) {
@@ -77,7 +77,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  		ret = __v4l2_ctrl_modify_range(ov7251->exposure,
  					       1, new_mode->exposure_max,
  					       1, new_mode->exposure_def);
-@@ -1464,6 +1449,7 @@ static int ov7251_probe(struct i2c_clien
+@@ -1466,6 +1451,7 @@ static int ov7251_probe(struct i2c_clien
  {
  	struct v4l2_fwnode_device_properties props;
  	struct device *dev = &client->dev;
@@ -85,7 +85,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	struct ov7251 *ov7251;
  	unsigned int rate = 0;
  	int ret;
-@@ -1561,13 +1547,12 @@ static int ov7251_probe(struct i2c_clien
+@@ -1563,13 +1549,12 @@ static int ov7251_probe(struct i2c_clien
  	v4l2_ctrl_new_std(&ov7251->ctrls, &ov7251_ctrl_ops,
  			  V4L2_CID_PIXEL_RATE, OV7251_PIXEL_CLOCK,
  			  OV7251_PIXEL_CLOCK, 1, OV7251_PIXEL_CLOCK);
diff --git a/target/linux/bcm27xx/patches-5.15/950-0729-media-i2c-ov7251-Initialise-current_mode-during-prob.patch b/target/linux/bcm27xx/patches-5.15/950-0729-media-i2c-ov7251-Initialise-current_mode-during-prob.patch
index 84b1252e1b..67af497049 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0729-media-i2c-ov7251-Initialise-current_mode-during-prob.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0729-media-i2c-ov7251-Initialise-current_mode-during-prob.patch
@@ -15,7 +15,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
 
 --- a/drivers/media/i2c/ov7251.c
 +++ b/drivers/media/i2c/ov7251.c
-@@ -1529,6 +1529,8 @@ static int ov7251_probe(struct i2c_clien
+@@ -1531,6 +1531,8 @@ static int ov7251_probe(struct i2c_clien
  
  	mutex_init(&ov7251->lock);
  
diff --git a/target/linux/bcm27xx/patches-5.15/950-0730-media-i2c-ov7251-Add-V4L2_CID_HBLANK-control.patch b/target/linux/bcm27xx/patches-5.15/950-0730-media-i2c-ov7251-Add-V4L2_CID_HBLANK-control.patch
index c0f8f5dd83..7ba923e3ee 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0730-media-i2c-ov7251-Add-V4L2_CID_HBLANK-control.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0730-media-i2c-ov7251-Add-V4L2_CID_HBLANK-control.patch
@@ -33,7 +33,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  
  	/* Cached register values */
  	u8 aec_pk_manual;
-@@ -1131,6 +1134,7 @@ static int ov7251_set_format(struct v4l2
+@@ -1133,6 +1136,7 @@ static int ov7251_set_format(struct v4l2
  	struct v4l2_mbus_framefmt *__format;
  	struct v4l2_rect *__crop;
  	const struct ov7251_mode_info *new_mode;
@@ -41,7 +41,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	int ret = 0;
  
  	mutex_lock(&ov7251->lock);
-@@ -1147,6 +1151,11 @@ static int ov7251_set_format(struct v4l2
+@@ -1149,6 +1153,11 @@ static int ov7251_set_format(struct v4l2
  	__crop->height = new_mode->height;
  
  	if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE) {
@@ -53,7 +53,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  		ret = __v4l2_ctrl_modify_range(ov7251->exposure,
  					       1, new_mode->exposure_max,
  					       1, new_mode->exposure_def);
-@@ -1452,6 +1461,7 @@ static int ov7251_probe(struct i2c_clien
+@@ -1454,6 +1463,7 @@ static int ov7251_probe(struct i2c_clien
  	struct v4l2_ctrl *ctrl;
  	struct ov7251 *ov7251;
  	unsigned int rate = 0;
@@ -61,7 +61,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	int ret;
  	int i;
  
-@@ -1531,7 +1541,7 @@ static int ov7251_probe(struct i2c_clien
+@@ -1533,7 +1543,7 @@ static int ov7251_probe(struct i2c_clien
  
  	ov7251->current_mode = &ov7251_mode_info_data[0];
  
@@ -70,7 +70,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	ov7251->ctrls.lock = &ov7251->lock;
  
  	v4l2_ctrl_new_std(&ov7251->ctrls, &ov7251_ctrl_ops,
-@@ -1555,6 +1565,12 @@ static int ov7251_probe(struct i2c_clien
+@@ -1557,6 +1567,12 @@ static int ov7251_probe(struct i2c_clien
  				      0, link_freq);
  	if (ctrl)
  		ctrl->flags |= V4L2_CTRL_FLAG_READ_ONLY;
diff --git a/target/linux/bcm27xx/patches-5.15/950-0731-media-i2c-ov7251-Do-not-reset-gain-on-mode-change.patch b/target/linux/bcm27xx/patches-5.15/950-0731-media-i2c-ov7251-Do-not-reset-gain-on-mode-change.patch
index fba048c722..677f690d97 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0731-media-i2c-ov7251-Do-not-reset-gain-on-mode-change.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0731-media-i2c-ov7251-Do-not-reset-gain-on-mode-change.patch
@@ -23,7 +23,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	struct v4l2_ctrl *hblank;
  
  	/* Cached register values */
-@@ -1167,10 +1166,6 @@ static int ov7251_set_format(struct v4l2
+@@ -1169,10 +1168,6 @@ static int ov7251_set_format(struct v4l2
  		if (ret < 0)
  			goto exit;
  
@@ -34,7 +34,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  		ov7251->current_mode = new_mode;
  	}
  
-@@ -1321,10 +1316,6 @@ static int ov7251_set_frame_interval(str
+@@ -1323,10 +1318,6 @@ static int ov7251_set_frame_interval(str
  		if (ret < 0)
  			goto exit;
  
@@ -45,7 +45,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  		ov7251->current_mode = new_mode;
  	}
  
-@@ -1550,8 +1541,8 @@ static int ov7251_probe(struct i2c_clien
+@@ -1552,8 +1543,8 @@ static int ov7251_probe(struct i2c_clien
  			  V4L2_CID_VFLIP, 0, 1, 1, 0);
  	ov7251->exposure = v4l2_ctrl_new_std(&ov7251->ctrls, &ov7251_ctrl_ops,
  					     V4L2_CID_EXPOSURE, 1, 32, 1, 32);
diff --git a/target/linux/bcm27xx/patches-5.15/950-0732-media-i2c-ov7251-Fix-link_freq-validation-loop.patch b/target/linux/bcm27xx/patches-5.15/950-0732-media-i2c-ov7251-Fix-link_freq-validation-loop.patch
index 560b31d852..aa07e9ca53 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0732-media-i2c-ov7251-Fix-link_freq-validation-loop.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0732-media-i2c-ov7251-Fix-link_freq-validation-loop.patch
@@ -13,7 +13,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
 
 --- a/drivers/media/i2c/ov7251.c
 +++ b/drivers/media/i2c/ov7251.c
-@@ -1390,14 +1390,14 @@ static int ov7251_check_hwcfg(struct ov7
+@@ -1392,14 +1392,14 @@ static int ov7251_check_hwcfg(struct ov7
  
  	freq_found = false;
  	for (i = 0; i < bus_cfg.nr_of_link_frequencies; i++) {
diff --git a/target/linux/bcm27xx/patches-5.15/950-0733-media-i2c-ov7251-Add-get_selection-for-NATIVE_SIZE-C.patch b/target/linux/bcm27xx/patches-5.15/950-0733-media-i2c-ov7251-Add-get_selection-for-NATIVE_SIZE-C.patch
index ae76c0551b..7d53228649 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0733-media-i2c-ov7251-Add-get_selection-for-NATIVE_SIZE-C.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0733-media-i2c-ov7251-Add-get_selection-for-NATIVE_SIZE-C.patch
@@ -34,7 +34,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  #define OV7251_PIXEL_CLOCK 48000000
  
  struct reg_value {
-@@ -1212,15 +1224,34 @@ static int ov7251_get_selection(struct v
+@@ -1214,15 +1226,34 @@ static int ov7251_get_selection(struct v
  {
  	struct ov7251 *ov7251 = to_ov7251(sd);
  
diff --git a/target/linux/bcm27xx/patches-5.15/950-0734-media-i2c-ov7251-Set-VTS-instead-of-having-full-tabl.patch b/target/linux/bcm27xx/patches-5.15/950-0734-media-i2c-ov7251-Set-VTS-instead-of-having-full-tabl.patch
index 3e08ae27a6..dee53370bd 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0734-media-i2c-ov7251-Set-VTS-instead-of-having-full-tabl.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0734-media-i2c-ov7251-Set-VTS-instead-of-having-full-tabl.patch
@@ -356,7 +356,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  		.timeperframe = {
  			.numerator = 100,
  			.denominator = 9043
-@@ -1289,6 +1037,14 @@ static int ov7251_s_stream(struct v4l2_s
+@@ -1291,6 +1039,14 @@ static int ov7251_s_stream(struct v4l2_s
  				ov7251->current_mode->height);
  			goto err_power_down;
  		}
diff --git a/target/linux/bcm27xx/patches-5.15/950-0735-media-i2c-ov7251-Limit-exposure-based-on-VTS.patch b/target/linux/bcm27xx/patches-5.15/950-0735-media-i2c-ov7251-Limit-exposure-based-on-VTS.patch
index 77686190e5..de9713bf99 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0735-media-i2c-ov7251-Limit-exposure-based-on-VTS.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0735-media-i2c-ov7251-Limit-exposure-based-on-VTS.patch
@@ -54,7 +54,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  		.exposure_def = 504,
  		.vts = 0x23c,
  		.timeperframe = {
-@@ -915,8 +913,8 @@ static int ov7251_set_format(struct v4l2
+@@ -917,8 +915,8 @@ static int ov7251_set_format(struct v4l2
  					 h_blank, 1, h_blank);
  		__v4l2_ctrl_s_ctrl(ov7251->hblank, h_blank);
  
@@ -65,7 +65,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  					       1, new_mode->exposure_def);
  		if (ret < 0)
  			goto exit;
-@@ -1092,8 +1090,8 @@ static int ov7251_set_frame_interval(str
+@@ -1094,8 +1092,8 @@ static int ov7251_set_frame_interval(str
  	new_mode = ov7251_find_mode_by_ival(ov7251, &fi->interval);
  
  	if (new_mode != ov7251->current_mode) {
diff --git a/target/linux/bcm27xx/patches-5.15/950-0736-media-i2c-ov7251-Separate-modes-from-frame-intervals.patch b/target/linux/bcm27xx/patches-5.15/950-0736-media-i2c-ov7251-Separate-modes-from-frame-intervals.patch
index 6ad35fda06..a34e5aa064 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0736-media-i2c-ov7251-Separate-modes-from-frame-intervals.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0736-media-i2c-ov7251-Separate-modes-from-frame-intervals.patch
@@ -98,7 +98,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  static int ov7251_regulators_enable(struct ov7251 *ov7251)
  {
  	int ret;
-@@ -789,13 +788,13 @@ static int ov7251_enum_frame_ival(struct
+@@ -791,13 +790,13 @@ static int ov7251_enum_frame_ival(struct
  	unsigned int index = fie->index;
  	unsigned int i;
  
@@ -116,7 +116,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  			return 0;
  		}
  	}
-@@ -854,23 +853,18 @@ static inline u32 avg_fps(const struct v
+@@ -856,23 +855,18 @@ static inline u32 avg_fps(const struct v
  	return (t->denominator + (t->numerator >> 1)) / t->numerator;
  }
  
@@ -144,7 +144,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  
  		dist = abs(fps_req - fps_tmp);
  
-@@ -880,7 +874,7 @@ ov7251_find_mode_by_ival(struct ov7251 *
+@@ -882,7 +876,7 @@ ov7251_find_mode_by_ival(struct ov7251 *
  		}
  	}
  
@@ -153,7 +153,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  }
  
  static int ov7251_set_format(struct v4l2_subdev *sd,
-@@ -914,7 +908,8 @@ static int ov7251_set_format(struct v4l2
+@@ -916,7 +910,8 @@ static int ov7251_set_format(struct v4l2
  		__v4l2_ctrl_s_ctrl(ov7251->hblank, h_blank);
  
  		ret = __v4l2_ctrl_modify_range(ov7251->exposure, 1,
@@ -163,7 +163,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  					       1, new_mode->exposure_def);
  		if (ret < 0)
  			goto exit;
-@@ -1036,11 +1031,11 @@ static int ov7251_s_stream(struct v4l2_s
+@@ -1038,11 +1033,11 @@ static int ov7251_s_stream(struct v4l2_s
  			goto err_power_down;
  		}
  		ret = ov7251_write_reg(ov7251, OV7251_VTS_HIGH,
@@ -177,7 +177,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  		if (ret)
  			goto err_power_down;
  		ret = __v4l2_ctrl_handler_setup(&ov7251->ctrls);
-@@ -1073,7 +1068,7 @@ static int ov7251_get_frame_interval(str
+@@ -1075,7 +1070,7 @@ static int ov7251_get_frame_interval(str
  	struct ov7251 *ov7251 = to_ov7251(subdev);
  
  	mutex_lock(&ov7251->lock);
@@ -186,7 +186,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	mutex_unlock(&ov7251->lock);
  
  	return 0;
-@@ -1083,28 +1078,29 @@ static int ov7251_set_frame_interval(str
+@@ -1085,28 +1080,29 @@ static int ov7251_set_frame_interval(str
  				     struct v4l2_subdev_frame_interval *fi)
  {
  	struct ov7251 *ov7251 = to_ov7251(subdev);
@@ -224,7 +224,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  
  exit:
  	mutex_unlock(&ov7251->lock);
-@@ -1316,6 +1312,7 @@ static int ov7251_probe(struct i2c_clien
+@@ -1318,6 +1314,7 @@ static int ov7251_probe(struct i2c_clien
  	mutex_init(&ov7251->lock);
  
  	ov7251->current_mode = &ov7251_mode_info_data[0];
diff --git a/target/linux/bcm27xx/patches-5.15/950-0737-media-i2c-ov7251-Add-V4L2_CID_VBLANK.patch b/target/linux/bcm27xx/patches-5.15/950-0737-media-i2c-ov7251-Add-V4L2_CID_VBLANK.patch
index c4c3c221d7..a808ae163a 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0737-media-i2c-ov7251-Add-V4L2_CID_VBLANK.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0737-media-i2c-ov7251-Add-V4L2_CID_VBLANK.patch
@@ -36,7 +36,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  
  	/* Cached register values */
  	u8 aec_pk_manual;
-@@ -688,6 +691,19 @@ static int ov7251_set_vflip(struct ov725
+@@ -690,6 +693,19 @@ static int ov7251_set_vflip(struct ov725
  	return ret;
  }
  
@@ -56,7 +56,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  static int ov7251_set_test_pattern(struct ov7251 *ov7251, s32 value)
  {
  	u8 val = ov7251->pre_isp_00;
-@@ -714,9 +730,20 @@ static int ov7251_s_ctrl(struct v4l2_ctr
+@@ -716,9 +732,20 @@ static int ov7251_s_ctrl(struct v4l2_ctr
  {
  	struct ov7251 *ov7251 = container_of(ctrl->handler,
  					     struct ov7251, ctrls);
@@ -77,7 +77,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  
  	if (!pm_runtime_get_if_in_use(ov7251->dev))
  		return 0;
-@@ -737,6 +764,9 @@ static int ov7251_s_ctrl(struct v4l2_ctr
+@@ -739,6 +766,9 @@ static int ov7251_s_ctrl(struct v4l2_ctr
  	case V4L2_CID_VFLIP:
  		ret = ov7251_set_vflip(ov7251, ctrl->val);
  		break;
@@ -87,7 +87,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	default:
  		ret = -EINVAL;
  		break;
-@@ -1030,14 +1060,6 @@ static int ov7251_s_stream(struct v4l2_s
+@@ -1032,14 +1062,6 @@ static int ov7251_s_stream(struct v4l2_s
  				ov7251->current_mode->height);
  			goto err_power_down;
  		}
@@ -102,7 +102,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  		ret = __v4l2_ctrl_handler_setup(&ov7251->ctrls);
  		if (ret < 0) {
  			dev_err(ov7251->dev, "could not sync v4l2 controls\n");
-@@ -1088,12 +1110,13 @@ static int ov7251_set_frame_interval(str
+@@ -1090,12 +1112,13 @@ static int ov7251_set_frame_interval(str
  		ret = __v4l2_ctrl_modify_range(ov7251->exposure, 1,
  					       new_ival->vts -
  							OV7251_EXPOSURE_OFFSET,
@@ -119,7 +119,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  		if (ret < 0)
  			goto exit;
  
-@@ -1233,7 +1256,7 @@ static int ov7251_probe(struct i2c_clien
+@@ -1235,7 +1258,7 @@ static int ov7251_probe(struct i2c_clien
  	struct v4l2_ctrl *ctrl;
  	struct ov7251 *ov7251;
  	unsigned int rate = 0;
@@ -128,7 +128,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	int ret;
  	int i;
  
-@@ -1314,7 +1337,7 @@ static int ov7251_probe(struct i2c_clien
+@@ -1316,7 +1339,7 @@ static int ov7251_probe(struct i2c_clien
  	ov7251->current_mode = &ov7251_mode_info_data[0];
  	ov7251->current_ival = &ov7251_frame_ival_info_data[0];
  
@@ -137,7 +137,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	ov7251->ctrls.lock = &ov7251->lock;
  
  	v4l2_ctrl_new_std(&ov7251->ctrls, &ov7251_ctrl_ops,
-@@ -1345,6 +1368,13 @@ static int ov7251_probe(struct i2c_clien
+@@ -1347,6 +1370,13 @@ static int ov7251_probe(struct i2c_clien
  	if (ov7251->hblank)
  		ov7251->hblank->flags |= V4L2_CTRL_FLAG_READ_ONLY;
  
diff --git a/target/linux/bcm27xx/patches-5.15/950-0738-media-i2c-ov7251-Switch-from-V4L2_CID_GAIN-to-V4L2_C.patch b/target/linux/bcm27xx/patches-5.15/950-0738-media-i2c-ov7251-Switch-from-V4L2_CID_GAIN-to-V4L2_C.patch
index 651fe86631..ee9b3127d1 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0738-media-i2c-ov7251-Switch-from-V4L2_CID_GAIN-to-V4L2_C.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0738-media-i2c-ov7251-Switch-from-V4L2_CID_GAIN-to-V4L2_C.patch
@@ -14,7 +14,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
 
 --- a/drivers/media/i2c/ov7251.c
 +++ b/drivers/media/i2c/ov7251.c
-@@ -752,7 +752,7 @@ static int ov7251_s_ctrl(struct v4l2_ctr
+@@ -754,7 +754,7 @@ static int ov7251_s_ctrl(struct v4l2_ctr
  	case V4L2_CID_EXPOSURE:
  		ret = ov7251_set_exposure(ov7251, ctrl->val);
  		break;
@@ -23,7 +23,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  		ret = ov7251_set_gain(ov7251, ctrl->val);
  		break;
  	case V4L2_CID_TEST_PATTERN:
-@@ -1346,8 +1346,8 @@ static int ov7251_probe(struct i2c_clien
+@@ -1348,8 +1348,8 @@ static int ov7251_probe(struct i2c_clien
  			  V4L2_CID_VFLIP, 0, 1, 1, 0);
  	ov7251->exposure = v4l2_ctrl_new_std(&ov7251->ctrls, &ov7251_ctrl_ops,
  					     V4L2_CID_EXPOSURE, 1, 32, 1, 32);
diff --git a/target/linux/bcm27xx/patches-5.15/950-0747-usb-xhci-rework-XHCI_VLI_SS_BULK_OUT_BUG-quirk.patch b/target/linux/bcm27xx/patches-5.15/950-0747-usb-xhci-rework-XHCI_VLI_SS_BULK_OUT_BUG-quirk.patch
index b05206fde7..9e9a4e3d48 100644
--- a/target/linux/bcm27xx/patches-5.15/950-0747-usb-xhci-rework-XHCI_VLI_SS_BULK_OUT_BUG-quirk.patch
+++ b/target/linux/bcm27xx/patches-5.15/950-0747-usb-xhci-rework-XHCI_VLI_SS_BULK_OUT_BUG-quirk.patch
@@ -13,7 +13,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
 
 --- a/drivers/usb/host/xhci-ring.c
 +++ b/drivers/usb/host/xhci-ring.c
-@@ -3771,7 +3771,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3774,7 +3774,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
  	unsigned int num_trbs;
  	unsigned int start_cycle, num_sgs = 0;
  	unsigned int enqd_len, block_len, trb_buff_len, full_len;
@@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	u32 field, length_field, remainder, maxpacket;
  	u64 addr, send_addr;
  
-@@ -3817,14 +3817,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3820,14 +3820,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
  	send_addr = addr;
  
  	if (xhci->quirks & XHCI_VLI_SS_BULK_OUT_BUG &&
@@ -40,7 +40,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	}
  
  	/* Queue the TRBs, even if they are zero-length */
-@@ -3839,7 +3834,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3842,7 +3837,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
  		if (enqd_len + trb_buff_len > full_len)
  			trb_buff_len = full_len - enqd_len;
  
diff --git a/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch b/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch
index b2136982a3..cb409230dc 100644
--- a/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch
+++ b/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch
@@ -289,7 +289,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -1353,10 +1353,8 @@ void b53_phylink_validate(struct dsa_swi
+@@ -1363,10 +1363,8 @@ void b53_phylink_validate(struct dsa_swi
  		phylink_set(mask, 100baseT_Full);
  	}
  
diff --git a/target/linux/generic/backport-5.15/743-v5.16-0001-net-dsa-b53-Include-all-ports-in-enabled_ports.patch b/target/linux/generic/backport-5.15/743-v5.16-0001-net-dsa-b53-Include-all-ports-in-enabled_ports.patch
index 66f862ad08..f8f914c7b9 100644
--- a/target/linux/generic/backport-5.15/743-v5.16-0001-net-dsa-b53-Include-all-ports-in-enabled_ports.patch
+++ b/target/linux/generic/backport-5.15/743-v5.16-0001-net-dsa-b53-Include-all-ports-in-enabled_ports.patch
@@ -22,7 +22,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
-@@ -2312,7 +2312,7 @@ static const struct b53_chip_data b53_sw
+@@ -2322,7 +2322,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM5325_DEVICE_ID,
  		.dev_name = "BCM5325",
  		.vlans = 16,
@@ -31,7 +31,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 2,
  		.arl_buckets = 1024,
  		.imp_port = 5,
-@@ -2323,7 +2323,7 @@ static const struct b53_chip_data b53_sw
+@@ -2333,7 +2333,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM5365_DEVICE_ID,
  		.dev_name = "BCM5365",
  		.vlans = 256,
@@ -40,7 +40,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 2,
  		.arl_buckets = 1024,
  		.imp_port = 5,
-@@ -2334,7 +2334,7 @@ static const struct b53_chip_data b53_sw
+@@ -2344,7 +2344,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM5389_DEVICE_ID,
  		.dev_name = "BCM5389",
  		.vlans = 4096,
@@ -49,7 +49,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
-@@ -2348,7 +2348,7 @@ static const struct b53_chip_data b53_sw
+@@ -2358,7 +2358,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM5395_DEVICE_ID,
  		.dev_name = "BCM5395",
  		.vlans = 4096,
@@ -58,7 +58,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
-@@ -2362,7 +2362,7 @@ static const struct b53_chip_data b53_sw
+@@ -2372,7 +2372,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM5397_DEVICE_ID,
  		.dev_name = "BCM5397",
  		.vlans = 4096,
@@ -67,7 +67,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
-@@ -2376,7 +2376,7 @@ static const struct b53_chip_data b53_sw
+@@ -2386,7 +2386,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM5398_DEVICE_ID,
  		.dev_name = "BCM5398",
  		.vlans = 4096,
@@ -76,7 +76,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
-@@ -2390,7 +2390,7 @@ static const struct b53_chip_data b53_sw
+@@ -2400,7 +2400,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM53115_DEVICE_ID,
  		.dev_name = "BCM53115",
  		.vlans = 4096,
@@ -85,7 +85,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.vta_regs = B53_VTA_REGS,
-@@ -2404,7 +2404,7 @@ static const struct b53_chip_data b53_sw
+@@ -2414,7 +2414,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM53125_DEVICE_ID,
  		.dev_name = "BCM53125",
  		.vlans = 4096,
@@ -94,7 +94,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
-@@ -2446,7 +2446,7 @@ static const struct b53_chip_data b53_sw
+@@ -2456,7 +2456,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM53010_DEVICE_ID,
  		.dev_name = "BCM53010",
  		.vlans = 4096,
@@ -103,7 +103,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
-@@ -2488,7 +2488,7 @@ static const struct b53_chip_data b53_sw
+@@ -2498,7 +2498,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM53018_DEVICE_ID,
  		.dev_name = "BCM53018",
  		.vlans = 4096,
@@ -112,7 +112,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
-@@ -2502,7 +2502,7 @@ static const struct b53_chip_data b53_sw
+@@ -2512,7 +2512,7 @@ static const struct b53_chip_data b53_sw
  		.chip_id = BCM53019_DEVICE_ID,
  		.dev_name = "BCM53019",
  		.vlans = 4096,
@@ -121,7 +121,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
-@@ -2644,7 +2644,6 @@ static int b53_switch_init(struct b53_de
+@@ -2654,7 +2654,6 @@ static int b53_switch_init(struct b53_de
  			dev->cpu_port = 5;
  	}
  
diff --git a/target/linux/generic/backport-5.15/743-v5.16-0002-net-dsa-b53-Drop-BCM5301x-workaround-for-a-wrong-CPU.patch b/target/linux/generic/backport-5.15/743-v5.16-0002-net-dsa-b53-Drop-BCM5301x-workaround-for-a-wrong-CPU.patch
index 1e87b939cb..e1304ba79e 100644
--- a/target/linux/generic/backport-5.15/743-v5.16-0002-net-dsa-b53-Drop-BCM5301x-workaround-for-a-wrong-CPU.patch
+++ b/target/linux/generic/backport-5.15/743-v5.16-0002-net-dsa-b53-Drop-BCM5301x-workaround-for-a-wrong-CPU.patch
@@ -27,7 +27,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
-@@ -1295,12 +1295,6 @@ static void b53_adjust_link(struct dsa_s
+@@ -1305,12 +1305,6 @@ static void b53_adjust_link(struct dsa_s
  				return;
  			}
  		}
diff --git a/target/linux/generic/backport-5.15/743-v5.16-0003-net-dsa-b53-Improve-flow-control-setup-on-BCM5301x.patch b/target/linux/generic/backport-5.15/743-v5.16-0003-net-dsa-b53-Improve-flow-control-setup-on-BCM5301x.patch
index 4b5cf56458..3b35b51056 100644
--- a/target/linux/generic/backport-5.15/743-v5.16-0003-net-dsa-b53-Improve-flow-control-setup-on-BCM5301x.patch
+++ b/target/linux/generic/backport-5.15/743-v5.16-0003-net-dsa-b53-Improve-flow-control-setup-on-BCM5301x.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
-@@ -1226,7 +1226,7 @@ static void b53_adjust_link(struct dsa_s
+@@ -1236,7 +1236,7 @@ static void b53_adjust_link(struct dsa_s
  		return;
  
  	/* Enable flow control on BCM5301x's CPU port */
diff --git a/target/linux/generic/backport-5.15/743-v5.16-0004-net-dsa-b53-Drop-unused-cpu_port-field.patch b/target/linux/generic/backport-5.15/743-v5.16-0004-net-dsa-b53-Drop-unused-cpu_port-field.patch
index f3311ff711..d7198cdc6c 100644
--- a/target/linux/generic/backport-5.15/743-v5.16-0004-net-dsa-b53-Drop-unused-cpu_port-field.patch
+++ b/target/linux/generic/backport-5.15/743-v5.16-0004-net-dsa-b53-Drop-unused-cpu_port-field.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
-@@ -2310,7 +2310,6 @@ static const struct b53_chip_data b53_sw
+@@ -2320,7 +2320,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 2,
  		.arl_buckets = 1024,
  		.imp_port = 5,
@@ -27,7 +27,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.duplex_reg = B53_DUPLEX_STAT_FE,
  	},
  	{
-@@ -2321,7 +2320,6 @@ static const struct b53_chip_data b53_sw
+@@ -2331,7 +2330,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 2,
  		.arl_buckets = 1024,
  		.imp_port = 5,
@@ -35,7 +35,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.duplex_reg = B53_DUPLEX_STAT_FE,
  	},
  	{
-@@ -2332,7 +2330,6 @@ static const struct b53_chip_data b53_sw
+@@ -2342,7 +2340,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -43,7 +43,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2346,7 +2343,6 @@ static const struct b53_chip_data b53_sw
+@@ -2356,7 +2353,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -51,7 +51,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2360,7 +2356,6 @@ static const struct b53_chip_data b53_sw
+@@ -2370,7 +2366,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -59,7 +59,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS_9798,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2374,7 +2369,6 @@ static const struct b53_chip_data b53_sw
+@@ -2384,7 +2379,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -67,7 +67,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS_9798,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2389,7 +2383,6 @@ static const struct b53_chip_data b53_sw
+@@ -2399,7 +2393,6 @@ static const struct b53_chip_data b53_sw
  		.arl_buckets = 1024,
  		.vta_regs = B53_VTA_REGS,
  		.imp_port = 8,
@@ -75,7 +75,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
  		.jumbo_size_reg = B53_JUMBO_MAX_SIZE,
-@@ -2402,7 +2395,6 @@ static const struct b53_chip_data b53_sw
+@@ -2412,7 +2405,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -83,7 +83,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2416,7 +2408,6 @@ static const struct b53_chip_data b53_sw
+@@ -2426,7 +2418,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -91,7 +91,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2430,7 +2421,6 @@ static const struct b53_chip_data b53_sw
+@@ -2440,7 +2431,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -99,7 +99,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS_63XX,
  		.duplex_reg = B53_DUPLEX_STAT_63XX,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK_63XX,
-@@ -2444,7 +2434,6 @@ static const struct b53_chip_data b53_sw
+@@ -2454,7 +2444,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -107,7 +107,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2458,7 +2447,6 @@ static const struct b53_chip_data b53_sw
+@@ -2468,7 +2457,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -115,7 +115,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2472,7 +2460,6 @@ static const struct b53_chip_data b53_sw
+@@ -2482,7 +2470,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -123,7 +123,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2486,7 +2473,6 @@ static const struct b53_chip_data b53_sw
+@@ -2496,7 +2483,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -131,7 +131,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2500,7 +2486,6 @@ static const struct b53_chip_data b53_sw
+@@ -2510,7 +2496,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -139,7 +139,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2514,7 +2499,6 @@ static const struct b53_chip_data b53_sw
+@@ -2524,7 +2509,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -147,7 +147,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2528,7 +2512,6 @@ static const struct b53_chip_data b53_sw
+@@ -2538,7 +2522,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -155,7 +155,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2557,7 +2540,6 @@ static const struct b53_chip_data b53_sw
+@@ -2567,7 +2550,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 1024,
  		.imp_port = 8,
@@ -163,7 +163,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2571,7 +2553,6 @@ static const struct b53_chip_data b53_sw
+@@ -2581,7 +2563,6 @@ static const struct b53_chip_data b53_sw
  		.arl_bins = 4,
  		.arl_buckets = 256,
  		.imp_port = 8,
@@ -171,7 +171,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		.vta_regs = B53_VTA_REGS,
  		.duplex_reg = B53_DUPLEX_STAT_GE,
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-@@ -2597,7 +2578,6 @@ static int b53_switch_init(struct b53_de
+@@ -2607,7 +2588,6 @@ static int b53_switch_init(struct b53_de
  			dev->vta_regs[2] = chip->vta_regs[2];
  			dev->jumbo_pm_reg = chip->jumbo_pm_reg;
  			dev->imp_port = chip->imp_port;
@@ -179,7 +179,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  			dev->num_vlans = chip->vlans;
  			dev->num_arl_bins = chip->arl_bins;
  			dev->num_arl_buckets = chip->arl_buckets;
-@@ -2629,13 +2609,6 @@ static int b53_switch_init(struct b53_de
+@@ -2639,13 +2619,6 @@ static int b53_switch_init(struct b53_de
  			break;
  #endif
  		}
diff --git a/target/linux/generic/hack-5.15/204-module_strip.patch b/target/linux/generic/hack-5.15/204-module_strip.patch
index e650c1b184..39e422e0d6 100644
--- a/target/linux/generic/hack-5.15/204-module_strip.patch
+++ b/target/linux/generic/hack-5.15/204-module_strip.patch
@@ -88,7 +88,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -2356,6 +2356,13 @@ config UNUSED_KSYMS_WHITELIST
+@@ -2357,6 +2357,13 @@ config UNUSED_KSYMS_WHITELIST
  	  one per line. The path can be absolute, or relative to the kernel
  	  source tree.
  
diff --git a/target/linux/generic/hack-5.15/253-ksmbd-config.patch b/target/linux/generic/hack-5.15/253-ksmbd-config.patch
index b8cb94f62b..d40aac13b3 100644
--- a/target/linux/generic/hack-5.15/253-ksmbd-config.patch
+++ b/target/linux/generic/hack-5.15/253-ksmbd-config.patch
@@ -10,7 +10,7 @@ Subject: [PATCH] Kconfig: add tristate for OID and ASNI string
 
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -2388,7 +2388,7 @@ config PADATA
+@@ -2389,7 +2389,7 @@ config PADATA
  	bool
  
  config ASN1
diff --git a/target/linux/generic/hack-5.15/721-net-add-packet-mangeling.patch b/target/linux/generic/hack-5.15/721-net-add-packet-mangeling.patch
index 79c1a92a09..68d91f9d7c 100644
--- a/target/linux/generic/hack-5.15/721-net-add-packet-mangeling.patch
+++ b/target/linux/generic/hack-5.15/721-net-add-packet-mangeling.patch
@@ -116,7 +116,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	help
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -3631,6 +3631,11 @@ static int xmit_one(struct sk_buff *skb,
+@@ -3632,6 +3632,11 @@ static int xmit_one(struct sk_buff *skb,
  	if (dev_nit_active(dev))
  		dev_queue_xmit_nit(skb, dev);
  
diff --git a/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch b/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch
index c5fbf339d2..3b4146989c 100644
--- a/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch
+++ b/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch
@@ -44,7 +44,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
  
  #define QUECTEL_VENDOR_ID			0x2c7c
  /* These Quectel products use Quectel's vendor ID */
-@@ -1153,6 +1158,11 @@ static const struct usb_device_id option
+@@ -1154,6 +1159,11 @@ static const struct usb_device_id option
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
  	  .driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
@@ -56,7 +56,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
  	/* Quectel products using Qualcomm vendor ID */
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
-@@ -1194,6 +1204,11 @@ static const struct usb_device_id option
+@@ -1195,6 +1205,11 @@ static const struct usb_device_id option
  	  .driver_info = ZLP },
  	{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
  	  .driver_info = RSVD(4) },
diff --git a/target/linux/generic/hack-5.15/901-debloat_sock_diag.patch b/target/linux/generic/hack-5.15/901-debloat_sock_diag.patch
index e425aa2478..68c0b74f9d 100644
--- a/target/linux/generic/hack-5.15/901-debloat_sock_diag.patch
+++ b/target/linux/generic/hack-5.15/901-debloat_sock_diag.patch
@@ -56,9 +56,9 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  static LIST_HEAD(proto_list);
 +DEFINE_COOKIE(sock_cookie);
  
- static void sock_inuse_add(struct net *net, int val);
- 
-@@ -545,6 +547,18 @@ discard_and_relse:
+ /**
+  * sk_ns_capable - General socket capability test
+@@ -543,6 +545,18 @@ discard_and_relse:
  }
  EXPORT_SYMBOL(__sk_receive_skb);
  
@@ -77,7 +77,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 *,
-@@ -2008,9 +2022,11 @@ static void __sk_free(struct sock *sk)
+@@ -2006,9 +2020,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-5.15/902-debloat_proc.patch b/target/linux/generic/hack-5.15/902-debloat_proc.patch
index c2ae61aefd..6f23d22e7d 100644
--- a/target/linux/generic/hack-5.15/902-debloat_proc.patch
+++ b/target/linux/generic/hack-5.15/902-debloat_proc.patch
@@ -330,7 +330,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -3897,6 +3897,8 @@ static __net_initdata struct pernet_oper
+@@ -3887,6 +3887,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
  {
diff --git a/target/linux/generic/pending-5.15/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-5.15/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
index 056211608d..563f7418e0 100644
--- a/target/linux/generic/pending-5.15/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
+++ b/target/linux/generic/pending-5.15/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
@@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  static const struct rt6_info ip6_blk_hole_entry_template = {
  	.dst = {
  		.__refcnt	= ATOMIC_INIT(1),
-@@ -1036,6 +1050,7 @@ static const int fib6_prop[RTN_MAX + 1]
+@@ -1039,6 +1053,7 @@ static const int fib6_prop[RTN_MAX + 1]
  	[RTN_BLACKHOLE]	= -EINVAL,
  	[RTN_UNREACHABLE] = -EHOSTUNREACH,
  	[RTN_PROHIBIT]	= -EACCES,
@@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  	[RTN_THROW]	= -EAGAIN,
  	[RTN_NAT]	= -EINVAL,
  	[RTN_XRESOLVE]	= -EINVAL,
-@@ -1071,6 +1086,10 @@ static void ip6_rt_init_dst_reject(struc
+@@ -1074,6 +1089,10 @@ static void ip6_rt_init_dst_reject(struc
  		rt->dst.output = ip6_pkt_prohibit_out;
  		rt->dst.input = ip6_pkt_prohibit;
  		break;
diff --git a/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
index 8f1abf527d..bf6d595458 100644
--- a/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
+++ b/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	__u8			inner_protocol_type:1;
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -6116,6 +6116,9 @@ static enum gro_result dev_gro_receive(s
+@@ -6117,6 +6117,9 @@ static enum gro_result dev_gro_receive(s
  	int same_flow;
  	int grow;
  
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	if (netif_elide_gro(skb->dev))
  		goto normal;
  
-@@ -8133,6 +8136,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -8134,6 +8137,48 @@ static void __netdev_adjacent_dev_unlink
  					   &upper_dev->adj_list.lower);
  }
  
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  static int __netdev_upper_dev_link(struct net_device *dev,
  				   struct net_device *upper_dev, bool master,
  				   void *upper_priv, void *upper_info,
-@@ -8184,6 +8229,7 @@ static int __netdev_upper_dev_link(struc
+@@ -8185,6 +8230,7 @@ static int __netdev_upper_dev_link(struc
  	if (ret)
  		return ret;
  
@@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
  					    &changeupper_info.info);
  	ret = notifier_to_errno(ret);
-@@ -8280,6 +8326,7 @@ static void __netdev_upper_dev_unlink(st
+@@ -8281,6 +8327,7 @@ static void __netdev_upper_dev_unlink(st
  
  	__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
  
@@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
  				      &changeupper_info.info);
  
-@@ -9099,6 +9146,7 @@ int dev_set_mac_address(struct net_devic
+@@ -9100,6 +9147,7 @@ int dev_set_mac_address(struct net_devic
  	if (err)
  		return err;
  	dev->addr_assign_type = NET_ADDR_SET;
diff --git a/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch b/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch
index 5da709a5ec..e255797697 100644
--- a/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch
+++ b/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #endif
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -4625,7 +4625,7 @@ static int rps_ipi_queued(struct softnet
+@@ -4626,7 +4626,7 @@ static int rps_ipi_queued(struct softnet
  #ifdef CONFIG_RPS
  	struct softnet_data *mysd = this_cpu_ptr(&softnet_data);
  
@@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		sd->rps_ipi_next = mysd->rps_ipi_list;
  		mysd->rps_ipi_list = sd;
  
-@@ -5806,6 +5806,8 @@ static DEFINE_PER_CPU(struct work_struct
+@@ -5807,6 +5807,8 @@ static DEFINE_PER_CPU(struct work_struct
  /* Network device is going away, flush any packets still pending */
  static void flush_backlog(struct work_struct *work)
  {
@@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	struct sk_buff *skb, *tmp;
  	struct softnet_data *sd;
  
-@@ -5821,9 +5823,18 @@ static void flush_backlog(struct work_st
+@@ -5822,9 +5824,18 @@ static void flush_backlog(struct work_st
  			input_queue_head_incr(sd);
  		}
  	}
@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
  		if (skb->dev->reg_state == NETREG_UNREGISTERING) {
  			__skb_unlink(skb, &sd->process_queue);
-@@ -5831,7 +5842,18 @@ static void flush_backlog(struct work_st
+@@ -5832,7 +5843,18 @@ static void flush_backlog(struct work_st
  			input_queue_head_incr(sd);
  		}
  	}
@@ -86,7 +86,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  }
  
  static bool flush_required(int cpu)
-@@ -6514,6 +6536,7 @@ static int process_backlog(struct napi_s
+@@ -6515,6 +6537,7 @@ static int process_backlog(struct napi_s
  
  		local_irq_disable();
  		rps_lock(sd);
@@ -94,7 +94,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		if (skb_queue_empty(&sd->input_pkt_queue)) {
  			/*
  			 * Inline a custom version of __napi_complete().
-@@ -6523,7 +6546,8 @@ static int process_backlog(struct napi_s
+@@ -6524,7 +6547,8 @@ static int process_backlog(struct napi_s
  			 * We can use a plain write instead of clear_bit(),
  			 * and we dont need an smp_mb() memory barrier.
  			 */
@@ -104,7 +104,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  			again = false;
  		} else {
  			skb_queue_splice_tail_init(&sd->input_pkt_queue,
-@@ -6940,6 +6964,57 @@ int dev_set_threaded(struct net_device *
+@@ -6941,6 +6965,57 @@ int dev_set_threaded(struct net_device *
  }
  EXPORT_SYMBOL(dev_set_threaded);
  
@@ -162,7 +162,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  void netif_napi_add(struct net_device *dev, struct napi_struct *napi,
  		    int (*poll)(struct napi_struct *, int), int weight)
  {
-@@ -11424,6 +11499,9 @@ static int dev_cpu_dead(unsigned int old
+@@ -11425,6 +11500,9 @@ static int dev_cpu_dead(unsigned int old
  	raise_softirq_irqoff(NET_TX_SOFTIRQ);
  	local_irq_enable();
  
@@ -172,7 +172,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #ifdef CONFIG_RPS
  	remsd = oldsd->rps_ipi_list;
  	oldsd->rps_ipi_list = NULL;
-@@ -11763,6 +11841,7 @@ static int __init net_dev_init(void)
+@@ -11764,6 +11842,7 @@ static int __init net_dev_init(void)
  		sd->cpu = i;
  #endif
  
diff --git a/target/linux/generic/pending-5.15/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch b/target/linux/generic/pending-5.15/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch
index 3f98594afb..2c16f10a5b 100644
--- a/target/linux/generic/pending-5.15/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch
+++ b/target/linux/generic/pending-5.15/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch
@@ -17,7 +17,7 @@ Signed-off-by: Tobias Waldekranz <tobias at waldekranz.com>
 
 --- a/drivers/net/dsa/mv88e6xxx/chip.c
 +++ b/drivers/net/dsa/mv88e6xxx/chip.c
-@@ -6423,6 +6423,7 @@ static int mv88e6xxx_register_switch(str
+@@ -6443,6 +6443,7 @@ static int mv88e6xxx_register_switch(str
  	ds->ops = &mv88e6xxx_switch_ops;
  	ds->ageing_time_min = chip->info->age_time_coeff;
  	ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX;
diff --git a/target/linux/generic/pending-5.15/772-net-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch b/target/linux/generic/pending-5.15/772-net-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch
index 40c1662601..0313f70dbe 100644
--- a/target/linux/generic/pending-5.15/772-net-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch
+++ b/target/linux/generic/pending-5.15/772-net-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch
@@ -95,7 +95,7 @@ Reviewed-by: Andrew Lunn <andrew at lunn.ch>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -1213,6 +1213,46 @@ static void b53_force_port_config(struct
+@@ -1223,6 +1223,46 @@ static void b53_force_port_config(struct
  	b53_write8(dev, B53_CTRL_PAGE, off, reg);
  }
  
@@ -142,7 +142,7 @@ Reviewed-by: Andrew Lunn <andrew at lunn.ch>
  static void b53_adjust_link(struct dsa_switch *ds, int port,
  			    struct phy_device *phydev)
  {
-@@ -1239,6 +1279,9 @@ static void b53_adjust_link(struct dsa_s
+@@ -1249,6 +1289,9 @@ static void b53_adjust_link(struct dsa_s
  			      tx_pause, rx_pause);
  	b53_force_link(dev, port, phydev->link);
  
@@ -152,7 +152,7 @@ Reviewed-by: Andrew Lunn <andrew at lunn.ch>
  	if (is531x5(dev) && phy_interface_is_rgmii(phydev)) {
  		if (port == dev->imp_port)
  			off = B53_RGMII_CTRL_IMP;
-@@ -1423,6 +1466,9 @@ void b53_phylink_mac_link_up(struct dsa_
+@@ -1433,6 +1476,9 @@ void b53_phylink_mac_link_up(struct dsa_
  {
  	struct b53_device *dev = ds->priv;
  
diff --git a/target/linux/generic/pending-5.15/774-net-dsa-b53-mmap-allow-passing-a-chip-ID.patch b/target/linux/generic/pending-5.15/774-net-dsa-b53-mmap-allow-passing-a-chip-ID.patch
index fa95acff2f..afe6ad9816 100644
--- a/target/linux/generic/pending-5.15/774-net-dsa-b53-mmap-allow-passing-a-chip-ID.patch
+++ b/target/linux/generic/pending-5.15/774-net-dsa-b53-mmap-allow-passing-a-chip-ID.patch
@@ -100,7 +100,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -2473,6 +2473,19 @@ static const struct b53_chip_data b53_sw
+@@ -2483,6 +2483,19 @@ static const struct b53_chip_data b53_sw
  		.jumbo_size_reg = B53_JUMBO_MAX_SIZE_63XX,
  	},
  	{
diff --git a/target/linux/generic/pending-5.15/775-net-dsa-b53-add-BCM63268-RGMII-configuration.patch b/target/linux/generic/pending-5.15/775-net-dsa-b53-add-BCM63268-RGMII-configuration.patch
index bbace362de..ed37aa4eb9 100644
--- a/target/linux/generic/pending-5.15/775-net-dsa-b53-add-BCM63268-RGMII-configuration.patch
+++ b/target/linux/generic/pending-5.15/775-net-dsa-b53-add-BCM63268-RGMII-configuration.patch
@@ -97,7 +97,7 @@ Reviewed-by: Simon Horman <simon.horman at corigine.com>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -1244,8 +1244,12 @@ static void b53_adjust_63xx_rgmii(struct
+@@ -1254,8 +1254,12 @@ static void b53_adjust_63xx_rgmii(struct
  		break;
  	}
  
diff --git a/target/linux/generic/pending-5.15/777-net-dsa-b53-mdio-add-support-for-BCM53134.patch b/target/linux/generic/pending-5.15/777-net-dsa-b53-mdio-add-support-for-BCM53134.patch
index 5056072d80..335a8670b7 100644
--- a/target/linux/generic/pending-5.15/777-net-dsa-b53-mdio-add-support-for-BCM53134.patch
+++ b/target/linux/generic/pending-5.15/777-net-dsa-b53-mdio-add-support-for-BCM53134.patch
@@ -100,7 +100,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
 
 --- a/drivers/net/dsa/b53/b53_common.c
 +++ b/drivers/net/dsa/b53/b53_common.c
-@@ -2621,6 +2621,20 @@ static const struct b53_chip_data b53_sw
+@@ -2631,6 +2631,20 @@ static const struct b53_chip_data b53_sw
  		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
  		.jumbo_size_reg = B53_JUMBO_MAX_SIZE,
  	},
@@ -121,7 +121,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
  };
  
  static int b53_switch_init(struct b53_device *dev)
-@@ -2797,6 +2811,7 @@ int b53_switch_detect(struct b53_device
+@@ -2807,6 +2821,7 @@ int b53_switch_detect(struct b53_device
  		case BCM53012_DEVICE_ID:
  		case BCM53018_DEVICE_ID:
  		case BCM53019_DEVICE_ID:
diff --git a/target/linux/mediatek/patches-5.15/804-pwm-add-mt7986-support.patch b/target/linux/mediatek/patches-5.15/804-pwm-add-mt7986-support.patch
index 7a10dac051..b8aacef174 100644
--- a/target/linux/mediatek/patches-5.15/804-pwm-add-mt7986-support.patch
+++ b/target/linux/mediatek/patches-5.15/804-pwm-add-mt7986-support.patch
@@ -1,6 +1,6 @@
 --- a/drivers/pwm/pwm-mediatek.c
 +++ b/drivers/pwm/pwm-mediatek.c
-@@ -302,6 +302,12 @@ static const struct pwm_mediatek_of_data
+@@ -306,6 +306,12 @@ static const struct pwm_mediatek_of_data
  	.has_ck_26m_sel = true,
  };
  
@@ -13,7 +13,7 @@
  static const struct pwm_mediatek_of_data mt8516_pwm_data = {
  	.num_pwms = 5,
  	.pwm45_fixup = false,
-@@ -314,6 +320,7 @@ static const struct of_device_id pwm_med
+@@ -318,6 +324,7 @@ static const struct of_device_id pwm_med
  	{ .compatible = "mediatek,mt7623-pwm", .data = &mt7623_pwm_data },
  	{ .compatible = "mediatek,mt7628-pwm", .data = &mt7628_pwm_data },
  	{ .compatible = "mediatek,mt7629-pwm", .data = &mt7629_pwm_data },
diff --git a/target/linux/mediatek/patches-5.15/811-pwm-mediatek-Add-support-for-MT7981.patch b/target/linux/mediatek/patches-5.15/811-pwm-mediatek-Add-support-for-MT7981.patch
index 8f27462cbd..0d41c363db 100644
--- a/target/linux/mediatek/patches-5.15/811-pwm-mediatek-Add-support-for-MT7981.patch
+++ b/target/linux/mediatek/patches-5.15/811-pwm-mediatek-Add-support-for-MT7981.patch
@@ -48,7 +48,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  }
  
  static int pwm_mediatek_config(struct pwm_chip *chip, struct pwm_device *pwm,
-@@ -270,48 +275,63 @@ static const struct pwm_mediatek_of_data
+@@ -274,48 +279,63 @@ static const struct pwm_mediatek_of_data
  	.num_pwms = 8,
  	.pwm45_fixup = false,
  	.has_ck_26m_sel = false,
@@ -112,7 +112,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  };
  
  static const struct of_device_id pwm_mediatek_of_match[] = {
-@@ -320,6 +340,7 @@ static const struct of_device_id pwm_med
+@@ -324,6 +344,7 @@ static const struct of_device_id pwm_med
  	{ .compatible = "mediatek,mt7623-pwm", .data = &mt7623_pwm_data },
  	{ .compatible = "mediatek,mt7628-pwm", .data = &mt7628_pwm_data },
  	{ .compatible = "mediatek,mt7629-pwm", .data = &mt7629_pwm_data },
diff --git a/target/linux/mediatek/patches-5.15/850-v6.0-i2c-move-drivers-from-strlcpy-to-strscpy.patch b/target/linux/mediatek/patches-5.15/850-v6.0-i2c-move-drivers-from-strlcpy-to-strscpy.patch
index ca1253ce06..ee86933774 100644
--- a/target/linux/mediatek/patches-5.15/850-v6.0-i2c-move-drivers-from-strlcpy-to-strscpy.patch
+++ b/target/linux/mediatek/patches-5.15/850-v6.0-i2c-move-drivers-from-strlcpy-to-strscpy.patch
@@ -138,7 +138,7 @@ Signed-off-by: Wolfram Sang <wsa at kernel.org>
  
 --- a/drivers/i2c/busses/i2c-cros-ec-tunnel.c
 +++ b/drivers/i2c/busses/i2c-cros-ec-tunnel.c
-@@ -267,7 +267,7 @@ static int ec_i2c_probe(struct platform_
+@@ -270,7 +270,7 @@ static int ec_i2c_probe(struct platform_
  	bus->dev = dev;
  
  	bus->adap.owner = THIS_MODULE;
diff --git a/target/linux/ramips/patches-5.15/106-v5.17-PCI-Let-pcibios_root_bridge_prepare-access-bridge-wi.patch b/target/linux/ramips/patches-5.15/106-v5.17-PCI-Let-pcibios_root_bridge_prepare-access-bridge-wi.patch
index f68c6e6888..8222cf0502 100644
--- a/target/linux/ramips/patches-5.15/106-v5.17-PCI-Let-pcibios_root_bridge_prepare-access-bridge-wi.patch
+++ b/target/linux/ramips/patches-5.15/106-v5.17-PCI-Let-pcibios_root_bridge_prepare-access-bridge-wi.patch
@@ -18,7 +18,7 @@ Acked-by: Arnd Bergmann <arnd at arndb.de>
 
 --- a/drivers/pci/probe.c
 +++ b/drivers/pci/probe.c
-@@ -898,8 +898,6 @@ static int pci_register_host_bridge(stru
+@@ -899,8 +899,6 @@ static int pci_register_host_bridge(stru
  
  	bridge->bus = bus;
  
@@ -27,7 +27,7 @@ Acked-by: Arnd Bergmann <arnd at arndb.de>
  	bus->sysdata = bridge->sysdata;
  	bus->ops = bridge->ops;
  	bus->number = bus->busn_res.start = bridge->busnr;
-@@ -925,6 +923,8 @@ static int pci_register_host_bridge(stru
+@@ -930,6 +928,8 @@ static int pci_register_host_bridge(stru
  	if (err)
  		goto free;
  




More information about the lede-commits mailing list