Message ID | E1tpQL1-005St4-Hn@rmk-PC.armlinux.org.uk (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [net-next] net: stmmac: simplify phylink_suspend() and phylink_resume() calls | expand |
On Tue, Mar 04, 2025 at 11:21:27AM +0000, Russell King (Oracle) wrote: > Currently, the calls to phylink's suspend and resume functions are > inside overly complex tests, and boil down to: > > if (device_may_wakeup(priv->device) && priv->plat->pmt) { > call phylink > } else { > call phylink and > if (device_may_wakeup(priv->device)) > do something else > } > > This results in phylink always being called, possibly with differing > arguments for phylink_suspend(). > > Simplify this code, noting that each site is slightly different due to > the order in which phylink is called and the "something else". > > Reviewed-by: Andrew Lunn <andrew@lunn.ch> > Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Reviewed-by: Simon Horman <horms@kernel.org>
Hello: This patch was applied to netdev/net-next.git (main) by Jakub Kicinski <kuba@kernel.org>: On Tue, 04 Mar 2025 11:21:27 +0000 you wrote: > Currently, the calls to phylink's suspend and resume functions are > inside overly complex tests, and boil down to: > > if (device_may_wakeup(priv->device) && priv->plat->pmt) { > call phylink > } else { > call phylink and > if (device_may_wakeup(priv->device)) > do something else > } > > [...] Here is the summary with links: - [net-next] net: stmmac: simplify phylink_suspend() and phylink_resume() calls https://git.kernel.org/netdev/net-next/c/f732549eb303 You are awesome, thank you!
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index aec230353ac4..fbcba6c71f12 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -7831,13 +7831,11 @@ int stmmac_suspend(struct device *dev) mutex_unlock(&priv->lock); rtnl_lock(); - if (device_may_wakeup(priv->device) && priv->plat->pmt) { - phylink_suspend(priv->phylink, true); - } else { - if (device_may_wakeup(priv->device)) - phylink_speed_down(priv->phylink, false); - phylink_suspend(priv->phylink, false); - } + if (device_may_wakeup(priv->device) && !priv->plat->pmt) + phylink_speed_down(priv->phylink, false); + + phylink_suspend(priv->phylink, + device_may_wakeup(priv->device) && priv->plat->pmt); rtnl_unlock(); if (stmmac_fpe_supported(priv)) @@ -7927,13 +7925,9 @@ int stmmac_resume(struct device *dev) } rtnl_lock(); - if (device_may_wakeup(priv->device) && priv->plat->pmt) { - phylink_resume(priv->phylink); - } else { - phylink_resume(priv->phylink); - if (device_may_wakeup(priv->device)) - phylink_speed_up(priv->phylink); - } + phylink_resume(priv->phylink); + if (device_may_wakeup(priv->device) && !priv->plat->pmt) + phylink_speed_up(priv->phylink); rtnl_unlock(); rtnl_lock();