[][update netsys reset condition for ax7800 and ax8400]

[Description]
Add netsys reset flow for ax7800 and ax8400
-- ax7800 and ax8400 need reset two wifi chip
 - wifi notify eth when wifi chip online/offline
 - eth record wifi number by detect online/offline
 - eth need wait all wifi reset done before hw reset
-- remove pse free empty detction
  - free empty trigger by chip when pse buffer less than drop threshold
  - pse is active when trigger free emptry
  - too much logs of free empty event may affect wifi packet handle

[Release-log]
N/A

Change-Id: I8fa47be45a3d2783cc7217e0130b10bce03d77a7
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/6016967
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_reset.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_reset.c
index a8aeccc..4df1892 100644
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_reset.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_reset.c
@@ -22,6 +22,9 @@
 	[MTK_EVENT_RFIFO_UF]	= "RFIFO UF",
 };
 
+static int mtk_wifi_num = 0;
+static int mtk_rest_cnt = 0;
+
 void mtk_reset_event_update(struct mtk_eth *eth, u32 id)
 {
 	struct mtk_reset_event *reset_event = &eth->reset_event;
@@ -144,8 +147,7 @@
 		val = ffs((unsigned int)status) - 1;
 		status &= ~(1 << val);
 
-		if ((val == MTK_EVENT_FQ_EMPTY) ||
-		    (val == MTK_EVENT_TSO_FAIL) ||
+		if ((val == MTK_EVENT_TSO_FAIL) ||
 		    (val == MTK_EVENT_TSO_ILLEGAL) ||
 		    (val == MTK_EVENT_TSO_ALIGN) ||
 		    (val == MTK_EVENT_RFIFO_OV) ||
@@ -391,7 +393,19 @@
 {
 	switch (event) {
 	case MTK_WIFI_RESET_DONE:
-		complete(&wait_ser_done);
+		mtk_rest_cnt--;
+		if(!mtk_rest_cnt) {
+			complete(&wait_ser_done);
+			mtk_rest_cnt = mtk_wifi_num;
+		}
+		break;
+	case MTK_WIFI_CHIP_ONLINE:
+		mtk_wifi_num++;
+		mtk_rest_cnt = mtk_wifi_num;
+		break;
+	case MTK_WIFI_CHIP_OFFLINE:
+		mtk_wifi_num--;
+		mtk_rest_cnt = mtk_wifi_num;
 		break;
 	default:
 		break;
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_reset.h b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_reset.h
index 9abd2f5..547d48f 100644
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_reset.h
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_reset.h
@@ -11,7 +11,8 @@
 #define MTK_FE_START_RESET	0x2000
 #define MTK_FE_RESET_DONE	0x2001
 #define MTK_WIFI_RESET_DONE	0x2002
-#define MTK_NAT_DISABLE		0x3000
+#define MTK_WIFI_CHIP_ONLINE 	0x2003
+#define MTK_WIFI_CHIP_OFFLINE 	0x2004
 #define MTK_FE_RESET_NAT_DONE	0x4001
 
 /* ADMA Rx Debug Monitor */
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 7149a69..13b5369 100755
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -2927,7 +2927,7 @@
 	mtk_w32(eth, MTK_TX_DONE_INT, MTK_QDMA_INT_GRP1);
 	mtk_w32(eth, MTK_RX_DONE_INT(0), MTK_QDMA_INT_GRP2);
 	mtk_w32(eth, 0x21021003, MTK_FE_INT_GRP);
-	mtk_w32(eth, MTK_FE_INT_FQ_EMPTY | MTK_FE_INT_TSO_FAIL |
+	mtk_w32(eth, MTK_FE_INT_TSO_FAIL |
 		MTK_FE_INT_TSO_ILLEGAL | MTK_FE_INT_TSO_ALIGN |
 		MTK_FE_INT_RFIFO_OV | MTK_FE_INT_RFIFO_UF, MTK_FE_INT_ENABLE);