Browse Source

kernel: bump 5.15 to 5.15.32

Patches automatically rebased.

Signed-off-by: Rui Salvaterra <[email protected]>
Rui Salvaterra 3 years ago
parent
commit
5a09eb17c2
24 changed files with 98 additions and 97 deletions
  1. 2 2
      include/kernel-5.15
  2. 2 2
      target/linux/ath79/patches-5.15/408-mtd-redboot_partition_scan.patch
  3. 4 4
      target/linux/generic/pending-5.15/701-03-net-ethernet-mtk_eth_soc-implement-flow-offloading-t.patch
  4. 2 2
      target/linux/generic/pending-5.15/701-05-net-ethernet-mtk_eth_soc-add-ipv6-flow-offload-suppo.patch
  5. 1 1
      target/linux/generic/pending-5.15/701-06-net-ethernet-mtk_eth_soc-support-TC_SETUP_BLOCK-for-.patch
  6. 6 6
      target/linux/generic/pending-5.15/701-07-net-ethernet-mtk_eth_soc-allocate-struct-mtk_ppe-sep.patch
  7. 4 4
      target/linux/generic/pending-5.15/701-08-net-ethernet-mtk_eth_soc-rework-hardware-flow-table-.patch
  8. 5 5
      target/linux/generic/pending-5.15/701-10-net-ethernet-mtk_eth_soc-support-creating-mac-addres.patch
  9. 4 4
      target/linux/imx/patches-5.15/300-ARM-dts-imx6q-apalis-ixora-add-status-LEDs-aliases.patch
  10. 6 6
      target/linux/imx/patches-5.15/301-ARM-dts-imx6q-apalis-ixora-make-switch3-reset-button.patch
  11. 3 3
      target/linux/ipq806x/patches-5.15/0060-HACK-arch-arm-force-ZRELADDR-on-arch-qcom.patch
  12. 3 3
      target/linux/ipq806x/patches-5.15/0067-generic-Mangle-bootloader-s-kernel-arguments.patch
  13. 1 1
      target/linux/ipq806x/patches-5.15/0069-arm-boot-add-dts-files.patch
  14. 7 7
      target/linux/ipq806x/patches-5.15/082-ipq8064-dtsi-tweaks.patch
  15. 8 8
      target/linux/ipq806x/patches-5.15/083-ipq8064-dtsi-additions.patch
  16. 3 3
      target/linux/ipq806x/patches-5.15/098-1-cpufreq-add-Krait-dedicated-scaling-driver.patch
  17. 1 1
      target/linux/ipq806x/patches-5.15/098-3-add-fab-scaling-support-with-cpufreq.patch
  18. 20 20
      target/linux/ipq806x/patches-5.15/099-1-mtd-nand-raw-qcom_nandc-add-boot_layout_mode-support.patch
  19. 6 5
      target/linux/ipq806x/patches-5.15/099-2-Documentation-devicetree-mtd-qcom_nandc-document-qco.patch
  20. 2 2
      target/linux/ipq806x/patches-5.15/102-mtd-rootfs-conflicts-with-OpenWrt-auto-mounting.patch
  21. 3 3
      target/linux/ipq806x/patches-5.15/103-ARM-dts-qcom-reduce-pci-IO-size-to-64K.patch
  22. 2 2
      target/linux/ipq806x/patches-5.15/107-1-thermal-qcom-tsens-init-debugfs-only-with-successful.patch
  23. 2 2
      target/linux/ipq806x/patches-5.15/107-2-thermal-qcom-tsens-simplify-debugfs-init-function.patch
  24. 1 1
      target/linux/ipq806x/patches-5.15/850-soc-add-qualcomm-syscon.patch

+ 2 - 2
include/kernel-5.15

@@ -1,2 +1,2 @@
-LINUX_VERSION-5.15 = .31
-LINUX_KERNEL_HASH-5.15.31 = f621384b47d5bed927910bf5211e7b4ccac925f28218e483bb1a9c484b246b88
+LINUX_VERSION-5.15 = .32
+LINUX_KERNEL_HASH-5.15.32 = 1463cdfa223088610dd65d3eadeffa44ec49746091b8ae8ddac6f3070d17df86

+ 2 - 2
target/linux/ath79/patches-5.15/408-mtd-redboot_partition_scan.patch

@@ -19,7 +19,7 @@
  				return -EIO;
  				return -EIO;
  			}
  			}
  			offset -= master->erasesize;
  			offset -= master->erasesize;
-@@ -108,10 +113,6 @@ nogood:
+@@ -108,10 +114,6 @@ nogood:
  				goto nogood;
  				goto nogood;
  		}
  		}
  	}
  	}
@@ -30,7 +30,7 @@
  
  
  	pr_notice("Searching for RedBoot partition table in %s at offset 0x%lx\n",
  	pr_notice("Searching for RedBoot partition table in %s at offset 0x%lx\n",
  		  master->name, offset);
  		  master->name, offset);
