[openwrt/openwrt] kernel: bump 6.1 to 6.1.39

LEDE Commits lede-commits at lists.infradead.org
Mon Jul 24 15:28:53 PDT 2023


hauke pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/fec22f8375b4700b331fe8de5dbc511f44057d7f

commit fec22f8375b4700b331fe8de5dbc511f44057d7f
Author: John Audia <therealgraysky at proton.me>
AuthorDate: Thu Jul 20 05:51:10 2023 -0400

    kernel: bump 6.1 to 6.1.39
    
    Removed upstreamed:
            generic/backport-6.1/803-v6.5-01-leds-trigger-netdev-Recheck-NETDEV_LED_MODE_LINKUP-o.patch[1]
            generic/pending-6.1/143-jffs2-reduce-stack-usage-in-jffs2_build_xattr_subsys.patch[2]
            bcm27xx/patches-6.1/950-0034-drm-bridge-Introduce-pre_enable_upstream_first-to-al.patch[3]
            bcm27xx/patches-6.1/950-0439-nvmem-Use-NVMEM_DEVID_AUTO.patch[4]
            bcm4908/patches-6.1/040-mtd-parsers-refer-to-ARCH_BCMBCA-instead-of-ARCH_BCM.patch[5]
            bcm53xx/patches-6.1/031-v6.5-0003-ARM-dts-BCM5301X-Drop-clock-names-from-the-SPI-node.patch[6]
            bcm53xx/patches-6.1/031-v6.5-0015-ARM-dts-BCM5301X-fix-duplex-full-full-duplex.patch[7]
            mediatek/patches-6.1/351-cpufreq-mediatek-correct-voltages-for-MT7622-and-MT7.patch[8]
            qualcommax/patches-6.1/0008-v6.2-clk-qcom-reset-support-resetting-multiple-bits.patch[9]
    
    Manually rebased:
            bcm27xx/patches-6.1/950-0035-drm-panel-Add-prepare_upstream_first-flag-to-drm_pan.patch
            bcm27xx/patches-6.1/950-0404-drm-panel-panel-ilitek9881c-Add-prepare_upstream_fir.patch
            bcm27xx/patches-6.1/950-0699-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch
            mediatek/patches-6.1/350-21-cpufreq-mediatek-Add-support-for-MT7988.patch
    
    All other patches automatically rebased.
    
    1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.39&id=ab0bd172d6289310a05a0cd15e1432e828d386ae
    2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.39&id=6df680709d901346831ef8f221cc90a42062c526
    3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.39&id=5044e5f2511c9afdf9880d2bb6b9d37dfc345dac
    4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.39&id=e27948f329f7e02591ed1feb9a7710c2ccf89a83
    5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.39&id=ad2928e7f3f6120a0bd18aa1056b3b24068027c5
    6. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.39&id=2b55a985727833f37c39911f34096b3fdf2a367d
    7. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.39&id=90d4c487cd658b51212eb65ae804ab11af193672
    8. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.39&id=7e3ee25e8c7c7be1eacdfc6d9f5f0e550a2af241
    9. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.39&id=b20854ef6c4955be3310975a72f02d92cb01d6d4
    
    Build system: x86/64
    Build-tested: x86/64
    Run-tested: x86/64
    
    Co-authored-by: Hauke Mehrtens <hauke at hauke-m.de>
    Co-authored-by: Christian Marangi <ansuelsmth at gmail.com>
    Signed-off-by: John Audia <therealgraysky at proton.me>
    [ rebase bcm27xx and mediatek patches, refresh commit description ]
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
    [ minor fixup to bcm27xx patches, refresh commit description ]
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 include/kernel-6.1                                 |   4 +-
 ...Introduce-pre_enable_upstream_first-to-al.patch | 308 ---------------------
 ...dd-prepare_upstream_first-flag-to-drm_pan.patch |  39 +--
 ...2835-Set-base-to-0-give-expected-gpio-num.patch |   4 +-
 ...950-0111-MMC-added-alternative-MMC-driver.patch |   6 +-
 ...-pinctrl-bcm2835-Remove-gpiochip-on-error.patch |   2 +-
 ...ging-vchiq_arm-Add-36-bit-address-support.patch |  10 +-
 ...-vchiq_arm-Usa-a-DMA-pool-for-small-bulks.patch |   2 +-
 ...l-bcm2835-Only-return-non-GPIOs-to-inputs.patch |   4 +-
 ...anel-ilitek9881c-Add-prepare_upstream_fir.patch |   6 +-
 .../950-0439-nvmem-Use-NVMEM_DEVID_AUTO.patch      |  27 --
 ...oth-hci_sync-Add-fallback-bd-address-prop.patch |  14 +-
 ...ctrl-bcm2835-Workaround-for-edge-IRQ-loss.patch |   4 +-
 ...-refer-to-ARCH_BCMBCA-instead-of-ARCH_BCM.patch |  36 ---
 ...5301X-Relicense-Rafa-s-code-to-the-GPL-2..patch |   2 +-
 ...M5301X-Drop-clock-names-from-the-SPI-node.patch |  32 ---
 ...-dts-BCM5301X-fix-duplex-full-full-duplex.patch |  44 ---
 ...0-v6.3-10-UPSTREAM-mm-add-vma_has_recency.patch |   2 +-
 ...r-netdev-Recheck-NETDEV_LED_MODE_LINKUP-o.patch |  35 ---
 .../linux/generic/hack-6.1/204-module_strip.patch  |  12 +-
 .../780-usb-net-MeigLink_modem_support.patch       |   2 +-
 .../linux/generic/hack-6.1/902-debloat_proc.patch  |   2 +-
 ...e-stack-usage-in-jffs2_build_xattr_subsys.patch | 121 --------
 ...ge-add-knob-for-filtering-rx-tx-BPDU-pack.patch |   2 +-
 ...1-cpufreq-mediatek-Add-support-for-MT7988.patch |   6 +-
 ...iatek-correct-voltages-for-MT7622-and-MT7.patch |  53 ----
 ...com-reset-support-resetting-multiple-bits.patch |  59 ----
 ...CI-qcom-Add-support-for-IPQ8074-Gen3-port.patch |   2 +-
 ...re-disable-TRIM-on-Micron-MTFC4GACAJCN-1M.patch |   2 +-
 ...ore-disable-TRIM-on-Kingston-EMMC04G-M627.patch |   2 +-
 30 files changed, 65 insertions(+), 779 deletions(-)

