| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | 
							- From: Felix Fietkau <[email protected]>
 
- Date: Fri, 4 Nov 2022 19:49:08 +0100
 
- Subject: [PATCH] net: ethernet: mtk_eth_soc: avoid port_mg assignment on
 
-  MT7622 and newer
 
- On newer chips, this field is unused and contains some bits related to queue
 
- assignment. Initialize it to 0 in those cases.
 
- Fix offload_version on MT7621 and MT7623, which still need the previous value.
 
- Signed-off-by: Felix Fietkau <[email protected]>
 
- ---
 
- --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 
- +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 
- @@ -4431,7 +4431,7 @@ static const struct mtk_soc_data mt7621_
 
-  	.hw_features = MTK_HW_FEATURES,
 
-  	.required_clks = MT7621_CLKS_BITMAP,
 
-  	.required_pctl = false,
 
- -	.offload_version = 2,
 
- +	.offload_version = 1,
 
-  	.hash_offset = 2,
 
-  	.foe_entry_size = sizeof(struct mtk_foe_entry) - 16,
 
-  	.txrx = {
 
- @@ -4471,7 +4471,7 @@ static const struct mtk_soc_data mt7623_
 
-  	.hw_features = MTK_HW_FEATURES,
 
-  	.required_clks = MT7623_CLKS_BITMAP,
 
-  	.required_pctl = true,
 
- -	.offload_version = 2,
 
- +	.offload_version = 1,
 
-  	.hash_offset = 2,
 
-  	.foe_entry_size = sizeof(struct mtk_foe_entry) - 16,
 
-  	.txrx = {
 
- --- a/drivers/net/ethernet/mediatek/mtk_ppe.c
 
- +++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
 
- @@ -215,6 +215,8 @@ int mtk_foe_entry_prepare(struct mtk_eth
 
-  		val = FIELD_PREP(MTK_FOE_IB2_DEST_PORT_V2, pse_port) |
 
-  		      FIELD_PREP(MTK_FOE_IB2_PORT_AG_V2, 0xf);
 
-  	} else {
 
- +		int port_mg = eth->soc->offload_version > 1 ? 0 : 0x3f;
 
- +
 
-  		val = FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_BIND) |
 
-  		      FIELD_PREP(MTK_FOE_IB1_PACKET_TYPE, type) |
 
-  		      FIELD_PREP(MTK_FOE_IB1_UDP, l4proto == IPPROTO_UDP) |
 
- @@ -222,7 +224,7 @@ int mtk_foe_entry_prepare(struct mtk_eth
 
-  		entry->ib1 = val;
 
-  
 
-  		val = FIELD_PREP(MTK_FOE_IB2_DEST_PORT, pse_port) |
 
- -		      FIELD_PREP(MTK_FOE_IB2_PORT_MG, 0x3f) |
 
- +		      FIELD_PREP(MTK_FOE_IB2_PORT_MG, port_mg) |
 
-  		      FIELD_PREP(MTK_FOE_IB2_PORT_AG, 0x1f);
 
-  	}
 
-  
 
 
  |