[][[kernel][mt7988][eth][add reset function from fe to fe&&wdma reset]]
[Description]
Add reset function from FE reset to FE&WDMA reset
-FE reset need wifi stop traffic
-WIFI stop traffic may fail because of FE's reason
-we should switch to FE&WDMA reset when WIFI stop traffic fail
-default setting :mask print too much debug information
-follow DE advice jaguar disable idle check for xgdm/xmac
[Release-log]
N/A
Change-Id: I6b80eaa1114db23dbe751c046f8930c2d3548ff0
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/7409800
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 b4890fe..05a5595 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
@@ -3959,8 +3959,20 @@
eth->netdev[i]);
}
rtnl_unlock();
- if (!wait_for_completion_timeout(&wait_ser_done, 3000))
+ if (!wait_for_completion_timeout(&wait_ser_done, 3000)) {
+ if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V3) &&
+ (mtk_stop_fail)) {
+ pr_info("send MTK_FE_START_RESET stop\n");
+ rtnl_lock();
+ call_netdevice_notifiers(MTK_FE_START_RESET,
+ eth->netdev[i]);
+ rtnl_unlock();
+ if (!wait_for_completion_timeout(&wait_ser_done,
+ 3000))
+ pr_warn("wait for MTK_FE_START_RESET\n");
+ }
pr_warn("wait for MTK_FE_START_RESET\n");
+ }
rtnl_lock();
break;
}