diff --git a/include/kernel-6.1 b/include/kernel-6.1
index f844ef1c29..2efadcefc0 100644
--- a/include/kernel-6.1
+++ b/include/kernel-6.1
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.1 = .38
-LINUX_KERNEL_HASH-6.1.38 = f9a4f91b609f7d332a5f2be01ab86336fa00149fae6bdc19f16fa19f78802d43
\ No newline at end of file
+LINUX_VERSION-6.1 = .39
+LINUX_KERNEL_HASH-6.1.39 = 4cddee22fdf657138a06af653492f67cd3a4762c04a34725534bd200d99085b8
\ No newline at end of file
diff --git a/target/linux/bcm27xx/patches-6.1/950-0034-drm-bridge-Introduce-pre_enable_upstream_first-to-al.patch b/target/linux/bcm27xx/patches-6.1/950-0034-drm-bridge-Introduce-pre_enable_upstream_first-to-al.patch
deleted file mode 100644
index bab4ed9b90..0000000000
--- a/target/linux/bcm27xx/patches-6.1/950-0034-drm-bridge-Introduce-pre_enable_upstream_first-to-al.patch
+++ /dev/null
@@ -1,308 +0,0 @@
-From 5365030a003a6cb0c336202256341e4bc9d65d52 Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <dave.stevenson at raspberrypi.com>
-Date: Thu, 16 Dec 2021 15:25:35 +0000
-Subject: [PATCH] drm/bridge: Introduce pre_enable_upstream_first to
- alter bridge init order
-
-DSI sink devices typically want the DSI host powered up and configured
-before they are powered up. pre_enable is the place this would normally
-happen, but they are called in reverse order from panel/connector towards
-the encoder, which is the "wrong" order.
-
-Add a new flag pre_enable_upstream_first that any bridge can set
-to swap the order of pre_enable (and post_disable) for that and the
-immediately upstream bridge.
-Should the immediately upstream bridge also set the
-pre_enable_upstream_first flag, the bridge upstream of that will be called
-before either of those which requested pre_enable_upstream_first.
-
-eg:
-- Panel
-- Bridge 1
-- Bridge 2 pre_enable_upstream_first
-- Bridge 3
-- Bridge 4 pre_enable_upstream_first
-- Bridge 5 pre_enable_upstream_first
-- Bridge 6
-- Encoder
-Would result in pre_enable's being called as Panel, Bridge 1, Bridge 3,
-Bridge 2, Bridge 6, Bridge 5, Bridge 4, Encoder.
-
-Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
----
- drivers/gpu/drm/drm_bridge.c | 177 +++++++++++++++++++++++++----------
- include/drm/drm_bridge.h     |   8 ++
- 2 files changed, 137 insertions(+), 48 deletions(-)
-
---- a/drivers/gpu/drm/drm_bridge.c
-+++ b/drivers/gpu/drm/drm_bridge.c
-@@ -547,20 +547,15 @@ EXPORT_SYMBOL(drm_bridge_chain_disable);
-  * encoder chain, starting from the first bridge to the last. These are called
-  * after completing the encoder's prepare op.
-  *
-+ * If a bridge sets @pre_enable_upstream_first, then the @post_disable for that
-+ * bridge will be called before the previous one to reverse the @pre_enable
-+ * calling direction.
-+ *
-  * Note: the bridge passed should be the one closest to the encoder
-  */
- void drm_bridge_chain_post_disable(struct drm_bridge *bridge)
- {
--	struct drm_encoder *encoder;
--
--	if (!bridge)
--		return;
--
--	encoder = bridge->encoder;
--	list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) {
--		if (bridge->funcs->post_disable)
--			bridge->funcs->post_disable(bridge);
--	}
-+	drm_atomic_bridge_chain_post_disable(bridge, NULL);
- }
- EXPORT_SYMBOL(drm_bridge_chain_post_disable);
- 
-@@ -602,24 +597,14 @@ EXPORT_SYMBOL(drm_bridge_chain_mode_set)
-  * chain, starting from the last bridge to the first. These are called
-  * before calling the encoder's commit op.
-  *
-+ * If a bridge sets @pre_enable_upstream_first, then the @pre_enable for the
-+ * previous bridge will be called before @pre_enable of this bridge.
-+ *
-  * Note: the bridge passed should be the one closest to the encoder
-  */
- void drm_bridge_chain_pre_enable(struct drm_bridge *bridge)
- {
--	struct drm_encoder *encoder;
--	struct drm_bridge *iter;
--
--	if (!bridge)
--		return;
--
--	encoder = bridge->encoder;
--	list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) {
--		if (iter->funcs->pre_enable)
--			iter->funcs->pre_enable(iter);
--
--		if (iter == bridge)
--			break;
--	}
-+	drm_atomic_bridge_chain_pre_enable(bridge, NULL);
- }
- EXPORT_SYMBOL(drm_bridge_chain_pre_enable);
- 
-@@ -691,6 +676,25 @@ void drm_atomic_bridge_chain_disable(str
- }
- EXPORT_SYMBOL(drm_atomic_bridge_chain_disable);
- 
-+static void drm_atomic_bridge_call_post_disable(struct drm_bridge *bridge,
-+						struct drm_atomic_state *old_state)
-+{
-+	if (old_state && bridge->funcs->atomic_post_disable) {
-+		struct drm_bridge_state *old_bridge_state;
-+
-+		old_bridge_state =
-+			drm_atomic_get_old_bridge_state(old_state,
-+							bridge);
-+		if (WARN_ON(!old_bridge_state))
-+			return;
-+
-+		bridge->funcs->atomic_post_disable(bridge,
-+						   old_bridge_state);
-+	} else if (bridge->funcs->post_disable) {
-+		bridge->funcs->post_disable(bridge);
-+	}
-+}
-+
- /**
-  * drm_atomic_bridge_chain_post_disable - cleans up after disabling all bridges
-  *					  in the encoder chain
-@@ -701,6 +705,9 @@ EXPORT_SYMBOL(drm_atomic_bridge_chain_di
-  * &drm_bridge_funcs.post_disable) op for all the bridges in the encoder chain,
-  * starting from the first bridge to the last. These are called after completing
-  * &drm_encoder_helper_funcs.atomic_disable
-+ * If a bridge sets @pre_enable_upstream_first, then the @post_disable for that
-+ * bridge will be called before the previous one to reverse the @pre_enable
-+ * calling direction.
-  *
-  * Note: the bridge passed should be the one closest to the encoder
-  */
-@@ -708,30 +715,75 @@ void drm_atomic_bridge_chain_post_disabl
- 					  struct drm_atomic_state *old_state)
- {
- 	struct drm_encoder *encoder;
-+	struct drm_bridge *next, *limit;
- 
- 	if (!bridge)
- 		return;
- 
- 	encoder = bridge->encoder;
-+
- 	list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) {
--		if (bridge->funcs->atomic_post_disable) {
--			struct drm_bridge_state *old_bridge_state;
-+		limit = NULL;
- 
--			old_bridge_state =
--				drm_atomic_get_old_bridge_state(old_state,
--								bridge);
--			if (WARN_ON(!old_bridge_state))
--				return;
-+		if (!list_is_last(&bridge->chain_node, &encoder->bridge_chain)) {
-+			next = list_next_entry(bridge, chain_node);
- 
--			bridge->funcs->atomic_post_disable(bridge,
--							   old_bridge_state);
--		} else if (bridge->funcs->post_disable) {
--			bridge->funcs->post_disable(bridge);
-+			if (next->pre_enable_upstream_first) {
-+				/* Downstream bridge had requested that upstream
-+				 * was enabled first, so disabled last
-+				 */
-+				limit = next;
-+
-+				/* Find the next bridge that has NOT requested
-+				 * upstream to be enabled first / disabled last
-+				 */
-+				list_for_each_entry_from(next, &encoder->bridge_chain,
-+							 chain_node) {
-+					if (next->pre_enable_upstream_first) {
-+						next = list_prev_entry(next, chain_node);
-+						limit = next;
-+						break;
-+					}
-+				}
-+
-+				/* Call these bridges in reverse order */
-+				list_for_each_entry_from_reverse(next, &encoder->bridge_chain,
-+								 chain_node) {
-+					if (next == bridge)
-+						break;
-+
-+					drm_atomic_bridge_call_post_disable(next,
-+									    old_state);
-+				}
-+			}
- 		}
-+
-+		drm_atomic_bridge_call_post_disable(bridge, old_state);
-+
-+		if (limit)
-+			bridge = limit;
- 	}
- }
- EXPORT_SYMBOL(drm_atomic_bridge_chain_post_disable);
- 
-+static void drm_atomic_bridge_call_pre_enable(struct drm_bridge *bridge,
-+					      struct drm_atomic_state *old_state)
-+{
-+	if (old_state && bridge->funcs->atomic_pre_enable) {
-+		struct drm_bridge_state *old_bridge_state;
-+
-+		old_bridge_state =
-+			drm_atomic_get_old_bridge_state(old_state,
-+							bridge);
-+		if (WARN_ON(!old_bridge_state))
-+			return;
-+
-+		bridge->funcs->atomic_pre_enable(bridge, old_bridge_state);
-+	} else if (bridge->funcs->pre_enable) {
-+		bridge->funcs->pre_enable(bridge);
-+	}
-+}
-+
- /**
-  * drm_atomic_bridge_chain_pre_enable - prepares for enabling all bridges in
-  *					the encoder chain
-@@ -743,33 +795,62 @@ EXPORT_SYMBOL(drm_atomic_bridge_chain_po
-  * starting from the last bridge to the first. These are called before calling
-  * &drm_encoder_helper_funcs.atomic_enable
-  *
-+ * If a bridge sets @pre_enable_upstream_first, then the pre_enable for the
-+ * upstream bridge will be called before pre_enable of this bridge.
-+ *
-  * Note: the bridge passed should be the one closest to the encoder
-  */
- void drm_atomic_bridge_chain_pre_enable(struct drm_bridge *bridge,
- 					struct drm_atomic_state *old_state)
- {
- 	struct drm_encoder *encoder;
--	struct drm_bridge *iter;
-+	struct drm_bridge *iter, *next, *limit;
- 
- 	if (!bridge)
- 		return;
- 
- 	encoder = bridge->encoder;
--	list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) {
--		if (iter->funcs->atomic_pre_enable) {
--			struct drm_bridge_state *old_bridge_state;
- 
--			old_bridge_state =
--				drm_atomic_get_old_bridge_state(old_state,
--								iter);
--			if (WARN_ON(!old_bridge_state))
--				return;
-+	list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) {
-+		if (iter->pre_enable_upstream_first) {
-+			next = iter;
-+			limit = bridge;
-+			list_for_each_entry_from_reverse(next,
-+							 &encoder->bridge_chain,
-+							 chain_node) {
-+				if (next == bridge)
-+					break;
-+
-+				if (!next->pre_enable_upstream_first) {
-+					/* Found first bridge that does NOT
-+					 * request upstream to be enabled first
-+					 */
-+					limit = list_prev_entry(next, chain_node);
-+					break;
-+				}
-+			}
-+
-+			list_for_each_entry_from(next, &encoder->bridge_chain, chain_node) {
-+				/* Call requested upstream bridge pre_enable
-+				 * in order.
-+				 */
-+				if (next == iter)
-+					/* At the first bridgge to request upstream
-+					 * bridges called first.
-+					 */
-+					break;
- 
--			iter->funcs->atomic_pre_enable(iter, old_bridge_state);
--		} else if (iter->funcs->pre_enable) {
--			iter->funcs->pre_enable(iter);
-+				drm_atomic_bridge_call_pre_enable(next, old_state);
-+			}
- 		}
- 
-+		drm_atomic_bridge_call_pre_enable(iter, old_state);
-+
-+		if (iter->pre_enable_upstream_first)
-+			/* Jump all bridges that we have already pre_enabled
-+			 */
-+			iter = limit;
-+
- 		if (iter == bridge)
- 			break;
- 	}
---- a/include/drm/drm_bridge.h
-+++ b/include/drm/drm_bridge.h
-@@ -769,6 +769,14 @@ struct drm_bridge {
- 	 */
- 	bool interlace_allowed;
- 	/**
-+	 * @pre_enable_upstream_first: The bridge requires that the upstream
-+	 * bridge @pre_enable function is called before its @pre_enable,
-+	 * and conversely for post_disable. This is most frequently a
-+	 * requirement for DSI devices which need the host to be initialised
-+	 * before the peripheral.
-+	 */
-+	bool pre_enable_upstream_first;
-+	/**
- 	 * @ddc: Associated I2C adapter for DDC access, if any.
- 	 */
- 	struct i2c_adapter *ddc;
diff --git a/target/linux/bcm27xx/patches-6.1/950-0035-drm-panel-Add-prepare_upstream_first-flag-to-drm_pan.patch b/target/linux/bcm27xx/patches-6.1/950-0035-drm-panel-Add-prepare_upstream_first-flag-to-drm_pan.patch
index 6ca65ab3f3..1e54e61301 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0035-drm-panel-Add-prepare_upstream_first-flag-to-drm_pan.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0035-drm-panel-Add-prepare_upstream_first-flag-to-drm_pan.patch
@@ -1,32 +1,33 @@
-From 9ac3eedd8cda7d5f2429edc0bdba137c35e07157 Mon Sep 17 00:00:00 2001
+From 5ea6b17027810ffbdb5bea7d0a2b1d312dd1021c Mon Sep 17 00:00:00 2001
 From: Dave Stevenson <dave.stevenson at raspberrypi.com>
-Date: Wed, 23 Feb 2022 15:36:56 +0000
-Subject: [PATCH] drm/panel: Add prepare_upstream_first flag to
- drm_panel
+Date: Mon, 5 Dec 2022 17:33:27 +0000
+Subject: [PATCH] drm/panel: Add prepare_prev_first flag to drm_panel
 
-Mapping to the drm_bridge flag pre_enable_upstream_first,
-add a new flag prepare_upstream_first to drm_panel to allow
+Mapping to the drm_bridge flag pre_enable_prev_first,
+add a new flag prepare_prev_first to drm_panel to allow
 the panel driver to request that the upstream bridge should
 be pre_enabled before the panel prepare.
 
 Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
+Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
+Link: https://lore.kernel.org/r/20221205173328.1395350-6-dave.stevenson@raspberrypi.com
+Signed-off-by: Maxime Ripard <maxime at cerno.tech>
 ---
- drivers/gpu/drm/bridge/panel.c |  3 +++
+ drivers/gpu/drm/bridge/panel.c |  2 ++
  include/drm/drm_panel.h        | 10 ++++++++++
- 2 files changed, 13 insertions(+)
+ 2 files changed, 12 insertions(+)
 
 --- a/drivers/gpu/drm/bridge/panel.c
 +++ b/drivers/gpu/drm/bridge/panel.c
-@@ -258,6 +258,9 @@ struct drm_bridge *drm_panel_bridge_add_
- 	panel_bridge->bridge.ops = DRM_BRIDGE_OP_MODES;
- 	panel_bridge->bridge.type = connector_type;
+@@ -368,6 +368,8 @@ struct drm_bridge *devm_drm_panel_bridge
+ 		devres_free(ptr);
+ 	}
  
-+	panel_bridge->bridge.pre_enable_upstream_first =
-+						panel->prepare_upstream_first;
++	bridge->pre_enable_prev_first = panel->prepare_prev_first;
 +
- 	drm_bridge_add(&panel_bridge->bridge);
- 
- 	return &panel_bridge->bridge;
+ 	return bridge;
+ }
+ EXPORT_SYMBOL(devm_drm_panel_bridge_add_typed);
 --- a/include/drm/drm_panel.h
 +++ b/include/drm/drm_panel.h
 @@ -196,6 +196,16 @@ struct drm_panel {
@@ -35,14 +36,14 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	struct list_head list;
 +
 +	/**
-+	 * @prepare_upstream_first:
++	 * @prepare_prev_first:
 +	 *
-+	 * The upstream controller should be prepared first, before the prepare
++	 * The previous controller should be prepared first, before the prepare
 +	 * for the panel is called. This is largely required for DSI panels
 +	 * where the DSI host controller should be initialised to LP-11 before
 +	 * the panel is powered up.
 +	 */
-+	bool prepare_upstream_first;
++	bool prepare_prev_first;
  };
  
  void drm_panel_init(struct drm_panel *panel, struct device *dev,
diff --git a/target/linux/bcm27xx/patches-6.1/950-0104-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch b/target/linux/bcm27xx/patches-6.1/950-0104-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch
index b988136486..5ef7bf624b 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0104-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0104-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch
@@ -20,7 +20,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 
 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
 +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
-@@ -393,7 +393,7 @@ static const struct gpio_chip bcm2835_gp
+@@ -391,7 +391,7 @@ static const struct gpio_chip bcm2835_gp
  	.get = bcm2835_gpio_get,
  	.set = bcm2835_gpio_set,
  	.set_config = gpiochip_generic_config,
@@ -29,7 +29,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	.ngpio = BCM2835_NUM_GPIOS,
  	.can_sleep = false,
  	.of_gpio_ranges_fallback = bcm2835_of_gpio_ranges_fallback,
-@@ -410,7 +410,7 @@ static const struct gpio_chip bcm2711_gp
+@@ -408,7 +408,7 @@ static const struct gpio_chip bcm2711_gp
  	.get = bcm2835_gpio_get,
  	.set = bcm2835_gpio_set,
  	.set_config = gpiochip_generic_config,
diff --git a/target/linux/bcm27xx/patches-6.1/950-0111-MMC-added-alternative-MMC-driver.patch b/target/linux/bcm27xx/patches-6.1/950-0111-MMC-added-alternative-MMC-driver.patch
index 0e14805d5b..ace12078da 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0111-MMC-added-alternative-MMC-driver.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0111-MMC-added-alternative-MMC-driver.patch
@@ -325,7 +325,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  }
 --- a/drivers/mmc/core/quirks.h
 +++ b/drivers/mmc/core/quirks.h
