Browse Source

kernel: bump 6.1 to 6.1.63

Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.63

Removed upstreamed:
	generic/backport-6.1/815-v6.6-2-leds-turris-omnia-Drop-unnecessary-mutex-locking.patch
	generic/backport-6.1/815-v6.7-1-leds-turris-omnia-Do-not-use-SMBUS-calls.patch
	ixp4xx/patches-6.1/0007-watchdog-ixp4xx-Make-sure-restart-always-works.patch

Manually rebased:
	bcm27xx/patches-6.1/950-0606-hwrng-bcm2835-sleep-more-intelligently.patch

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.63&id=7d0e60e4ff840e97fb18afb2a7344442c10a6fdf
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.63&id=63cdeb20ee3bfef820b045b8d3b8395f9f815a74
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.63&id=8803da01fe1b4ca3d37745283f7e73c6c2558c0c

Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne

Signed-off-by: John Audia <[email protected]>
John Audia 1 năm trước cách đây
mục cha
commit
2b75f108fb

+ 2 - 2
include/kernel-6.1

@@ -1,2 +1,2 @@
-LINUX_VERSION-6.1 = .62
-LINUX_KERNEL_HASH-6.1.62 = b9fd616facd6becfceef88b9be718d0f16625cab3fe81d11384802a7091e85ec
+LINUX_VERSION-6.1 = .63
+LINUX_KERNEL_HASH-6.1.63 = c29d043b01dd4fcc61a24fd027c5c7912b15b1f10d8e3c83a0cb935885f0758d

+ 2 - 2
target/linux/bcm27xx/patches-6.1/950-0606-hwrng-bcm2835-sleep-more-intelligently.patch

@@ -50,10 +50,10 @@ Signed-off-by: Phil Elwell <[email protected]>
 +	while (!num_words) {
 +		if (!wait || !retries)
  			return 0;
--		hwrng_msleep(rng, 1000);
+-		hwrng_yield(rng);
 +		retries--;
 +		usleep_range((u32)RNG_US_PER_WORD,
-+			     (u32)RNG_US_PER_WORD * RNG_FIFO_WORDS);
++				(u32)RNG_US_PER_WORD * RNG_FIFO_WORDS);
 +		num_words = rng_readl(priv, RNG_STATUS) >> 24;
  	}
  

+ 1 - 1
target/linux/bcm53xx/patches-6.1/905-BCM53573-minor-hacks.patch

@@ -61,7 +61,7 @@ Signed-off-by: Rafał Miłecki <[email protected]>
  #include <linux/clockchips.h>
  #include <linux/clocksource.h>
  #include <linux/clocksource_ids.h>
-@@ -1028,6 +1029,16 @@ static void __init arch_timer_of_configu
+@@ -1029,6 +1030,16 @@ static void __init arch_timer_of_configu
  	if (of_property_read_u32(np, "clock-frequency", &arch_timer_rate))
  		arch_timer_rate = rate;
  

+ 1 - 1
target/linux/generic/backport-6.1/815-v6.6-1-leds-turris-omnia-Use-sysfs_emit-instead-of-sprintf.patch

@@ -18,7 +18,7 @@ Signed-off-by: Lee Jones <[email protected]>
 
 --- a/drivers/leds/leds-turris-omnia.c
 +++ b/drivers/leds/leds-turris-omnia.c
