浏览代码

kernel: bump 5.15 to 5.15.140

Changelog: https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.15.140

Removed upstreamed:
	mvebu/patches-5.15/106-Revert-i2c-pxa-move-to-generic-GPIO-recovery.patch[1]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.140&id=06d320ca170b4e59bb261e2ce3ffe84e9154d42b

Build system: x86_64
Build-tested: ramips/tplink_archer-a6-v3
Run-tested: ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <[email protected]>
John Audia 1 年之前
父节点
当前提交
6c118efc01
共有 21 个文件被更改,包括 38 次插入177 次删除
  1. 2 2
      include/kernel-5.15
  2. 2 2
      target/linux/generic/backport-5.15/020-v6.1-05-mm-multi-gen-LRU-groundwork.patch
  3. 2 2
      target/linux/generic/backport-5.15/020-v6.1-08-mm-multi-gen-LRU-support-page-table-walks.patch
  4. 4 4
      target/linux/generic/backport-5.15/020-v6.3-26-mm-multi-gen-LRU-per-node-lru_gen_page-lists.patch
  5. 2 2
      target/linux/generic/backport-5.15/703-08-v5.17-net-phylink-add-mac_select_pcs-method-to-phylink_mac.patch
  6. 1 1
      target/linux/generic/backport-5.15/703-15-v5.18-net-phy-phylink-fix-DSA-mac_select_pcs-introduction.patch
  7. 5 5
      target/linux/generic/backport-5.15/792-03-v6.6-net-phylink-add-pcs_enable-pcs_disable-methods.patch
  8. 2 2
      target/linux/generic/backport-5.15/821-v5.16-Bluetooth-btusb-Support-public-address-configuration.patch
  9. 1 1
      target/linux/generic/backport-5.15/822-v5.17-Bluetooth-btusb-Fix-application-of-sizeof-to-pointer.patch
  10. 1 1
      target/linux/generic/backport-5.15/823-v5.18-Bluetooth-btusb-Add-a-new-PID-VID-13d3-3567-for-MT79.patch
  11. 1 1
      target/linux/generic/backport-5.15/824-v5.19-Bluetooth-btusb-Add-a-new-PID-VID-0489-e0c8-for-MT79.patch
  12. 1 1
      target/linux/generic/backport-5.15/825-v6.1-Bluetooth-btusb-Add-a-new-VID-PID-0e8d-0608-for-MT79.patch
  13. 2 2
      target/linux/generic/hack-5.15/795-backport-phylink_pcs-helpers.patch
  14. 1 1
      target/linux/generic/pending-5.15/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
  15. 2 2
      target/linux/lantiq/patches-5.15/0302-mtd-cfi_cmdset_0001-Disable-write-buffer-functions-i.patch
  16. 3 3
      target/linux/mediatek/patches-5.15/850-v6.0-i2c-move-drivers-from-strlcpy-to-strscpy.patch
  17. 1 1
      target/linux/mediatek/patches-5.15/901-arm-add-cmdline-override.patch
  18. 0 139
      target/linux/mvebu/patches-5.15/106-Revert-i2c-pxa-move-to-generic-GPIO-recovery.patch
  19. 1 1
      target/linux/octeontx/patches-5.15/0004-PCI-add-quirk-for-Gateworks-PLX-PEX860x-switch-with-.patch
  20. 1 1
      target/linux/ramips/patches-5.15/720-Revert-net-phy-simplify-phy_link_change-arguments.patch
  21. 3 3
      target/linux/realtek/patches-5.15/704-drivers-net-phy-eee-support-for-rtl838x.patch

+ 2 - 2
include/kernel-5.15

@@ -1,2 +1,2 @@
-LINUX_VERSION-5.15 = .139
-LINUX_KERNEL_HASH-5.15.139 = 9c68c10dfe18e59b892e940436dea6a18d167160d55e62563cf7282244d8044e
+LINUX_VERSION-5.15 = .140
+LINUX_KERNEL_HASH-5.15.140 = be2bee8b346f3ccb35879f16c80a323edda571e36190403805c14a9ea24e4a47

