From patchwork Fri Aug 27 19:10:06 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kyle Moffett X-Patchwork-Id: 62867 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id D5E9BB710C for ; Sat, 28 Aug 2010 05:21:26 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755346Ab0H0TUx (ORCPT ); Fri, 27 Aug 2010 15:20:53 -0400 Received: from wsip-70-167-241-26.dc.dc.cox.net ([70.167.241.26]:51870 "EHLO firewall1" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755335Ab0H0TUv (ORCPT ); Fri, 27 Aug 2010 15:20:51 -0400 X-Greylist: delayed 618 seconds by postgrey-1.27 at vger.kernel.org; Fri, 27 Aug 2010 15:20:51 EDT Received: from alexstrasza.exmeritus.com (firewall2.exmeritus.com [10.13.38.2]) by firewall1 (Postfix) with ESMTP id 16CB7AC07D; Fri, 27 Aug 2010 15:10:32 -0400 (EDT) From: Kyle Moffett To: linux-kernel@vger.kernel.org Cc: netdev@vger.kernel.org, e1000-devel@lists.sourceforge.net, Kyle Moffett , Kyle Moffett Subject: [PATCH] e1000e: Intel 82571EB: Don't wait for MNG cycle on unmanaged chips Date: Fri, 27 Aug 2010 15:10:06 -0400 Message-Id: <1282936206-17288-1-git-send-email-Kyle.D.Moffett@boeing.com> X-Mailer: git-send-email 1.7.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The Intel 82571EB chipset can be used in an unmanaged configuration as a fast dual-port Gig-E controller. Unfortunately a board constructed 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 --- drivers/net/e1000e/82571.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/drivers/net/e1000e/82571.c b/drivers/net/e1000e/82571.c index f654db9..36d736f 100644 --- a/drivers/net/e1000e/82571.c +++ b/drivers/net/e1000e/82571.c @@ -756,6 +756,13 @@ static s32 e1000_get_cfg_done_82571(struct e1000_hw *hw) { s32 timeout = PHY_CFG_TIMEOUT; + /* Don't bother polling the management registers if unmanaged */ + if (!e1000e_check_mng_mode(hw)) { + hw_dbg(hw, "Unmanaged chip... skipping MNG polling cycle\n"); + mdelay(timeout); + return 0; + } + while (timeout) { if (er32(EEMNGCTL) & E1000_NVM_CFG_DONE_PORT_0)