From e917fdd9042787edd43e4070c3480baf0dfb8d33 Mon Sep 17 00:00:00 2001
From: Bo-Cun Chen <bc-bocun.chen@mediatek.com>
Date: Mon, 18 Mar 2024 16:57:13 +0800
Subject: [PATCH 22/24] 
 999-3022-mediatek-ethernet-add-multiple-ppe-allocatiion.patch

---
 arch/arm64/boot/dts/mediatek/mt7988.dtsi      |  1 +
 drivers/net/ethernet/mediatek/mtk_eth_soc.c   | 22 ++++++++++++++++---
 drivers/net/ethernet/mediatek/mtk_eth_soc.h   |  3 +++
 .../net/ethernet/mediatek/mtk_ppe_offload.c   | 10 +++++++++
 4 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/arch/arm64/boot/dts/mediatek/mt7988.dtsi b/arch/arm64/boot/dts/mediatek/mt7988.dtsi
index 4a1a446..57b27f8 100644
--- a/arch/arm64/boot/dts/mediatek/mt7988.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7988.dtsi
@@ -942,6 +942,7 @@
 		mediatek,infracfg = <&topmisc>;
 		mediatek,toprgu = <&watchdog>;
 		mediatek,hwver = <&hwver>;
+		mtketh-ppe-num = <3>;
 		#reset-cells = <1>;
 		#address-cells = <1>;
 		#size-cells = <0>;
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 291afdc..c0f4ade 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -2349,6 +2349,7 @@ static int mtk_poll_rx(struct napi_struct *napi, int budget,
 	u8 *data, *new_data;
 	struct mtk_rx_dma_v2 *rxd, trxd;
 	int done = 0;
+	int i;
 
 	if (unlikely(!ring))
 		goto rx_done;
@@ -2463,8 +2464,10 @@ static int mtk_poll_rx(struct napi_struct *napi, int budget,
 		}
 #endif
 
-		if (reason == MTK_PPE_CPU_REASON_HIT_UNBIND_RATE_REACHED)
-			mtk_ppe_check_skb(eth->ppe[0], skb, hash);
+		if (reason == MTK_PPE_CPU_REASON_HIT_UNBIND_RATE_REACHED) {
+			i = eth->mac[mac]->ppe_idx;
+			mtk_ppe_check_skb(eth->ppe[i], skb, hash);
+		}
 
 		if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX) {
 			if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_RX_V2)) {
@@ -4113,7 +4116,19 @@ static int mtk_open(struct net_device *dev)
 			     SGMSYS_QPHY_PWR_STATE_CTRL, 0);
 
 	if (eth->soc->offload_version) {
-			gdm_config = MTK_GDMA_TO_PPE0;
+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
+			if (eth->ppe_num >= 3 && mac->id == 2) {
+				mac->ppe_idx = 2;
+				gdm_config = MTK_GDMA_TO_PPE2;
+			} else if (eth->ppe_num >= 2 && mac->id == 1) {
+				mac->ppe_idx = 1;
+				gdm_config = MTK_GDMA_TO_PPE1;
+			} else
+#endif
+			{
+				mac->ppe_idx = 0;
+				gdm_config = MTK_GDMA_TO_PPE0;
+			}
 
 			for (i = 0; i < eth->ppe_num; i++)
 				mtk_ppe_start(eth->ppe[i]);
@@ -5129,6 +5144,7 @@ static const struct net_device_ops mtk_netdev_ops = {
 	.ndo_poll_controller	= mtk_poll_controller,
 #endif
 	.ndo_setup_tc		= mtk_eth_setup_tc,
+	.ndo_fill_receive_path	= mtk_eth_fill_receive_path,
 };
 
 static void mux_poll(struct work_struct *work)
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.h b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
index 8454361..d958aec 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
@@ -1978,6 +1978,7 @@ struct mtk_mac {
 	phy_interface_t			interface;
 	unsigned int			mode;
 	unsigned int			type;
+	unsigned int			ppe_idx;
 	int				speed;
 	struct device_node		*of_node;
 	struct phylink			*phylink;
@@ -2079,6 +2080,8 @@ int mtk_eth_setup_tc(struct net_device *dev, enum tc_setup_type type,
 		     void *type_data);
 int mtk_eth_setup_tc_block(struct net_device *dev, struct flow_block_offload *f,
 			   struct mtk_eth *eth);
+int mtk_eth_fill_receive_path(struct net_device_path_ctx *ctx,
+			      struct net_device_path *path);
 void mtk_eth_set_dma_device(struct mtk_eth *eth, struct device *dma_dev);
 u32 mtk_rss_indr_table(struct mtk_rss_params *rss_params, int index);
 
diff --git a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
index 402f1e3..3bfbec8 100644
--- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
+++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
@@ -828,6 +828,16 @@ int mtk_eth_setup_tc(struct net_device *dev, enum tc_setup_type type,
 	}
 }
 
+int mtk_eth_fill_receive_path(struct net_device_path_ctx *ctx,
+			      struct net_device_path *path)
+{
+	struct mtk_mac *mac = netdev_priv(ctx->dev);
+
+	path->mtk_wdma.wdma_idx = mac->ppe_idx;
+
+	return 0;
+}
+
 int mtk_eth_offload_init(struct mtk_eth *eth, int id)
 {
 	if (!eth->ppe[id] || !eth->ppe[id]->foe_table)
-- 
2.18.0

