ixgbe: add support for new 82599 device.
authorDon Skidmore <donald.c.skidmore@intel.com>
Sat, 10 Dec 2011 06:49:43 +0000 (06:49 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 3 Jan 2012 01:44:34 +0000 (17:44 -0800)
This device uses an already existing DevID but since it supports
WoL we need to add the Sub DevID.  It's support of WoL is limited
to the first port.

Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h

index 91f871b6b3baec62a867333d28f4a979ab4157d5..da7e580f517ae03528fed27eb2af79ea3df81aaa 100644 (file)
@@ -1955,12 +1955,21 @@ static int ixgbe_wol_exclusion(struct ixgbe_adapter *adapter,
        /* WOL not supported except for the following */
        switch(hw->device_id) {
        case IXGBE_DEV_ID_82599_SFP:
-               /* Only this subdevice supports WOL */
-               if (hw->subsystem_device_id != IXGBE_SUBDEV_ID_82599_SFP) {
+               /* Only these subdevices could supports WOL */
+               switch (hw->subsystem_device_id) {
+               case IXGBE_SUBDEV_ID_82599_560FLR:
+                       /* only support first port */
+                       if (hw->bus.func != 0) {
+                               wol->supported = 0;
+                               break;
+                       }
+               case IXGBE_SUBDEV_ID_82599_SFP:
+                       retval = 0;
+                       break;
+               default:
                        wol->supported = 0;
                        break;
                }
-               retval = 0;
                break;
        case IXGBE_DEV_ID_82599_COMBO_BACKPLANE:
                /* All except this subdevice support WOL */
index e27e4d10411e1de11d0ba221c610b12b2cf7a256..74669a8c060e0a697fd3302133500daef162b751 100644 (file)
@@ -7605,9 +7605,16 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,
        adapter->wol = 0;
        switch (pdev->device) {
        case IXGBE_DEV_ID_82599_SFP:
-               /* Only this subdevice supports WOL */
-               if (pdev->subsystem_device == IXGBE_SUBDEV_ID_82599_SFP)
+               /* Only these subdevice supports WOL */
+               switch (pdev->subsystem_device) {
+               case IXGBE_SUBDEV_ID_82599_560FLR:
+                       /* only support first port */
+                       if (hw->bus.func != 0)
+                               break;
+               case IXGBE_SUBDEV_ID_82599_SFP:
                        adapter->wol = IXGBE_WUFC_MAG;
+                       break;
+               }
                break;
        case IXGBE_DEV_ID_82599_COMBO_BACKPLANE:
                /* All except this subdevice support WOL */
index 7c5817f8a951a0646face753ddca8eb51c8c04fc..802bfa0f62cc022c34965c32343719749e1c4ca7 100644 (file)
@@ -57,6 +57,7 @@
 #define IXGBE_DEV_ID_82599_BACKPLANE_FCOE       0x152a
 #define IXGBE_DEV_ID_82599_SFP_FCOE      0x1529
 #define IXGBE_SUBDEV_ID_82599_SFP        0x11A9
+#define IXGBE_SUBDEV_ID_82599_560FLR     0x17D0
 #define IXGBE_DEV_ID_82599_SFP_EM        0x1507
 #define IXGBE_DEV_ID_82599_SFP_SF2       0x154D
 #define IXGBE_DEV_ID_82599EN_SFP         0x1557