diff options
author | Mintz, Yuval <Yuval.Mintz@cavium.com> | 2017-05-21 12:10:52 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-05-21 12:56:53 -0400 |
commit | ba798b5b6d067baa7ca7be3cdfd1f37a89da873f (patch) | |
tree | 00c7bce9c002e55fbc44d5502086961d9443aa4b /drivers/net/ethernet | |
parent | dc57ae3d938f67ea8960e9cf541c93bc0a143148 (diff) | |
download | op-kernel-dev-ba798b5b6d067baa7ca7be3cdfd1f37a89da873f.zip op-kernel-dev-ba798b5b6d067baa7ca7be3cdfd1f37a89da873f.tar.gz |
qede: Allow WoL to activate by default
When management firmware declares that the device is WoL-capable,
the default driver behavior would be to allow the management firmware
to take the decision of whether it's actually needed or not.
Problem is ethtool interface doesn't have a 'default' kind
of option, and user would see the interface WoL as disabled,
which doesn't accurately reflect the actual configuration.
More-so, if the user actually wants to explicitly disable WoL he'd have
to first enable it [otherwise ethtool would block the command].
Instead of allowing management to make the decision, enable WoL by
default on all devices capable of it.
Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet')
-rw-r--r-- | drivers/net/ethernet/qlogic/qede/qede_main.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/ethernet/qlogic/qede/qede_main.c b/drivers/net/ethernet/qlogic/qede/qede_main.c index 38b77bb..4a46052 100644 --- a/drivers/net/ethernet/qlogic/qede/qede_main.c +++ b/drivers/net/ethernet/qlogic/qede/qede_main.c @@ -618,6 +618,12 @@ static struct qede_dev *qede_alloc_etherdev(struct qed_dev *cdev, memset(&edev->stats, 0, sizeof(edev->stats)); memcpy(&edev->dev_info, info, sizeof(*info)); + /* As ethtool doesn't have the ability to show WoL behavior as + * 'default', if device supports it declare it's enabled. + */ + if (edev->dev_info.common.wol_support) + edev->wol_enabled = true; + INIT_LIST_HEAD(&edev->vlan_list); return edev; |