Re: [PATCHv2 net-next] net: mvneta: implement .set_wol and .get_wol
From: Jisheng Zhang <hidden>
Date: 2017-01-23 02:57:01
On Mon, 23 Jan 2017 10:44:07 +0800 Jingju Hou [off-list ref] wrote:
The mvneta itself does not support WOL, but the PHY might. So pass the calls to the PHY Signed-off-by: Jingju Hou <redacted>
Reviewed-by: Jisheng Zhang <redacted>
quoted hunk ↗ jump to hunk
--- Since v1: - using phy_dev member in struct net_device drivers/net/ethernet/marvell/mvneta.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c index e05e227..78869fa 100644 --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c@@ -3908,6 +3908,25 @@ static int mvneta_ethtool_get_rxfh(struct net_device *dev, u32 *indir, u8 *key, return 0; } +static void +mvneta_ethtool_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol) +{ + wol->supported = 0; + wol->wolopts = 0; + + if (dev->phy_dev) + return phy_ethtool_get_wol(dev->phy_dev, wol); +} + +static int +mvneta_ethtool_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol) +{ + if (!dev->phy_dev) + return -EOPNOTSUPP; + + return phy_ethtool_set_wol(dev->phy_dev, wol); +} + static const struct net_device_ops mvneta_netdev_ops = { .ndo_open = mvneta_open, .ndo_stop = mvneta_stop,@@ -3937,6 +3956,8 @@ static int mvneta_ethtool_get_rxfh(struct net_device *dev, u32 *indir, u8 *key, .set_rxfh = mvneta_ethtool_set_rxfh, .get_link_ksettings = phy_ethtool_get_link_ksettings, .set_link_ksettings = mvneta_ethtool_set_link_ksettings, + .get_wol = mvneta_ethtool_get_wol, + .set_wol = mvneta_ethtool_set_wol, }; /* Initialize hw */