Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp4341291pxu; Mon, 12 Oct 2020 16:51:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyKJGGorPIjQmCRZUrlRmZpJzUzD8f38n7AlTrBygnota3MbewIWuBNNNBmK9yexAlbFSPF X-Received: by 2002:a17:906:a0cb:: with SMTP id bh11mr31585309ejb.314.1602546686342; Mon, 12 Oct 2020 16:51:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602546686; cv=none; d=google.com; s=arc-20160816; b=PpwNMerVjgHU0r8MtyKO+mdKUmKqxDZ9+JgjxdZ8bBqdqrp8LRTtQGLWbNycjGeF7+ F72QvPW9VHXco8vX9uATErcPm9VYyp7xpPRSLXPg4jhgRHAS1LmOLQO+1KsRE4o/8kBE ncbdlJOawZ7QV8JvPlQUK6y2thD+4skMl6ynfcaIvmGc+3CL6nn8vXe/pjfrUB9AleIA qh4beqHwoS3FWxIH7sYc+baRchpTnYmvUbHLJHX//CQnmFTHCDApw/WeYW4E3T7mm3v/ pueEbFbQhB2BxlBIfk0a0xCfHvC3hhGo62EzGN3Yn63TeQsbLzz6AuMiU7xMJjRNbHsz PtXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=LylgIpFSM6zR1vvHsFnQUSgHLs0SOK7nPJizZhDo+uw=; b=pIqwTfm62VwRVx4zBXwGhx72Ege7D0uUHIWrvBrOUwjaq/WnYy4gWXM9vt/roWUTXj gnB3jqIY0Nqsw8l0A9Pdnli9VJng5xZdIbv92IHjTaeMcgY8doJdOv2rh25qW5VqU9MP LdA8yun8mTVzCjLYhceMKNCmokaRuxNhGSJBUgQu4CrUwaHstNe3Ak67WJliTWux0qMU AiiqWBFMOdcER9H2fBGHCvs/iOlTuyDaDDdNZvCLPh92tyWVj5zBJuJ+3eACOcvyyeKL g1vAab7HfdYig8QLRfhE10sZqAGEUrIOThgIznRTTmt+qYlwjzBJmHiFOW4msWttK4S6 NWWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=h1752NQc; 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=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g2si13346693edm.105.2020.10.12.16.51.04; Mon, 12 Oct 2020 16:51: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; dkim=pass header.i=@kernel.org header.s=default header.b=h1752NQc; 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=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389841AbgJLNqO (ORCPT + 99 others); Mon, 12 Oct 2020 09:46:14 -0400 Received: from mail.kernel.org ([198.145.29.99]:48428 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389764AbgJLNpz (ORCPT ); Mon, 12 Oct 2020 09:45:55 -0400 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 2A29C2236F; Mon, 12 Oct 2020 13:45:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1602510331; bh=RLpye4EcUIzShnz8HPng4InVuZGK7edn+R2ab7m3ZbM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=h1752NQc6AiVAOw/cuvQUyQn0nzvpQsm4Qi+fTZHBDWFQEDPgzWIpCcaekiEjS1St r/chCfvTR2ug7P+fU75XisSDV/niGGkPIMpUh3OLVzy8CaO30dTqYZ3cqSIMPXqOo9 WXFm7phGL0VnfuKeWIxIFHsaccBgSSS/cUWh+L38= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Heiner Kallweit , Jakub Kicinski Subject: [PATCH 5.8 023/124] r8169: consider that PHY reset may still be in progress after applying firmware Date: Mon, 12 Oct 2020 15:30:27 +0200 Message-Id: <20201012133147.968927830@linuxfoundation.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201012133146.834528783@linuxfoundation.org> References: <20201012133146.834528783@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Heiner Kallweit commit 47dda78671a3d5cee3fb2229e37997d2ac8a3b54 upstream. Some firmware files trigger a PHY soft reset and don't wait for it to be finished. PHY register writes directly after applying the firmware may fail or provide unexpected results therefore. Fix this by waiting for bit BMCR_RESET to be cleared after applying firmware. There's nothing wrong with the referenced change, it's just that the fix will apply cleanly only after this change. Fixes: 89fbd26cca7e ("r8169: fix firmware not resetting tp->ocp_base") Signed-off-by: Heiner Kallweit Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/realtek/r8169_main.c | 7 +++++++ 1 file changed, 7 insertions(+) --- a/drivers/net/ethernet/realtek/r8169_main.c +++ b/drivers/net/ethernet/realtek/r8169_main.c @@ -2113,11 +2113,18 @@ static void rtl_release_firmware(struct void r8169_apply_firmware(struct rtl8169_private *tp) { + int val; + /* TODO: release firmware if rtl_fw_write_firmware signals failure. */ if (tp->rtl_fw) { rtl_fw_write_firmware(tp, tp->rtl_fw); /* At least one firmware doesn't reset tp->ocp_base. */ tp->ocp_base = OCP_STD_PHY_BASE; + + /* PHY soft reset may still be in progress */ + phy_read_poll_timeout(tp->phydev, MII_BMCR, val, + !(val & BMCR_RESET), + 50000, 600000, true); } }