-@@ -106,6 +106,14 @@ static const struct mmc_fixup __maybe_un
+@@ -129,6 +129,14 @@ static const struct mmc_fixup __maybe_un
  	MMC_FIXUP(CID_NAME_ANY, CID_MANFID_SANDISK_SD, 0x5344, add_quirk_sd,
  		  MMC_QUIRK_BROKEN_SD_DISCARD),
  
@@ -2007,9 +2007,9 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  		sdhci_dumpregs(host);
 --- a/include/linux/mmc/card.h
 +++ b/include/linux/mmc/card.h
-@@ -295,6 +295,8 @@ struct mmc_card {
- #define MMC_QUIRK_BROKEN_HPI	(1<<13)		/* Disable broken HPI support */
+@@ -296,6 +296,8 @@ struct mmc_card {
  #define MMC_QUIRK_BROKEN_SD_DISCARD	(1<<14)	/* Disable broken SD discard support */
+ #define MMC_QUIRK_BROKEN_SD_CACHE	(1<<15)	/* Disable broken SD cache support */
  
 +#define MMC_QUIRK_ERASE_BROKEN	(1<<31)		/* Skip erase */
 +
diff --git a/target/linux/bcm27xx/patches-6.1/950-0218-pinctrl-bcm2835-Remove-gpiochip-on-error.patch b/target/linux/bcm27xx/patches-6.1/950-0218-pinctrl-bcm2835-Remove-gpiochip-on-error.patch
index 1c4dd22402..d44742982c 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0218-pinctrl-bcm2835-Remove-gpiochip-on-error.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0218-pinctrl-bcm2835-Remove-gpiochip-on-error.patch
@@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
 
 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
 +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
-@@ -1357,7 +1357,7 @@ static int bcm2835_pinctrl_probe(struct
+@@ -1355,7 +1355,7 @@ static int bcm2835_pinctrl_probe(struct
  	girq->default_type = IRQ_TYPE_NONE;
  	girq->handler = handle_level_irq;
  
diff --git a/target/linux/bcm27xx/patches-6.1/950-0328-staging-vchiq_arm-Add-36-bit-address-support.patch b/target/linux/bcm27xx/patches-6.1/950-0328-staging-vchiq_arm-Add-36-bit-address-support.patch
index 5ecd2d357d..a9e9991d1a 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0328-staging-vchiq_arm-Add-36-bit-address-support.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0328-staging-vchiq_arm-Add-36-bit-address-support.patch
@@ -158,14 +158,14 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	pagelistinfo->scatterlist_mapped = 0;
  
 @@ -468,6 +515,7 @@ free_pagelist(struct vchiq_instance *ins
- int vchiq_platform_init(struct platform_device *pdev, struct vchiq_state *state)
+ static int vchiq_platform_init(struct platform_device *pdev, struct vchiq_state *state)
  {
  	struct device *dev = &pdev->dev;
 +	struct device *dma_dev = NULL;
  	struct vchiq_drvdata *drvdata = platform_get_drvdata(pdev);
  	struct rpi_firmware *fw = drvdata->fw;
  	struct vchiq_slot_zero *vchiq_slot_zero;
-@@ -489,6 +537,24 @@ int vchiq_platform_init(struct platform_
+@@ -489,6 +537,24 @@ static int vchiq_platform_init(struct pl
  	g_cache_line_size = drvdata->cache_line_size;
  	g_fragments_size = 2 * g_cache_line_size;
  
@@ -190,7 +190,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	/* Allocate space for the channels in coherent memory */
  	slot_mem_size = PAGE_ALIGN(TOTAL_SLOTS * VCHIQ_SLOT_SIZE);
  	frag_mem_size = PAGE_ALIGN(g_fragments_size * MAX_FRAGMENTS);
-@@ -501,13 +567,14 @@ int vchiq_platform_init(struct platform_
+@@ -501,13 +567,14 @@ static int vchiq_platform_init(struct pl
  	}
  
  	WARN_ON(((unsigned long)slot_mem & (PAGE_SIZE - 1)) != 0);
@@ -206,7 +206,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	vchiq_slot_zero->platform_data[VCHIQ_PLATFORM_FRAGMENTS_COUNT_IDX] =
  		MAX_FRAGMENTS;
  
-@@ -541,7 +608,6 @@ int vchiq_platform_init(struct platform_
+@@ -541,7 +608,6 @@ static int vchiq_platform_init(struct pl
  	}
  
  	/* Send the base address of the slots to VideoCore */
@@ -214,7 +214,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	err = rpi_firmware_property(fw, RPI_FIRMWARE_VCHIQ_INIT,
  				    &channelbase, sizeof(channelbase));
  	if (err || channelbase) {
-@@ -549,6 +615,8 @@ int vchiq_platform_init(struct platform_
+@@ -549,6 +615,8 @@ static int vchiq_platform_init(struct pl
  		return err ? : -ENXIO;
  	}
  
diff --git a/target/linux/bcm27xx/patches-6.1/950-0330-staging-vchiq_arm-Usa-a-DMA-pool-for-small-bulks.patch b/target/linux/bcm27xx/patches-6.1/950-0330-staging-vchiq_arm-Usa-a-DMA-pool-for-small-bulks.patch
index b4f99d04ca..0f0f247480 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0330-staging-vchiq_arm-Usa-a-DMA-pool-for-small-bulks.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0330-staging-vchiq_arm-Usa-a-DMA-pool-for-small-bulks.patch
@@ -102,7 +102,7 @@ Signed-off-by: Oliver Gjoneski <ogjoneski at gmail.com>
  	pagelistinfo->dma_dir =  (type == PAGELIST_WRITE) ?
  				  DMA_TO_DEVICE : DMA_FROM_DEVICE;
  	pagelistinfo->num_pages = num_pages;
-@@ -616,6 +634,13 @@ int vchiq_platform_init(struct platform_
+@@ -616,6 +634,13 @@ static int vchiq_platform_init(struct pl
  	}
  
  	g_dma_dev = dma_dev ?: dev;
diff --git a/target/linux/bcm27xx/patches-6.1/950-0402-pinctrl-bcm2835-Only-return-non-GPIOs-to-inputs.patch b/target/linux/bcm27xx/patches-6.1/950-0402-pinctrl-bcm2835-Only-return-non-GPIOs-to-inputs.patch
index 449406193a..bd199b76e2 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0402-pinctrl-bcm2835-Only-return-non-GPIOs-to-inputs.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0402-pinctrl-bcm2835-Only-return-non-GPIOs-to-inputs.patch
@@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 
 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
 +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
-@@ -928,9 +928,12 @@ static int bcm2835_pmx_free(struct pinct
+@@ -926,9 +926,12 @@ static int bcm2835_pmx_free(struct pinct
  		unsigned offset)
  {
  	struct bcm2835_pinctrl *pc = pinctrl_dev_get_drvdata(pctldev);
@@ -28,7 +28,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  	return 0;
  }
  
-@@ -972,10 +975,7 @@ static void bcm2835_pmx_gpio_disable_fre
+@@ -970,10 +973,7 @@ static void bcm2835_pmx_gpio_disable_fre
  		struct pinctrl_gpio_range *range,
  		unsigned offset)
  {
diff --git a/target/linux/bcm27xx/patches-6.1/950-0404-drm-panel-panel-ilitek9881c-Add-prepare_upstream_fir.patch b/target/linux/bcm27xx/patches-6.1/950-0404-drm-panel-panel-ilitek9881c-Add-prepare_upstream_fir.patch
index 53373f6b5c..ce66c7d2ee 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0404-drm-panel-panel-ilitek9881c-Add-prepare_upstream_fir.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0404-drm-panel-panel-ilitek9881c-Add-prepare_upstream_fir.patch
@@ -2,12 +2,12 @@ From 942d55434af46aebe8f5508995807253a6b235b3 Mon Sep 17 00:00:00 2001
 From: Dave Stevenson <dave.stevenson at raspberrypi.com>
 Date: Thu, 31 Mar 2022 12:05:04 +0100
 Subject: [PATCH] drm/panel: panel-ilitek9881c: Add
- prepare_upstream_first flag
+ prepare_prev_first flag
 
 The panel sends MIPI DCS commands during prepare and is expecting
 the bus to remain in LP-11 state in-between.
 
-Set the prepare_upstream_first flag so that the upstream DSI host
+Set the prepare_prev_first flag so that the upstream DSI host
 is prepared / pre_enabled first, and therefore the bus is in a
 defined state.
 
@@ -22,7 +22,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	ctx->dsi = dsi;
  	ctx->desc = of_device_get_match_data(&dsi->dev);
  
-+	ctx->panel.prepare_upstream_first = true;
++	ctx->panel.prepare_prev_first = true;
  	drm_panel_init(&ctx->panel, &dsi->dev, &ili9881c_funcs,
  		       DRM_MODE_CONNECTOR_DSI);
  
diff --git a/target/linux/bcm27xx/patches-6.1/950-0439-nvmem-Use-NVMEM_DEVID_AUTO.patch b/target/linux/bcm27xx/patches-6.1/950-0439-nvmem-Use-NVMEM_DEVID_AUTO.patch
deleted file mode 100644
index 1758d3e162..0000000000
--- a/target/linux/bcm27xx/patches-6.1/950-0439-nvmem-Use-NVMEM_DEVID_AUTO.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 10fcafcad54e1d055b6b67881a5b52b95dbd2da3 Mon Sep 17 00:00:00 2001
-From: Phil Elwell <phil at raspberrypi.com>
-Date: Fri, 7 Oct 2022 10:38:31 +0100
-Subject: [PATCH] nvmem: Use NVMEM_DEVID_AUTO
-
-It is reasonable to declare multiple nvmem blocks. Unless a unique 'id'
-is passed in for each block there may be name clashes.
-
-Avoid this by using the magic token NVMEM_DEVID_AUTO.
-
-Fixes: 5a3fa75a4d9cb ("nvmem: Add driver to expose reserved memory as nvmem")
-
-Signed-off-by: Phil Elwell <phil at raspberrypi.com>
----
- drivers/nvmem/rmem.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/nvmem/rmem.c
-+++ b/drivers/nvmem/rmem.c
-@@ -71,6 +71,7 @@ static int rmem_probe(struct platform_de
- 	config.dev = dev;
- 	config.priv = priv;
- 	config.name = "rmem";
-+	config.id = NVMEM_DEVID_AUTO;
- 	config.size = mem->size;
- 	config.reg_read = rmem_read;
- 
diff --git a/target/linux/bcm27xx/patches-6.1/950-0699-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch b/target/linux/bcm27xx/patches-6.1/950-0699-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch
index 6fd82ce011..fd84781729 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0699-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0699-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch
@@ -31,11 +31,11 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 @@ -4568,7 +4569,9 @@ static int hci_dev_setup_sync(struct hci
  
  	if (!ret) {
- 		if (test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks)) {
--			if (!bacmp(&hdev->public_addr, BDADDR_ANY))
-+			if (!bacmp(&hdev->public_addr, BDADDR_ANY) &&
-+			    (invalid_bdaddr ||
-+			     !fwnode_property_present(fwnode, "fallback-bd-address")))
- 				hci_dev_get_bd_addr_from_property(hdev);
+ 		if (test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks) &&
+-		    !bacmp(&hdev->public_addr, BDADDR_ANY))
++		    !bacmp(&hdev->public_addr, BDADDR_ANY) &&
++		    (invalid_bdaddr ||
++		     !fwnode_property_present(fwnode, "fallback-bd-address")))
+ 			hci_dev_get_bd_addr_from_property(hdev);
  
- 			if (bacmp(&hdev->public_addr, BDADDR_ANY) &&
+ 		if ((invalid_bdaddr ||
diff --git a/target/linux/bcm27xx/patches-6.1/950-0704-pinctrl-bcm2835-Workaround-for-edge-IRQ-loss.patch b/target/linux/bcm27xx/patches-6.1/950-0704-pinctrl-bcm2835-Workaround-for-edge-IRQ-loss.patch
index 65345f480e..16028b897c 100644
--- a/target/linux/bcm27xx/patches-6.1/950-0704-pinctrl-bcm2835-Workaround-for-edge-IRQ-loss.patch
+++ b/target/linux/bcm27xx/patches-6.1/950-0704-pinctrl-bcm2835-Workaround-for-edge-IRQ-loss.patch
@@ -19,7 +19,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 
 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
 +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
-@@ -422,15 +422,32 @@ static void bcm2835_gpio_irq_handle_bank
+@@ -420,15 +420,32 @@ static void bcm2835_gpio_irq_handle_bank
  	unsigned long events;
  	unsigned offset;
  	unsigned gpio;
@@ -52,7 +52,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
  }
  
  static void bcm2835_gpio_irq_handler(struct irq_desc *desc)
-@@ -670,11 +687,7 @@ static int bcm2835_gpio_irq_set_type(str
+@@ -668,11 +685,7 @@ static int bcm2835_gpio_irq_set_type(str
  
  static void bcm2835_gpio_irq_ack(struct irq_data *data)
  {
diff --git a/target/linux/bcm4908/patches-6.1/040-mtd-parsers-refer-to-ARCH_BCMBCA-instead-of-ARCH_BCM.patch b/target/linux/bcm4908/patches-6.1/040-mtd-parsers-refer-to-ARCH_BCMBCA-instead-of-ARCH_BCM.patch
deleted file mode 100644
index ff56aacc7c..0000000000
--- a/target/linux/bcm4908/patches-6.1/040-mtd-parsers-refer-to-ARCH_BCMBCA-instead-of-ARCH_BCM.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 085679b15b5af65f9610f619afde41da0f966194 Mon Sep 17 00:00:00 2001
-From: Lukas Bulwahn <lukas.bulwahn at gmail.com>
-Date: Wed, 16 Nov 2022 13:49:32 +0100
-Subject: [PATCH] mtd: parsers: refer to ARCH_BCMBCA instead of ARCH_BCM4908
-
-Commit dd5c672d7ca9 ("arm64: bcmbca: Merge ARCH_BCM4908 to ARCH_BCMBCA")
-removes config ARCH_BCM4908 as config ARCH_BCMBCA has the same intent.
-
-Probably due to concurrent development, commit 002181f5b150 ("mtd: parsers:
-add Broadcom's U-Boot parser") introduces 'Broadcom's U-Boot partition
-parser' that depends on ARCH_BCM4908, but this use was not visible during
-the config refactoring from the commit above. Hence, these two changes
-create a reference to a non-existing config symbol.
-
-Adjust the MTD_BRCM_U_BOOT definition to refer to ARCH_BCMBCA instead of
-ARCH_BCM4908 to remove the reference to the non-existing config symbol
-ARCH_BCM4908.
-
-Signed-off-by: Lukas Bulwahn <lukas.bulwahn at gmail.com>
-Signed-off-by: Miquel Raynal <miquel.raynal at bootlin.com>
-Link: https://lore.kernel.org/linux-mtd/20221116124932.4748-1-lukas.bulwahn@gmail.com
----
- drivers/mtd/parsers/Kconfig | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/mtd/parsers/Kconfig
-+++ b/drivers/mtd/parsers/Kconfig
-@@ -22,7 +22,7 @@ config MTD_BCM63XX_PARTS
- 
- config MTD_BRCM_U_BOOT
- 	tristate "Broadcom's U-Boot partition parser"
--	depends on ARCH_BCM4908 || COMPILE_TEST
-+	depends on ARCH_BCMBCA || COMPILE_TEST
- 	help
- 	  Broadcom uses a custom way of storing U-Boot environment variables.
- 	  They are placed inside U-Boot partition itself at unspecified offset.
diff --git a/target/linux/bcm53xx/patches-6.1/031-v6.5-0001-ARM-dts-BCM5301X-Relicense-Rafa-s-code-to-the-GPL-2..patch b/target/linux/bcm53xx/patches-6.1/031-v6.5-0001-ARM-dts-BCM5301X-Relicense-Rafa-s-code-to-the-GPL-2..patch
index 43a9d0aa1b..4744e6d5b1 100644
--- a/target/linux/bcm53xx/patches-6.1/031-v6.5-0001-ARM-dts-BCM5301X-Relicense-Rafa-s-code-to-the-GPL-2..patch
+++ b/target/linux/bcm53xx/patches-6.1/031-v6.5-0001-ARM-dts-BCM5301X-Relicense-Rafa-s-code-to-the-GPL-2..patch
@@ -460,7 +460,7 @@ Signed-off-by: Florian Fainelli <f.fainelli at gmail.com>
  		};
  	};
  
-@@ -558,24 +390,4 @@
+@@ -557,24 +389,4 @@
  			};
  		};
  	};
diff --git a/target/linux/bcm53xx/patches-6.1/031-v6.5-0003-ARM-dts-BCM5301X-Drop-clock-names-from-the-SPI-node.patch b/target/linux/bcm53xx/patches-6.1/031-v6.5-0003-ARM-dts-BCM5301X-Drop-clock-names-from-the-SPI-node.patch
deleted file mode 100644
index 4065db8366..0000000000
--- a/target/linux/bcm53xx/patches-6.1/031-v6.5-0003-ARM-dts-BCM5301X-Drop-clock-names-from-the-SPI-node.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From d3c8e2c5757153bbfad70019ec1decbca86f3def Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal at milecki.pl>
-Date: Wed, 3 May 2023 14:28:30 +0200
-Subject: [PATCH] ARM: dts: BCM5301X: Drop "clock-names" from the SPI node
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-There is no such property in the SPI controller binding documentation.
-Also Linux driver doesn't look for it.
-
-This fixes:
-arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: spi at 18029200: Unevaluated properties are not allowed ('clock-names' was unexpected)
-        From schema: Documentation/devicetree/bindings/spi/brcm,spi-bcm-qspi.yaml
-
-Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
-Link: https://lore.kernel.org/r/20230503122830.3200-1-zajec5@gmail.com
-Signed-off-by: Florian Fainelli <f.fainelli at gmail.com>
----
- arch/arm/boot/dts/bcm5301x.dtsi | 1 -
- 1 file changed, 1 deletion(-)
-
---- a/arch/arm/boot/dts/bcm5301x.dtsi
-+++ b/arch/arm/boot/dts/bcm5301x.dtsi
-@@ -335,7 +335,6 @@
- 				  "spi_lr_session_done",
- 				  "spi_lr_overread";
- 		clocks = <&iprocmed>;
--		clock-names = "iprocmed";
- 		num-cs = <2>;
- 		#address-cells = <1>;
- 		#size-cells = <0>;
diff --git a/target/linux/bcm53xx/patches-6.1/031-v6.5-0015-ARM-dts-BCM5301X-fix-duplex-full-full-duplex.patch b/target/linux/bcm53xx/patches-6.1/031-v6.5-0015-ARM-dts-BCM5301X-fix-duplex-full-full-duplex.patch
deleted file mode 100644
index 805dcf54eb..0000000000
--- a/target/linux/bcm53xx/patches-6.1/031-v6.5-0015-ARM-dts-BCM5301X-fix-duplex-full-full-duplex.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From fd274b733bfdde3ca72f0fa2a37f032f3a8c402c Mon Sep 17 00:00:00 2001
-From: Christian Lamparter <chunkeey at gmail.com>
-Date: Thu, 8 Jun 2023 17:36:29 +0200
-Subject: [PATCH] ARM: dts: BCM5301X: fix duplex-full => full-duplex
-
-this typo was found by the dtbs_check
-| ports:port at 5:fixed-link: 'oneOf' conditional failed,
-|  {'speed': [[1000]], 'duplex-full': True} is not of type 'array'
-| 'duplex-full' does not match any of the regexes: 'pinctrl-[0-]..."
-
-this should have been full-duplex;
-
-Fixes: 935327a73553 ("ARM: dts: BCM5301X: Add DT for Meraki MR26")
-Fixes: ec88a9c344d9 ("ARM: BCM5301X: Add DT for Meraki MR32")
-Signed-off-by: Christian Lamparter <chunkeey at gmail.com>
-Link: https://lore.kernel.org/r/50522f45566951a9eabd22820647924cc6b4a264.1686238550.git.chunkeey@gmail.com
-Signed-off-by: Florian Fainelli <florian.fainelli at broadcom.com>
----
- arch/arm/boot/dts/bcm53015-meraki-mr26.dts | 2 +-
- arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
---- a/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
-+++ b/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
-@@ -121,7 +121,7 @@
- 
- 			fixed-link {
- 				speed = <1000>;
--				duplex-full;
-+				full-duplex;
- 			};
- 		};
- 	};
---- a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
-+++ b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
-@@ -182,7 +182,7 @@
- 
- 			fixed-link {
- 				speed = <1000>;
--				duplex-full;
-+				full-duplex;
- 			};
- 		};
- 	};
diff --git a/target/linux/generic/backport-6.1/020-v6.3-10-UPSTREAM-mm-add-vma_has_recency.patch b/target/linux/generic/backport-6.1/020-v6.3-10-UPSTREAM-mm-add-vma_has_recency.patch
index 6907862905..8fd5564d00 100644
--- a/target/linux/generic/backport-6.1/020-v6.3-10-UPSTREAM-mm-add-vma_has_recency.patch
+++ b/target/linux/generic/backport-6.1/020-v6.3-10-UPSTREAM-mm-add-vma_has_recency.patch
@@ -87,7 +87,7 @@ Signed-off-by: T.J. Mercier <tjmercier at google.com>
  					mark_page_accessed(page);
  			}
  			rss[mm_counter(page)]--;
-@@ -5182,8 +5181,8 @@ static inline void mm_account_fault(stru
+@@ -5189,8 +5188,8 @@ static inline void mm_account_fault(stru
  #ifdef CONFIG_LRU_GEN
  static void lru_gen_enter_fault(struct vm_area_struct *vma)
  {
diff --git a/target/linux/generic/backport-6.1/803-v6.5-01-leds-trigger-netdev-Recheck-NETDEV_LED_MODE_LINKUP-o.patch b/target/linux/generic/backport-6.1/803-v6.5-01-leds-trigger-netdev-Recheck-NETDEV_LED_MODE_LINKUP-o.patch
deleted file mode 100644
index 3385023168..0000000000
--- a/target/linux/generic/backport-6.1/803-v6.5-01-leds-trigger-netdev-Recheck-NETDEV_LED_MODE_LINKUP-o.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From cee4bd16c3195a701be683f7da9e88c6e11acb73 Mon Sep 17 00:00:00 2001
-From: Christian Marangi <ansuelsmth at gmail.com>
-Date: Wed, 19 Apr 2023 23:07:39 +0200
-Subject: [PATCH 1/5] leds: trigger: netdev: Recheck NETDEV_LED_MODE_LINKUP on
- dev rename
-
-Dev can be renamed also while up for supported device. We currently
-wrongly clear the NETDEV_LED_MODE_LINKUP flag on NETDEV_CHANGENAME
-event.
-
-Fix this by rechecking if the carrier is ok on NETDEV_CHANGENAME and
-correctly set the NETDEV_LED_MODE_LINKUP bit.
-
-Fixes: 5f820ed52371 ("leds: trigger: netdev: fix handling on interface rename")
-Cc: stable at vger.kernel.org # v5.5+
-Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
-Reviewed-by: Andrew Lunn <andrew at lunn.ch>
-Signed-off-by: Lee Jones <lee at kernel.org>
-Link: https://lore.kernel.org/r/20230419210743.3594-2-ansuelsmth@gmail.com
----
- drivers/leds/trigger/ledtrig-netdev.c | 3 +++
- 1 file changed, 3 insertions(+)
-
---- a/drivers/leds/trigger/ledtrig-netdev.c
-+++ b/drivers/leds/trigger/ledtrig-netdev.c
-@@ -318,6 +318,9 @@ static int netdev_trig_notify(struct not
- 	clear_bit(NETDEV_LED_MODE_LINKUP, &trigger_data->mode);
- 	switch (evt) {
- 	case NETDEV_CHANGENAME:
-+		if (netif_carrier_ok(dev))
-+			set_bit(NETDEV_LED_MODE_LINKUP, &trigger_data->mode);
-+		fallthrough;
- 	case NETDEV_REGISTER:
- 		if (trigger_data->net_dev)
- 			dev_put(trigger_data->net_dev);
diff --git a/target/linux/generic/hack-6.1/204-module_strip.patch b/target/linux/generic/hack-6.1/204-module_strip.patch
index f0949d32fd..71ee62ece8 100644
--- a/target/linux/generic/hack-6.1/204-module_strip.patch
+++ b/target/linux/generic/hack-6.1/204-module_strip.patch
@@ -141,7 +141,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
 --- a/scripts/mod/modpost.c
 +++ b/scripts/mod/modpost.c
-@@ -1817,7 +1817,9 @@ static void read_symbols(const char *mod
+@@ -1781,7 +1781,9 @@ static void read_symbols(const char *mod
  		symname = remove_dot(info.strtab + sym->st_name);
  
  		handle_symbol(mod, &info, sym, symname);
@@ -151,7 +151,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	}
  
  	for (sym = info.symtab_start; sym < info.symtab_stop; sym++) {
-@@ -1980,8 +1982,10 @@ static void add_header(struct buffer *b,
+@@ -1944,8 +1946,10 @@ static void add_header(struct buffer *b,
  	buf_printf(b, "BUILD_SALT;\n");
  	buf_printf(b, "BUILD_LTO_INFO;\n");
  	buf_printf(b, "\n");
@@ -162,7 +162,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	buf_printf(b, "\n");
  	buf_printf(b, "__visible struct module __this_module\n");
  	buf_printf(b, "__section(\".gnu.linkonce.this_module\") = {\n");
-@@ -1995,8 +1999,10 @@ static void add_header(struct buffer *b,
+@@ -1959,8 +1963,10 @@ static void add_header(struct buffer *b,
  	buf_printf(b, "\t.arch = MODULE_ARCH_INIT,\n");
  	buf_printf(b, "};\n");
  
@@ -173,7 +173,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  	buf_printf(b,
  		   "\n"
-@@ -2004,8 +2010,10 @@ static void add_header(struct buffer *b,
+@@ -1968,8 +1974,10 @@ static void add_header(struct buffer *b,
  		   "MODULE_INFO(retpoline, \"Y\");\n"
  		   "#endif\n");
  
@@ -184,7 +184,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  	if (strstarts(mod->name, "tools/testing"))
  		buf_printf(b, "\nMODULE_INFO(test, \"Y\");\n");
-@@ -2101,11 +2109,13 @@ static void add_depends(struct buffer *b
+@@ -2065,11 +2073,13 @@ static void add_depends(struct buffer *b
  
  static void add_srcversion(struct buffer *b, struct module *mod)
  {
@@ -198,7 +198,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  }
  
  static void write_buf(struct buffer *b, const char *fname)
-@@ -2191,7 +2201,9 @@ static void write_mod_c_file(struct modu
+@@ -2155,7 +2165,9 @@ static void write_mod_c_file(struct modu
  	add_exported_symbols(&buf, mod);
  	add_versions(&buf, mod);
  	add_depends(&buf, mod);
diff --git a/target/linux/generic/hack-6.1/780-usb-net-MeigLink_modem_support.patch b/target/linux/generic/hack-6.1/780-usb-net-MeigLink_modem_support.patch
index 7257f7010b..64241c4801 100644
--- a/target/linux/generic/hack-6.1/780-usb-net-MeigLink_modem_support.patch
+++ b/target/linux/generic/hack-6.1/780-usb-net-MeigLink_modem_support.patch
@@ -29,7 +29,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
  
  #define QUECTEL_VENDOR_ID			0x2c7c
  /* These Quectel products use Quectel's vendor ID */
-@@ -1173,6 +1175,11 @@ static const struct usb_device_id option
+@@ -1177,6 +1179,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-6.1/902-debloat_proc.patch b/target/linux/generic/hack-6.1/902-debloat_proc.patch
index 5722ac97b1..b035f04ba2 100644
--- a/target/linux/generic/hack-6.1/902-debloat_proc.patch
+++ b/target/linux/generic/hack-6.1/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
-@@ -4082,6 +4082,8 @@ static __net_initdata struct pernet_oper
+@@ -4093,6 +4093,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
  {
diff --git a/target/linux/generic/pending-6.1/143-jffs2-reduce-stack-usage-in-jffs2_build_xattr_subsys.patch b/target/linux/generic/pending-6.1/143-jffs2-reduce-stack-usage-in-jffs2_build_xattr_subsys.patch
deleted file mode 100644
index e5a86dd29f..0000000000
--- a/target/linux/generic/pending-6.1/143-jffs2-reduce-stack-usage-in-jffs2_build_xattr_subsys.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From eee53f6eb7561f516b9c4bac829ce31c48096130 Mon Sep 17 00:00:00 2001
-From: Fabian Frederick <fabf at skynet.be>
-Date: Tue, 9 May 2017 22:30:03 +0200
-Subject: [PATCH] jffs2: reduce stack usage in jffs2_build_xattr_subsystem()
-
-Use kcalloc() for allocation/flush of 128 pointers table to
-reduce stack usage.
-
-Function now returns -ENOMEM or 0 on success.
-
-stackusage
-Before:
-./fs/jffs2/xattr.c:775  jffs2_build_xattr_subsystem     1208
-dynamic,bounded
-
-After:
-./fs/jffs2/xattr.c:775  jffs2_build_xattr_subsystem     192
-dynamic,bounded
-
-Also update definition when CONFIG_JFFS2_FS_XATTR is not enabled
-
-Tested with an MTD mount point and some user set/getfattr.
-
-Many current target on OpenWRT also suffer from a compilation warning
-(that become an error with CONFIG_WERROR) with the following output:
-
-fs/jffs2/xattr.c: In function 'jffs2_build_xattr_subsystem':
-fs/jffs2/xattr.c:887:1: error: the frame size of 1088 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
-  887 | }
-      | ^
-
-Using dynamic allocation fix this compilation warning.
-
-Fixes: c9f700f840bd ("[JFFS2][XATTR] using 'delete marker' for xdatum/xref deletion")
-Reported-by: Tim Gardner <tim.gardner at canonical.com>
-Reported-by: kernel test robot <lkp at intel.com>
-Reported-by: Ron Economos <re at w6rz.net>
-Reported-by: Nathan Chancellor <nathan at kernel.org>
-Reviewed-by: Nick Desaulniers <ndesaulniers at google.com>
-Signed-off-by: Fabian Frederick <fabf at skynet.be>
-Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
-Cc: stable at vger.kernel.org
----
- fs/jffs2/build.c |  5 ++++-
- fs/jffs2/xattr.c | 13 +++++++++----
- fs/jffs2/xattr.h |  4 ++--
- 3 files changed, 15 insertions(+), 7 deletions(-)
-
---- a/fs/jffs2/build.c
-+++ b/fs/jffs2/build.c
-@@ -211,7 +211,10 @@ static int jffs2_build_filesystem(struct
- 		ic->scan_dents = NULL;
- 		cond_resched();
- 	}
--	jffs2_build_xattr_subsystem(c);
-+	ret = jffs2_build_xattr_subsystem(c);
-+	if (ret)
-+		goto exit;
-+
- 	c->flags &= ~JFFS2_SB_FLAG_BUILDING;
- 
- 	dbg_fsbuild("FS build complete\n");
---- a/fs/jffs2/xattr.c
-+++ b/fs/jffs2/xattr.c
-@@ -772,10 +772,10 @@ void jffs2_clear_xattr_subsystem(struct
- }
- 
- #define XREF_TMPHASH_SIZE	(128)
--void jffs2_build_xattr_subsystem(struct jffs2_sb_info *c)
-+int jffs2_build_xattr_subsystem(struct jffs2_sb_info *c)
- {
- 	struct jffs2_xattr_ref *ref, *_ref;
--	struct jffs2_xattr_ref *xref_tmphash[XREF_TMPHASH_SIZE];
-+	struct jffs2_xattr_ref **xref_tmphash;
- 	struct jffs2_xattr_datum *xd, *_xd;
- 	struct jffs2_inode_cache *ic;
- 	struct jffs2_raw_node_ref *raw;
-@@ -784,9 +784,12 @@ void jffs2_build_xattr_subsystem(struct
- 
- 	BUG_ON(!(c->flags & JFFS2_SB_FLAG_BUILDING));
- 
-+	xref_tmphash = kcalloc(XREF_TMPHASH_SIZE,
-+			       sizeof(struct jffs2_xattr_ref *), GFP_KERNEL);
-+	if (!xref_tmphash)
-+		return -ENOMEM;
-+
- 	/* Phase.1 : Merge same xref */
--	for (i=0; i < XREF_TMPHASH_SIZE; i++)
--		xref_tmphash[i] = NULL;
- 	for (ref=c->xref_temp; ref; ref=_ref) {
- 		struct jffs2_xattr_ref *tmp;
- 
-@@ -884,6 +887,8 @@ void jffs2_build_xattr_subsystem(struct
- 		     "%u of xref (%u dead, %u orphan) found.\n",
- 		     xdatum_count, xdatum_unchecked_count, xdatum_orphan_count,
- 		     xref_count, xref_dead_count, xref_orphan_count);
-+	kfree(xref_tmphash);
-+	return 0;
- }
- 
- struct jffs2_xattr_datum *jffs2_setup_xattr_datum(struct jffs2_sb_info *c,
---- a/fs/jffs2/xattr.h
-+++ b/fs/jffs2/xattr.h
-@@ -71,7 +71,7 @@ static inline int is_xattr_ref_dead(stru
- #ifdef CONFIG_JFFS2_FS_XATTR
- 
- extern void jffs2_init_xattr_subsystem(struct jffs2_sb_info *c);
--extern void jffs2_build_xattr_subsystem(struct jffs2_sb_info *c);
-+extern int jffs2_build_xattr_subsystem(struct jffs2_sb_info *c);
- extern void jffs2_clear_xattr_subsystem(struct jffs2_sb_info *c);
- 
- extern struct jffs2_xattr_datum *jffs2_setup_xattr_datum(struct jffs2_sb_info *c,
-@@ -103,7 +103,7 @@ extern ssize_t jffs2_listxattr(struct de
- #else
- 
- #define jffs2_init_xattr_subsystem(c)
--#define jffs2_build_xattr_subsystem(c)
-+#define jffs2_build_xattr_subsystem(c)		(0)
- #define jffs2_clear_xattr_subsystem(c)
- 
- #define jffs2_xattr_do_crccheck_inode(c, ic)
diff --git a/target/linux/generic/pending-6.1/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch b/target/linux/generic/pending-6.1/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch
index 7eb3d8653f..4c09ed6b50 100644
--- a/target/linux/generic/pending-6.1/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch
+++ b/target/linux/generic/pending-6.1/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch
@@ -161,7 +161,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  struct rtnl_link {
  	rtnl_doit_func		doit;
-@@ -4817,7 +4817,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu
+@@ -4823,7 +4823,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu
  	    brport_nla_put_flag(skb, flags, mask,
  				IFLA_BRPORT_MCAST_FLOOD, BR_MCAST_FLOOD) ||
  	    brport_nla_put_flag(skb, flags, mask,
diff --git a/target/linux/mediatek/patches-6.1/350-21-cpufreq-mediatek-Add-support-for-MT7988.patch b/target/linux/mediatek/patches-6.1/350-21-cpufreq-mediatek-Add-support-for-MT7988.patch
index 6acd3d607f..49cd62d0ae 100644
--- a/target/linux/mediatek/patches-6.1/350-21-cpufreq-mediatek-Add-support-for-MT7988.patch
+++ b/target/linux/mediatek/patches-6.1/350-21-cpufreq-mediatek-Add-support-for-MT7988.patch
@@ -15,7 +15,7 @@ Signed-off-by: Sam Shih <sam.shih at mediatek.com>
 
 --- a/drivers/cpufreq/mediatek-cpufreq.c
 +++ b/drivers/cpufreq/mediatek-cpufreq.c
-@@ -702,6 +702,15 @@ static const struct mtk_cpufreq_platform
+@@ -709,6 +709,15 @@ static const struct mtk_cpufreq_platform
  	.ccifreq_supported = false,
  };
  
@@ -31,10 +31,10 @@ Signed-off-by: Sam Shih <sam.shih at mediatek.com>
  static const struct mtk_cpufreq_platform_data mt8183_platform_data = {
  	.min_volt_shift = 100000,
  	.max_volt_shift = 200000,
-@@ -735,6 +744,7 @@ static const struct of_device_id mtk_cpu
+@@ -742,6 +751,7 @@ static const struct of_device_id mtk_cpu
  	{ .compatible = "mediatek,mt2712", .data = &mt2701_platform_data },
  	{ .compatible = "mediatek,mt7622", .data = &mt7622_platform_data },
- 	{ .compatible = "mediatek,mt7623", .data = &mt7622_platform_data },
+ 	{ .compatible = "mediatek,mt7623", .data = &mt7623_platform_data },
 +	{ .compatible = "mediatek,mt7988", .data = &mt7988_platform_data },
  	{ .compatible = "mediatek,mt8167", .data = &mt8516_platform_data },
  	{ .compatible = "mediatek,mt817x", .data = &mt2701_platform_data },
diff --git a/target/linux/mediatek/patches-6.1/351-cpufreq-mediatek-correct-voltages-for-MT7622-and-MT7.patch b/target/linux/mediatek/patches-6.1/351-cpufreq-mediatek-correct-voltages-for-MT7622-and-MT7.patch
deleted file mode 100644
index 6ab05b897c..0000000000
--- a/target/linux/mediatek/patches-6.1/351-cpufreq-mediatek-correct-voltages-for-MT7622-and-MT7.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From e7697814c142c99f470c3458d49e41b25a575f23 Mon Sep 17 00:00:00 2001
-From: Daniel Golle <daniel at makrotopia.org>
-Date: Fri, 26 May 2023 10:31:40 +0100
-Subject: [PATCH] cpufreq: mediatek: correct voltages for MT7622 and MT7623
-
-The MT6380 regulator typically used together with MT7622 does not
-support the current maximum processor and SRAM voltage in the cpufreq
-driver (1360000uV).
-For MT7622 limit processor and SRAM supply voltages to 1350000uV to
-avoid having the tracking algorithm request unsupported voltages from
-the regulator.
-
-On MT7623 there is no separate SRAM supply and the maximum voltage used
-is 1300000uV. Create dedicated platform data for MT7623 to cover that
-case as well.
-
-Fixes: 0883426fd07e3 ("cpufreq: mediatek: Raise proc and sram max voltage for MT7622/7623")
-Suggested-by: Jia-wei Chang <Jia-wei.Chang at mediatek.com>
-Signed-off-by: Daniel Golle <daniel at makrotopia.org>
----
- drivers/cpufreq/mediatek-cpufreq.c | 13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
---- a/drivers/cpufreq/mediatek-cpufreq.c
-+++ b/drivers/cpufreq/mediatek-cpufreq.c
-@@ -696,9 +696,16 @@ static const struct mtk_cpufreq_platform
- static const struct mtk_cpufreq_platform_data mt7622_platform_data = {
- 	.min_volt_shift = 100000,
- 	.max_volt_shift = 200000,
--	.proc_max_volt = 1360000,
-+	.proc_max_volt = 1350000,
- 	.sram_min_volt = 0,
--	.sram_max_volt = 1360000,
-+	.sram_max_volt = 1350000,
-+	.ccifreq_supported = false,
-+};
-+
-+static const struct mtk_cpufreq_platform_data mt7623_platform_data = {
-+	.min_volt_shift = 100000,
-+	.max_volt_shift = 200000,
-+	.proc_max_volt = 1300000,
- 	.ccifreq_supported = false,
- };
- 
-@@ -743,7 +750,7 @@ static const struct of_device_id mtk_cpu
- 	{ .compatible = "mediatek,mt2701", .data = &mt2701_platform_data },
- 	{ .compatible = "mediatek,mt2712", .data = &mt2701_platform_data },
- 	{ .compatible = "mediatek,mt7622", .data = &mt7622_platform_data },
--	{ .compatible = "mediatek,mt7623", .data = &mt7622_platform_data },
-+	{ .compatible = "mediatek,mt7623", .data = &mt7623_platform_data },
- 	{ .compatible = "mediatek,mt7988", .data = &mt7988_platform_data },
- 	{ .compatible = "mediatek,mt8167", .data = &mt8516_platform_data },
- 	{ .compatible = "mediatek,mt817x", .data = &mt2701_platform_data },
diff --git a/target/linux/qualcommax/patches-6.1/0008-v6.2-clk-qcom-reset-support-resetting-multiple-bits.patch b/target/linux/qualcommax/patches-6.1/0008-v6.2-clk-qcom-reset-support-resetting-multiple-bits.patch
deleted file mode 100644
index e0725a6612..0000000000
--- a/target/linux/qualcommax/patches-6.1/0008-v6.2-clk-qcom-reset-support-resetting-multiple-bits.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 813ba3e427671ba3ff35c825087b03f0ad91cf02 Mon Sep 17 00:00:00 2001
-From: Robert Marko <robimarko at gmail.com>
-Date: Mon, 7 Nov 2022 14:28:59 +0100
-Subject: [PATCH] clk: qcom: reset: support resetting multiple bits
-
-This patch adds the support for giving the complete bitmask
-in reset structure and reset operation will use this bitmask
-for all reset operations.
-
-Currently, reset structure only takes a single bit for each reset
-and then calculates the bitmask by using the BIT() macro.
-
-However, this is not sufficient anymore for newer SoC-s like IPQ8074,
-IPQ6018 and more, since their networking resets require multiple bits
-to be asserted in order to properly reset the HW block completely.
-
-So, in order to allow asserting multiple bits add "bitmask" field to
-qcom_reset_map, and then use that bitmask value if its populated in the
-driver, if its not populated, then we just default to existing behaviour
-and calculate the bitmask on the fly.
-
-Signed-off-by: Robert Marko <robimarko at gmail.com>
-Signed-off-by: Bjorn Andersson <andersson at kernel.org>
-Link: https://lore.kernel.org/r/20221107132901.489240-1-robimarko@gmail.com
----
- drivers/clk/qcom/reset.c | 4 ++--
- drivers/clk/qcom/reset.h | 1 +
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
---- a/drivers/clk/qcom/reset.c
-+++ b/drivers/clk/qcom/reset.c
-@@ -30,7 +30,7 @@ qcom_reset_assert(struct reset_controlle
- 
- 	rst = to_qcom_reset_controller(rcdev);
- 	map = &rst->reset_map[id];
--	mask = BIT(map->bit);
-+	mask = map->bitmask ? map->bitmask : BIT(map->bit);
- 
- 	return regmap_update_bits(rst->regmap, map->reg, mask, mask);
- }
-@@ -44,7 +44,7 @@ qcom_reset_deassert(struct reset_control
- 
- 	rst = to_qcom_reset_controller(rcdev);
- 	map = &rst->reset_map[id];
--	mask = BIT(map->bit);
-+	mask = map->bitmask ? map->bitmask : BIT(map->bit);
- 
- 	return regmap_update_bits(rst->regmap, map->reg, mask, 0);
- }
---- a/drivers/clk/qcom/reset.h
-+++ b/drivers/clk/qcom/reset.h
-@@ -12,6 +12,7 @@ struct qcom_reset_map {
- 	unsigned int reg;
- 	u8 bit;
- 	u8 udelay;
-+	u32 bitmask;
- };
- 
- struct regmap;
diff --git a/target/linux/qualcommax/patches-6.1/0020-v6.3-PCI-qcom-Add-support-for-IPQ8074-Gen3-port.patch b/target/linux/qualcommax/patches-6.1/0020-v6.3-PCI-qcom-Add-support-for-IPQ8074-Gen3-port.patch
index 60caee46ca..3d5c2182e9 100644
--- a/target/linux/qualcommax/patches-6.1/0020-v6.3-PCI-qcom-Add-support-for-IPQ8074-Gen3-port.patch
+++ b/target/linux/qualcommax/patches-6.1/0020-v6.3-PCI-qcom-Add-support-for-IPQ8074-Gen3-port.patch
@@ -16,7 +16,7 @@ Signed-off-by: Bjorn Helgaas <bhelgaas at google.com>
 
 --- a/drivers/pci/controller/dwc/pcie-qcom.c
 +++ b/drivers/pci/controller/dwc/pcie-qcom.c
-@@ -1745,6 +1745,7 @@ static const struct of_device_id qcom_pc
+@@ -1762,6 +1762,7 @@ static const struct of_device_id qcom_pc
  	{ .compatible = "qcom,pcie-ipq8064", .data = &cfg_2_1_0 },
  	{ .compatible = "qcom,pcie-ipq8064-v2", .data = &cfg_2_1_0 },
  	{ .compatible = "qcom,pcie-ipq8074", .data = &cfg_2_3_3 },
diff --git a/target/linux/qualcommax/patches-6.1/0132-mmc-core-disable-TRIM-on-Micron-MTFC4GACAJCN-1M.patch b/target/linux/qualcommax/patches-6.1/0132-mmc-core-disable-TRIM-on-Micron-MTFC4GACAJCN-1M.patch
index 8c2e59eeb4..0da71f1b09 100644
--- a/target/linux/qualcommax/patches-6.1/0132-mmc-core-disable-TRIM-on-Micron-MTFC4GACAJCN-1M.patch
+++ b/target/linux/qualcommax/patches-6.1/0132-mmc-core-disable-TRIM-on-Micron-MTFC4GACAJCN-1M.patch
@@ -20,7 +20,7 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
 
 --- a/drivers/mmc/core/quirks.h
 +++ b/drivers/mmc/core/quirks.h
-@@ -101,6 +101,13 @@ static const struct mmc_fixup __maybe_un
+@@ -124,6 +124,13 @@ static const struct mmc_fixup __maybe_un
  		  MMC_QUIRK_TRIM_BROKEN),
  
  	/*
diff --git a/target/linux/qualcommax/patches-6.1/0133-mmc-core-disable-TRIM-on-Kingston-EMMC04G-M627.patch b/target/linux/qualcommax/patches-6.1/0133-mmc-core-disable-TRIM-on-Kingston-EMMC04G-M627.patch
index ac7af52a74..cc6f29e38e 100644
--- a/target/linux/qualcommax/patches-6.1/0133-mmc-core-disable-TRIM-on-Kingston-EMMC04G-M627.patch
+++ b/target/linux/qualcommax/patches-6.1/0133-mmc-core-disable-TRIM-on-Kingston-EMMC04G-M627.patch
@@ -22,7 +22,7 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
 
 --- a/drivers/mmc/core/quirks.h
 +++ b/drivers/mmc/core/quirks.h
-@@ -108,6 +108,13 @@ static const struct mmc_fixup __maybe_un
+@@ -131,6 +131,13 @@ static const struct mmc_fixup __maybe_un
  		  MMC_QUIRK_TRIM_BROKEN),
  
  	/*




More information about the lede-commits mailing list