Message ID | 20210510065509.27923-1-qiangqing.zhang@nxp.com |
---|---|
State | New |
Headers | show |
Series | [V5,net] net: stmmac: Fix MAC WoL not working if PHY does not support WoL | expand |
Hello: This patch was applied to netdev/net.git (refs/heads/master): On Mon, 10 May 2021 14:55:09 +0800 you wrote: > Both get and set WoL will check device_can_wakeup(), if MAC supports PMT, it > will set device wakeup capability. After commit 1d8e5b0f3f2c ("net: stmmac: > Support WOL with phy"), device wakeup capability will be overwrite in > stmmac_init_phy() according to phy's Wol feature. If phy doesn't support WoL, > then MAC will lose wakeup capability. To fix this issue, only overwrite device > wakeup capability when MAC doesn't support PMT. > > [...] Here is the summary with links: - [V5,net] net: stmmac: Fix MAC WoL not working if PHY does not support WoL https://git.kernel.org/netdev/net/c/576f9eacc680 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 345b4c6d1fd4..fea3bf07ae89 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -1196,7 +1196,6 @@ static void stmmac_check_pcs_mode(struct stmmac_priv *priv) */ static int stmmac_init_phy(struct net_device *dev) { - struct ethtool_wolinfo wol = { .cmd = ETHTOOL_GWOL }; struct stmmac_priv *priv = netdev_priv(dev); struct device_node *node; int ret; @@ -1222,8 +1221,12 @@ static int stmmac_init_phy(struct net_device *dev) ret = phylink_connect_phy(priv->phylink, phydev); } - phylink_ethtool_get_wol(priv->phylink, &wol); - device_set_wakeup_capable(priv->device, !!wol.supported); + if (!priv->plat->pmt) { + struct ethtool_wolinfo wol = { .cmd = ETHTOOL_GWOL }; + + phylink_ethtool_get_wol(priv->phylink, &wol); + device_set_wakeup_capable(priv->device, !!wol.supported); + } return ret; }