+ 2 - 2
target/linux/generic/backport-5.15/020-v6.1-05-mm-multi-gen-LRU-groundwork.patch

@@ -594,7 +594,7 @@ Signed-off-by: Andrew Morton <[email protected]>
  	VM_BUG_ON_PAGE(tail > 2 && page_tail->mapping != TAIL_MAPPING,
 --- a/mm/memcontrol.c
 +++ b/mm/memcontrol.c
-@@ -5178,6 +5178,7 @@ static void __mem_cgroup_free(struct mem
+@@ -5179,6 +5179,7 @@ static void __mem_cgroup_free(struct mem
  
  static void mem_cgroup_free(struct mem_cgroup *memcg)
  {
@@ -602,7 +602,7 @@ Signed-off-by: Andrew Morton <[email protected]>
  	memcg_wb_domain_exit(memcg);
  	__mem_cgroup_free(memcg);
  }
-@@ -5241,6 +5242,7 @@ static struct mem_cgroup *mem_cgroup_all
+@@ -5242,6 +5243,7 @@ static struct mem_cgroup *mem_cgroup_all
  	memcg->deferred_split_queue.split_queue_len = 0;
  #endif
  	idr_replace(&mem_cgroup_idr, memcg, memcg->id.id);

+ 2 - 2
target/linux/generic/backport-5.15/020-v6.1-08-mm-multi-gen-LRU-support-page-table-walks.patch

@@ -424,7 +424,7 @@ Signed-off-by: Andrew Morton <[email protected]>
  			/* will mmdrop() in finish_task_switch(). */
 --- a/mm/memcontrol.c
 +++ b/mm/memcontrol.c
-@@ -6212,6 +6212,30 @@ static void mem_cgroup_move_task(void)
+@@ -6213,6 +6213,30 @@ static void mem_cgroup_move_task(void)
  }
  #endif
  
@@ -455,7 +455,7 @@ Signed-off-by: Andrew Morton <[email protected]>
  static int seq_puts_memcg_tunable(struct seq_file *m, unsigned long value)
  {
  	if (value == PAGE_COUNTER_MAX)
-@@ -6555,6 +6579,7 @@ struct cgroup_subsys memory_cgrp_subsys
+@@ -6556,6 +6580,7 @@ struct cgroup_subsys memory_cgrp_subsys
  	.css_reset = mem_cgroup_css_reset,
  	.css_rstat_flush = mem_cgroup_css_rstat_flush,
  	.can_attach = mem_cgroup_can_attach,

+ 4 - 4
target/linux/generic/backport-5.15/020-v6.3-26-mm-multi-gen-LRU-per-node-lru_gen_page-lists.patch

@@ -318,7 +318,7 @@ Signed-off-by: Andrew Morton <[email protected]>
  	mctz = soft_limit_tree_from_page(page);
  	if (!mctz)
  		return;
-@@ -3433,6 +3443,9 @@ unsigned long mem_cgroup_soft_limit_recl
+@@ -3434,6 +3444,9 @@ unsigned long mem_cgroup_soft_limit_recl
  	unsigned long excess;
  	unsigned long nr_scanned;
  
@@ -328,7 +328,7 @@ Signed-off-by: Andrew Morton <[email protected]>
  	if (order > 0)
  		return 0;
  
-@@ -5321,6 +5334,7 @@ static int mem_cgroup_css_online(struct
+@@ -5322,6 +5335,7 @@ static int mem_cgroup_css_online(struct
  	if (unlikely(mem_cgroup_is_root(memcg)))
  		queue_delayed_work(system_unbound_wq, &stats_flush_dwork,
  				   2UL*HZ);
@@ -336,7 +336,7 @@ Signed-off-by: Andrew Morton <[email protected]>
  	return 0;
  }
  
-@@ -5347,6 +5361,7 @@ static void mem_cgroup_css_offline(struc
+@@ -5348,6 +5362,7 @@ static void mem_cgroup_css_offline(struc
  	memcg_offline_kmem(memcg);
  	reparent_shrinker_deferred(memcg);
  	wb_memcg_offline(memcg);
@@ -344,7 +344,7 @@ Signed-off-by: Andrew Morton <[email protected]>
  
  	drain_all_stock(memcg);
  
-@@ -5358,6 +5373,7 @@ static void mem_cgroup_css_released(stru
+@@ -5359,6 +5374,7 @@ static void mem_cgroup_css_released(stru
  	struct mem_cgroup *memcg = mem_cgroup_from_css(css);
  
  	invalidate_reclaim_iterators(memcg);

+ 2 - 2
target/linux/generic/backport-5.15/703-08-v5.17-net-phylink-add-mac_select_pcs-method-to-phylink_mac.patch

@@ -125,7 +125,7 @@ Signed-off-by: David S. Miller <[email protected]>
  	pl = kzalloc(sizeof(*pl), GFP_KERNEL);
  	if (!pl)
  		return ERR_PTR(-ENOMEM);
-@@ -946,9 +987,10 @@ EXPORT_SYMBOL_GPL(phylink_create);
+@@ -947,9 +988,10 @@ EXPORT_SYMBOL_GPL(phylink_create);
   * @pl: a pointer to a &struct phylink returned from phylink_create()
   * @pcs: a pointer to the &struct phylink_pcs
   *
@@ -139,7 +139,7 @@ Signed-off-by: David S. Miller <[email protected]>
   *
   * Please note that there are behavioural changes with the mac_config()
   * callback if a PCS is present (denoting a newer setup) so removing a PCS
-@@ -959,6 +1001,14 @@ void phylink_set_pcs(struct phylink *pl,
+@@ -960,6 +1002,14 @@ void phylink_set_pcs(struct phylink *pl,
  {
  	pl->pcs = pcs;
  	pl->pcs_ops = pcs->ops;

+ 1 - 1
target/linux/generic/backport-5.15/703-15-v5.18-net-phy-phylink-fix-DSA-mac_select_pcs-introduction.patch

@@ -66,7 +66,7 @@ Signed-off-by: Jakub Kicinski <[email protected]>
  	    phy_interface_empty(config->supported_interfaces)) {
  		dev_err(config->dev,
  			"phylink: error: empty supported_interfaces but mac_select_pcs() method present\n");
-@@ -1220,6 +1227,7 @@ struct phylink *phylink_create(struct ph
+@@ -1221,6 +1228,7 @@ struct phylink *phylink_create(struct ph
  		return ERR_PTR(-EINVAL);
  	}
  

+ 5 - 5
target/linux/generic/backport-5.15/792-03-v6.6-net-phylink-add-pcs_enable-pcs_disable-methods.patch

@@ -75,7 +75,7 @@ Signed-off-by: David S. Miller <[email protected]>
  	if (pl->pcs_ops) {
  		err = pl->pcs_ops->pcs_config(pl->pcs, pl->cur_link_an_mode,
  					      state->interface,
-@@ -1260,6 +1285,7 @@ struct phylink *phylink_create(struct ph
+@@ -1261,6 +1286,7 @@ struct phylink *phylink_create(struct ph
  	pl->link_config.speed = SPEED_UNKNOWN;
  	pl->link_config.duplex = DUPLEX_UNKNOWN;
  	pl->link_config.an_enabled = true;
@@ -83,7 +83,7 @@ Signed-off-by: David S. Miller <[email protected]>
  	pl->mac_ops = mac_ops;
  	__set_bit(PHYLINK_DISABLE_STOPPED, &pl->phylink_disable_state);
  	timer_setup(&pl->link_poll, phylink_fixed_poll, 0);
-@@ -1651,6 +1677,8 @@ void phylink_start(struct phylink *pl)
+@@ -1652,6 +1678,8 @@ void phylink_start(struct phylink *pl)
  	if (pl->netdev)
  		netif_carrier_off(pl->netdev);
  
@@ -92,7 +92,7 @@ Signed-off-by: David S. Miller <[email protected]>
  	/* Apply the link configuration to the MAC when starting. This allows
  	 * a fixed-link to start with the correct parameters, and also
  	 * ensures that we set the appropriate advertisement for Serdes links.
-@@ -1661,6 +1689,8 @@ void phylink_start(struct phylink *pl)
+@@ -1662,6 +1690,8 @@ void phylink_start(struct phylink *pl)
  	 */
  	phylink_mac_initial_config(pl, true);
  
@@ -101,7 +101,7 @@ Signed-off-by: David S. Miller <[email protected]>
  	clear_bit(PHYLINK_DISABLE_STOPPED, &pl->phylink_disable_state);
  	phylink_run_resolve(pl);
  
-@@ -1680,16 +1710,9 @@ void phylink_start(struct phylink *pl)
+@@ -1681,16 +1711,9 @@ void phylink_start(struct phylink *pl)
  			poll = true;
  	}
  
@@ -120,7 +120,7 @@ Signed-off-by: David S. Miller <[email protected]>
  	if (poll)
  		mod_timer(&pl->link_poll, jiffies + HZ);
  	if (pl->phydev)
-@@ -1726,6 +1749,10 @@ void phylink_stop(struct phylink *pl)
+@@ -1727,6 +1750,10 @@ void phylink_stop(struct phylink *pl)
  	}
  
  	phylink_run_resolve_and_disable(pl, PHYLINK_DISABLE_STOPPED);

+ 2 - 2
target/linux/generic/backport-5.15/821-v5.16-Bluetooth-btusb-Support-public-address-configuration.patch

@@ -17,7 +17,7 @@ Signed-off-by: Marcel Holtmann <[email protected]>
 
 --- a/drivers/bluetooth/btusb.c
 +++ b/drivers/bluetooth/btusb.c
-@@ -2275,6 +2275,23 @@ struct btmtk_section_map {
+@@ -2287,6 +2287,23 @@ struct btmtk_section_map {
  	};
  } __packed;
  
@@ -41,7 +41,7 @@ Signed-off-by: Marcel Holtmann <[email protected]>
  static void btusb_mtk_wmt_recv(struct urb *urb)
  {
  	struct hci_dev *hdev = urb->context;
-@@ -3926,6 +3943,7 @@ static int btusb_probe(struct usb_interf
+@@ -3941,6 +3958,7 @@ static int btusb_probe(struct usb_interf
  		hdev->shutdown = btusb_mtk_shutdown;
  		hdev->manufacturer = 70;
  		hdev->cmd_timeout = btusb_mtk_cmd_timeout;

+ 1 - 1
target/linux/generic/backport-5.15/822-v5.17-Bluetooth-btusb-Fix-application-of-sizeof-to-pointer.patch

@@ -18,7 +18,7 @@ Signed-off-by: Marcel Holtmann <[email protected]>
 
 --- a/drivers/bluetooth/btusb.c
 +++ b/drivers/bluetooth/btusb.c
-@@ -2280,7 +2280,7 @@ static int btusb_set_bdaddr_mtk(struct h
+@@ -2292,7 +2292,7 @@ static int btusb_set_bdaddr_mtk(struct h
  	struct sk_buff *skb;
  	long ret;
  

+ 1 - 1
target/linux/generic/backport-5.15/823-v5.18-Bluetooth-btusb-Add-a-new-PID-VID-13d3-3567-for-MT79.patch

@@ -58,7 +58,7 @@ Signed-off-by: Marcel Holtmann <[email protected]>
 
 --- a/drivers/bluetooth/btusb.c
 +++ b/drivers/bluetooth/btusb.c
-@@ -464,6 +464,9 @@ static const struct usb_device_id blackl
+@@ -476,6 +476,9 @@ static const struct usb_device_id blackl
  	{ USB_DEVICE(0x13d3, 0x3564), .driver_info = BTUSB_MEDIATEK |
  						     BTUSB_WIDEBAND_SPEECH |
  						     BTUSB_VALID_LE_STATES },

+ 1 - 1
target/linux/generic/backport-5.15/824-v5.19-Bluetooth-btusb-Add-a-new-PID-VID-0489-e0c8-for-MT79.patch

@@ -56,7 +56,7 @@ Signed-off-by: Marcel Holtmann <[email protected]>
 
 --- a/drivers/bluetooth/btusb.c
 +++ b/drivers/bluetooth/btusb.c
-@@ -455,6 +455,9 @@ static const struct usb_device_id blackl
+@@ -467,6 +467,9 @@ static const struct usb_device_id blackl
  						     BTUSB_VALID_LE_STATES },
  
  	/* Additional MediaTek MT7921 Bluetooth devices */

+ 1 - 1
target/linux/generic/backport-5.15/825-v6.1-Bluetooth-btusb-Add-a-new-VID-PID-0e8d-0608-for-MT79.patch

@@ -54,7 +54,7 @@ Signed-off-by: Luiz Augusto von Dentz <[email protected]>
 
 --- a/drivers/bluetooth/btusb.c
 +++ b/drivers/bluetooth/btusb.c
-@@ -473,6 +473,9 @@ static const struct usb_device_id blackl
+@@ -485,6 +485,9 @@ static const struct usb_device_id blackl
  	{ USB_DEVICE(0x0489, 0xe0cd), .driver_info = BTUSB_MEDIATEK |
  						     BTUSB_WIDEBAND_SPEECH |
  						     BTUSB_VALID_LE_STATES },

+ 2 - 2
target/linux/generic/hack-5.15/795-backport-phylink_pcs-helpers.patch

@@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  static void phylink_mac_pcs_get_state(struct phylink *pl,
  				      struct phylink_link_state *state)
  {
-@@ -3014,6 +3013,52 @@ void phylink_mii_c22_pcs_get_state(struc
+@@ -3015,6 +3014,52 @@ void phylink_mii_c22_pcs_get_state(struc
  EXPORT_SYMBOL_GPL(phylink_mii_c22_pcs_get_state);
  
  /**
@@ -118,7 +118,7 @@ Signed-off-by: Daniel Golle <[email protected]>
   * phylink_mii_c22_pcs_set_advertisement() - configure the clause 37 PCS
   *	advertisement
   * @pcs: a pointer to a &struct mdio_device.
-@@ -3085,6 +3130,46 @@ int phylink_mii_c22_pcs_set_advertisemen
+@@ -3086,6 +3131,46 @@ int phylink_mii_c22_pcs_set_advertisemen
  EXPORT_SYMBOL_GPL(phylink_mii_c22_pcs_set_advertisement);
  
  /**

+ 1 - 1
target/linux/generic/pending-5.15/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch

@@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 --- a/net/netfilter/nf_tables_api.c
 +++ b/net/netfilter/nf_tables_api.c
-@@ -7703,7 +7703,7 @@ static int nft_register_flowtable_net_ho
+@@ -7708,7 +7708,7 @@ static int nft_register_flowtable_net_ho
  		err = flowtable->data.type->setup(&flowtable->data,
  						  hook->ops.dev,
  						  FLOW_BLOCK_BIND);

+ 2 - 2
target/linux/lantiq/patches-5.15/0302-mtd-cfi_cmdset_0001-Disable-write-buffer-functions-i.patch

@@ -44,7 +44,7 @@ Signed-off-by: Aleksander Jan Bajkowski <[email protected]>
  
  /*
   * Some chips power-up with all sectors locked by default.
-@@ -1703,6 +1707,7 @@ static int cfi_intelext_write_words (str
+@@ -1719,6 +1723,7 @@ static int cfi_intelext_write_words (str
  }
  
  
@@ -52,7 +52,7 @@ Signed-off-by: Aleksander Jan Bajkowski <[email protected]>
  static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip,
  				    unsigned long adr, const struct kvec **pvec,
  				    unsigned long *pvec_seek, int len)
-@@ -1931,6 +1936,7 @@ static int cfi_intelext_write_buffers (s
+@@ -1947,6 +1952,7 @@ static int cfi_intelext_write_buffers (s
  
  	return cfi_intelext_writev(mtd, &vec, 1, to, retlen);
  }

+ 3 - 3
target/linux/mediatek/patches-5.15/850-v6.0-i2c-move-drivers-from-strlcpy-to-strscpy.patch

@@ -237,7 +237,7 @@ Signed-off-by: Wolfram Sang <[email protected]>
  	priv->adap.algo = &hix5hd2_i2c_algorithm;
 --- a/drivers/i2c/busses/i2c-i801.c
 +++ b/drivers/i2c/busses/i2c-i801.c
-@@ -1111,7 +1111,7 @@ static void dmi_check_onboard_device(u8
+@@ -1110,7 +1110,7 @@ static void dmi_check_onboard_device(u8
  
  		memset(&info, 0, sizeof(struct i2c_board_info));
  		info.addr = dmi_devices[i].i2c_addr;
@@ -246,7 +246,7 @@ Signed-off-by: Wolfram Sang <[email protected]>
  		i2c_new_client_device(adap, &info);
  		break;
  	}
-@@ -1267,7 +1267,7 @@ static void register_dell_lis3lv02d_i2c_
+@@ -1266,7 +1266,7 @@ static void register_dell_lis3lv02d_i2c_
  
  	memset(&info, 0, sizeof(struct i2c_board_info));
  	info.addr = dell_lis3lv02d_devices[i].i2c_addr;
@@ -403,7 +403,7 @@ Signed-off-by: Wolfram Sang <[email protected]>
  	/* Slow down if we can't sense SCL */
 --- a/drivers/i2c/busses/i2c-pxa.c
 +++ b/drivers/i2c/busses/i2c-pxa.c
-@@ -1403,7 +1403,7 @@ static int i2c_pxa_probe(struct platform
+@@ -1463,7 +1463,7 @@ static int i2c_pxa_probe(struct platform
  	spin_lock_init(&i2c->lock);
  	init_waitqueue_head(&i2c->wait);
  

+ 1 - 1
target/linux/mediatek/patches-5.15/901-arm-add-cmdline-override.patch

@@ -37,7 +37,7 @@
  	 * managed to set the command line, unless CONFIG_CMDLINE_FORCE
 --- a/arch/arm64/Kconfig
 +++ b/arch/arm64/Kconfig
-@@ -2057,6 +2057,14 @@ config CMDLINE_FORCE
+@@ -2059,6 +2059,14 @@ config CMDLINE_FORCE
  
  endchoice
  

+ 0 - 139
target/linux/mvebu/patches-5.15/106-Revert-i2c-pxa-move-to-generic-GPIO-recovery.patch

@@ -1,139 +0,0 @@
-From ea8444b6fa5955c16b713dc83310882b93b44e62 Mon Sep 17 00:00:00 2001
-From: Robert Marko <[email protected]>
-Date: Fri, 10 Nov 2023 10:10:29 +0100
-Subject: [PATCH] Revert "i2c: pxa: move to generic GPIO recovery"
-
-This reverts commit 0b01392c18b9993a584f36ace1d61118772ad0ca.
-
-Conversion of PXA to generic I2C recovery, makes the I2C bus completely
-lock up if recovery pinctrl is present in the DT and I2C recovery is
-enabled.
-
-So, until the generic I2C recovery can also work with PXA lets revert
-to have working I2C and I2C recovery again.
-
-Signed-off-by: Robert Marko <[email protected]>
-Cc: [email protected] # 5.11+
----
- drivers/i2c/busses/i2c-pxa.c | 76 ++++++++++++++++++++++++++++++++----
- 1 file changed, 68 insertions(+), 8 deletions(-)
-
---- a/drivers/i2c/busses/i2c-pxa.c
-+++ b/drivers/i2c/busses/i2c-pxa.c
-@@ -264,6 +264,9 @@ struct pxa_i2c {
- 	u32			hs_mask;
- 
- 	struct i2c_bus_recovery_info recovery;
-+	struct pinctrl		*pinctrl;
-+	struct pinctrl_state	*pinctrl_default;
-+	struct pinctrl_state	*pinctrl_recovery;
- };
- 
- #define _IBMR(i2c)	((i2c)->reg_ibmr)
-@@ -1302,12 +1305,13 @@ static void i2c_pxa_prepare_recovery(str
- 	 */
- 	gpiod_set_value(i2c->recovery.scl_gpiod, ibmr & IBMR_SCLS);
- 	gpiod_set_value(i2c->recovery.sda_gpiod, ibmr & IBMR_SDAS);
-+
-+	WARN_ON(pinctrl_select_state(i2c->pinctrl, i2c->pinctrl_recovery));
- }
- 
- static void i2c_pxa_unprepare_recovery(struct i2c_adapter *adap)
- {
- 	struct pxa_i2c *i2c = adap->algo_data;
--	struct i2c_bus_recovery_info *bri = adap->bus_recovery_info;
- 	u32 isr;
- 
- 	/*
-@@ -1321,7 +1325,7 @@ static void i2c_pxa_unprepare_recovery(s
- 		i2c_pxa_do_reset(i2c);
- 	}
- 
--	WARN_ON(pinctrl_select_state(bri->pinctrl, bri->pins_default));
-+	WARN_ON(pinctrl_select_state(i2c->pinctrl, i2c->pinctrl_default));
- 
- 	dev_dbg(&i2c->adap.dev, "recovery: IBMR 0x%08x ISR 0x%08x\n",
- 	        readl(_IBMR(i2c)), readl(_ISR(i2c)));
-@@ -1343,20 +1347,76 @@ static int i2c_pxa_init_recovery(struct
- 	if (IS_ENABLED(CONFIG_I2C_PXA_SLAVE))
- 		return 0;
- 
--	bri->pinctrl = devm_pinctrl_get(dev);
--	if (PTR_ERR(bri->pinctrl) == -ENODEV) {
--		bri->pinctrl = NULL;
-+	i2c->pinctrl = devm_pinctrl_get(dev);
-+	if (PTR_ERR(i2c->pinctrl) == -ENODEV)
-+		i2c->pinctrl = NULL;
-+	if (IS_ERR(i2c->pinctrl))
-+		return PTR_ERR(i2c->pinctrl);
-+
-+	if (!i2c->pinctrl)
-+		return 0;
-+
-+	i2c->pinctrl_default = pinctrl_lookup_state(i2c->pinctrl,
-+						    PINCTRL_STATE_DEFAULT);
-+	i2c->pinctrl_recovery = pinctrl_lookup_state(i2c->pinctrl, "recovery");
-+
-+	if (IS_ERR(i2c->pinctrl_default) || IS_ERR(i2c->pinctrl_recovery)) {
-+		dev_info(dev, "missing pinmux recovery information: %ld %ld\n",
-+			 PTR_ERR(i2c->pinctrl_default),
-+			 PTR_ERR(i2c->pinctrl_recovery));
-+		return 0;
-+	}
-+
-+	/*
-+	 * Claiming GPIOs can influence the pinmux state, and may glitch the
-+	 * I2C bus. Do this carefully.
-+	 */
-+	bri->scl_gpiod = devm_gpiod_get(dev, "scl", GPIOD_OUT_HIGH_OPEN_DRAIN);
-+	if (bri->scl_gpiod == ERR_PTR(-EPROBE_DEFER))
-+		return -EPROBE_DEFER;
-+	if (IS_ERR(bri->scl_gpiod)) {
-+		dev_info(dev, "missing scl gpio recovery information: %pe\n",
-+			 bri->scl_gpiod);
-+		return 0;
-+	}
-+
-+	/*
-+	 * We have SCL. Pull SCL low and wait a bit so that SDA glitches
-+	 * have no effect.
-+	 */
-+	gpiod_direction_output(bri->scl_gpiod, 0);
-+	udelay(10);
-+	bri->sda_gpiod = devm_gpiod_get(dev, "sda", GPIOD_OUT_HIGH_OPEN_DRAIN);
-+
-+	/* Wait a bit in case of a SDA glitch, and then release SCL. */
-+	udelay(10);
-+	gpiod_direction_output(bri->scl_gpiod, 1);
-+
-+	if (bri->sda_gpiod == ERR_PTR(-EPROBE_DEFER))
-+		return -EPROBE_DEFER;
-+
-+	if (IS_ERR(bri->sda_gpiod)) {
-+		dev_info(dev, "missing sda gpio recovery information: %pe\n",
-+			 bri->sda_gpiod);
- 		return 0;
- 	}
--	if (IS_ERR(bri->pinctrl))
--		return PTR_ERR(bri->pinctrl);
- 
- 	bri->prepare_recovery = i2c_pxa_prepare_recovery;
- 	bri->unprepare_recovery = i2c_pxa_unprepare_recovery;
-+	bri->recover_bus = i2c_generic_scl_recovery;
- 
- 	i2c->adap.bus_recovery_info = bri;
- 
--	return 0;
-+	/*
-+	 * Claiming GPIOs can change the pinmux state, which confuses the
-+	 * pinctrl since pinctrl's idea of the current setting is unaffected
-+	 * by the pinmux change caused by claiming the GPIO. Work around that
-+	 * by switching pinctrl to the GPIO state here. We do it this way to
-+	 * avoid glitching the I2C bus.
-+	 */
-+	pinctrl_select_state(i2c->pinctrl, i2c->pinctrl_recovery);
-+
-+	return pinctrl_select_state(i2c->pinctrl, i2c->pinctrl_default);
- }
- 
- static int i2c_pxa_probe(struct platform_device *dev)

+ 1 - 1
target/linux/octeontx/patches-5.15/0004-PCI-add-quirk-for-Gateworks-PLX-PEX860x-switch-with-.patch

@@ -22,7 +22,7 @@ Signed-off-by: Tim Harvey <[email protected]>
  #include <linux/platform_data/x86/apple.h>
  #include <linux/pm_runtime.h>
  #include <linux/suspend.h>
-@@ -5858,3 +5859,34 @@ static void nvidia_ion_ahci_fixup(struct
+@@ -5879,3 +5880,34 @@ static void nvidia_ion_ahci_fixup(struct
  	pdev->dev_flags |= PCI_DEV_FLAGS_HAS_MSI_MASKING;
  }
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup);

+ 1 - 1
target/linux/ramips/patches-5.15/720-Revert-net-phy-simplify-phy_link_change-arguments.patch

@@ -95,7 +95,7 @@ still required by target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c
  		phydev->mii_ts->link_state(phydev->mii_ts, phydev);
 --- a/drivers/net/phy/phylink.c
 +++ b/drivers/net/phy/phylink.c
-@@ -1369,7 +1369,8 @@ void phylink_destroy(struct phylink *pl)
+@@ -1370,7 +1370,8 @@ void phylink_destroy(struct phylink *pl)
  }
  EXPORT_SYMBOL_GPL(phylink_destroy);
  

+ 3 - 3
target/linux/realtek/patches-5.15/704-drivers-net-phy-eee-support-for-rtl838x.patch

@@ -21,7 +21,7 @@ Submitted-by: John Crispin <[email protected]>
 
 --- a/drivers/net/phy/phylink.c
 +++ b/drivers/net/phy/phylink.c
-@@ -1990,6 +1990,11 @@ int phylink_ethtool_ksettings_set(struct
+@@ -1991,6 +1991,11 @@ int phylink_ethtool_ksettings_set(struct
  		 *   the presence of a PHY, this should not be changed as that
  		 *   should be determined from the media side advertisement.
  		 */
@@ -33,7 +33,7 @@ Submitted-by: John Crispin <[email protected]>
  		return phy_ethtool_ksettings_set(pl->phydev, kset);
  	}
  
-@@ -2293,8 +2298,11 @@ int phylink_ethtool_get_eee(struct phyli
+@@ -2294,8 +2299,11 @@ int phylink_ethtool_get_eee(struct phyli
  
  	ASSERT_RTNL();
  
@@ -46,7 +46,7 @@ Submitted-by: John Crispin <[email protected]>
  
  	return ret;
  }
-@@ -2311,8 +2319,11 @@ int phylink_ethtool_set_eee(struct phyli
+@@ -2312,8 +2320,11 @@ int phylink_ethtool_set_eee(struct phyli
  
  	ASSERT_RTNL();