Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp464355pxk; Thu, 24 Sep 2020 09:47:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyTJO27vnyKYY0OOE9cbahBuO32zkhdcfOyiyhkBHbNx3/xAA/Hda0TCmGXrZRWxViYTpf3 X-Received: by 2002:a17:906:813:: with SMTP id e19mr789343ejd.101.1600966046472; Thu, 24 Sep 2020 09:47:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600966046; cv=none; d=google.com; s=arc-20160816; b=XCBCDvfpRg+N95p41CAEsvSOTcRT3YVIM060KWldDsf/Ok/H8BnZRju2+Xd1FYaDjj fXTXZlsO3nyJ3jj26Hj1fevdLqm/sFj+99vbydssCSFp0uEZv5s/PQ6QAqk7CP6TU+44 gYfWdzksqeFje/CtCuyZG1T2Ri3YlfIT4uCJ52sc2WurIE2gOxEFkCvrZkTaI6/vV2KC nAdTocZY/ZLYAVdc6UgxGTKKv/hNAzE9osgFXRoF/N5JyRI23fVrdnQTqCHBgMgbXip4 L8U8s9dJfHFc4uzemwHNeMMcCmb76CzqhAeo42e+mOLM3F3JK6tXZJoiKUhRox4Wvvmw Ylpw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=+6okhVDOmj3Gd8rokCDQuvt49fcggkwFOhWKwHACYE0=; b=vFeTv+CGNwN3Q6eX0EYZI/IclUp9BOrFEeutTkzMAnnuIoXXvib2Lx3zwwpsb7SWow he9QWwiCC24fX/4krPuhm1m1gMLqQHOdfk7pFdi2/BZBRvzAseJm9sLIRh3eWAR10NVn J16uEZQJvlMyyIPlcnnSlWeY8Go4S5yuKQME/IwkQmwFVyTfi1g/gH90/3XnpRrPsRvH BvF+G3ObCAa6xF17t/8xLAk82UJ2sT1yQM19TkZUQm9ZHKN9tomszTsk6oxs3C/uUQ0e N60SbPPthHjTWEsOkV4sqFHemIMJkRipWqZ+FRnzgFNXtq7JactaxkjaAiflGgWVX0h8 EmJw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bl4si23947ejb.512.2020.09.24.09.47.02; Thu, 24 Sep 2020 09:47:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727816AbgIXQp4 (ORCPT + 99 others); Thu, 24 Sep 2020 12:45:56 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:36120 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726477AbgIXQp4 (ORCPT ); Thu, 24 Sep 2020 12:45:56 -0400 Received: from 61-220-137-37.hinet-ip.hinet.net ([61.220.137.37] helo=localhost) by youngberry.canonical.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1kLUNO-0004kM-Aw; Thu, 24 Sep 2020 16:45:46 +0000 From: Kai-Heng Feng To: jeffrey.t.kirsher@intel.com Cc: andrew@lunn.ch, Kai-Heng Feng , "David S. Miller" , Jakub Kicinski , intel-wired-lan@lists.osuosl.org (moderated list:INTEL ETHERNET DRIVERS), netdev@vger.kernel.org (open list:NETWORKING DRIVERS), linux-kernel@vger.kernel.org (open list) Subject: [PATCH v3] e1000e: Increase iteration on polling MDIC ready bit Date: Fri, 25 Sep 2020 00:45:42 +0800 Message-Id: <20200924164542.19906-1-kai.heng.feng@canonical.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200924150958.18016-1-kai.heng.feng@canonical.com> References: <20200924150958.18016-1-kai.heng.feng@canonical.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org We are seeing the following error after S3 resume: [ 704.746874] e1000e 0000:00:1f.6 eno1: Setting page 0x6020 [ 704.844232] e1000e 0000:00:1f.6 eno1: MDI Write did not complete [ 704.902817] e1000e 0000:00:1f.6 eno1: Setting page 0x6020 [ 704.903075] e1000e 0000:00:1f.6 eno1: reading PHY page 769 (or 0x6020 shifted) reg 0x17 [ 704.903281] e1000e 0000:00:1f.6 eno1: Setting page 0x6020 [ 704.903486] e1000e 0000:00:1f.6 eno1: writing PHY page 769 (or 0x6020 shifted) reg 0x17 [ 704.943155] e1000e 0000:00:1f.6 eno1: MDI Error ... [ 705.108161] e1000e 0000:00:1f.6 eno1: Hardware Error As Andrew Lunn pointed out, MDIO has nothing to do with phy, and indeed increase polling iteration can resolve the issue. The root cause is quite likely Intel ME, since it's a blackbox to the kernel so the only approach we can take is to be patient and wait longer. Signed-off-by: Kai-Heng Feng --- v3: - Moving delay to end of loop doesn't save anytime, move it back. - Point out this is quitely likely caused by Intel ME. v2: - Increase polling iteration instead of powering down the phy. drivers/net/ethernet/intel/e1000e/phy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/e1000e/phy.c b/drivers/net/ethernet/intel/e1000e/phy.c index e11c877595fb..e6d4acd90937 100644 --- a/drivers/net/ethernet/intel/e1000e/phy.c +++ b/drivers/net/ethernet/intel/e1000e/phy.c @@ -203,7 +203,7 @@ s32 e1000e_write_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 data) * Increasing the time out as testing showed failures with * the lower time out */ - for (i = 0; i < (E1000_GEN_POLL_TIMEOUT * 3); i++) { + for (i = 0; i < (E1000_GEN_POLL_TIMEOUT * 10); i++) { udelay(50); mdic = er32(MDIC); if (mdic & E1000_MDIC_READY) -- 2.17.1