kernel: bump 5.15 to 5.15.32
Patches automatically rebased. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
This commit is contained in:
		 Rui Salvaterra
					Rui Salvaterra
				
			
				
					committed by
					
						 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
			
				
	
			
			
			 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
						parent
						
							a98ded6c5c
						
					
				
				
					commit
					5a09eb17c2
				
			| @@ -1,2 +1,2 @@ | |||||||
| LINUX_VERSION-5.15 = .31 | LINUX_VERSION-5.15 = .32 | ||||||
| LINUX_KERNEL_HASH-5.15.31 = f621384b47d5bed927910bf5211e7b4ccac925f28218e483bb1a9c484b246b88 | LINUX_KERNEL_HASH-5.15.32 = 1463cdfa223088610dd65d3eadeffa44ec49746091b8ae8ddac6f3070d17df86 | ||||||
|   | |||||||
| @@ -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 */ | ||||||
|   | |||||||
| @@ -166,7 +166,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	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 <nbd@nbd.name> | |||||||
|  	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 <nbd@nbd.name> | |||||||
|  	err = rhashtable_insert_fast(ð->flow_table, &entry->node, |  	err = rhashtable_insert_fast(ð->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(ð->ppe, hash); |  	mtk_foe_entry_clear(ð->ppe, hash); | ||||||
|  free: |  free: | ||||||
|  	kfree(entry); |  	kfree(entry); | ||||||
| @@ -199,7 +199,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	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(ð->ppe, entry->hash); |  	mtk_foe_entry_clear(ð->ppe, entry->hash); | ||||||
|  	rhashtable_remove_fast(ð->flow_table, &entry->node, |  	rhashtable_remove_fast(ð->flow_table, &entry->node, | ||||||
|  			       mtk_flow_ht_params); |  			       mtk_flow_ht_params); | ||||||
|   | |||||||
| @@ -49,7 +49,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  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 <nbd@nbd.name> | |||||||
|  	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); | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  |  | ||||||
| --- 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) | ||||||
|  { |  { | ||||||
|   | |||||||
| @@ -103,7 +103,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|   |   | ||||||
| --- 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 <nbd@nbd.name> | |||||||
|  	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 <nbd@nbd.name> | |||||||
|  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 <nbd@nbd.name> | |||||||
|  	rhashtable_remove_fast(ð->flow_table, &entry->node, |  	rhashtable_remove_fast(ð->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 <nbd@nbd.name> | |||||||
|  	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 <nbd@nbd.name> | |||||||
|  		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) | ||||||
|  { |  { | ||||||
|   | |||||||
| @@ -360,7 +360,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	int i; |  	int i; | ||||||
|   |   | ||||||
|  	if (rhashtable_lookup(ð->flow_table, &f->cookie, mtk_flow_ht_params)) |  	if (rhashtable_lookup(ð->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 <nbd@nbd.name> | |||||||
|  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 <nbd@nbd.name> | |||||||
|  	rhashtable_remove_fast(ð->flow_table, &entry->node, |  	rhashtable_remove_fast(ð->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 <nbd@nbd.name> | |||||||
|  	u32 idle; |  	u32 idle; | ||||||
|   |   | ||||||
|  	entry = rhashtable_lookup(ð->flow_table, &f->cookie, |  	entry = rhashtable_lookup(ð->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; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -452,7 +452,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	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 <nbd@nbd.name> | |||||||
|  			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 <nbd@nbd.name> | |||||||
|  	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 <nbd@nbd.name> | |||||||
|  		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 <nbd@nbd.name> | |||||||
|  		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; | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ Signed-off-by: Petr Štetiar <ynezz@true.cz> | |||||||
|  |  | ||||||
| --- 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 <ynezz@true.cz> | |||||||
|  	}; |  	}; | ||||||
|   |   | ||||||
|  	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 <ynezz@true.cz> | |||||||
|  		}; |  		}; | ||||||
| --- 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 <ynezz@true.cz> | |||||||
|  	}; |  	}; | ||||||
|   |   | ||||||
|  	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>; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ Signed-off-by: Petr Štetiar <ynezz@true.cz> | |||||||
|  |  | ||||||
| --- 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 <ynezz@true.cz> | |||||||
|   |   | ||||||
|  		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 <ynezz@true.cz> | |||||||
|  	}; |  	}; | ||||||
|   |   | ||||||
|  	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 <ynezz@true.cz> | |||||||
|  }; |  }; | ||||||
| --- 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 <ynezz@true.cz> | |||||||
|   |   | ||||||
|  		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 <ynezz@true.cz> | |||||||
|  	}; |  	}; | ||||||
|   |   | ||||||
|  	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 | ||||||
|  		>; |  		>; | ||||||
|  	}; |  	}; | ||||||
|   | |||||||
| @@ -33,7 +33,7 @@ Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org> | |||||||
|  |  | ||||||
| --- 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 <mathieu@codeaurora.org> | |||||||
| +	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 | ||||||
|   | |||||||
| @@ -22,7 +22,7 @@ Signed-off-by: Adrian Panella <ianchi74@outlook.com> | |||||||
|  |  | ||||||
| --- 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 <ianchi74@outlook.com> | |||||||
|  } |  } | ||||||
| --- 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 <ianchi74@outlook.com> | |||||||
|  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(); | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  |  | ||||||
| --- 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 \ | ||||||
|   | |||||||
| @@ -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,8 +211,8 @@ | |||||||
| -			status = "disabled"; | -			status = "disabled"; | ||||||
|  		}; |  		}; | ||||||
|   |   | ||||||
|  		ss_phy_0: usb3phy@100f8830 { |  		ss_phy_0: phy@100f8830 { | ||||||
| @@ -1055,8 +1055,6 @@ | @@ -1075,8 +1114,6 @@ | ||||||
|  			clocks = <&gcc USB30_0_MASTER_CLK>; |  			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; | ||||||
|   | |||||||
| @@ -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 { |  		rng@1a500000 { | ||||||
| @@ -761,6 +937,17 @@ | @@ -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 @@ | ||||||
|  			}; |  			}; | ||||||
|  		}; |  		}; | ||||||
|  	}; |  	}; | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | |||||||
|  |  | ||||||
| --- 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 <ansuelsmth@gmail.com> | |||||||
|  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 <ansuelsmth@gmail.com> | |||||||
|  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 | ||||||
|   | |||||||
| @@ -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; | ||||||
|  		} |  		} | ||||||
|   |   | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | |||||||
|  |  | ||||||
| --- 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 <ansuelsmth@gmail.com> | |||||||
|  /* |  /* | ||||||
|   * 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 <ansuelsmth@gmail.com> | |||||||
|   */ |   */ | ||||||
|  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 <ansuelsmth@gmail.com> | |||||||
|  }; |  }; | ||||||
|   |   | ||||||
|  /* |  /* | ||||||
| @@ -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 <ansuelsmth@gmail.com> | |||||||
|   * @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 <ansuelsmth@gmail.com> | |||||||
|  	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 <ansuelsmth@gmail.com> | |||||||
|  		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 <ansuelsmth@gmail.com> | |||||||
|  			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 <ansuelsmth@gmail.com> | |||||||
|  			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 <ansuelsmth@gmail.com> | |||||||
|  /* 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 <ansuelsmth@gmail.com> | |||||||
|  	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 <ansuelsmth@gmail.com> | |||||||
|  	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 <ansuelsmth@gmail.com> | |||||||
|  	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 <ansuelsmth@gmail.com> | |||||||
|  	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 <ansuelsmth@gmail.com> | |||||||
|  			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 <ansuelsmth@gmail.com> | |||||||
|  	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 <ansuelsmth@gmail.com> | |||||||
|  			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 <ansuelsmth@gmail.com> | |||||||
|  	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 <ansuelsmth@gmail.com> | |||||||
|  	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 <ansuelsmth@gmail.com> | |||||||
|  	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, | ||||||
|   | |||||||
| @@ -14,11 +14,10 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | |||||||
|  |  | ||||||
| --- 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: | @@ -78,6 +78,14 @@ allOf: | ||||||
|            description: |  | ||||||
|              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 <ansuelsmth@gmail.com> | |||||||
| +            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 <ansuelsmth@gmail.com> | |||||||
| + | + | ||||||
|          partitions { |          partitions { | ||||||
|            compatible = "fixed-partitions"; |            compatible = "fixed-partitions"; | ||||||
|  |            #address-cells = <1>; | ||||||
|   | |||||||
| @@ -10,16 +10,16 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  |  | ||||||
| --- 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); | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | |||||||
|  |  | ||||||
| --- 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 <ansuelsmth@gmail.com> | |||||||
|  				  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 <ansuelsmth@gmail.com> | |||||||
|  				  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>; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ Acked-by: Thara Gopinath <thara.gopinath@linaro.org> | |||||||
|  |  | ||||||
| --- 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 <thara.gopinath@linaro.org> | |||||||
|  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 | ||||||
|  		} |  		} | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ Reviewed-by: Thara Gopinath <thara.gopinath@linaro.org> | |||||||
|  |  | ||||||
| --- 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 <thara.gopinath@linaro.org> | |||||||
|  	} |  	} | ||||||
|   |   | ||||||
|  	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); | ||||||
|   | |||||||
| @@ -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. | ||||||
|   |   | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user