From patchwork Wed Mar 10 18:32:37 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Glendinning X-Patchwork-Id: 47274 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 3228DB7D01 for ; Thu, 11 Mar 2010 05:33:36 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932715Ab0CJScv (ORCPT ); Wed, 10 Mar 2010 13:32:51 -0500 Received: from 77-44-110-64.xdsl.murphx.net ([77.44.110.64]:41122 "EHLO drevil2.shawell.net" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932698Ab0CJScv (ORCPT ); Wed, 10 Mar 2010 13:32:51 -0500 Received: from localhost.localdomain (unknown [10.0.20.109]) by drevil2.shawell.net (Postfix) with ESMTP id 1409867E45 for ; Wed, 10 Mar 2010 18:32:40 +0000 (GMT) From: Steve Glendinning To: netdev@vger.kernel.org Subject: [PATCH 4/6] smsc95xx: sleep before read for lengthy operations Date: Wed, 10 Mar 2010 18:32:37 +0000 Message-Id: <1268245959-13861-5-git-send-email-steve.glendinning@smsc.com> X-Mailer: git-send-email 1.6.6.1 In-Reply-To: <1268245959-13861-4-git-send-email-steve.glendinning@smsc.com> References: <1268245959-13861-1-git-send-email-steve.glendinning@smsc.com> <1268245959-13861-2-git-send-email-steve.glendinning@smsc.com> <1268245959-13861-3-git-send-email-steve.glendinning@smsc.com> <1268245959-13861-4-git-send-email-steve.glendinning@smsc.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org During init, the device reset is unexpected to complete immediately, so sleep before testing the condition rather than after it. Signed-off-by: Steve Glendinning --- drivers/net/usb/smsc95xx.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c index a55dc27..56fe73d 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -768,12 +768,12 @@ static int smsc95xx_reset(struct usbnet *dev) timeout = 0; do { + msleep(10); ret = smsc95xx_read_reg(dev, HW_CFG, &read_buf); if (ret < 0) { netdev_warn(dev->net, "Failed to read HW_CFG: %d\n", ret); return ret; } - msleep(10); timeout++; } while ((read_buf & HW_CFG_LRST_) && (timeout < 100)); @@ -791,12 +791,12 @@ static int smsc95xx_reset(struct usbnet *dev) timeout = 0; do { + msleep(10); ret = smsc95xx_read_reg(dev, PM_CTRL, &read_buf); if (ret < 0) { netdev_warn(dev->net, "Failed to read PM_CTRL: %d\n", ret); return ret; } - msleep(10); timeout++; } while ((read_buf & PM_CTL_PHY_RST_) && (timeout < 100));