Message ID | 20240806175659.3232204-1-florian.fainelli@broadcom.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 9ee09edc05f20422e7ced84b1f8a5d3359926ac8 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net,v2] net: bcmgenet: Properly overlay PHY and MAC Wake-on-LAN capabilities | expand |
Hello: This patch was applied to netdev/net.git (main) by Jakub Kicinski <kuba@kernel.org>: On Tue, 6 Aug 2024 10:56:59 -0700 you wrote: > Some Wake-on-LAN modes such as WAKE_FILTER may only be supported by the MAC, > while others might be only supported by the PHY. Make sure that the .get_wol() > returns the union of both rather than only that of the PHY if the PHY supports > Wake-on-LAN. > > Fixes: 7e400ff35cbe ("net: bcmgenet: Add support for PHY-based Wake-on-LAN") > Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com> > > [...] Here is the summary with links: - [net,v2] net: bcmgenet: Properly overlay PHY and MAC Wake-on-LAN capabilities https://git.kernel.org/netdev/net/c/9ee09edc05f2 You are awesome, thank you!
diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c b/drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c index 1248792d7fd4..0715ea5bf13e 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c @@ -42,19 +42,15 @@ void bcmgenet_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol) struct bcmgenet_priv *priv = netdev_priv(dev); struct device *kdev = &priv->pdev->dev; - if (dev->phydev) { + if (dev->phydev) phy_ethtool_get_wol(dev->phydev, wol); - if (wol->supported) - return; - } - if (!device_can_wakeup(kdev)) { - wol->supported = 0; - wol->wolopts = 0; + /* MAC is not wake-up capable, return what the PHY does */ + if (!device_can_wakeup(kdev)) return; - } - wol->supported = WAKE_MAGIC | WAKE_MAGICSECURE | WAKE_FILTER; + /* Overlay MAC capabilities with that of the PHY queried before */ + wol->supported |= WAKE_MAGIC | WAKE_MAGICSECURE | WAKE_FILTER; wol->wolopts = priv->wolopts; memset(wol->sopass, 0, sizeof(wol->sopass));
Some Wake-on-LAN modes such as WAKE_FILTER may only be supported by the MAC, while others might be only supported by the PHY. Make sure that the .get_wol() returns the union of both rather than only that of the PHY if the PHY supports Wake-on-LAN. Fixes: 7e400ff35cbe ("net: bcmgenet: Add support for PHY-based Wake-on-LAN") Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com> --- Changes in v2: - corrected email address drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-)