Skip to content

Commit

Permalink
e1000e: perform basic 82573 EEPROM checks for known issues
Browse files Browse the repository at this point in the history
82573 EEPROMs have been shipped out with known issues. While most
people will never see the issues some people do and we know
how to address them. Warn the user if we find one of these
EEPROM issues.

Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
  • Loading branch information
Auke Kok authored and Jeff Garzik committed Aug 7, 2008
1 parent 44defeb commit 10aa4c0
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions drivers/net/e1000e/netdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -4177,6 +4177,28 @@ static void e1000_print_device_info(struct e1000_adapter *adapter)
hw->mac.type, hw->phy.type, (pba_num >> 8), (pba_num & 0xff));
}

static void e1000_eeprom_checks(struct e1000_adapter *adapter)
{
struct e1000_hw *hw = &adapter->hw;
int ret_val;
u16 buf = 0;

if (hw->mac.type != e1000_82573)
return;

ret_val = e1000_read_nvm(hw, NVM_INIT_CONTROL2_REG, 1, &buf);
if (!(le16_to_cpu(buf) & (1 << 0))) {
/* Deep Smart Power Down (DSPD) */
e_warn("Warning: detected DSPD enabled in EEPROM\n");
}

ret_val = e1000_read_nvm(hw, NVM_INIT_3GIO_3, 1, &buf);
if (le16_to_cpu(buf) & (3 << 2)) {
/* ASPM enable */
e_warn("Warning: detected ASPM enabled in EEPROM\n");
}
}

/**
* e1000e_is_need_ioport - determine if an adapter needs ioport resources or not
* @pdev: PCI device information struct
Expand Down Expand Up @@ -4400,6 +4422,8 @@ static int __devinit e1000_probe(struct pci_dev *pdev,
}
}

e1000_eeprom_checks(adapter);

/* copy the MAC address out of the NVM */
if (e1000e_read_mac_addr(&adapter->hw))
e_err("NVM Read Error while reading MAC address\n");
Expand Down

0 comments on commit 10aa4c0

Please sign in to comment.