Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1665807ybt; Thu, 25 Jun 2020 11:09:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxtrHanH2zSUtmvbLuKxmqKsq/1XHJj1DgJy/7MztORbGpHSJBeoDZyp/xCHAe0at+4HJ/O X-Received: by 2002:aa7:d290:: with SMTP id w16mr33938705edq.178.1593108554547; Thu, 25 Jun 2020 11:09:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593108554; cv=none; d=google.com; s=arc-20160816; b=0IjFPCJVciwnk+SOK1ZjwCwP4Ys/vJICNm4IeKgpuwbwkGY9hWNr+sFo6oQBRcKyd2 irEIGCm3ZDjLcD0H2Rpf2WsIhHlVoDpyVd9zZ/cRUzVTB99vTxBgO+KEwiC9vRsf2B3r ZoKWMSbUeEr3u6Zb+oUe0cVsDt2OTjgqljUXPEqg/EQ5jbA1z/y5yCEDB3AnCyxjUYse v8wEGer/NAtaMUzJK7dr+zlQjrVJ+1PbXixpTu9wjk+YmWNVe9tDW7mZA0fnofjv6CEe w+g4ji+bjQV5z8rECJsAm/oF5ar1I6O/jC28oNyydJ+3ePJztg68XBRBEKV0EPz+j2sZ pnjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=fZovxJsH+f9QgMBkiDJemuelHHz/LmziOb2uxXxbqTk=; b=r1CB1pPJkNu4PyLDGNJMlmOgeUBZ43DlLxIVTQ6Xw6NOcDd+aoN0BxXmnZyfYY5nH7 FYSXLjx28ZIDDK8h16nw0ticoRsLGpvch2gVTQh1C8oVIaHv5BQutI8Luoma8ai0FkJV nLFA4epG+GALZZyW7J5f+oYuQq4vLHD413/oYeme1ZUYHvy49BC1x/TLM1mLgKJXvFR/ Y09LGcE9VNSh7ejR9n9uICbCf/P1Mpfqas8q2mXFqnK6JFXx+e+PQ2bmKXl7GUcKkXCm lTSwmrnMeLztOAMZyxOffvLWN5kmvjfM75KBTQK2HNJqSuLs+2u1q7Mvz6dnBeEyG+Mv lCoA== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id mj14si15378494ejb.464.2020.06.25.11.08.50; Thu, 25 Jun 2020 11:09:14 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2405993AbgFYPpD (ORCPT + 99 others); Thu, 25 Jun 2020 11:45:03 -0400 Received: from relay2-d.mail.gandi.net ([217.70.183.194]:32969 "EHLO relay2-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2405958AbgFYPo7 (ORCPT ); Thu, 25 Jun 2020 11:44:59 -0400 X-Originating-IP: 90.76.143.236 Received: from localhost (lfbn-tou-1-1075-236.w90-76.abo.wanadoo.fr [90.76.143.236]) (Authenticated sender: antoine.tenart@bootlin.com) by relay2-d.mail.gandi.net (Postfix) with ESMTPSA id 9C4354000C; Thu, 25 Jun 2020 15:44:56 +0000 (UTC) From: Antoine Tenart To: davem@davemloft.net, andrew@lunn.ch, f.fainelli@gmail.com, hkallweit1@gmail.com Cc: Antoine Tenart , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, thomas.petazzoni@bootlin.com Subject: [PATCH net-next 6/8] net: phy: mscc: restore the base page in vsc8514/8584_config_init Date: Thu, 25 Jun 2020 17:42:09 +0200 Message-Id: <20200625154211.606591-7-antoine.tenart@bootlin.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200625154211.606591-1-antoine.tenart@bootlin.com> References: <20200625154211.606591-1-antoine.tenart@bootlin.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In the vsc8584_config_init and vsc8514_config_init, the base page is set to 'GPIO', configuration is done, and the page is never explicitly restored to the standard page. No bug was triggered as it turns out helpers called in those config_init functions do modify the base page, and set it back to standard. But that is dangerous and any modification to those functions would introduce bugs. This patch fixes this, to improve maintenance, by restoring the base page to 'standard' once 'GPIO' accesses are completed. Signed-off-by: Antoine Tenart --- drivers/net/phy/mscc/mscc_main.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/net/phy/mscc/mscc_main.c b/drivers/net/phy/mscc/mscc_main.c index 03680933f530..f625109df00a 100644 --- a/drivers/net/phy/mscc/mscc_main.c +++ b/drivers/net/phy/mscc/mscc_main.c @@ -1395,6 +1395,11 @@ static int vsc8584_config_init(struct phy_device *phydev) if (ret) goto err; + ret = phy_base_write(phydev, MSCC_EXT_PAGE_ACCESS, + MSCC_PHY_PAGE_STANDARD); + if (ret) + goto err; + if (!phy_interface_is_rgmii(phydev)) { val = PROC_CMD_MCB_ACCESS_MAC_CONF | PROC_CMD_RST_CONF_PORT | PROC_CMD_READ_MOD_WRITE_PORT; @@ -1779,7 +1784,11 @@ static int vsc8514_config_init(struct phy_device *phydev) val &= ~MAC_CFG_MASK; val |= MAC_CFG_QSGMII; ret = phy_base_write(phydev, MSCC_PHY_MAC_CFG_FASTLINK, val); + if (ret) + goto err; + ret = phy_base_write(phydev, MSCC_EXT_PAGE_ACCESS, + MSCC_PHY_PAGE_STANDARD); if (ret) goto err; -- 2.26.2