From 108924394ac7634ddae0a87c9108e0cadcd7c9df Mon Sep 17 00:00:00 2001
From: Bo-Cun Chen <bc-bocun.chen@mediatek.com>
Date: Wed, 23 Aug 2023 13:46:31 +0800
Subject: [PATCH] 999-3017-ethernet-update-ppe-from-mt7986-to-mt7988

---
 drivers/net/ethernet/mediatek/mtk_eth_soc.c   | 14 ++++---
 drivers/net/ethernet/mediatek/mtk_eth_soc.h   |  3 +-
 drivers/net/ethernet/mediatek/mtk_ppe.c       | 18 ++++++---
 drivers/net/ethernet/mediatek/mtk_ppe.h       | 40 +++++++++++++++----
 .../net/ethernet/mediatek/mtk_ppe_offload.c   |  6 ++-
 5 files changed, 61 insertions(+), 20 deletions(-)

diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 1dcdd17..a1b4c80 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -2198,17 +2198,17 @@ static int mtk_poll_rx(struct napi_struct *napi, int budget,
 			skb_checksum_none_assert(skb);
 		skb->protocol = eth_type_trans(skb, netdev);
 
-#if defined(CONFIG_MEDIATEK_NETSYS_RX_V2)
-			hash = trxd.rxd5 & MTK_RXD5_FOE_ENTRY_V2;
+#if defined(CONFIG_MEDIATEK_NETSYS_RX_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
+		hash = trxd.rxd5 & MTK_RXD5_FOE_ENTRY_V2;
 #else
-			hash = trxd.rxd4 & MTK_RXD4_FOE_ENTRY;
+		hash = trxd.rxd4 & MTK_RXD4_FOE_ENTRY;
 #endif
 		if (hash != MTK_RXD4_FOE_ENTRY) {
 			hash = jhash_1word(hash, 0);
 			skb_set_hash(skb, hash, PKT_HASH_TYPE_L4);
 		}
 
-#if defined(CONFIG_MEDIATEK_NETSYS_RX_V2)
+#if defined(CONFIG_MEDIATEK_NETSYS_RX_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
 		reason = FIELD_GET(MTK_RXD5_PPE_CPU_REASON_V2, trxd.rxd5);
 		if (reason == MTK_PPE_CPU_REASON_HIT_UNBIND_RATE_REACHED) {
 			for (i = 0; i < eth->ppe_num; i++) {
@@ -5000,7 +5000,8 @@ static int mtk_probe(struct platform_device *pdev)
 
 		for (i = 0; i < eth->ppe_num; i++) {
 			eth->ppe[i] = mtk_ppe_init(eth,
-						   eth->base + MTK_ETH_PPE_BASE + i * 0x400,
+						   eth->base + MTK_ETH_PPE_BASE +
+						   (i == 2 ? 0xC00 : i * 0x400),
 						   2, eth->soc->hash_way, i,
 						   eth->soc->has_accounting);
 			if (!eth->ppe[i]) {
@@ -5267,6 +5268,9 @@ static const struct mtk_soc_data mt7988_data = {
 	.required_clks = MT7988_CLKS_BITMAP,
 	.required_pctl = false,
 	.has_sram = true,
+	.has_accounting = true,
+	.hash_way = 4,
+	.offload_version = 2,
 	.rss_num = 4,
 	.txrx = {
 		.txd_size = sizeof(struct mtk_tx_dma_v2),
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.h b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
index 83a5fec..443120f 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
@@ -130,9 +130,10 @@
 #define MTK_GDMA_UCS_EN		BIT(20)
 #define MTK_GDMA_STRP_CRC	BIT(16)
 #define MTK_GDMA_TO_PDMA	0x0
-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
 #define MTK_GDMA_TO_PPE0	0x3333
 #define MTK_GDMA_TO_PPE1	0x4444
+#define MTK_GMAC_TO_PPE2	0xcccc
 #else
 #define MTK_GDMA_TO_PPE0	0x4444
 #endif
diff --git a/drivers/net/ethernet/mediatek/mtk_ppe.c b/drivers/net/ethernet/mediatek/mtk_ppe.c
index ed677e1..4c17a4e 100755
--- a/drivers/net/ethernet/mediatek/mtk_ppe.c
+++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
@@ -211,7 +211,7 @@ int mtk_foe_entry_prepare(struct mtk_foe_entry *entry, int type, int l4proto,
 	      MTK_FOE_IB1_BIND_CACHE;
 	entry->ib1 = val;
 
-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
 	val = FIELD_PREP(MTK_FOE_IB2_PORT_AG, 0xf) |
 #else
 	val = FIELD_PREP(MTK_FOE_IB2_PORT_MG, 0x3f) |
@@ -403,7 +403,7 @@ int mtk_foe_entry_set_wdma(struct mtk_foe_entry *entry, int wdma_idx, int txq,
 
 	*ib2 &= ~MTK_FOE_IB2_PORT_MG;
 	*ib2 |= MTK_FOE_IB2_WDMA_WINFO;
-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
 	*ib2 |=  FIELD_PREP(MTK_FOE_IB2_RX_IDX, txq);
 
 	l2->winfo = FIELD_PREP(MTK_FOE_WINFO_WCID, wcid) |
@@ -422,11 +422,16 @@ int mtk_foe_entry_set_wdma(struct mtk_foe_entry *entry, int wdma_idx, int txq,
 
 int mtk_foe_entry_set_qid(struct mtk_foe_entry *entry, int qid)
 {
+	struct mtk_foe_mac_info *l2 = mtk_foe_entry_l2(entry);
 	u32 *ib2 = mtk_foe_entry_ib2(entry);
 
 	*ib2 &= ~MTK_FOE_IB2_QID;
 	*ib2 |= FIELD_PREP(MTK_FOE_IB2_QID, qid);
+#if defined(CONFIG_MEDIATEK_NETSYS_V3)
+	l2->tport_id = 1;
+#else
 	*ib2 |= MTK_FOE_IB2_PSE_QOS;
+#endif
 
 	return 0;
 }
@@ -902,13 +907,16 @@ int mtk_ppe_start(struct mtk_ppe *ppe)
 	mtk_ppe_init_foe_table(ppe);
 	ppe_w32(ppe, MTK_PPE_TB_BASE, ppe->foe_phys);
 
-	val = MTK_PPE_TB_CFG_ENTRY_80B |
+	val =
+#if !defined(CONFIG_MEDIATEK_NETSYS_V3)
+	      MTK_PPE_TB_CFG_ENTRY_80B |
+#endif
 	      MTK_PPE_TB_CFG_AGE_NON_L4 |
 	      MTK_PPE_TB_CFG_AGE_UNBIND |
 	      MTK_PPE_TB_CFG_AGE_TCP |
 	      MTK_PPE_TB_CFG_AGE_UDP |
 	      MTK_PPE_TB_CFG_AGE_TCP_FIN |
-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
 	      MTK_PPE_TB_CFG_INFO_SEL |
 #endif
 	      FIELD_PREP(MTK_PPE_TB_CFG_SEARCH_MISS,
@@ -972,7 +980,7 @@ int mtk_ppe_start(struct mtk_ppe *ppe)
 
 	ppe_w32(ppe, MTK_PPE_DEFAULT_CPU_PORT, 0);
 
-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
 	ppe_w32(ppe, MTK_PPE_DEFAULT_CPU_PORT1, 0xcb777);
 	ppe_w32(ppe, MTK_PPE_SBW_CTRL, 0x7f);
 #endif
diff --git a/drivers/net/ethernet/mediatek/mtk_ppe.h b/drivers/net/ethernet/mediatek/mtk_ppe.h
index e954e73..4abed85 100644
--- a/drivers/net/ethernet/mediatek/mtk_ppe.h
+++ b/drivers/net/ethernet/mediatek/mtk_ppe.h
@@ -8,7 +8,10 @@
 #include <linux/bitfield.h>
 #include <linux/rhashtable.h>
 
-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+#if defined(CONFIG_MEDIATEK_NETSYS_V3)
+#define MTK_MAX_PPE_NUM			3
+#define MTK_ETH_PPE_BASE		0x2000
+#elif defined(CONFIG_MEDIATEK_NETSYS_V2)
 #define MTK_MAX_PPE_NUM			2
 #define MTK_ETH_PPE_BASE		0x2000
 #else
@@ -22,7 +25,7 @@
 #define MTK_PPE_WAIT_TIMEOUT_US		1000000
 
 #define MTK_FOE_IB1_UNBIND_TIMESTAMP	GENMASK(7, 0)
-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
 #define MTK_FOE_IB1_UNBIND_SRC_PORT	GENMASK(11, 8)
 #define MTK_FOE_IB1_UNBIND_PACKETS	GENMASK(19, 12)
 #define MTK_FOE_IB1_UNBIND_PREBIND	BIT(22)
@@ -70,7 +73,7 @@ enum {
 	MTK_PPE_PKT_TYPE_IPV6_6RD = 7,
 };
 
-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
 #define MTK_FOE_IB2_QID			GENMASK(6, 0)
 #define MTK_FOE_IB2_PORT_MG		BIT(7)
 #define MTK_FOE_IB2_PSE_QOS		BIT(8)
@@ -98,7 +101,18 @@ enum {
 
 #define MTK_FOE_IB2_DSCP		GENMASK(31, 24)
 
-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+#if defined(CONFIG_MEDIATEK_NETSYS_V3)
+#define MTK_FOE_WINFO_WCID		GENMASK(15, 0)
+#define MTK_FOE_WINFO_BSS		GENMASK(23, 16)
+
+#define MTK_FOE_WINFO_PAO_USR_INFO	GENMASK(15, 0)
+#define MTK_FOE_WINFO_PAO_TID		GENMASK(19, 16)
+#define MTK_FOE_WINFO_PAO_IS_FIXEDRATE	BIT(20)
+#define MTK_FOE_WINFO_PAO_IS_PRIOR	BIT(21)
+#define MTK_FOE_WINFO_PAO_IS_SP		BIT(22)
+#define MTK_FOE_WINFO_PAO_HF		BIT(23)
+#define MTK_FOE_WINFO_PAO_AMSDU_EN	BIT(24)
+#elif defined(CONFIG_MEDIATEK_NETSYS_V2)
 #define MTK_FOE_WINFO_BSS		GENMASK(5, 0)
 #define MTK_FOE_WINFO_WCID		GENMASK(15, 6)
 #else
@@ -128,7 +142,17 @@ struct mtk_foe_mac_info {
 	u16 pppoe_id;
 	u16 src_mac_lo;
 
-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+#if defined(CONFIG_MEDIATEK_NETSYS_V3)
+	u16 minfo;
+	u16 resv1;
+	u32 winfo;
+	u32 winfo_pao;
+	u16 cdrt_id:8;
+	u16 tops_entry:6;
+	u16 resv3:2;
+	u16 tport_id:4;
+	u16 resv4:12;
+#elif defined(CONFIG_MEDIATEK_NETSYS_V2)
 	u16 minfo;
 	u16 winfo;
 #endif
@@ -249,7 +273,9 @@ struct mtk_foe_entry {
 		struct mtk_foe_ipv4_dslite dslite;
 		struct mtk_foe_ipv6 ipv6;
 		struct mtk_foe_ipv6_6rd ipv6_6rd;
-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+#if defined(CONFIG_MEDIATEK_NETSYS_V3)
+		u32 data[31];
+#elif defined(CONFIG_MEDIATEK_NETSYS_V2)
 		u32 data[23];
 #else
 		u32 data[19];
@@ -411,7 +437,7 @@ int mtk_foe_entry_idle_time(struct mtk_ppe *ppe, struct mtk_flow_entry *entry);
 struct mtk_foe_accounting *mtk_foe_entry_get_mib(struct mtk_ppe *ppe, u32 index, struct mtk_foe_accounting *diff);
 u32 mtk_ppe_hash_entry(struct mtk_ppe *ppe, struct mtk_foe_entry *e);
 
-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
 static inline int
 mtk_foe_entry_set_sp(struct mtk_ppe *ppe, struct mtk_foe_entry *entry)
 {
diff --git a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
index 1d56e2c..8cd8dc7 100755
--- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
+++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
@@ -195,7 +195,7 @@ mtk_flow_set_output_device(struct mtk_eth *eth, struct mtk_foe_entry *foe,
 		mtk_foe_entry_set_wdma(foe, info.wdma_idx, info.queue, info.bss,
 				       info.wcid);
 		pse_port = PSE_PPE0_PORT;
-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
 		if (info.wdma_idx == 0)
 			pse_port = PSE_WDMA0_PORT;
 		else if (info.wdma_idx == 1)
@@ -218,6 +218,8 @@ mtk_flow_set_output_device(struct mtk_eth *eth, struct mtk_foe_entry *foe,
 		pse_port = PSE_GDM1_PORT;
 	else if (dev == eth->netdev[1])
 		pse_port = PSE_GDM2_PORT;
+	else if (dev == eth->netdev[2])
+		pse_port = PSE_GDM3_PORT;
 	else
 		return -EOPNOTSUPP;
 
@@ -376,7 +378,7 @@ mtk_flow_offload_replace(struct mtk_eth *eth, struct flow_cls_offload *f)
 	if (err)
 		return err;
 
-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
 	if (idev && idev->netdev_ops->ndo_fill_receive_path) {
 		ctx.dev = idev;
 		idev->netdev_ops->ndo_fill_receive_path(&ctx, &path);
-- 
2.18.0

