aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/emulex/benet/be_main.c
diff options
context:
space:
mode:
authorAjit Khaparde <ajit.khaparde@emulex.com>2012-03-18 06:23:11 +0000
committerDavid S. Miller <davem@davemloft.net>2012-03-19 16:52:17 -0400
commit4762f6cec4455f3bbe4ca82c100fe5d85d3c02a2 (patch)
tree51cf21b4a949b8a3292019f81447d8a9a719d7e3 /drivers/net/ethernet/emulex/benet/be_main.c
parentMerge branch 'gianfar-bql' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux (diff)
downloadlinux-dev-4762f6cec4455f3bbe4ca82c100fe5d85d3c02a2.tar.xz
linux-dev-4762f6cec4455f3bbe4ca82c100fe5d85d3c02a2.zip
be2net: enable WOL by default if h/w supports it
Signed-off-by: Ajit Khaparde <ajit.khaparde@emulex.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r--drivers/net/ethernet/emulex/benet/be_main.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index e3822788f532..050e3ebd4fb3 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -3244,6 +3244,12 @@ static void __devexit be_remove(struct pci_dev *pdev)
free_netdev(adapter->netdev);
}
+bool be_is_wol_supported(struct be_adapter *adapter)
+{
+ return ((adapter->wol_cap & BE_WOL_CAP) &&
+ !be_is_wol_excluded(adapter)) ? true : false;
+}
+
static int be_get_config(struct be_adapter *adapter)
{
int status;
@@ -3262,6 +3268,17 @@ static int be_get_config(struct be_adapter *adapter)
if (status)
return status;
+ status = be_cmd_get_acpi_wol_cap(adapter);
+ if (status) {
+ /* in case of a failure to get wol capabillities
+ * check the exclusion list to determine WOL capability */
+ if (!be_is_wol_excluded(adapter))
+ adapter->wol_cap |= BE_WOL_CAP;
+ }
+
+ if (be_is_wol_supported(adapter))
+ adapter->wol = true;
+
return 0;
}