
The Intel 82571EB chipset can be used in an unmanaged configuration as a fast dual-port Gig-E controller. Unfortunately a board consturcted that way would fail to correctly come up because the driver polls for the completion of a management cycle that will never occur.
To resolve this problem, we disable the poll and error return on chips whose EEPROMS indicate no management. As a protection against misconfigured chipsets, we still delay for the entire management poll timeout.
Signed-off-by: Kyle Moffett Kyle.D.Moffett@boeing.com --- Jeff Kirsher jeffrey.t.kirsher@intel.com has already accepted a similar patch to the Linux kernel into his e1000e patch queue.
drivers/net/e1000.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c index 2825342..c9677b4 100644 --- a/drivers/net/e1000.c +++ b/drivers/net/e1000.c @@ -4266,6 +4266,13 @@ e1000_get_phy_cfg_done(struct e1000_hw *hw) /* Fall Through */ case e1000_82571: case e1000_82572: + /* Don't bother polling the management regs if unmanaged */ + if (!e1000_check_mng_mode(hw)) { + DEBUGOUT("Unmanaged chip... skipping MNG polling\n"); + mdelay(timeout); + return 0; + } + while (timeout) { if (E1000_READ_REG(hw, EEMNGCTL) & cfg_mask) break;