|
@@ -6708,6 +6708,7 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
int bars, i, err, pci_using_dac;
|
|
int bars, i, err, pci_using_dac;
|
|
u16 eeprom_data = 0;
|
|
u16 eeprom_data = 0;
|
|
u16 eeprom_apme_mask = E1000_EEPROM_APME;
|
|
u16 eeprom_apme_mask = E1000_EEPROM_APME;
|
|
|
|
+ s32 rval = 0;
|
|
|
|
|
|
if (ei->flags2 & FLAG2_DISABLE_ASPM_L0S)
|
|
if (ei->flags2 & FLAG2_DISABLE_ASPM_L0S)
|
|
aspm_disable_flag = PCIE_LINK_STATE_L0S;
|
|
aspm_disable_flag = PCIE_LINK_STATE_L0S;
|
|
@@ -6940,15 +6941,19 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
} else if (adapter->flags & FLAG_APME_IN_CTRL3) {
|
|
} else if (adapter->flags & FLAG_APME_IN_CTRL3) {
|
|
if (adapter->flags & FLAG_APME_CHECK_PORT_B &&
|
|
if (adapter->flags & FLAG_APME_CHECK_PORT_B &&
|
|
(adapter->hw.bus.func == 1))
|
|
(adapter->hw.bus.func == 1))
|
|
- e1000_read_nvm(&adapter->hw, NVM_INIT_CONTROL3_PORT_B,
|
|
|
|
- 1, &eeprom_data);
|
|
|
|
|
|
+ rval = e1000_read_nvm(&adapter->hw,
|
|
|
|
+ NVM_INIT_CONTROL3_PORT_B,
|
|
|
|
+ 1, &eeprom_data);
|
|
else
|
|
else
|
|
- e1000_read_nvm(&adapter->hw, NVM_INIT_CONTROL3_PORT_A,
|
|
|
|
- 1, &eeprom_data);
|
|
|
|
|
|
+ rval = e1000_read_nvm(&adapter->hw,
|
|
|
|
+ NVM_INIT_CONTROL3_PORT_A,
|
|
|
|
+ 1, &eeprom_data);
|
|
}
|
|
}
|
|
|
|
|
|
/* fetch WoL from EEPROM */
|
|
/* fetch WoL from EEPROM */
|
|
- if (eeprom_data & eeprom_apme_mask)
|
|
|
|
|
|
+ if (rval)
|
|
|
|
+ e_dbg("NVM read error getting WoL initial values: %d\n", rval);
|
|
|
|
+ else if (eeprom_data & eeprom_apme_mask)
|
|
adapter->eeprom_wol |= E1000_WUFC_MAG;
|
|
adapter->eeprom_wol |= E1000_WUFC_MAG;
|
|
|
|
|
|
/* now that we have the eeprom settings, apply the special cases
|
|
/* now that we have the eeprom settings, apply the special cases
|
|
@@ -6967,7 +6972,12 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
device_wakeup_enable(&pdev->dev);
|
|
device_wakeup_enable(&pdev->dev);
|
|
|
|
|
|
/* save off EEPROM version number */
|
|
/* save off EEPROM version number */
|
|
- e1000_read_nvm(&adapter->hw, 5, 1, &adapter->eeprom_vers);
|
|
|
|
|
|
+ rval = e1000_read_nvm(&adapter->hw, 5, 1, &adapter->eeprom_vers);
|
|
|
|
+
|
|
|
|
+ if (rval) {
|
|
|
|
+ e_dbg("NVM read error getting EEPROM version: %d\n", rval);
|
|
|
|
+ adapter->eeprom_vers = 0;
|
|
|
|
+ }
|
|
|
|
|
|
/* reset the hardware with the new settings */
|
|
/* reset the hardware with the new settings */
|
|
e1000e_reset(adapter);
|
|
e1000e_reset(adapter);
|