[][[Jaguar][Eagle] reset recovery]
[Description]
Add ETH Reset for device recovery when detected erro
[Release-log]
-- sync panther-cheetah eth reset
-- refine error detect func
-- refine pending work flow
Change-Id: Ibac85bcca21f711586d9b9af246da1c789062425
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/6969361
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 547d48f..096331b 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
@@ -15,6 +15,10 @@
#define MTK_WIFI_CHIP_OFFLINE 0x2004
#define MTK_FE_RESET_NAT_DONE 0x4001
+#define MTK_FE_STOP_TRAFFIC (0x2005)
+#define MTK_FE_STOP_TRAFFIC_DONE (0x2006)
+#define MTK_FE_START_TRAFFIC (0x2007)
+
/* ADMA Rx Debug Monitor */
#define MTK_ADMA_RX_DBG0 (PDMA_BASE + 0x238)
#define MTK_ADMA_RX_DBG1 (PDMA_BASE + 0x23C)
@@ -33,6 +37,12 @@
#define MTK_PPE_SCAN_MODE_MASK (0x3 << 16)
#define MTK_PPE_BUSY BIT(31)
+#if defined(CONFIG_MEDIATEK_NETSYS_V3)
+#define MTK_WDMA_CNT (0x3)
+#else
+#define MTK_WDMA_CNT (0x2)
+#endif
+
enum mtk_reset_type {
MTK_TYPE_COLD_RESET = 0,
MTK_TYPE_WARM_RESET,
@@ -55,6 +65,8 @@
extern struct completion wait_ser_done;
extern char* mtk_reset_event_name[32];
extern atomic_t reset_lock;
+extern struct completion wait_nat_done;
+extern u32 mtk_reset_flag;
irqreturn_t mtk_handle_fe_irq(int irq, void *_eth);
u32 mtk_check_reset_event(struct mtk_eth *eth, u32 status);