From patchwork Thu Jul 23 19:07:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: David Woodhouse X-Patchwork-Id: 1335083 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=infradead.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=dSUJtRaF; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BCMKM18BCz9sPB for ; Fri, 24 Jul 2020 05:07:35 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727771AbgGWTHa (ORCPT ); Thu, 23 Jul 2020 15:07:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36012 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726617AbgGWTH3 (ORCPT ); Thu, 23 Jul 2020 15:07:29 -0400 Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5E9C4C0619DC; Thu, 23 Jul 2020 12:07:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=merlin.20170209; h=Mime-Version:Content-Type:References: In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=GTusUKPy+WCNFhhn/IREKuAiqRFDfm1P4OMQsULO0Ss=; b=dSUJtRaFrlUUekqFDFTOJn42If gthlaX5PTV2kN8GaRsL2l/+nqhvaKa33vXRqIwal5/gNiynKZ6H1QkIzTerYGrmTvk+yrev1IoN0m AB9ZsvR9y9o1iguy0v4n9UL9ahQftqLGzn/bsl4E9bsIxuCXq38cttVfYuDfzu5i2A/nhslG10YWW 3ObD+c5ESWm9PHR18M0NRBvvf19Fr/9bogy/vXGvBIwdrOGVB3tTXlF10oxszrCRuVklXhnAzs0A9 lU6a8asBiECVz7bM5fuCSsMUlkXI9jMRf6wlUaI8SMV8pubbGWM9lKYmE4lM8usI2ak+okED9zbcB jG5o4+nQ==; Received: from 54-240-197-239.amazon.com ([54.240.197.239] helo=u3832b3a9db3152.ant.amazon.com) by merlin.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1jygYi-0003f2-VI; Thu, 23 Jul 2020 19:07:13 +0000 Message-ID: <52f10e30f62b8521fd83525a03ecff94b72d509b.camel@infradead.org> Subject: [PATCH] net: ethernet: mtk_eth_soc: Always call mtk_gmac0_rgmii_adjust() for mt7623 From: David Woodhouse To: davem@davemloft.net Cc: Frank Wunderlich , Sean Wang , andrew@lunn.ch, f.fainelli@gmail.com, vivien.didelot@savoirfairelinux.com, Mark-MC.Lee@mediatek.com, john@phrozen.org, Landen.Chao@mediatek.com, steven.liu@mediatek.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, =?iso-8859-1?q?Ren=E9?= van Dorst , linux-mediatek Date: Thu, 23 Jul 2020 20:07:10 +0100 In-Reply-To: References: X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.2 Mime-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by merlin.infradead.org. See http://www.infradead.org/rpr.html Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: René van Dorst Modify mtk_gmac0_rgmii_adjust() so it can always be called. mtk_gmac0_rgmii_adjust() sets-up the TRGMII clocks. Signed-off-by: René van Dorst Signed-off-By: David Woodhouse Tested-by: Frank Wunderlich --- On Mon, 2020-04-06 at 15:25 +0200, Frank Wunderlich wrote: > have tested these 2 and additional rene's 3rd Patch on my tree [1] > on BPi-R2, no problem with trgmii yet (multiple power-cycle+reboots). > I had issues with current 5.6.0 version, so imho these should go > also into 5.6.y Here's that third patch of which Frank speaks. I don't see it submitted yet, and I found I needed it on 5.4 too for the Ethernet to be functional. drivers/net/ethernet/mediatek/mtk_eth_soc.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c index b5408c5b954a..f89f225ab144 100644 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c @@ -171,11 +171,21 @@ static int mt7621_gmac0_rgmii_adjust(struct mtk_eth *eth, return 0; } -static void mtk_gmac0_rgmii_adjust(struct mtk_eth *eth, int speed) +static void mtk_gmac0_rgmii_adjust(struct mtk_eth *eth, + phy_interface_t interface, int speed) { u32 val; int ret; + if (interface == PHY_INTERFACE_MODE_TRGMII) { + mtk_w32(eth, TRGMII_MODE, INTF_MODE); + val = 500000000; + ret = clk_set_rate(eth->clks[MTK_CLK_TRGPLL], val); + if (ret) + dev_err(eth->dev, "Failed to set trgmii pll: %d\n", ret); + return; + } + val = (speed == SPEED_1000) ? INTF_MODE_RGMII_1000 : INTF_MODE_RGMII_10_100; mtk_w32(eth, val, INTF_MODE); @@ -262,10 +272,9 @@ static void mtk_mac_config(struct phylink_config *config, unsigned int mode, state->interface)) goto err_phy; } else { - if (state->interface != - PHY_INTERFACE_MODE_TRGMII) - mtk_gmac0_rgmii_adjust(mac->hw, - state->speed); + mtk_gmac0_rgmii_adjust(mac->hw, + state->interface, + state->speed); /* mt7623_pad_clk_setup */ for (i = 0 ; i < NUM_TRGMII_CTRL; i++)