|
@@ -2538,6 +2538,26 @@ static int igb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
adapter->wol = 0;
|
|
adapter->wol = 0;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /* Some vendors want the ability to Use the EEPROM setting as
|
|
|
|
+ * enable/disable only, and not for capability
|
|
|
|
+ */
|
|
|
|
+ if (((hw->mac.type == e1000_i350) ||
|
|
|
|
+ (hw->mac.type == e1000_i354)) &&
|
|
|
|
+ (pdev->subsystem_vendor == PCI_VENDOR_ID_DELL)) {
|
|
|
|
+ adapter->flags |= IGB_FLAG_WOL_SUPPORTED;
|
|
|
|
+ adapter->wol = 0;
|
|
|
|
+ }
|
|
|
|
+ if (hw->mac.type == e1000_i350) {
|
|
|
|
+ if (((pdev->subsystem_device == 0x5001) ||
|
|
|
|
+ (pdev->subsystem_device == 0x5002)) &&
|
|
|
|
+ (hw->bus.func == 0)) {
|
|
|
|
+ adapter->flags |= IGB_FLAG_WOL_SUPPORTED;
|
|
|
|
+ adapter->wol = 0;
|
|
|
|
+ }
|
|
|
|
+ if (pdev->subsystem_device == 0x1F52)
|
|
|
|
+ adapter->flags |= IGB_FLAG_WOL_SUPPORTED;
|
|
|
|
+ }
|
|
|
|
+
|
|
device_set_wakeup_enable(&adapter->pdev->dev,
|
|
device_set_wakeup_enable(&adapter->pdev->dev,
|
|
adapter->flags & IGB_FLAG_WOL_SUPPORTED);
|
|
adapter->flags & IGB_FLAG_WOL_SUPPORTED);
|
|
|
|
|