aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ixgbe
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@intel.com>2010-11-16 22:27:05 -0500
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2010-11-16 22:27:05 -0500
commit50d6c681d0c38208e494f0c6302ef13d21dababa (patch)
tree72a1cb4d92b6b62f34a720bac18d3bf31d025d79 /drivers/net/ixgbe
parente2b4e216b7e9da09175c76887c754489681533b9 (diff)
ixgbe: add WOL support for backplane adapters
This change adds support for certain 82599 based Mezzanine adapters. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Tested-by: Ross Brattain <ross.b.brattain@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ixgbe')
-rw-r--r--drivers/net/ixgbe/ixgbe_ethtool.c17
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c7
-rw-r--r--drivers/net/ixgbe/ixgbe_type.h1
3 files changed, 25 insertions, 0 deletions
diff --git a/drivers/net/ixgbe/ixgbe_ethtool.c b/drivers/net/ixgbe/ixgbe_ethtool.c
index f61a8ce908ed..0a4b322fab6a 100644
--- a/drivers/net/ixgbe/ixgbe_ethtool.c
+++ b/drivers/net/ixgbe/ixgbe_ethtool.c
@@ -185,6 +185,16 @@ static int ixgbe_get_settings(struct net_device *netdev,
185 ADVERTISED_FIBRE); 185 ADVERTISED_FIBRE);
186 ecmd->port = PORT_FIBRE; 186 ecmd->port = PORT_FIBRE;
187 ecmd->autoneg = AUTONEG_DISABLE; 187 ecmd->autoneg = AUTONEG_DISABLE;
188 } else if ((hw->device_id == IXGBE_DEV_ID_82599_COMBO_BACKPLANE) ||
189 (hw->device_id == IXGBE_DEV_ID_82599_KX4_MEZZ)) {
190 ecmd->supported |= (SUPPORTED_1000baseT_Full |
191 SUPPORTED_Autoneg |
192 SUPPORTED_FIBRE);
193 ecmd->advertising = (ADVERTISED_10000baseT_Full |
194 ADVERTISED_1000baseT_Full |
195 ADVERTISED_Autoneg |
196 ADVERTISED_FIBRE);
197 ecmd->port = PORT_FIBRE;
188 } else { 198 } else {
189 ecmd->supported |= (SUPPORTED_1000baseT_Full | 199 ecmd->supported |= (SUPPORTED_1000baseT_Full |
190 SUPPORTED_FIBRE); 200 SUPPORTED_FIBRE);
@@ -1862,6 +1872,13 @@ static int ixgbe_wol_exclusion(struct ixgbe_adapter *adapter,
1862 int retval = 1; 1872 int retval = 1;
1863 1873
1864 switch(hw->device_id) { 1874 switch(hw->device_id) {
1875 case IXGBE_DEV_ID_82599_COMBO_BACKPLANE:
1876 /* All except this subdevice support WOL */
1877 if (hw->subsystem_device_id ==
1878 IXGBE_SUBDEV_ID_82599_KX4_KR_MEZZ) {
1879 wol->supported = 0;
1880 break;
1881 }
1865 case IXGBE_DEV_ID_82599_KX4: 1882 case IXGBE_DEV_ID_82599_KX4:
1866 retval = 0; 1883 retval = 0;
1867 break; 1884 break;
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 10fff68088e6..af4ef29cae11 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -7088,6 +7088,13 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,
7088 goto err_sw_init; 7088 goto err_sw_init;
7089 7089
7090 switch (pdev->device) { 7090 switch (pdev->device) {
7091 case IXGBE_DEV_ID_82599_COMBO_BACKPLANE:
7092 /* All except this subdevice support WOL */
7093 if (pdev->subsystem_device ==
7094 IXGBE_SUBDEV_ID_82599_KX4_KR_MEZZ) {
7095 adapter->wol = 0;
7096 break;
7097 }
7091 case IXGBE_DEV_ID_82599_KX4: 7098 case IXGBE_DEV_ID_82599_KX4:
7092 adapter->wol = (IXGBE_WUFC_MAG | IXGBE_WUFC_EX | 7099 adapter->wol = (IXGBE_WUFC_MAG | IXGBE_WUFC_EX |
7093 IXGBE_WUFC_MC | IXGBE_WUFC_BC); 7100 IXGBE_WUFC_MC | IXGBE_WUFC_BC);
diff --git a/drivers/net/ixgbe/ixgbe_type.h b/drivers/net/ixgbe/ixgbe_type.h
index 96dea7731e68..9e6908dff9bc 100644
--- a/drivers/net/ixgbe/ixgbe_type.h
+++ b/drivers/net/ixgbe/ixgbe_type.h
@@ -57,6 +57,7 @@
57#define IXGBE_DEV_ID_82599_SFP_EM 0x1507 57#define IXGBE_DEV_ID_82599_SFP_EM 0x1507
58#define IXGBE_DEV_ID_82599_XAUI_LOM 0x10FC 58#define IXGBE_DEV_ID_82599_XAUI_LOM 0x10FC
59#define IXGBE_DEV_ID_82599_COMBO_BACKPLANE 0x10F8 59#define IXGBE_DEV_ID_82599_COMBO_BACKPLANE 0x10F8
60#define IXGBE_SUBDEV_ID_82599_KX4_KR_MEZZ 0x000C
60 61
61/* General Registers */ 62/* General Registers */
62#define IXGBE_CTRL 0x00000 63#define IXGBE_CTRL 0x00000