mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-27 22:28:25 -04:00
enetc: ethtool: add wake-on-lan callbacks
If there is an external PHY, pass the wake-on-lan request to the PHY. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
a613bafec5
commit
88c8562b16
@@ -584,6 +584,31 @@ static int enetc_get_ts_info(struct net_device *ndev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void enetc_get_wol(struct net_device *dev,
|
||||
struct ethtool_wolinfo *wol)
|
||||
{
|
||||
wol->supported = 0;
|
||||
wol->wolopts = 0;
|
||||
|
||||
if (dev->phydev)
|
||||
phy_ethtool_get_wol(dev->phydev, wol);
|
||||
}
|
||||
|
||||
static int enetc_set_wol(struct net_device *dev,
|
||||
struct ethtool_wolinfo *wol)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (!dev->phydev)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
ret = phy_ethtool_set_wol(dev->phydev, wol);
|
||||
if (!ret)
|
||||
device_set_wakeup_enable(&dev->dev, wol->wolopts);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static const struct ethtool_ops enetc_pf_ethtool_ops = {
|
||||
.get_regs_len = enetc_get_reglen,
|
||||
.get_regs = enetc_get_regs,
|
||||
@@ -601,6 +626,8 @@ static const struct ethtool_ops enetc_pf_ethtool_ops = {
|
||||
.set_link_ksettings = phy_ethtool_set_link_ksettings,
|
||||
.get_link = ethtool_op_get_link,
|
||||
.get_ts_info = enetc_get_ts_info,
|
||||
.get_wol = enetc_get_wol,
|
||||
.set_wol = enetc_set_wol,
|
||||
};
|
||||
|
||||
static const struct ethtool_ops enetc_vf_ethtool_ops = {
|
||||
|
||||
Reference in New Issue
Block a user