]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
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)
committerJoe Jin <joe.jin@oracle.com>
Thu, 17 May 2012 14:35:17 +0000 (22:35 +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.

(cherry picked from commit 0e22d0437e6dea36c867b08ceb224c1cc98a45ab)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/net/ixgbe/ixgbe_ethtool.c
drivers/net/ixgbe/ixgbe_main.c
drivers/net/ixgbe/ixgbe_type.h

index a65860592cae63bc35524b859cfa7c649bb191c9..946f61814c573579370274cb13b290d482824613 100644 (file)
@@ -1958,12 +1958,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 6ab136184d2b4dbce4e47d087d5a8567f3a47750..0ff3d77740cef2058a212ef7e405dfea4f241dd6 100644 (file)
@@ -7593,9 +7593,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