diff options
author | Don Skidmore <donald.c.skidmore@intel.com> | 2010-12-02 22:32:13 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-12-03 12:36:46 -0500 |
commit | 0b077feac00a8b7b0afbab3274b2e74b749bc917 (patch) | |
tree | d10f923fe10cb7f583e2ad31ea26ce4eb7ab5d4d | |
parent | c6ecf39a10ceec3e97096e2a8d3eadcecd593422 (diff) |
ixgbe: add WOL support for SFP+ subdevice
This patch will add wake on LAN support to the dev/sub_dev 10FB 11A9. This
will also include ixgbe ethtool support for this device.
Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Tested-by: Stephen Ko <stephen.s.ko@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ixgbe/ixgbe_ethtool.c | 11 | ||||
-rw-r--r-- | drivers/net/ixgbe/ixgbe_main.c | 15 | ||||
-rw-r--r-- | drivers/net/ixgbe/ixgbe_type.h | 1 |
3 files changed, 22 insertions, 5 deletions
diff --git a/drivers/net/ixgbe/ixgbe_ethtool.c b/drivers/net/ixgbe/ixgbe_ethtool.c index f9b58394fbb6..ef3f9105a05d 100644 --- a/drivers/net/ixgbe/ixgbe_ethtool.c +++ b/drivers/net/ixgbe/ixgbe_ethtool.c | |||
@@ -1879,7 +1879,16 @@ static int ixgbe_wol_exclusion(struct ixgbe_adapter *adapter, | |||
1879 | struct ixgbe_hw *hw = &adapter->hw; | 1879 | struct ixgbe_hw *hw = &adapter->hw; |
1880 | int retval = 1; | 1880 | int retval = 1; |
1881 | 1881 | ||
1882 | /* WOL not supported except for the following */ | ||
1882 | switch(hw->device_id) { | 1883 | switch(hw->device_id) { |
1884 | case IXGBE_DEV_ID_82599_SFP: | ||
1885 | /* Only this subdevice supports WOL */ | ||
1886 | if (hw->subsystem_device_id != IXGBE_SUBDEV_ID_82599_SFP) { | ||
1887 | wol->supported = 0; | ||
1888 | break; | ||
1889 | } | ||
1890 | retval = 0; | ||
1891 | break; | ||
1883 | case IXGBE_DEV_ID_82599_COMBO_BACKPLANE: | 1892 | case IXGBE_DEV_ID_82599_COMBO_BACKPLANE: |
1884 | /* All except this subdevice support WOL */ | 1893 | /* All except this subdevice support WOL */ |
1885 | if (hw->subsystem_device_id == | 1894 | if (hw->subsystem_device_id == |
@@ -1887,6 +1896,8 @@ static int ixgbe_wol_exclusion(struct ixgbe_adapter *adapter, | |||
1887 | wol->supported = 0; | 1896 | wol->supported = 0; |
1888 | break; | 1897 | break; |
1889 | } | 1898 | } |
1899 | retval = 0; | ||
1900 | break; | ||
1890 | case IXGBE_DEV_ID_82599_KX4: | 1901 | case IXGBE_DEV_ID_82599_KX4: |
1891 | retval = 0; | 1902 | retval = 0; |
1892 | break; | 1903 | break; |
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index 5861ece70207..5f4c93d40a45 100644 --- a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c | |||
@@ -7223,13 +7223,18 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev, | |||
7223 | goto err_sw_init; | 7223 | goto err_sw_init; |
7224 | 7224 | ||
7225 | switch (pdev->device) { | 7225 | switch (pdev->device) { |
7226 | case IXGBE_DEV_ID_82599_SFP: | ||
7227 | /* Only this subdevice supports WOL */ | ||
7228 | if (pdev->subsystem_device == IXGBE_SUBDEV_ID_82599_SFP) | ||
7229 | adapter->wol = (IXGBE_WUFC_MAG | IXGBE_WUFC_EX | | ||
7230 | IXGBE_WUFC_MC | IXGBE_WUFC_BC); | ||
7231 | break; | ||
7226 | case IXGBE_DEV_ID_82599_COMBO_BACKPLANE: | 7232 | case IXGBE_DEV_ID_82599_COMBO_BACKPLANE: |
7227 | /* All except this subdevice support WOL */ | 7233 | /* All except this subdevice support WOL */ |
7228 | if (pdev->subsystem_device == | 7234 | if (pdev->subsystem_device != IXGBE_SUBDEV_ID_82599_KX4_KR_MEZZ) |
7229 | IXGBE_SUBDEV_ID_82599_KX4_KR_MEZZ) { | 7235 | adapter->wol = (IXGBE_WUFC_MAG | IXGBE_WUFC_EX | |
7230 | adapter->wol = 0; | 7236 | IXGBE_WUFC_MC | IXGBE_WUFC_BC); |
7231 | break; | 7237 | break; |
7232 | } | ||
7233 | case IXGBE_DEV_ID_82599_KX4: | 7238 | case IXGBE_DEV_ID_82599_KX4: |
7234 | adapter->wol = (IXGBE_WUFC_MAG | IXGBE_WUFC_EX | | 7239 | adapter->wol = (IXGBE_WUFC_MAG | IXGBE_WUFC_EX | |
7235 | IXGBE_WUFC_MC | IXGBE_WUFC_BC); | 7240 | IXGBE_WUFC_MC | IXGBE_WUFC_BC); |
diff --git a/drivers/net/ixgbe/ixgbe_type.h b/drivers/net/ixgbe/ixgbe_type.h index 42c607339a62..9557ae64f951 100644 --- a/drivers/net/ixgbe/ixgbe_type.h +++ b/drivers/net/ixgbe/ixgbe_type.h | |||
@@ -54,6 +54,7 @@ | |||
54 | #define IXGBE_DEV_ID_82599_T3_LOM 0x151C | 54 | #define IXGBE_DEV_ID_82599_T3_LOM 0x151C |
55 | #define IXGBE_DEV_ID_82599_CX4 0x10F9 | 55 | #define IXGBE_DEV_ID_82599_CX4 0x10F9 |
56 | #define IXGBE_DEV_ID_82599_SFP 0x10FB | 56 | #define IXGBE_DEV_ID_82599_SFP 0x10FB |
57 | #define IXGBE_SUBDEV_ID_82599_SFP 0x11A9 | ||
57 | #define IXGBE_DEV_ID_82599_SFP_EM 0x1507 | 58 | #define IXGBE_DEV_ID_82599_SFP_EM 0x1507 |
58 | #define IXGBE_DEV_ID_82599_XAUI_LOM 0x10FC | 59 | #define IXGBE_DEV_ID_82599_XAUI_LOM 0x10FC |
59 | #define IXGBE_DEV_ID_82599_COMBO_BACKPLANE 0x10F8 | 60 | #define IXGBE_DEV_ID_82599_COMBO_BACKPLANE 0x10F8 |