-@@ -166,7 +166,7 @@ static ssize_t brightness_show(struct de
+@@ -194,7 +194,7 @@ static ssize_t brightness_show(struct de
  	if (ret < 0)
  		return ret;
  

+ 0 - 64
target/linux/generic/backport-6.1/815-v6.6-2-leds-turris-omnia-Drop-unnecessary-mutex-locking.patch

@@ -1,64 +0,0 @@
-From 8f3d612a5c949489b2860b74ff34c5914a9216dd Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Marek=20Beh=C3=BAn?= <[email protected]>
-Date: Wed, 2 Aug 2023 18:07:43 +0200
-Subject: [PATCH 2/6] leds: turris-omnia: Drop unnecessary mutex locking
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Do not lock driver mutex in the global LED panel brightness sysfs
-accessors brightness_show() and brightness_store().
-
-The mutex locking is unnecessary here. The I2C transfers are guarded by
-I2C core locking mechanism, and the LED commands itself do not interfere
-with other commands.
-
-Fixes: 089381b27abe ("leds: initial support for Turris Omnia LEDs")
-Signed-off-by: Marek Behún <[email protected]>
-Reviewed-by: Lee Jones <[email protected]>
-Link: https://lore.kernel.org/r/[email protected]
-Signed-off-by: Lee Jones <[email protected]>
----
- drivers/leds/leds-turris-omnia.c | 11 +----------
- 1 file changed, 1 insertion(+), 10 deletions(-)
-
---- a/drivers/leds/leds-turris-omnia.c
-+++ b/drivers/leds/leds-turris-omnia.c
-@@ -156,12 +156,9 @@ static ssize_t brightness_show(struct de
- 			       char *buf)
- {
- 	struct i2c_client *client = to_i2c_client(dev);
--	struct omnia_leds *leds = i2c_get_clientdata(client);
- 	int ret;
- 
--	mutex_lock(&leds->lock);
- 	ret = i2c_smbus_read_byte_data(client, CMD_LED_GET_BRIGHTNESS);
--	mutex_unlock(&leds->lock);
- 
- 	if (ret < 0)
- 		return ret;
-@@ -173,7 +170,6 @@ static ssize_t brightness_store(struct d
- 				const char *buf, size_t count)
- {
- 	struct i2c_client *client = to_i2c_client(dev);
--	struct omnia_leds *leds = i2c_get_clientdata(client);
- 	unsigned long brightness;
- 	int ret;
- 
-@@ -183,15 +179,10 @@ static ssize_t brightness_store(struct d
- 	if (brightness > 100)
- 		return -EINVAL;
- 
--	mutex_lock(&leds->lock);
- 	ret = i2c_smbus_write_byte_data(client, CMD_LED_SET_BRIGHTNESS,
- 					(u8)brightness);
--	mutex_unlock(&leds->lock);
- 
--	if (ret < 0)
--		return ret;
--
--	return count;
-+	return ret < 0 ? ret : count;
- }
- static DEVICE_ATTR_RW(brightness);
- 

+ 0 - 145
target/linux/generic/backport-6.1/815-v6.7-1-leds-turris-omnia-Do-not-use-SMBUS-calls.patch

@@ -1,145 +0,0 @@
-From 1848bb28f0579582f653ae95355b544fd8a51d1e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Marek=20Beh=C3=BAn?= <[email protected]>
-Date: Mon, 18 Sep 2023 18:11:01 +0200
-Subject: [PATCH 3/6] leds: turris-omnia: Do not use SMBUS calls
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The leds-turris-omnia driver uses three function for I2C access:
-- i2c_smbus_write_byte_data() and i2c_smbus_read_byte_data(), which
-  cause an emulated SMBUS transfer,
-- i2c_master_send(), which causes an ordinary I2C transfer.
-
-The Turris Omnia MCU LED controller is not semantically SMBUS, it
-operates as a simple I2C bus. It does not implement any of the SMBUS
-specific features, like PEC, or procedure calls, or anything. Moreover
-the I2C controller driver also does not implement SMBUS, and so the
-emulated SMBUS procedure from drivers/i2c/i2c-core-smbus.c is used for
-the SMBUS calls, which gives an unnecessary overhead.
-
-When I first wrote the driver, I was unaware of these facts, and I
-simply used the first function that worked.
-
-Drop the I2C SMBUS calls and instead use simple I2C transfers.
-
-Fixes: 089381b27abe ("leds: initial support for Turris Omnia LEDs")
-Signed-off-by: Marek Behún <[email protected]>
-Link: https://lore.kernel.org/r/[email protected]
-Signed-off-by: Lee Jones <[email protected]>
----
- drivers/leds/leds-turris-omnia.c | 54 +++++++++++++++++++++++++-------
- 1 file changed, 42 insertions(+), 12 deletions(-)
-
---- a/drivers/leds/leds-turris-omnia.c
-+++ b/drivers/leds/leds-turris-omnia.c
-@@ -2,7 +2,7 @@
- /*
-  * CZ.NIC's Turris Omnia LEDs driver
-  *
-- * 2020 by Marek Behún <[email protected]>
-+ * 2020, 2023 by Marek Behún <[email protected]>
-  */
- 
- #include <linux/i2c.h>
-@@ -41,6 +41,37 @@ struct omnia_leds {
- 	struct omnia_led leds[];
- };
- 
-+static int omnia_cmd_write_u8(const struct i2c_client *client, u8 cmd, u8 val)
-+{
-+	u8 buf[2] = { cmd, val };
-+
-+	return i2c_master_send(client, buf, sizeof(buf));
-+}
-+
-+static int omnia_cmd_read_u8(const struct i2c_client *client, u8 cmd)
-+{
-+	struct i2c_msg msgs[2];
-+	u8 reply;
-+	int ret;
-+
-+	msgs[0].addr = client->addr;
-+	msgs[0].flags = 0;
-+	msgs[0].len = 1;
-+	msgs[0].buf = &cmd;
-+	msgs[1].addr = client->addr;
-+	msgs[1].flags = I2C_M_RD;
-+	msgs[1].len = 1;
-+	msgs[1].buf = &reply;
-+
-+	ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs));
-+	if (likely(ret == ARRAY_SIZE(msgs)))
-+		return reply;
-+	else if (ret < 0)
-+		return ret;
-+	else
-+		return -EIO;
-+}
-+
- static int omnia_led_brightness_set_blocking(struct led_classdev *cdev,
- 					     enum led_brightness brightness)
- {
-@@ -64,7 +95,7 @@ static int omnia_led_brightness_set_bloc
- 	if (buf[2] || buf[3] || buf[4])
- 		state |= CMD_LED_STATE_ON;
- 
--	ret = i2c_smbus_write_byte_data(leds->client, CMD_LED_STATE, state);
-+	ret = omnia_cmd_write_u8(leds->client, CMD_LED_STATE, state);
- 	if (ret >= 0 && (state & CMD_LED_STATE_ON))
- 		ret = i2c_master_send(leds->client, buf, 5);
- 
-@@ -114,9 +145,9 @@ static int omnia_led_register(struct i2c
- 	cdev->brightness_set_blocking = omnia_led_brightness_set_blocking;
- 
- 	/* put the LED into software mode */
--	ret = i2c_smbus_write_byte_data(client, CMD_LED_MODE,
--					CMD_LED_MODE_LED(led->reg) |
--					CMD_LED_MODE_USER);
-+	ret = omnia_cmd_write_u8(client, CMD_LED_MODE,
-+				 CMD_LED_MODE_LED(led->reg) |
-+				 CMD_LED_MODE_USER);
- 	if (ret < 0) {
- 		dev_err(dev, "Cannot set LED %pOF to software mode: %i\n", np,
- 			ret);
-@@ -124,8 +155,8 @@ static int omnia_led_register(struct i2c
- 	}
- 
- 	/* disable the LED */
--	ret = i2c_smbus_write_byte_data(client, CMD_LED_STATE,
--					CMD_LED_STATE_LED(led->reg));
-+	ret = omnia_cmd_write_u8(client, CMD_LED_STATE,
-+				 CMD_LED_STATE_LED(led->reg));
- 	if (ret < 0) {
- 		dev_err(dev, "Cannot set LED %pOF brightness: %i\n", np, ret);
- 		return ret;
-@@ -158,7 +189,7 @@ static ssize_t brightness_show(struct de
- 	struct i2c_client *client = to_i2c_client(dev);
- 	int ret;
- 
--	ret = i2c_smbus_read_byte_data(client, CMD_LED_GET_BRIGHTNESS);
-+	ret = omnia_cmd_read_u8(client, CMD_LED_GET_BRIGHTNESS);
- 
- 	if (ret < 0)
- 		return ret;
-@@ -179,8 +210,7 @@ static ssize_t brightness_store(struct d
- 	if (brightness > 100)
- 		return -EINVAL;
- 
--	ret = i2c_smbus_write_byte_data(client, CMD_LED_SET_BRIGHTNESS,
--					(u8)brightness);
-+	ret = omnia_cmd_write_u8(client, CMD_LED_SET_BRIGHTNESS, brightness);
- 
- 	return ret < 0 ? ret : count;
- }
-@@ -238,8 +268,8 @@ static void omnia_leds_remove(struct i2c
- 	u8 buf[5];
- 
- 	/* put all LEDs into default (HW triggered) mode */
--	i2c_smbus_write_byte_data(client, CMD_LED_MODE,
--				  CMD_LED_MODE_LED(OMNIA_BOARD_LEDS));
-+	omnia_cmd_write_u8(client, CMD_LED_MODE,
-+			   CMD_LED_MODE_LED(OMNIA_BOARD_LEDS));
- 
- 	/* set all LEDs color to [255, 255, 255] */
- 	buf[0] = CMD_LED_COLOR;

+ 1 - 1
target/linux/generic/hack-6.1/259-regmap_dynamic.patch

@@ -125,7 +125,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  #include <linux/mutex.h>
  #include <linux/err.h>
  #include <linux/property.h>
-@@ -3511,3 +3512,5 @@ static int __init regmap_initcall(void)
+@@ -3513,3 +3514,5 @@ static int __init regmap_initcall(void)
  	return 0;
  }
  postcore_initcall(regmap_initcall);

+ 1 - 1
target/linux/generic/hack-6.1/904-debloat_dma_buf.patch

@@ -73,7 +73,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 +MODULE_LICENSE("GPL");
 --- a/kernel/sched/core.c
 +++ b/kernel/sched/core.c
-@@ -4363,6 +4363,7 @@ int wake_up_state(struct task_struct *p,
+@@ -4367,6 +4367,7 @@ int wake_up_state(struct task_struct *p,
  {
  	return try_to_wake_up(p, state, 0);
  }

+ 1 - 1
target/linux/generic/pending-6.1/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
-@@ -7882,7 +7882,7 @@ static int nft_register_flowtable_net_ho
+@@ -7878,7 +7878,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/ipq40xx/patches-6.1/701-net-dsa-add-out-of-band-tagging-protocol.patch

@@ -136,7 +136,7 @@ Signed-off-by: Maxime Chevallier <[email protected]>
  #include <net/dst.h>
  #include <net/sock.h>
  #include <net/checksum.h>
-@@ -4515,6 +4519,9 @@ static const u8 skb_ext_type_len[] = {
+@@ -4516,6 +4520,9 @@ static const u8 skb_ext_type_len[] = {
  #if IS_ENABLED(CONFIG_MCTP_FLOWS)
  	[SKB_EXT_MCTP] = SKB_EXT_CHUNKSIZEOF(struct mctp_flow),
  #endif
@@ -146,7 +146,7 @@ Signed-off-by: Maxime Chevallier <[email protected]>
  };
  
  static __always_inline unsigned int skb_ext_total_length(void)
-@@ -4535,6 +4542,9 @@ static __always_inline unsigned int skb_
+@@ -4536,6 +4543,9 @@ static __always_inline unsigned int skb_
  #if IS_ENABLED(CONFIG_MCTP_FLOWS)
  		skb_ext_type_len[SKB_EXT_MCTP] +
  #endif

+ 0 - 79
target/linux/ixp4xx/patches-6.1/0007-watchdog-ixp4xx-Make-sure-restart-always-works.patch

@@ -1,79 +0,0 @@
-From b09e5ea32e099821b1cddc1e26e625ad994ba11e Mon Sep 17 00:00:00 2001
-From: Linus Walleij <[email protected]>
-Date: Sun, 24 Sep 2023 21:20:24 +0200
-Subject: [PATCH] watchdog: ixp4xx: Make sure restart always works
-
-The IXP4xx watchdog in early "A0" silicon is unreliable and
-cannot be registered, however for some systems such as the
-USRobotics USR8200 the watchdog is the only restart option,
-so implement a "dummy" watchdog that can only support restart
-in this case.
-
-Fixes: 1aea522809e6 ("watchdog: ixp4xx: Implement restart")
-Signed-off-by: Linus Walleij <[email protected]>
----
-Other solutions like implementing a pure restart notifier
-callback catch in the driver is possible, but this method
-will minimize the amount of code and reuse infrastructure
-in the core.
----
- drivers/watchdog/ixp4xx_wdt.c | 28 +++++++++++++++++++++++++---
- 1 file changed, 25 insertions(+), 3 deletions(-)
-
---- a/drivers/watchdog/ixp4xx_wdt.c
-+++ b/drivers/watchdog/ixp4xx_wdt.c
-@@ -105,6 +105,25 @@ static const struct watchdog_ops ixp4xx_
- 	.owner = THIS_MODULE,
- };
- 
-+/*
-+ * The A0 version of the IXP422 had a bug in the watchdog making
-+ * is useless, but we still need to use it to restart the system
-+ * as it is the only way, so in this special case we register a
-+ * "dummy" watchdog that doesn't really work, but will support
-+ * the restart operation.
-+ */
-+static int ixp4xx_wdt_dummy(struct watchdog_device *wdd)
-+{
-+	return 0;
-+}
-+
-+static const struct watchdog_ops ixp4xx_wdt_restart_only_ops = {
-+	.start = ixp4xx_wdt_dummy,
-+	.stop = ixp4xx_wdt_dummy,
-+	.restart = ixp4xx_wdt_restart,
-+	.owner = THIS_MODULE,
-+};
-+
- static const struct watchdog_info ixp4xx_wdt_info = {
- 	.options = WDIOF_KEEPALIVEPING
- 		| WDIOF_MAGICCLOSE
-@@ -120,14 +139,17 @@ static void ixp4xx_clock_action(void *d)
- 
- static int ixp4xx_wdt_probe(struct platform_device *pdev)
- {
-+	static const struct watchdog_ops *iwdt_ops;
- 	struct device *dev = &pdev->dev;
- 	struct ixp4xx_wdt *iwdt;
- 	struct clk *clk;
- 	int ret;
- 
- 	if (!(read_cpuid_id() & 0xf) && !cpu_is_ixp46x()) {
--		dev_err(dev, "Rev. A0 IXP42x CPU detected - watchdog disabled\n");
--		return -ENODEV;
-+		dev_err(dev, "Rev. A0 IXP42x CPU detected - only restart supported\n");
-+		iwdt_ops = &ixp4xx_wdt_restart_only_ops;
-+	} else {
-+		iwdt_ops = &ixp4xx_wdt_ops;
- 	}
- 
- 	iwdt = devm_kzalloc(dev, sizeof(*iwdt), GFP_KERNEL);
-@@ -153,7 +175,7 @@ static int ixp4xx_wdt_probe(struct platf
- 		iwdt->rate = IXP4XX_TIMER_FREQ;
- 
- 	iwdt->wdd.info = &ixp4xx_wdt_info;
--	iwdt->wdd.ops = &ixp4xx_wdt_ops;
-+	iwdt->wdd.ops = iwdt_ops;
- 	iwdt->wdd.min_timeout = 1;
- 	iwdt->wdd.max_timeout = U32_MAX / iwdt->rate;
- 	iwdt->wdd.parent = dev;

+ 18 - 18
target/linux/mediatek/patches-6.1/220-v6.3-clk-mediatek-clk-gate-Propagate-struct-device-with-m.patch

@@ -209,7 +209,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
  	if (r)
 --- a/drivers/clk/mediatek/clk-mt2701.c
 +++ b/drivers/clk/mediatek/clk-mt2701.c
-@@ -683,8 +683,8 @@ static int mtk_topckgen_init(struct plat
+@@ -685,8 +685,8 @@ static int mtk_topckgen_init(struct plat
  	mtk_clk_register_dividers(top_adj_divs, ARRAY_SIZE(top_adj_divs),
  				base, &mt2701_clk_lock, clk_data);
  
@@ -220,7 +220,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
  
  	return of_clk_add_hw_provider(node, of_clk_hw_onecell_get, clk_data);
  }
-@@ -783,8 +783,8 @@ static int mtk_infrasys_init(struct plat
+@@ -789,8 +789,8 @@ static int mtk_infrasys_init(struct plat
  		}
  	}
  
@@ -231,9 +231,9 @@ Signed-off-by: Stephen Boyd <[email protected]>
  	mtk_clk_register_factors(infra_fixed_divs, ARRAY_SIZE(infra_fixed_divs),
  						infra_clk_data);
  
-@@ -894,8 +894,8 @@ static int mtk_pericfg_init(struct platf
- 
- 	clk_data = mtk_alloc_clk_data(CLK_PERI_NR);
+@@ -902,8 +902,8 @@ static int mtk_pericfg_init(struct platf
+ 	if (!clk_data)
+ 		return -ENOMEM;
  
 -	mtk_clk_register_gates(node, peri_clks, ARRAY_SIZE(peri_clks),
 -						clk_data);
@@ -397,9 +397,9 @@ Signed-off-by: Stephen Boyd <[email protected]>
  				    &mt7622_clk_lock, clk_data);
 --- a/drivers/clk/mediatek/clk-mt7629-eth.c
 +++ b/drivers/clk/mediatek/clk-mt7629-eth.c
-@@ -80,7 +80,8 @@ static int clk_mt7629_ethsys_init(struct
- 
- 	clk_data = mtk_alloc_clk_data(CLK_ETH_NR_CLK);
+@@ -82,7 +82,8 @@ static int clk_mt7629_ethsys_init(struct
+ 	if (!clk_data)
+ 		return -ENOMEM;
  
 -	mtk_clk_register_gates(node, eth_clks, CLK_ETH_NR_CLK, clk_data);
 +	mtk_clk_register_gates(&pdev->dev, node, eth_clks,
@@ -407,9 +407,9 @@ Signed-off-by: Stephen Boyd <[email protected]>
  
  	r = of_clk_add_hw_provider(node, of_clk_hw_onecell_get, clk_data);
  	if (r)
-@@ -102,8 +103,8 @@ static int clk_mt7629_sgmiisys_init(stru
- 
- 	clk_data = mtk_alloc_clk_data(CLK_SGMII_NR_CLK);
+@@ -106,8 +107,8 @@ static int clk_mt7629_sgmiisys_init(stru
+ 	if (!clk_data)
+ 		return -ENOMEM;
  
 -	mtk_clk_register_gates(node, sgmii_clks[id++], CLK_SGMII_NR_CLK,
 -			       clk_data);
@@ -444,9 +444,9 @@ Signed-off-by: Stephen Boyd <[email protected]>
  	if (r)
 --- a/drivers/clk/mediatek/clk-mt7629.c
 +++ b/drivers/clk/mediatek/clk-mt7629.c
-@@ -581,8 +581,8 @@ static int mtk_infrasys_init(struct plat
- 
- 	clk_data = mtk_alloc_clk_data(CLK_INFRA_NR_CLK);
+@@ -585,8 +585,8 @@ static int mtk_infrasys_init(struct plat
+ 	if (!clk_data)
+ 		return -ENOMEM;
  
 -	mtk_clk_register_gates(node, infra_clks, ARRAY_SIZE(infra_clks),
 -			       clk_data);
@@ -455,9 +455,9 @@ Signed-off-by: Stephen Boyd <[email protected]>
  
  	mtk_clk_register_cpumuxes(node, infra_muxes, ARRAY_SIZE(infra_muxes),
  				  clk_data);
-@@ -604,8 +604,8 @@ static int mtk_pericfg_init(struct platf
- 
- 	clk_data = mtk_alloc_clk_data(CLK_PERI_NR_CLK);
+@@ -610,8 +610,8 @@ static int mtk_pericfg_init(struct platf
+ 	if (!clk_data)
+ 		return -ENOMEM;
  
 -	mtk_clk_register_gates(node, peri_clks, ARRAY_SIZE(peri_clks),
 -			       clk_data);
@@ -466,7 +466,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
  
  	mtk_clk_register_composites(peri_muxes, ARRAY_SIZE(peri_muxes), base,
  				    &mt7629_clk_lock, clk_data);
-@@ -631,7 +631,7 @@ static int mtk_apmixedsys_init(struct pl
+@@ -637,7 +637,7 @@ static int mtk_apmixedsys_init(struct pl
  	mtk_clk_register_plls(node, plls, ARRAY_SIZE(plls),
  			      clk_data);
  

+ 2 - 2
target/linux/mediatek/patches-6.1/221-v6.3-clk-mediatek-cpumux-Propagate-struct-device-where-po.patch

@@ -78,7 +78,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
  
 --- a/drivers/clk/mediatek/clk-mt2701.c
 +++ b/drivers/clk/mediatek/clk-mt2701.c
-@@ -757,7 +757,7 @@ static void __init mtk_infrasys_init_ear
+@@ -761,7 +761,7 @@ static void __init mtk_infrasys_init_ear
  	mtk_clk_register_factors(infra_fixed_divs, ARRAY_SIZE(infra_fixed_divs),
  						infra_clk_data);
  
@@ -114,7 +114,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
  				   clk_data);
 --- a/drivers/clk/mediatek/clk-mt7629.c
 +++ b/drivers/clk/mediatek/clk-mt7629.c
-@@ -584,8 +584,8 @@ static int mtk_infrasys_init(struct plat
+@@ -588,8 +588,8 @@ static int mtk_infrasys_init(struct plat
  	mtk_clk_register_gates(&pdev->dev, node, infra_clks,
  			       ARRAY_SIZE(infra_clks), clk_data);
  

+ 4 - 4
target/linux/mediatek/patches-6.1/222-v6.3-clk-mediatek-clk-mtk-Propagate-struct-device-for-com.patch

@@ -26,7 +26,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
 
 --- a/drivers/clk/mediatek/clk-mt2701.c
 +++ b/drivers/clk/mediatek/clk-mt2701.c
-@@ -677,8 +677,9 @@ static int mtk_topckgen_init(struct plat
+@@ -679,8 +679,9 @@ static int mtk_topckgen_init(struct plat
  	mtk_clk_register_factors(top_fixed_divs, ARRAY_SIZE(top_fixed_divs),
  								clk_data);
  
@@ -38,7 +38,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
  
  	mtk_clk_register_dividers(top_adj_divs, ARRAY_SIZE(top_adj_divs),
  				base, &mt2701_clk_lock, clk_data);
-@@ -897,8 +898,9 @@ static int mtk_pericfg_init(struct platf
+@@ -905,8 +906,9 @@ static int mtk_pericfg_init(struct platf
  	mtk_clk_register_gates(&pdev->dev, node, peri_clks,
  			       ARRAY_SIZE(peri_clks), clk_data);
  
@@ -104,7 +104,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
  	r = of_clk_add_hw_provider(node, of_clk_hw_onecell_get, clk_data);
 --- a/drivers/clk/mediatek/clk-mt7629.c
 +++ b/drivers/clk/mediatek/clk-mt7629.c
-@@ -564,8 +564,9 @@ static int mtk_topckgen_init(struct plat
+@@ -566,8 +566,9 @@ static int mtk_topckgen_init(struct plat
  	mtk_clk_register_factors(top_divs, ARRAY_SIZE(top_divs),
  				 clk_data);
  
@@ -116,7 +116,7 @@ Signed-off-by: Stephen Boyd <[email protected]>
  
  	clk_prepare_enable(clk_data->hws[CLK_TOP_AXI_SEL]->clk);
  	clk_prepare_enable(clk_data->hws[CLK_TOP_MEM_SEL]->clk);
-@@ -607,7 +608,8 @@ static int mtk_pericfg_init(struct platf
+@@ -613,7 +614,8 @@ static int mtk_pericfg_init(struct platf
  	mtk_clk_register_gates(&pdev->dev, node, peri_clks,
  			       ARRAY_SIZE(peri_clks), clk_data);
  

+ 6 - 6
target/linux/qualcommax/patches-6.1/0100-clk-qcom-clk-rcg2-introduce-support-for-multiple-con.patch

@@ -64,7 +64,7 @@ Signed-off-by: Christian Marangi <[email protected]>
  /**
 --- a/drivers/clk/qcom/clk-rcg2.c
 +++ b/drivers/clk/qcom/clk-rcg2.c
-@@ -209,11 +209,60 @@ clk_rcg2_recalc_rate(struct clk_hw *hw,
+@@ -203,11 +203,60 @@ clk_rcg2_recalc_rate(struct clk_hw *hw,
  	return __clk_rcg2_recalc_rate(hw, parent_rate, cfg);
  }
  
@@ -125,7 +125,7 @@ Signed-off-by: Christian Marangi <[email protected]>
  	struct clk_hw *p;
  	struct clk_rcg2 *rcg = to_clk_rcg2(hw);
  	int index;
-@@ -232,7 +281,15 @@ static int _freq_tbl_determine_rate(stru
+@@ -226,7 +275,15 @@ static int _freq_tbl_determine_rate(stru
  	if (!f)
  		return -EINVAL;
  
@@ -142,7 +142,7 @@ Signed-off-by: Christian Marangi <[email protected]>
  	if (index < 0)
  		return index;
  
-@@ -242,18 +299,18 @@ static int _freq_tbl_determine_rate(stru
+@@ -236,18 +293,18 @@ static int _freq_tbl_determine_rate(stru
  		return -EINVAL;
  
  	if (clk_flags & CLK_SET_RATE_PARENT) {
@@ -167,7 +167,7 @@ Signed-off-by: Christian Marangi <[email protected]>
  			rate = tmp;
  		}
  	} else {
-@@ -261,7 +318,7 @@ static int _freq_tbl_determine_rate(stru
+@@ -255,7 +312,7 @@ static int _freq_tbl_determine_rate(stru
  	}
  	req->best_parent_hw = p;
  	req->best_parent_rate = rate;
@@ -176,7 +176,7 @@ Signed-off-by: Christian Marangi <[email protected]>
  
  	return 0;
  }
-@@ -357,6 +414,7 @@ static int __clk_rcg2_set_rate(struct cl
+@@ -351,6 +408,7 @@ static int __clk_rcg2_set_rate(struct cl
  {
  	struct clk_rcg2 *rcg = to_clk_rcg2(hw);
  	const struct freq_tbl *f;
@@ -184,7 +184,7 @@ Signed-off-by: Christian Marangi <[email protected]>
  
  	switch (policy) {
  	case FLOOR:
-@@ -372,7 +430,15 @@ static int __clk_rcg2_set_rate(struct cl
+@@ -366,7 +424,15 @@ static int __clk_rcg2_set_rate(struct cl
  	if (!f)
  		return -EINVAL;