diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index a76fbcfc7647..f7e1a9a9d771 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -54,7 +54,9 @@ #include #include #include "dwmac1000.h" - +#ifdef CONFIG_AMLOGIC_ETH_PRIVE +#include "stmmac_platform.h" +#endif #ifdef CONFIG_DWMAC_MESON #include #endif @@ -3672,8 +3674,10 @@ int stmmac_resume(struct device *dev) phy_start(priv->phydev); #ifdef TX_MONITOR - stmmac_release(priv_monitor->dev); - stmmac_open(priv_monitor->dev); + if (!ee_reset_base) { + stmmac_release(priv_monitor->dev); + stmmac_open(priv_monitor->dev); + } #endif return 0; } diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.h b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.h index 5b44e9bc9004..7cd591a1fa1d 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.h +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.h @@ -35,6 +35,7 @@ int stmmac_pltfr_suspend(struct device *dev); int stmmac_pltfr_resume(struct device *dev); extern unsigned int external_rx_delay; extern unsigned int external_tx_delay; +extern void __iomem *ee_reset_base; #endif extern const struct dev_pm_ops stmmac_pltfr_pm_ops;