From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Hurley Subject: Re: [PATCH] ixgbe: Wait for 1ms, not 1us, after RST Date: Tue, 27 Oct 2015 13:57:21 -0400 Message-ID: <562FBB01.3080901@hurleysoftware.com> References: <1445904971-9442-1-git-send-email-dan.streetman@canonical.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: Jesse Brandeburg , Shannon Nelson , Carolyn Wyborny , Don Skidmore , Matthew Vick , John Ronciak , Mitch Williams , intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Dan Streetman To: dan.streetman@canonical.com, Jeff Kirsher Return-path: In-Reply-To: <1445904971-9442-1-git-send-email-dan.streetman@canonical.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org Hi Dan, On 10/26/2015 08:16 PM, dan.streetman@canonical.com wrote: > From: Dan Streetman > > The driver currently waits 1us after issuing a RST, but the spec > requires it to wait 1ms. > > Signed-off-by: Dan Streetman > Signed-off-by: Dan Streetman > --- > drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c > index 4e75843..147bc65 100644 > --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c > +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c > @@ -113,7 +113,12 @@ mac_reset_top: > > /* Poll for reset bit to self-clear indicating reset is complete */ > for (i = 0; i < 10; i++) { > - udelay(1); > + /* sec 8.2.4.1.1 : > + * programmers must wait approximately 1 ms after setting before > + * attempting to check if the bit has cleared or to access (read > + * or write) any other device register. > + */ > + mdelay(1); Since ixgbe_reset_hw_x540() goes on to msleep(100) immediately after this busy-wait loop, this should instead be: msleep(1); Regards, Peter Hurley > ctrl = IXGBE_READ_REG(hw, IXGBE_CTRL); > if (!(ctrl & IXGBE_CTRL_RST_MASK)) > break; >