-@@ -183,6 +184,12 @@ nogood:
+@@ -183,6 +185,12 @@ nogood:
  	}
  	}
  	if (i == numslots) {
  	if (i == numslots) {
  		/* Didn't find it */
  		/* Didn't find it */

+ 4 - 4
target/linux/generic/pending-5.15/701-03-net-ethernet-mtk_eth_soc-implement-flow-offloading-t.patch

@@ -166,7 +166,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	u16 addr_type = 0;
  	u16 addr_type = 0;
  	u32 timestamp;
  	u32 timestamp;
  	u8 l4proto = 0;
  	u8 l4proto = 0;
-@@ -329,10 +372,14 @@ mtk_flow_offload_replace(struct mtk_eth
+@@ -326,10 +369,14 @@ mtk_flow_offload_replace(struct mtk_eth
  	if (data.pppoe.num == 1)
  	if (data.pppoe.num == 1)
  		mtk_foe_entry_set_pppoe(&foe, data.pppoe.sid);
  		mtk_foe_entry_set_pppoe(&foe, data.pppoe.sid);
  
  
@@ -182,7 +182,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	entry = kzalloc(sizeof(*entry), GFP_KERNEL);
  	entry = kzalloc(sizeof(*entry), GFP_KERNEL);
  	if (!entry)
  	if (!entry)
  		return -ENOMEM;
  		return -ENOMEM;
-@@ -346,6 +393,7 @@ mtk_flow_offload_replace(struct mtk_eth
+@@ -343,6 +390,7 @@ mtk_flow_offload_replace(struct mtk_eth
  	}
  	}
  
  
  	entry->hash = hash;
  	entry->hash = hash;
@@ -190,7 +190,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	err = rhashtable_insert_fast(&eth->flow_table, &entry->node,
  	err = rhashtable_insert_fast(&eth->flow_table, &entry->node,
  				     mtk_flow_ht_params);
  				     mtk_flow_ht_params);
  	if (err < 0)
  	if (err < 0)
-@@ -356,6 +404,8 @@ clear_flow:
+@@ -353,6 +401,8 @@ clear_flow:
  	mtk_foe_entry_clear(&eth->ppe, hash);
  	mtk_foe_entry_clear(&eth->ppe, hash);
  free:
  free:
  	kfree(entry);
  	kfree(entry);
@@ -199,7 +199,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	return err;
  	return err;
  }
  }
  
  
-@@ -372,6 +422,8 @@ mtk_flow_offload_destroy(struct mtk_eth
+@@ -369,6 +419,8 @@ mtk_flow_offload_destroy(struct mtk_eth
  	mtk_foe_entry_clear(&eth->ppe, entry->hash);
  	mtk_foe_entry_clear(&eth->ppe, entry->hash);
  	rhashtable_remove_fast(&eth->flow_table, &entry->node,
  	rhashtable_remove_fast(&eth->flow_table, &entry->node,
  			       mtk_flow_ht_params);
  			       mtk_flow_ht_params);

+ 2 - 2
target/linux/generic/pending-5.15/701-05-net-ethernet-mtk_eth_soc-add-ipv6-flow-offload-suppo.patch

@@ -49,7 +49,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  static void
  static void
  mtk_flow_offload_mangle_eth(const struct flow_action_entry *act, void *eth)
  mtk_flow_offload_mangle_eth(const struct flow_action_entry *act, void *eth)
  {
  {
-@@ -299,6 +313,9 @@ mtk_flow_offload_replace(struct mtk_eth
+@@ -296,6 +310,9 @@ mtk_flow_offload_replace(struct mtk_eth
  	case FLOW_DISSECTOR_KEY_IPV4_ADDRS:
  	case FLOW_DISSECTOR_KEY_IPV4_ADDRS:
  		offload_type = MTK_PPE_PKT_TYPE_IPV4_HNAPT;
  		offload_type = MTK_PPE_PKT_TYPE_IPV4_HNAPT;
  		break;
  		break;
@@ -59,7 +59,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	default:
  	default:
  		return -EOPNOTSUPP;
  		return -EOPNOTSUPP;
  	}
  	}
-@@ -334,6 +351,17 @@ mtk_flow_offload_replace(struct mtk_eth
+@@ -331,6 +348,17 @@ mtk_flow_offload_replace(struct mtk_eth
  		mtk_flow_set_ipv4_addr(&foe, &data, false);
  		mtk_flow_set_ipv4_addr(&foe, &data, false);
  	}
  	}
  
  

+ 1 - 1
target/linux/generic/pending-5.15/701-06-net-ethernet-mtk_eth_soc-support-TC_SETUP_BLOCK-for-.patch

@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 
 --- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
 --- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
 +++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
 +++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
-@@ -566,10 +566,13 @@ mtk_eth_setup_tc_block(struct net_device
+@@ -563,10 +563,13 @@ mtk_eth_setup_tc_block(struct net_device
  int mtk_eth_setup_tc(struct net_device *dev, enum tc_setup_type type,
  int mtk_eth_setup_tc(struct net_device *dev, enum tc_setup_type type,
  		     void *type_data)
  		     void *type_data)
  {
  {

+ 6 - 6
target/linux/generic/pending-5.15/701-07-net-ethernet-mtk_eth_soc-allocate-struct-mtk_ppe-sep.patch

@@ -103,7 +103,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  
 --- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
 --- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
 +++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
 +++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
-@@ -414,7 +414,7 @@ mtk_flow_offload_replace(struct mtk_eth
+@@ -411,7 +411,7 @@ mtk_flow_offload_replace(struct mtk_eth
  
  
  	entry->cookie = f->cookie;
  	entry->cookie = f->cookie;
  	timestamp = mtk_eth_timestamp(eth);
  	timestamp = mtk_eth_timestamp(eth);
@@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	if (hash < 0) {
  	if (hash < 0) {
  		err = hash;
  		err = hash;
  		goto free;
  		goto free;
-@@ -429,7 +429,7 @@ mtk_flow_offload_replace(struct mtk_eth
+@@ -426,7 +426,7 @@ mtk_flow_offload_replace(struct mtk_eth
  
  
  	return 0;
  	return 0;
  clear_flow:
  clear_flow:
@@ -121,7 +121,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  free:
  free:
  	kfree(entry);
  	kfree(entry);
  	if (wed_index >= 0)
  	if (wed_index >= 0)
-@@ -447,7 +447,7 @@ mtk_flow_offload_destroy(struct mtk_eth
+@@ -444,7 +444,7 @@ mtk_flow_offload_destroy(struct mtk_eth
  	if (!entry)
  	if (!entry)
  		return -ENOENT;
  		return -ENOENT;
  
  
@@ -130,7 +130,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	rhashtable_remove_fast(&eth->flow_table, &entry->node,
  	rhashtable_remove_fast(&eth->flow_table, &entry->node,
  			       mtk_flow_ht_params);
  			       mtk_flow_ht_params);
  	if (entry->wed_index >= 0)
  	if (entry->wed_index >= 0)
-@@ -469,7 +469,7 @@ mtk_flow_offload_stats(struct mtk_eth *e
+@@ -466,7 +466,7 @@ mtk_flow_offload_stats(struct mtk_eth *e
  	if (!entry)
  	if (!entry)
  		return -ENOENT;
  		return -ENOENT;
  
  
@@ -139,7 +139,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	if (timestamp < 0)
  	if (timestamp < 0)
  		return -ETIMEDOUT;
  		return -ETIMEDOUT;
  
  
-@@ -525,7 +525,7 @@ mtk_eth_setup_tc_block(struct net_device
+@@ -522,7 +522,7 @@ mtk_eth_setup_tc_block(struct net_device
  	struct flow_block_cb *block_cb;
  	struct flow_block_cb *block_cb;
  	flow_setup_cb_t *cb;
  	flow_setup_cb_t *cb;
  
  
@@ -148,7 +148,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  		return -EOPNOTSUPP;
  		return -EOPNOTSUPP;
  
  
  	if (f->binder_type != FLOW_BLOCK_BINDER_TYPE_CLSACT_INGRESS)
  	if (f->binder_type != FLOW_BLOCK_BINDER_TYPE_CLSACT_INGRESS)
-@@ -577,7 +577,7 @@ int mtk_eth_setup_tc(struct net_device *
+@@ -574,7 +574,7 @@ int mtk_eth_setup_tc(struct net_device *
  
  
  int mtk_eth_offload_init(struct mtk_eth *eth)
  int mtk_eth_offload_init(struct mtk_eth *eth)
  {
  {

+ 4 - 4
target/linux/generic/pending-5.15/701-08-net-ethernet-mtk_eth_soc-rework-hardware-flow-table-.patch

@@ -360,7 +360,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	int i;
  	int i;
  
  
  	if (rhashtable_lookup(&eth->flow_table, &f->cookie, mtk_flow_ht_params))
  	if (rhashtable_lookup(&eth->flow_table, &f->cookie, mtk_flow_ht_params))
-@@ -413,23 +398,21 @@ mtk_flow_offload_replace(struct mtk_eth
+@@ -410,23 +395,21 @@ mtk_flow_offload_replace(struct mtk_eth
  		return -ENOMEM;
  		return -ENOMEM;
  
  
  	entry->cookie = f->cookie;
  	entry->cookie = f->cookie;
@@ -392,7 +392,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  free:
  free:
  	kfree(entry);
  	kfree(entry);
  	if (wed_index >= 0)
  	if (wed_index >= 0)
-@@ -447,7 +430,7 @@ mtk_flow_offload_destroy(struct mtk_eth
+@@ -444,7 +427,7 @@ mtk_flow_offload_destroy(struct mtk_eth
  	if (!entry)
  	if (!entry)
  		return -ENOENT;
  		return -ENOENT;
  
  
@@ -401,7 +401,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	rhashtable_remove_fast(&eth->flow_table, &entry->node,
  	rhashtable_remove_fast(&eth->flow_table, &entry->node,
  			       mtk_flow_ht_params);
  			       mtk_flow_ht_params);
  	if (entry->wed_index >= 0)
  	if (entry->wed_index >= 0)
-@@ -461,7 +444,6 @@ static int
+@@ -458,7 +441,6 @@ static int
  mtk_flow_offload_stats(struct mtk_eth *eth, struct flow_cls_offload *f)
  mtk_flow_offload_stats(struct mtk_eth *eth, struct flow_cls_offload *f)
  {
  {
  	struct mtk_flow_entry *entry;
  	struct mtk_flow_entry *entry;
@@ -409,7 +409,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	u32 idle;
  	u32 idle;
  
  
  	entry = rhashtable_lookup(&eth->flow_table, &f->cookie,
  	entry = rhashtable_lookup(&eth->flow_table, &f->cookie,
-@@ -469,11 +451,7 @@ mtk_flow_offload_stats(struct mtk_eth *e
+@@ -466,11 +448,7 @@ mtk_flow_offload_stats(struct mtk_eth *e
  	if (!entry)
  	if (!entry)
  		return -ENOENT;
  		return -ENOENT;
  
  

+ 5 - 5
target/linux/generic/pending-5.15/701-10-net-ethernet-mtk_eth_soc-support-creating-mac-addres.patch

@@ -452,7 +452,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	struct {
  	struct {
  		u16 id;
  		u16 id;
  		__be16 proto;
  		__be16 proto;
-@@ -260,9 +262,45 @@ mtk_flow_offload_replace(struct mtk_eth
+@@ -257,9 +259,45 @@ mtk_flow_offload_replace(struct mtk_eth
  		return -EOPNOTSUPP;
  		return -EOPNOTSUPP;
  	}
  	}
  
  
@@ -498,7 +498,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  			if (act->mangle.htype == FLOW_ACT_MANGLE_HDR_TYPE_ETH)
  			if (act->mangle.htype == FLOW_ACT_MANGLE_HDR_TYPE_ETH)
  				mtk_flow_offload_mangle_eth(act, &data.eth);
  				mtk_flow_offload_mangle_eth(act, &data.eth);
  			break;
  			break;
-@@ -294,17 +332,6 @@ mtk_flow_offload_replace(struct mtk_eth
+@@ -291,17 +329,6 @@ mtk_flow_offload_replace(struct mtk_eth
  		}
  		}
  	}
  	}
  
  
@@ -516,7 +516,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	if (!is_valid_ether_addr(data.eth.h_source) ||
  	if (!is_valid_ether_addr(data.eth.h_source) ||
  	    !is_valid_ether_addr(data.eth.h_dest))
  	    !is_valid_ether_addr(data.eth.h_dest))
  		return -EINVAL;
  		return -EINVAL;
-@@ -318,10 +345,13 @@ mtk_flow_offload_replace(struct mtk_eth
+@@ -315,10 +342,13 @@ mtk_flow_offload_replace(struct mtk_eth
  	if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_PORTS)) {
  	if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_PORTS)) {
  		struct flow_match_ports ports;
  		struct flow_match_ports ports;
  
  
@@ -531,7 +531,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  		return -EOPNOTSUPP;
  		return -EOPNOTSUPP;
  	}
  	}
  
  
-@@ -351,6 +381,9 @@ mtk_flow_offload_replace(struct mtk_eth
+@@ -348,6 +378,9 @@ mtk_flow_offload_replace(struct mtk_eth
  		if (act->id != FLOW_ACTION_MANGLE)
  		if (act->id != FLOW_ACTION_MANGLE)
  			continue;
  			continue;
  
  
@@ -541,7 +541,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  		switch (act->mangle.htype) {
  		switch (act->mangle.htype) {
  		case FLOW_ACT_MANGLE_HDR_TYPE_TCP:
  		case FLOW_ACT_MANGLE_HDR_TYPE_TCP:
  		case FLOW_ACT_MANGLE_HDR_TYPE_UDP:
  		case FLOW_ACT_MANGLE_HDR_TYPE_UDP:
-@@ -376,6 +409,9 @@ mtk_flow_offload_replace(struct mtk_eth
+@@ -373,6 +406,9 @@ mtk_flow_offload_replace(struct mtk_eth
  			return err;
  			return err;
  	}
  	}
  
  

+ 4 - 4
target/linux/imx/patches-5.15/300-ARM-dts-imx6q-apalis-ixora-add-status-LEDs-aliases.patch

@@ -14,7 +14,7 @@ Signed-off-by: Petr Štetiar <[email protected]>
 
 
 --- a/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts
 --- a/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts
 +++ b/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts
 +++ b/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts
-@@ -61,6 +61,10 @@
+@@ -25,6 +25,10 @@
  		i2c2 = &i2c2;
  		i2c2 = &i2c2;
  		rtc0 = &rtc_i2c;
  		rtc0 = &rtc_i2c;
  		rtc1 = &snvs_rtc;
  		rtc1 = &snvs_rtc;
@@ -25,7 +25,7 @@ Signed-off-by: Petr Štetiar <[email protected]>
  	};
  	};
  
  
  	chosen {
  	chosen {
-@@ -128,22 +132,22 @@
+@@ -92,22 +96,22 @@
  		pinctrl-names = "default";
  		pinctrl-names = "default";
  		pinctrl-0 = <&pinctrl_leds_ixora>;
  		pinctrl-0 = <&pinctrl_leds_ixora>;
  
  
@@ -56,7 +56,7 @@ Signed-off-by: Petr Štetiar <[email protected]>
  		};
  		};
 --- a/arch/arm/boot/dts/imx6q-apalis-ixora.dts
 --- a/arch/arm/boot/dts/imx6q-apalis-ixora.dts
 +++ b/arch/arm/boot/dts/imx6q-apalis-ixora.dts
 +++ b/arch/arm/boot/dts/imx6q-apalis-ixora.dts
-@@ -60,6 +60,10 @@
+@@ -24,6 +24,10 @@
  		i2c2 = &i2c2;
  		i2c2 = &i2c2;
  		rtc0 = &rtc_i2c;
  		rtc0 = &rtc_i2c;
  		rtc1 = &snvs_rtc;
  		rtc1 = &snvs_rtc;
@@ -67,7 +67,7 @@ Signed-off-by: Petr Štetiar <[email protected]>
  	};
  	};
  
  
  	chosen {
  	chosen {
-@@ -127,22 +131,22 @@
+@@ -91,22 +95,22 @@
  		pinctrl-names = "default";
  		pinctrl-names = "default";
  		pinctrl-0 = <&pinctrl_leds_ixora>;
  		pinctrl-0 = <&pinctrl_leds_ixora>;
  
  

+ 6 - 6
target/linux/imx/patches-5.15/301-ARM-dts-imx6q-apalis-ixora-make-switch3-reset-button.patch

@@ -14,7 +14,7 @@ Signed-off-by: Petr Štetiar <[email protected]>
 
 
 --- a/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts
 --- a/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts
 +++ b/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts
 +++ b/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts
-@@ -74,7 +74,7 @@
+@@ -38,7 +38,7 @@
  	gpio-keys {
  	gpio-keys {
  		compatible = "gpio-keys";
  		compatible = "gpio-keys";
  		pinctrl-names = "default";
  		pinctrl-names = "default";
@@ -23,7 +23,7 @@ Signed-off-by: Petr Štetiar <[email protected]>
  
  
  		wakeup {
  		wakeup {
  			label = "Wake-Up";
  			label = "Wake-Up";
-@@ -83,6 +83,13 @@
+@@ -47,6 +47,13 @@
  			debounce-interval = <10>;
  			debounce-interval = <10>;
  			wakeup-source;
  			wakeup-source;
  		};
  		};
@@ -37,7 +37,7 @@ Signed-off-by: Petr Štetiar <[email protected]>
  	};
  	};
  
  
  	lcd_display: disp0 {
  	lcd_display: disp0 {
-@@ -298,4 +305,10 @@
+@@ -275,4 +282,10 @@
  			MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x1b0b0
  			MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x1b0b0
  		>;
  		>;
  	};
  	};
@@ -50,7 +50,7 @@ Signed-off-by: Petr Štetiar <[email protected]>
  };
  };
 --- a/arch/arm/boot/dts/imx6q-apalis-ixora.dts
 --- a/arch/arm/boot/dts/imx6q-apalis-ixora.dts
 +++ b/arch/arm/boot/dts/imx6q-apalis-ixora.dts
 +++ b/arch/arm/boot/dts/imx6q-apalis-ixora.dts
-@@ -73,7 +73,7 @@
+@@ -37,7 +37,7 @@
  	gpio-keys {
  	gpio-keys {
  		compatible = "gpio-keys";
  		compatible = "gpio-keys";
  		pinctrl-names = "default";
  		pinctrl-names = "default";
@@ -59,7 +59,7 @@ Signed-off-by: Petr Štetiar <[email protected]>
  
  
  		wakeup {
  		wakeup {
  			label = "Wake-Up";
  			label = "Wake-Up";
-@@ -82,6 +82,13 @@
+@@ -46,6 +46,13 @@
  			debounce-interval = <10>;
  			debounce-interval = <10>;
  			wakeup-source;
  			wakeup-source;
  		};
  		};
@@ -73,7 +73,7 @@ Signed-off-by: Petr Štetiar <[email protected]>
  	};
  	};
  
  
  	lcd_display: disp0 {
  	lcd_display: disp0 {
-@@ -299,4 +306,10 @@
+@@ -276,4 +283,10 @@
  			MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x1b0b0
  			MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x1b0b0
  		>;
  		>;
  	};
  	};

+ 3 - 3
target/linux/ipq806x/patches-5.15/0060-HACK-arch-arm-force-ZRELADDR-on-arch-qcom.patch

@@ -33,7 +33,7 @@ Signed-off-by: Mathieu Olivari <[email protected]>
 
 
 --- a/arch/arm/Kconfig
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -321,7 +321,7 @@ config ARCH_MULTIPLATFORM
+@@ -317,7 +317,7 @@ config ARCH_MULTIPLATFORM
  	select ARCH_SELECT_MEMORY_MODEL
  	select ARCH_SELECT_MEMORY_MODEL
  	select ARM_HAS_SG_CHAIN
  	select ARM_HAS_SG_CHAIN
  	select ARM_PATCH_PHYS_VIRT
  	select ARM_PATCH_PHYS_VIRT
@@ -41,10 +41,10 @@ Signed-off-by: Mathieu Olivari <[email protected]>
 +	select AUTO_ZRELADDR if !ARCH_QCOM
 +	select AUTO_ZRELADDR if !ARCH_QCOM
  	select TIMER_OF
  	select TIMER_OF
  	select COMMON_CLK
  	select COMMON_CLK
- 	select GENERIC_CLOCKEVENTS
+ 	select GENERIC_IRQ_MULTI_HANDLER
 --- a/arch/arm/Makefile
 --- a/arch/arm/Makefile
 +++ b/arch/arm/Makefile
 +++ b/arch/arm/Makefile
-@@ -251,9 +251,11 @@ MACHINE  := arch/arm/mach-$(word 1,$(mac
+@@ -237,9 +237,11 @@ MACHINE  := arch/arm/mach-$(word 1,$(mac
  else
  else
  MACHINE  :=
  MACHINE  :=
  endif
  endif

+ 3 - 3
target/linux/ipq806x/patches-5.15/0067-generic-Mangle-bootloader-s-kernel-arguments.patch

@@ -22,7 +22,7 @@ Signed-off-by: Adrian Panella <[email protected]>
 
 
 --- a/arch/arm/Kconfig
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -1780,6 +1780,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
+@@ -1727,6 +1727,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
  	  The command-line arguments provided by the boot loader will be
  	  The command-line arguments provided by the boot loader will be
  	  appended to the the device tree bootargs property.
  	  appended to the the device tree bootargs property.
  
  
@@ -178,7 +178,7 @@ Signed-off-by: Adrian Panella <[email protected]>
  }
  }
 --- a/init/main.c
 --- a/init/main.c
 +++ b/init/main.c
 +++ b/init/main.c
-@@ -110,6 +110,10 @@
+@@ -112,6 +112,10 @@
  
  
  #include <kunit/test.h>
  #include <kunit/test.h>
  
  
@@ -189,7 +189,7 @@ Signed-off-by: Adrian Panella <[email protected]>
  static int kernel_init(void *);
  static int kernel_init(void *);
  
  
  extern void init_IRQ(void);
  extern void init_IRQ(void);
-@@ -906,6 +910,18 @@ asmlinkage __visible void __init __no_sa
+@@ -991,6 +995,18 @@ asmlinkage __visible void __init __no_sa
  	pr_notice("Kernel command line: %s\n", saved_command_line);
  	pr_notice("Kernel command line: %s\n", saved_command_line);
  	/* parameters may set static keys */
  	/* parameters may set static keys */
  	jump_label_init();
  	jump_label_init();

+ 1 - 1
target/linux/ipq806x/patches-5.15/0069-arm-boot-add-dts-files.patch

@@ -10,7 +10,7 @@ Signed-off-by: John Crispin <[email protected]>
 
 
 --- a/arch/arm/boot/dts/Makefile
 --- a/arch/arm/boot/dts/Makefile
 +++ b/arch/arm/boot/dts/Makefile
 +++ b/arch/arm/boot/dts/Makefile
-@@ -955,8 +955,29 @@ dtb-$(CONFIG_ARCH_QCOM) += \
+@@ -956,8 +956,29 @@ dtb-$(CONFIG_ARCH_QCOM) += \
  	qcom-ipq4019-ap.dk04.1-c3.dtb \
  	qcom-ipq4019-ap.dk04.1-c3.dtb \
  	qcom-ipq4019-ap.dk07.1-c1.dtb \
  	qcom-ipq4019-ap.dk07.1-c1.dtb \
  	qcom-ipq4019-ap.dk07.1-c2.dtb \
  	qcom-ipq4019-ap.dk07.1-c2.dtb \

+ 7 - 7
target/linux/ipq806x/patches-5.15/082-ipq8064-dtsi-tweaks.patch

@@ -87,7 +87,7 @@
  			reg = <0x02099000 0x1000>, <0x02009000 0x1000>;
  			reg = <0x02099000 0x1000>, <0x02009000 0x1000>;
  			regulator;
  			regulator;
  		};
  		};
-@@ -533,7 +533,7 @@
+@@ -530,7 +536,7 @@
  				status = "disabled";
  				status = "disabled";
  			};
  			};
  
  
@@ -203,7 +203,7 @@
  			reg = <0x37600000 0x200000>;
  			reg = <0x37600000 0x200000>;
  			interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
  			interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
  			interrupt-names = "macirq";
  			interrupt-names = "macirq";
-@@ -1050,8 +1050,6 @@
+@@ -1065,8 +1106,6 @@
  			clocks = <&gcc USB30_0_UTMI_CLK>;
  			clocks = <&gcc USB30_0_UTMI_CLK>;
  			clock-names = "ref";
  			clock-names = "ref";
  			#phy-cells = <0>;
  			#phy-cells = <0>;
@@ -211,9 +211,9 @@
 -			status = "disabled";
 -			status = "disabled";
  		};
  		};
  
  
- 		ss_phy_0: usb3phy@100f8830 {
-@@ -1055,8 +1055,6 @@
-			clocks = <&gcc USB30_0_MASTER_CLK>;
+ 		ss_phy_0: phy@100f8830 {
+@@ -1075,8 +1114,6 @@
+ 			clocks = <&gcc USB30_0_MASTER_CLK>;
  			clock-names = "ref";
  			clock-names = "ref";
  			#phy-cells = <0>;
  			#phy-cells = <0>;
 -
 -
@@ -221,7 +221,7 @@
  		};
  		};
  
  
  		usb3_0: usb3@100f8800 {
  		usb3_0: usb3@100f8800 {
-@@ -1176,7 +1217,7 @@
+@@ -1176,7 +1213,7 @@
  		};
  		};
  
  
  		amba: amba {
  		amba: amba {
@@ -230,7 +230,7 @@
  			#address-cells = <1>;
  			#address-cells = <1>;
  			#size-cells = <1>;
  			#size-cells = <1>;
  			ranges;
  			ranges;
-@@ -1195,7 +1236,6 @@
+@@ -1195,7 +1232,6 @@
  				non-removable;
  				non-removable;
  				cap-sd-highspeed;
  				cap-sd-highspeed;
  				cap-mmc-highspeed;
  				cap-mmc-highspeed;

+ 8 - 8
target/linux/ipq806x/patches-5.15/083-ipq8064-dtsi-additions.patch

@@ -233,7 +233,7 @@
  		gsbi2: gsbi@12480000 {
  		gsbi2: gsbi@12480000 {
  			compatible = "qcom,gsbi-v1.0.0";
  			compatible = "qcom,gsbi-v1.0.0";
  			cell-index = <2>;
  			cell-index = <2>;
-@@ -568,6 +910,33 @@
+@@ -637,6 +813,33 @@
  			};
  			};
  		};
  		};
  
  
@@ -267,7 +267,7 @@
  		gsbi7: gsbi@16600000 {
  		gsbi7: gsbi@16600000 {
  			status = "disabled";
  			status = "disabled";
  			compatible = "qcom,gsbi-v1.0.0";
  			compatible = "qcom,gsbi-v1.0.0";
-@@ -589,6 +958,19 @@
+@@ -658,6 +861,19 @@
  				clock-names = "core", "iface";
  				clock-names = "core", "iface";
  				status = "disabled";
  				status = "disabled";
  			};
  			};
@@ -286,8 +286,8 @@
 +			};
 +			};
  		};
  		};
  
  
- 		sata_phy: sata-phy@1b400000 {
-@@ -761,6 +937,17 @@
+ 		rng@1a500000 {
+@@ -761,6 +977,17 @@
  			};
  			};
  		};
  		};
  
  
@@ -305,7 +305,7 @@
  		rpm: rpm@108000 {
  		rpm: rpm@108000 {
  			compatible = "qcom,rpm-ipq8064";
  			compatible = "qcom,rpm-ipq8064";
  			reg = <0x108000 0x1000>;
  			reg = <0x108000 0x1000>;
-@@ -828,6 +1015,11 @@
+@@ -828,6 +1055,11 @@
  			clock-output-names = "acpu_l2_aux";
  			clock-output-names = "acpu_l2_aux";
  		};
  		};
  
  
@@ -317,7 +317,7 @@
  		lcc: clock-controller@28000000 {
  		lcc: clock-controller@28000000 {
  			compatible = "qcom,lcc-ipq8064";
  			compatible = "qcom,lcc-ipq8064";
  			reg = <0x28000000 0x1000>;
  			reg = <0x28000000 0x1000>;
-@@ -835,6 +1027,11 @@
+@@ -835,6 +1067,11 @@
  			#reset-cells = <1>;
  			#reset-cells = <1>;
  		};
  		};
  
  
@@ -329,7 +329,7 @@
  		pcie0: pci@1b500000 {
  		pcie0: pci@1b500000 {
  			compatible = "qcom,pcie-ipq8064";
  			compatible = "qcom,pcie-ipq8064";
  			reg = <0x1b500000 0x1000
  			reg = <0x1b500000 0x1000
-@@ -1188,6 +1385,21 @@
+@@ -1184,6 +1421,21 @@
  			};
  			};
  		};
  		};
  
  
@@ -351,7 +351,7 @@
  		vsdcc_fixed: vsdcc-regulator {
  		vsdcc_fixed: vsdcc-regulator {
  			compatible = "regulator-fixed";
  			compatible = "regulator-fixed";
  			regulator-name = "SDCC Power";
  			regulator-name = "SDCC Power";
-@@ -1262,4 +1474,17 @@
+@@ -1258,4 +1510,17 @@
  			};
  			};
  		};
  		};
  	};
  	};

+ 3 - 3
target/linux/ipq806x/patches-5.15/098-1-cpufreq-add-Krait-dedicated-scaling-driver.patch

@@ -29,7 +29,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
 
 
 --- a/drivers/cpufreq/Kconfig.arm
 --- a/drivers/cpufreq/Kconfig.arm
 +++ b/drivers/cpufreq/Kconfig.arm
 +++ b/drivers/cpufreq/Kconfig.arm
-@@ -150,6 +150,18 @@ config ARM_QCOM_CPUFREQ_HW
+@@ -172,6 +172,18 @@ config ARM_QCOM_CPUFREQ_HW
  	  The driver implements the cpufreq interface for this HW engine.
  	  The driver implements the cpufreq interface for this HW engine.
  	  Say Y if you want to support CPUFreq HW.
  	  Say Y if you want to support CPUFreq HW.
  
  
@@ -48,7 +48,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  config ARM_RASPBERRYPI_CPUFREQ
  config ARM_RASPBERRYPI_CPUFREQ
  	tristate "Raspberry Pi cpufreq support"
  	tristate "Raspberry Pi cpufreq support"
  	depends on CLK_RASPBERRYPI || COMPILE_TEST
  	depends on CLK_RASPBERRYPI || COMPILE_TEST
-@@ -339,4 +351,4 @@ config ARM_PXA2xx_CPUFREQ
+@@ -356,4 +368,4 @@ config ARM_PXA2xx_CPUFREQ
  	help
  	help
  	  This add the CPUFreq driver support for Intel PXA2xx SOCs.
  	  This add the CPUFreq driver support for Intel PXA2xx SOCs.
  
  
@@ -65,7 +65,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  obj-$(CONFIG_ARM_RASPBERRYPI_CPUFREQ) 	+= raspberrypi-cpufreq.o
  obj-$(CONFIG_ARM_RASPBERRYPI_CPUFREQ) 	+= raspberrypi-cpufreq.o
  obj-$(CONFIG_ARM_S3C2410_CPUFREQ)	+= s3c2410-cpufreq.o
  obj-$(CONFIG_ARM_S3C2410_CPUFREQ)	+= s3c2410-cpufreq.o
  obj-$(CONFIG_ARM_S3C2412_CPUFREQ)	+= s3c2412-cpufreq.o
  obj-$(CONFIG_ARM_S3C2412_CPUFREQ)	+= s3c2412-cpufreq.o
-@@ -86,6 +87,7 @@ obj-$(CONFIG_ARM_TEGRA186_CPUFREQ)	+= te
+@@ -85,6 +86,7 @@ obj-$(CONFIG_ARM_TEGRA186_CPUFREQ)	+= te
  obj-$(CONFIG_ARM_TEGRA194_CPUFREQ)	+= tegra194-cpufreq.o
  obj-$(CONFIG_ARM_TEGRA194_CPUFREQ)	+= tegra194-cpufreq.o
  obj-$(CONFIG_ARM_TI_CPUFREQ)		+= ti-cpufreq.o
  obj-$(CONFIG_ARM_TI_CPUFREQ)		+= ti-cpufreq.o
  obj-$(CONFIG_ARM_VEXPRESS_SPC_CPUFREQ)	+= vexpress-spc-cpufreq.o
  obj-$(CONFIG_ARM_VEXPRESS_SPC_CPUFREQ)	+= vexpress-spc-cpufreq.o

+ 1 - 1
target/linux/ipq806x/patches-5.15/098-3-add-fab-scaling-support-with-cpufreq.patch

@@ -227,7 +227,7 @@
  
  
  #include "cpufreq-dt.h"
  #include "cpufreq-dt.h"
  
  
-@@ -68,6 +69,13 @@ static int set_target(struct cpufreq_pol
+@@ -74,6 +75,13 @@ static int set_target(struct cpufreq_pol
  			goto l2_scale_fail;
  			goto l2_scale_fail;
  		}
  		}
  
  

+ 20 - 20
target/linux/ipq806x/patches-5.15/099-1-mtd-nand-raw-qcom_nandc-add-boot_layout_mode-support.patch

@@ -16,7 +16,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
 
 
 --- a/drivers/mtd/nand/raw/qcom_nandc.c
 --- a/drivers/mtd/nand/raw/qcom_nandc.c
 +++ b/drivers/mtd/nand/raw/qcom_nandc.c
 +++ b/drivers/mtd/nand/raw/qcom_nandc.c
-@@ -159,6 +159,11 @@
+@@ -163,6 +163,11 @@
  /* NAND_CTRL bits */
  /* NAND_CTRL bits */
  #define	BAM_MODE_EN			BIT(0)
  #define	BAM_MODE_EN			BIT(0)
  
  
@@ -28,7 +28,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  /*
  /*
   * the NAND controller performs reads/writes with ECC in 516 byte chunks.
   * the NAND controller performs reads/writes with ECC in 516 byte chunks.
   * the driver calls the chunks 'step' or 'codeword' interchangeably
   * the driver calls the chunks 'step' or 'codeword' interchangeably
-@@ -430,6 +435,13 @@ struct qcom_nand_controller {
+@@ -443,6 +448,13 @@ struct qcom_nand_controller {
   * @cfg0, cfg1, cfg0_raw..:	NANDc register configurations needed for
   * @cfg0, cfg1, cfg0_raw..:	NANDc register configurations needed for
   *				ecc/non-ecc mode for the current nand flash
   *				ecc/non-ecc mode for the current nand flash
   *				device
   *				device
@@ -42,7 +42,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
   */
   */
  struct qcom_nand_host {
  struct qcom_nand_host {
  	struct nand_chip chip;
  	struct nand_chip chip;
-@@ -452,6 +464,9 @@ struct qcom_nand_host {
+@@ -465,6 +477,9 @@ struct qcom_nand_host {
  	u32 ecc_bch_cfg;
  	u32 ecc_bch_cfg;
  	u32 clrflashstatus;
  	u32 clrflashstatus;
  	u32 clrreadstatus;
  	u32 clrreadstatus;
@@ -52,7 +52,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  };
  };
  
  
  /*
  /*
-@@ -475,13 +490,15 @@ struct qcom_nand_host {
+@@ -474,6 +489,7 @@ struct qcom_nand_host {
   * @is_bam - whether NAND controller is using BAM
   * @is_bam - whether NAND controller is using BAM
   * @is_qpic - whether NAND CTRL is part of qpic IP
   * @is_qpic - whether NAND CTRL is part of qpic IP
   * @qpic_v2 - flag to indicate QPIC IP version 2
   * @qpic_v2 - flag to indicate QPIC IP version 2
@@ -60,7 +60,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
   * @dev_cmd_reg_start - NAND_DEV_CMD_* registers starting offset
   * @dev_cmd_reg_start - NAND_DEV_CMD_* registers starting offset
   */
   */
  struct qcom_nandc_props {
  struct qcom_nandc_props {
- 	u32 ecc_modes;
+@@ -481,6 +497,7 @@ struct qcom_nandc_props {
  	bool is_bam;
  	bool is_bam;
  	bool is_qpic;
  	bool is_qpic;
  	bool qpic_v2;
  	bool qpic_v2;
@@ -68,7 +68,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  	u32 dev_cmd_reg_start;
  	u32 dev_cmd_reg_start;
  };
  };
  
  
-@@ -1604,7 +1621,7 @@ qcom_nandc_read_cw_raw(struct mtd_info *
+@@ -1691,7 +1708,7 @@ qcom_nandc_read_cw_raw(struct mtd_info *
  	data_size1 = mtd->writesize - host->cw_size * (ecc->steps - 1);
  	data_size1 = mtd->writesize - host->cw_size * (ecc->steps - 1);
  	oob_size1 = host->bbm_size;
  	oob_size1 = host->bbm_size;
  
  
@@ -77,7 +77,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  		data_size2 = ecc->size - data_size1 -
  		data_size2 = ecc->size - data_size1 -
  			     ((ecc->steps - 1) * 4);
  			     ((ecc->steps - 1) * 4);
  		oob_size2 = (ecc->steps * 4) + host->ecc_bytes_hw +
  		oob_size2 = (ecc->steps * 4) + host->ecc_bytes_hw +
-@@ -1685,7 +1702,7 @@ check_for_erased_page(struct qcom_nand_h
+@@ -1772,7 +1789,7 @@ check_for_erased_page(struct qcom_nand_h
  	}
  	}
  
  
  	for_each_set_bit(cw, &uncorrectable_cws, ecc->steps) {
  	for_each_set_bit(cw, &uncorrectable_cws, ecc->steps) {
@@ -86,7 +86,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  			data_size = ecc->size - ((ecc->steps - 1) * 4);
  			data_size = ecc->size - ((ecc->steps - 1) * 4);
  			oob_size = (ecc->steps * 4) + host->ecc_bytes_hw;
  			oob_size = (ecc->steps * 4) + host->ecc_bytes_hw;
  		} else {
  		} else {
-@@ -1844,7 +1861,7 @@ static int read_page_ecc(struct qcom_nan
+@@ -1930,7 +1947,7 @@ static int read_page_ecc(struct qcom_nan
  	for (i = 0; i < ecc->steps; i++) {
  	for (i = 0; i < ecc->steps; i++) {
  		int data_size, oob_size;
  		int data_size, oob_size;
  
  
@@ -95,7 +95,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  			data_size = ecc->size - ((ecc->steps - 1) << 2);
  			data_size = ecc->size - ((ecc->steps - 1) << 2);
  			oob_size = (ecc->steps << 2) + host->ecc_bytes_hw +
  			oob_size = (ecc->steps << 2) + host->ecc_bytes_hw +
  				   host->spare_bytes;
  				   host->spare_bytes;
-@@ -1941,6 +1958,30 @@ static int copy_last_cw(struct qcom_nand
+@@ -2027,6 +2044,30 @@ static int copy_last_cw(struct qcom_nand
  	return ret;
  	return ret;
  }
  }
  
  
@@ -126,7 +126,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  /* implements ecc->read_page() */
  /* implements ecc->read_page() */
  static int qcom_nandc_read_page(struct nand_chip *chip, uint8_t *buf,
  static int qcom_nandc_read_page(struct nand_chip *chip, uint8_t *buf,
  				int oob_required, int page)
  				int oob_required, int page)
-@@ -1949,6 +1990,9 @@ static int qcom_nandc_read_page(struct n
+@@ -2035,6 +2076,9 @@ static int qcom_nandc_read_page(struct n
  	struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
  	struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
  	u8 *data_buf, *oob_buf = NULL;
  	u8 *data_buf, *oob_buf = NULL;
  
  
@@ -136,7 +136,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  	nand_read_page_op(chip, page, 0, NULL, 0);
  	nand_read_page_op(chip, page, 0, NULL, 0);
  	data_buf = buf;
  	data_buf = buf;
  	oob_buf = oob_required ? chip->oob_poi : NULL;
  	oob_buf = oob_required ? chip->oob_poi : NULL;
-@@ -1968,6 +2012,9 @@ static int qcom_nandc_read_page_raw(stru
+@@ -2054,6 +2098,9 @@ static int qcom_nandc_read_page_raw(stru
  	int cw, ret;
  	int cw, ret;
  	u8 *data_buf = buf, *oob_buf = chip->oob_poi;
  	u8 *data_buf = buf, *oob_buf = chip->oob_poi;
  
  
@@ -146,7 +146,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  	for (cw = 0; cw < ecc->steps; cw++) {
  	for (cw = 0; cw < ecc->steps; cw++) {
  		ret = qcom_nandc_read_cw_raw(mtd, chip, data_buf, oob_buf,
  		ret = qcom_nandc_read_cw_raw(mtd, chip, data_buf, oob_buf,
  					     page, cw);
  					     page, cw);
-@@ -1988,6 +2035,9 @@ static int qcom_nandc_read_oob(struct na
+@@ -2074,6 +2121,9 @@ static int qcom_nandc_read_oob(struct na
  	struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
  	struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
  	struct nand_ecc_ctrl *ecc = &chip->ecc;
  	struct nand_ecc_ctrl *ecc = &chip->ecc;
  
  
@@ -156,7 +156,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  	clear_read_regs(nandc);
  	clear_read_regs(nandc);
  	clear_bam_transaction(nandc);
  	clear_bam_transaction(nandc);
  
  
-@@ -2008,6 +2058,9 @@ static int qcom_nandc_write_page(struct
+@@ -2094,6 +2144,9 @@ static int qcom_nandc_write_page(struct
  	u8 *data_buf, *oob_buf;
  	u8 *data_buf, *oob_buf;
  	int i, ret;
  	int i, ret;
  
  
@@ -166,7 +166,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  	nand_prog_page_begin_op(chip, page, 0, NULL, 0);
  	nand_prog_page_begin_op(chip, page, 0, NULL, 0);
  
  
  	clear_read_regs(nandc);
  	clear_read_regs(nandc);
-@@ -2023,7 +2076,7 @@ static int qcom_nandc_write_page(struct
+@@ -2109,7 +2162,7 @@ static int qcom_nandc_write_page(struct
  	for (i = 0; i < ecc->steps; i++) {
  	for (i = 0; i < ecc->steps; i++) {
  		int data_size, oob_size;
  		int data_size, oob_size;
  
  
@@ -175,7 +175,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  			data_size = ecc->size - ((ecc->steps - 1) << 2);
  			data_size = ecc->size - ((ecc->steps - 1) << 2);
  			oob_size = (ecc->steps << 2) + host->ecc_bytes_hw +
  			oob_size = (ecc->steps << 2) + host->ecc_bytes_hw +
  				   host->spare_bytes;
  				   host->spare_bytes;
-@@ -2080,6 +2133,9 @@ static int qcom_nandc_write_page_raw(str
+@@ -2166,6 +2219,9 @@ static int qcom_nandc_write_page_raw(str
  	u8 *data_buf, *oob_buf;
  	u8 *data_buf, *oob_buf;
  	int i, ret;
  	int i, ret;
  
  
@@ -185,7 +185,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  	nand_prog_page_begin_op(chip, page, 0, NULL, 0);
  	nand_prog_page_begin_op(chip, page, 0, NULL, 0);
  	clear_read_regs(nandc);
  	clear_read_regs(nandc);
  	clear_bam_transaction(nandc);
  	clear_bam_transaction(nandc);
-@@ -2098,7 +2154,7 @@ static int qcom_nandc_write_page_raw(str
+@@ -2184,7 +2240,7 @@ static int qcom_nandc_write_page_raw(str
  		data_size1 = mtd->writesize - host->cw_size * (ecc->steps - 1);
  		data_size1 = mtd->writesize - host->cw_size * (ecc->steps - 1);
  		oob_size1 = host->bbm_size;
  		oob_size1 = host->bbm_size;
  
  
@@ -194,7 +194,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  			data_size2 = ecc->size - data_size1 -
  			data_size2 = ecc->size - data_size1 -
  				     ((ecc->steps - 1) << 2);
  				     ((ecc->steps - 1) << 2);
  			oob_size2 = (ecc->steps << 2) + host->ecc_bytes_hw +
  			oob_size2 = (ecc->steps << 2) + host->ecc_bytes_hw +
-@@ -2158,6 +2214,9 @@ static int qcom_nandc_write_oob(struct n
+@@ -2244,6 +2300,9 @@ static int qcom_nandc_write_oob(struct n
  	int data_size, oob_size;
  	int data_size, oob_size;
  	int ret;
  	int ret;
  
  
@@ -204,7 +204,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  	host->use_ecc = true;
  	host->use_ecc = true;
  	clear_bam_transaction(nandc);
  	clear_bam_transaction(nandc);
  
  
-@@ -2806,6 +2865,7 @@ static int qcom_nand_host_init_and_regis
+@@ -2899,6 +2958,7 @@ static int qcom_nand_host_init_and_regis
  	struct nand_chip *chip = &host->chip;
  	struct nand_chip *chip = &host->chip;
  	struct mtd_info *mtd = nand_to_mtd(chip);
  	struct mtd_info *mtd = nand_to_mtd(chip);
  	struct device *dev = nandc->dev;
  	struct device *dev = nandc->dev;
@@ -212,7 +212,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  	int ret;
  	int ret;
  
  
  	ret = of_property_read_u32(dn, "reg", &host->cs);
  	ret = of_property_read_u32(dn, "reg", &host->cs);
-@@ -2866,6 +2926,17 @@ static int qcom_nand_host_init_and_regis
+@@ -2960,6 +3020,17 @@ static int qcom_nand_host_init_and_regis
  	if (ret)
  	if (ret)
  		nand_cleanup(chip);
  		nand_cleanup(chip);
  
  
@@ -230,7 +230,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  	return ret;
  	return ret;
  }
  }
  
  
-@@ -3032,6 +3103,7 @@ static int qcom_nandc_remove(struct plat
+@@ -3125,6 +3196,7 @@ static int qcom_nandc_remove(struct plat
  static const struct qcom_nandc_props ipq806x_nandc_props = {
  static const struct qcom_nandc_props ipq806x_nandc_props = {
  	.ecc_modes = (ECC_RS_4BIT | ECC_BCH_8BIT),
  	.ecc_modes = (ECC_RS_4BIT | ECC_BCH_8BIT),
  	.is_bam = false,
  	.is_bam = false,

+ 6 - 5
target/linux/ipq806x/patches-5.15/099-2-Documentation-devicetree-mtd-qcom_nandc-document-qco.patch

@@ -14,11 +14,10 @@ Signed-off-by: Ansuel Smith <[email protected]>
 
 
 --- a/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml
 --- a/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml
 +++ b/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml
 +++ b/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml
-@@ -77,6 +77,14 @@ Optional properties:
-           description:
+@@ -78,6 +78,14 @@ allOf:
              Must contain the ADM data type CRCI block instance number
              Must contain the ADM data type CRCI block instance number
              specified for the NAND controller on the given platform
              specified for the NAND controller on the given platform
-+
+ 
 +        qcom,boot_pages_size:
 +        qcom,boot_pages_size:
 +          description:
 +          description:
 +            Should contain the size of the total boot partitions
 +            Should contain the size of the total boot partitions
@@ -26,10 +25,11 @@ Signed-off-by: Ansuel Smith <[email protected]>
 +            should be used. The boot layout is considered from the
 +            should be used. The boot layout is considered from the
 +            start of the nand to the value set in this binding.
 +            start of the nand to the value set in this binding.
 +            Only used in combination with 'nand-is-boot-medium'.
 +            Only used in combination with 'nand-is-boot-medium'.
- 
++
    - if:
    - if:
        properties:
        properties:
-@@ -135,6 +135,9 @@ nand-controller@1ac00000 {
+         compatible:
+@@ -135,6 +143,9 @@ examples:
          nand-ecc-strength = <4>;
          nand-ecc-strength = <4>;
          nand-bus-width = <8>;
          nand-bus-width = <8>;
  
  
@@ -38,3 +38,4 @@ Signed-off-by: Ansuel Smith <[email protected]>
 +
 +
          partitions {
          partitions {
            compatible = "fixed-partitions";
            compatible = "fixed-partitions";
+           #address-cells = <1>;

+ 2 - 2
target/linux/ipq806x/patches-5.15/102-mtd-rootfs-conflicts-with-OpenWrt-auto-mounting.patch

@@ -10,16 +10,16 @@ Signed-off-by: John Crispin <[email protected]>
 
 
 --- a/drivers/mtd/mtdpart.c
 --- a/drivers/mtd/mtdpart.c
 +++ b/drivers/mtd/mtdpart.c
 +++ b/drivers/mtd/mtdpart.c
-@@ -139,7 +139,11 @@
+@@ -50,7 +50,11 @@ static struct mtd_info *allocate_partiti
  
  
  	/* allocate the partition structure */
  	/* allocate the partition structure */
  	child = kzalloc(sizeof(*child), GFP_KERNEL);
  	child = kzalloc(sizeof(*child), GFP_KERNEL);
+-	name = kstrdup(part->name, GFP_KERNEL);
 +	/* "rootfs" conflicts with OpenWrt auto mounting */
 +	/* "rootfs" conflicts with OpenWrt auto mounting */
 +	if (mtd_type_is_nand(parent) && !strcmp(part->name, "rootfs"))
 +	if (mtd_type_is_nand(parent) && !strcmp(part->name, "rootfs"))
 +		name = "ubi";
 +		name = "ubi";
 +	else
 +	else
 +		name = kstrdup(part->name, GFP_KERNEL);
 +		name = kstrdup(part->name, GFP_KERNEL);
--	name = kstrdup(part->name, GFP_KERNEL);
  	if (!name || !child) {
  	if (!name || !child) {
  		printk(KERN_ERR"memory allocation error while creating partitions for \"%s\"\n",
  		printk(KERN_ERR"memory allocation error while creating partitions for \"%s\"\n",
  		       parent->name);
  		       parent->name);

+ 3 - 3
target/linux/ipq806x/patches-5.15/103-ARM-dts-qcom-reduce-pci-IO-size-to-64K.patch

@@ -17,7 +17,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
 
 
 --- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
 --- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
 +++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi
 +++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi
-@@ -1163,7 +1163,7 @@
+@@ -1086,7 +1086,7 @@
  			#address-cells = <3>;
  			#address-cells = <3>;
  			#size-cells = <2>;
  			#size-cells = <2>;
  
  
@@ -26,7 +26,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  				  0x82000000 0 0x08000000 0x08000000 0 0x07e00000>; /* non-prefetchable memory */
  				  0x82000000 0 0x08000000 0x08000000 0 0x07e00000>; /* non-prefetchable memory */
  
  
  			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
  			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
-@@ -1214,7 +1214,7 @@
+@@ -1137,7 +1137,7 @@
  			#address-cells = <3>;
  			#address-cells = <3>;
  			#size-cells = <2>;
  			#size-cells = <2>;
  
  
@@ -35,7 +35,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  				  0x82000000 0 0x2e000000 0x2e000000 0 0x03e00000>; /* non-prefetchable memory */
  				  0x82000000 0 0x2e000000 0x2e000000 0 0x03e00000>; /* non-prefetchable memory */
  
  
  			interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
  			interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
-@@ -1265,7 +1265,7 @@
+@@ -1188,7 +1188,7 @@
  			#address-cells = <3>;
  			#address-cells = <3>;
  			#size-cells = <2>;
  			#size-cells = <2>;
  
  

+ 2 - 2
target/linux/ipq806x/patches-5.15/107-1-thermal-qcom-tsens-init-debugfs-only-with-successful.patch

@@ -16,7 +16,7 @@ Acked-by: Thara Gopinath <[email protected]>
 
 
 --- a/drivers/thermal/qcom/tsens.c
 --- a/drivers/thermal/qcom/tsens.c
 +++ b/drivers/thermal/qcom/tsens.c
 +++ b/drivers/thermal/qcom/tsens.c
-@@ -918,8 +918,6 @@ int __init init_common(struct tsens_priv
+@@ -917,8 +917,6 @@ int __init init_common(struct tsens_priv
  	if (tsens_version(priv) >= VER_0_1)
  	if (tsens_version(priv) >= VER_0_1)
  		tsens_enable_irq(priv);
  		tsens_enable_irq(priv);
  
  
@@ -25,7 +25,7 @@ Acked-by: Thara Gopinath <[email protected]>
  err_put_device:
  err_put_device:
  	put_device(&op->dev);
  	put_device(&op->dev);
  	return ret;
  	return ret;
-@@ -1155,7 +1153,12 @@ static int tsens_probe(struct platform_d
+@@ -1157,7 +1155,12 @@ static int tsens_probe(struct platform_d
  		}
  		}
  	}
  	}
  
  

+ 2 - 2
target/linux/ipq806x/patches-5.15/107-2-thermal-qcom-tsens-simplify-debugfs-init-function.patch

@@ -17,7 +17,7 @@ Reviewed-by: Thara Gopinath <[email protected]>
 
 
 --- a/drivers/thermal/qcom/tsens.c
 --- a/drivers/thermal/qcom/tsens.c
 +++ b/drivers/thermal/qcom/tsens.c
 +++ b/drivers/thermal/qcom/tsens.c
-@@ -692,7 +692,7 @@ static int dbg_version_show(struct seq_f
+@@ -691,7 +691,7 @@ static int dbg_version_show(struct seq_f
  			return ret;
  			return ret;
  		seq_printf(s, "%d.%d.%d\n", maj_ver, min_ver, step_ver);
  		seq_printf(s, "%d.%d.%d\n", maj_ver, min_ver, step_ver);
  	} else {
  	} else {
@@ -26,7 +26,7 @@ Reviewed-by: Thara Gopinath <[email protected]>
  	}
  	}
  
  
  	return 0;
  	return 0;
-@@ -704,21 +704,17 @@ DEFINE_SHOW_ATTRIBUTE(dbg_sensors);
+@@ -703,21 +703,17 @@ DEFINE_SHOW_ATTRIBUTE(dbg_sensors);
  static void tsens_debug_init(struct platform_device *pdev)
  static void tsens_debug_init(struct platform_device *pdev)
  {
  {
  	struct tsens_priv *priv = platform_get_drvdata(pdev);
  	struct tsens_priv *priv = platform_get_drvdata(pdev);

+ 1 - 1
target/linux/ipq806x/patches-5.15/850-soc-add-qualcomm-syscon.patch

@@ -12,7 +12,7 @@ Subject: SoC: add qualcomm syscon
  obj-$(CONFIG_QCOM_RPMHPD) += rpmhpd.o
  obj-$(CONFIG_QCOM_RPMHPD) += rpmhpd.o
 --- a/drivers/soc/qcom/Kconfig
 --- a/drivers/soc/qcom/Kconfig
 +++ b/drivers/soc/qcom/Kconfig
 +++ b/drivers/soc/qcom/Kconfig
-@@ -189,6 +189,13 @@ config QCOM_SOCINFO
+@@ -190,6 +190,13 @@ config QCOM_SOCINFO
  	 Say yes here to support the Qualcomm socinfo driver, providing
  	 Say yes here to support the Qualcomm socinfo driver, providing
  	 information about the SoC to user space.
  	 information about the SoC to user space.