Message ID | 20230314070208.3703963-2-michael.wei.hong.sit@intel.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1606200wrd; Tue, 14 Mar 2023 00:07:33 -0700 (PDT) X-Google-Smtp-Source: AK7set+G6ZlJpjvsi4sLeezFCixWU8ngNqhti7U9xxsAoZk89h1R3K/+u9fclpWim1vPHwcbWNFQ X-Received: by 2002:aa7:96b6:0:b0:624:c216:a88c with SMTP id g22-20020aa796b6000000b00624c216a88cmr3950440pfk.30.1678777653365; Tue, 14 Mar 2023 00:07:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678777653; cv=none; d=google.com; s=arc-20160816; b=qnQqCDGaGhe5q8y5vR0I82LacvhpkfHK2g6c5qjKk2hJ4MunyRDeI1CUrFfyfJKapW rvRvu6XB3LYugJOfvz3xEOsZDmDGnRA/l1zlxQWBrw5zufnuqP8S5SOa/hXmWPLwPj0A LPmnmdWLBGf9izxsFrZ1V2NTI6cC/ICeQzjQQ4+IB/T0ZwDSWz6qpCk4qeqrBirahXdm MYswOKH0iZiUz/rlgZnRIaRp/SIp4X0Tckoihg2wrP6/DCCNd7tJRSBbfLKxYIvgn/jj yvocWgv7WOr7fo4Z2NsRV9Cgq3Hs5jNejL0M2hNO1PfVDUhXXpnQ0ilbTZeCurpJPFUJ 04Fg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=RpkwxLykuiCOyvTmYQqsXVHjAPveH1EsJkYIwjyxc5c=; b=MBy59wFg6OEQ4/TI155BkUjCNrPsQTomIdkpfbSwl9AkCQZq63QSd+z603Kq/CrRPQ RSGAYacw0SSfjN5yLrB8NLsV4hyvXE6gV5JCYCsfCSmBM+ezIgWmlLbyZ8OWJ1H/Aufu a6zJI++DgJIb7N7nRj35dJ2YjPpUNxMWm9ENb7gep/h3V0HSH7zx1lS1cXoFdnDeffDW +EU2+ZAzklNr0+Jq6HG0VEtm0493+yU58zVokJHLBbwK50Dj56/MQVphW9QFEWfVshAu GG2X+RITSj0tY/gK7x78QTSCL3JmzCQXEwP/ysvoikDaYZAzxHqQSipzxX4wGSLqEOCD Z/pw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=UTDPJff9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e15-20020a63f54f000000b00503015b772asi1588382pgk.743.2023.03.14.00.07.19; Tue, 14 Mar 2023 00:07:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=UTDPJff9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229468AbjCNHDI (ORCPT <rfc822;realc9580@gmail.com> + 99 others); Tue, 14 Mar 2023 03:03:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58598 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229811AbjCNHDF (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Tue, 14 Mar 2023 03:03:05 -0400 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6EF7E22102; Tue, 14 Mar 2023 00:03:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678777383; x=1710313383; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=+jXWOkuHIz7opU+/4fOqwtDaqYNzAOX5btGkyFBkb6Q=; b=UTDPJff9j10QBP0fIL6mvJ5r2wNbpLxVl9V4cWNUItw8KPut9DuWqrp2 XxJB56+aY3+DAUn9SM7V1IpZf5/pN39q2R5gFBjfjc8IRVnrOGiihgQPw ICQStGnUucMXkUVzm2DuVSmBOrdMgD/HJzzMBOFD7i1GS8E+jP8cvkGOA ZGJk82b3DW9wByR7/zNRgvGCqTNFyMdCEDdMoAubqdbDjiptd7K6h1J+k df0ZOzfci8O6aMRI8FaX+GkbsTi5jd8FCFTRp6U3oPFt5IYjR+WSgmaC0 RJ6fuDuCZaUuuDIUYjwy1D6Ph0x7Xgp2k9QTdiEn3r3hCpOIfXA9ijTko Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="334828457" X-IronPort-AV: E=Sophos;i="5.98,259,1673942400"; d="scan'208";a="334828457" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Mar 2023 00:02:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="656226744" X-IronPort-AV: E=Sophos;i="5.98,259,1673942400"; d="scan'208";a="656226744" Received: from mike-ilbpg1.png.intel.com ([10.88.227.76]) by orsmga006.jf.intel.com with ESMTP; 14 Mar 2023 00:02:34 -0700 From: Michael Sit Wei Hong <michael.wei.hong.sit@intel.com> To: Giuseppe Cavallaro <peppe.cavallaro@st.com>, Alexandre Torgue <alexandre.torgue@foss.st.com>, Jose Abreu <joabreu@synopsys.com>, "David S . Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Maxime Coquelin <mcoquelin.stm32@gmail.com>, Ong Boon Leong <boon.leong.ong@intel.com>, netdev@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Looi Hong Aun <hong.aun.looi@intel.com>, Voon Weifeng <weifeng.voon@intel.com>, Lai Peter Jun Ann <peter.jun.ann.lai@intel.com> Subject: [PATCH net v2 1/2] net: stmmac: fix PHY handle parsing Date: Tue, 14 Mar 2023 15:02:07 +0800 Message-Id: <20230314070208.3703963-2-michael.wei.hong.sit@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230314070208.3703963-1-michael.wei.hong.sit@intel.com> References: <20230314070208.3703963-1-michael.wei.hong.sit@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760325956539262759?= X-GMAIL-MSGID: =?utf-8?q?1760325956539262759?= |
Series |
Fix PHY handle no longer parsing
|
|
Commit Message
Sit, Michael Wei Hong
March 14, 2023, 7:02 a.m. UTC
phylink_fwnode_phy_connect returns 0 when set to MLO_AN_INBAND. This causes the PHY handle parsing to skip and the PHY will not be attached to the MAC. Add additional check for PHY handle parsing when set to MLO_AN_INBAND. Fixes: ab21cf920928 ("net: stmmac: make mdio register skips PHY scanning for fixed-link") Signed-off-by: Michael Sit Wei Hong <michael.wei.hong.sit@intel.com> Signed-off-by: Lai Peter Jun Ann <peter.jun.ann.lai@intel.com> --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
Comments
On 14.03.23 08:02, Michael Sit Wei Hong wrote: > phylink_fwnode_phy_connect returns 0 when set to MLO_AN_INBAND. > This causes the PHY handle parsing to skip and the PHY will not be attached > to the MAC. > > Add additional check for PHY handle parsing when set to MLO_AN_INBAND. > > Fixes: ab21cf920928 ("net: stmmac: make mdio register skips PHY scanning for fixed-link") > Signed-off-by: Michael Sit Wei Hong <michael.wei.hong.sit@intel.com> > Signed-off-by: Lai Peter Jun Ann <peter.jun.ann.lai@intel.com> Tested-by: Fabian Bläse <fabian@blaese.de>
On Tue, 14 Mar 2023 15:02:07 +0800 Michael Sit Wei Hong wrote: > + fixed_node = fwnode_get_named_child_node(fwnode, "fixed-link"); > + fwnode_handle_put(fixed_node); fwnode_property_present() ?
> -----Original Message----- > From: Jakub Kicinski <kuba@kernel.org> > Sent: Friday, March 17, 2023 8:00 AM > To: Sit, Michael Wei Hong <michael.wei.hong.sit@intel.com> > Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>; Alexandre > Torgue <alexandre.torgue@foss.st.com>; Jose Abreu > <joabreu@synopsys.com>; David S . Miller > <davem@davemloft.net>; Eric Dumazet > <edumazet@google.com>; Paolo Abeni <pabeni@redhat.com>; > Maxime Coquelin <mcoquelin.stm32@gmail.com>; Ong, Boon > Leong <boon.leong.ong@intel.com>; netdev@vger.kernel.org; > linux-stm32@st-md-mailman.stormreply.com; linux-arm- > kernel@lists.infradead.org; linux-kernel@vger.kernel.org; Looi, > Hong Aun <hong.aun.looi@intel.com>; Voon, Weifeng > <weifeng.voon@intel.com>; Lai, Peter Jun Ann > <peter.jun.ann.lai@intel.com> > Subject: Re: [PATCH net v2 1/2] net: stmmac: fix PHY handle > parsing > > On Tue, 14 Mar 2023 15:02:07 +0800 Michael Sit Wei Hong wrote: > > + fixed_node = > fwnode_get_named_child_node(fwnode, "fixed-link"); > > + fwnode_handle_put(fixed_node); > > fwnode_property_present() ? Good suggestion, will modify and submit in next revision.
On Tue, Mar 14, 2023 at 03:02:07PM +0800, Michael Sit Wei Hong wrote: > phylink_fwnode_phy_connect returns 0 when set to MLO_AN_INBAND. > This causes the PHY handle parsing to skip and the PHY will not be attached > to the MAC. Please could you expand the commit message because i'm having trouble following this. phylink_fwnode_phy_connect() says: /* Fixed links and 802.3z are handled without needing a PHY */ if (pl->cfg_link_an_mode == MLO_AN_FIXED || (pl->cfg_link_an_mode == MLO_AN_INBAND && phy_interface_mode_is_8023z(pl->link_interface))) return 0; So your first statement is not true. It should be MLO_AN_INBAND and phy_interface_mode_is_8023z. > Add additional check for PHY handle parsing when set to MLO_AN_INBAND. Looking at the patch, there is no reference to MLO_AN_INBAND, or managed = "in-band-status"; Andrew
On Fri, Mar 17, 2023 at 08:56:19PM +0100, Andrew Lunn wrote: > On Tue, Mar 14, 2023 at 03:02:07PM +0800, Michael Sit Wei Hong wrote: > > phylink_fwnode_phy_connect returns 0 when set to MLO_AN_INBAND. > > This causes the PHY handle parsing to skip and the PHY will not be attached > > to the MAC. > > Please could you expand the commit message because i'm having trouble > following this. > > phylink_fwnode_phy_connect() says: > > /* Fixed links and 802.3z are handled without needing a PHY */ > if (pl->cfg_link_an_mode == MLO_AN_FIXED || > (pl->cfg_link_an_mode == MLO_AN_INBAND && > phy_interface_mode_is_8023z(pl->link_interface))) > return 0; > > So your first statement is not true. It should be MLO_AN_INBAND > and phy_interface_mode_is_8023z. > > > Add additional check for PHY handle parsing when set to MLO_AN_INBAND. > > Looking at the patch, there is no reference to MLO_AN_INBAND, or > managed = "in-band-status"; That's the pesky "xpcs_an_inband" which ends up as phylink's "ovr_an_inband"... I'm sure these are random renames of stuff to make sure that people struggle to follow the code.
> -----Original Message----- > From: Russell King <linux@armlinux.org.uk> > Sent: Saturday, March 18, 2023 4:58 AM > To: Andrew Lunn <andrew@lunn.ch> > Cc: Sit, Michael Wei Hong <michael.wei.hong.sit@intel.com>; > Giuseppe Cavallaro <peppe.cavallaro@st.com>; Alexandre > Torgue <alexandre.torgue@foss.st.com>; Jose Abreu > <joabreu@synopsys.com>; David S . Miller > <davem@davemloft.net>; Eric Dumazet > <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; > Paolo Abeni <pabeni@redhat.com>; Maxime Coquelin > <mcoquelin.stm32@gmail.com>; Ong, Boon Leong > <boon.leong.ong@intel.com>; netdev@vger.kernel.org; linux- > stm32@st-md-mailman.stormreply.com; linux-arm- > kernel@lists.infradead.org; linux-kernel@vger.kernel.org; Looi, > Hong Aun <hong.aun.looi@intel.com>; Voon, Weifeng > <weifeng.voon@intel.com>; Lai, Peter Jun Ann > <peter.jun.ann.lai@intel.com> > Subject: Re: [PATCH net v2 1/2] net: stmmac: fix PHY handle > parsing > > On Fri, Mar 17, 2023 at 08:56:19PM +0100, Andrew Lunn wrote: > > On Tue, Mar 14, 2023 at 03:02:07PM +0800, Michael Sit Wei > Hong wrote: > > > phylink_fwnode_phy_connect returns 0 when set to > MLO_AN_INBAND. > > > This causes the PHY handle parsing to skip and the PHY will not > be > > > attached to the MAC. > > > > Please could you expand the commit message because i'm > having trouble > > following this. > > > > phylink_fwnode_phy_connect() says: > > > > /* Fixed links and 802.3z are handled without needing a > PHY */ > > if (pl->cfg_link_an_mode == MLO_AN_FIXED || > > (pl->cfg_link_an_mode == MLO_AN_INBAND && > > phy_interface_mode_is_8023z(pl->link_interface))) > > return 0; > > > > So your first statement is not true. It should be > MLO_AN_INBAND and > > phy_interface_mode_is_8023z. > > > > > Add additional check for PHY handle parsing when set to > MLO_AN_INBAND. > > > > Looking at the patch, there is no reference to > MLO_AN_INBAND, or > > managed = "in-band-status"; > > That's the pesky "xpcs_an_inband" which ends up as phylink's > "ovr_an_inband"... I'm sure these are random renames of stuff > to make sure that people struggle to follow the code. > It is as mentioned above, the "xpcs_an_inband" will end up as "ovr_an_inband" which will then set pl->cfg_link_an_mode = MLO_AN_INBAND in the phylink_parse_mode() in phylink.c The phylink_fwnode_phy_connect() checks if both MLO_AN_INBAND && phy_interface_mode_is_8023z() true before returning 0. But in our case, we only have MLO_AN_INBAND is true, which then goes to the next part of the code. phy_fwnode = fwnode_get_phy_node(fwnode); if (IS_ERR(phy_fwnode)) { if (pl->cfg_link_an_mode == MLO_AN_PHY) return -ENODEV; return 0; } Where here the IS_ERR(phy_fwnode) returns true, then it Checks for MLO_AN_PHY, which in our case is not, so it returns a 0. When returned 0, our driver will then skip the manual phy parsing due to if (!fwnode || ret) > -- > RMK's Patch system: > https://www.armlinux.org.uk/developer/patches/ > FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at > last!
On Tue, Mar 21, 2023 at 08:34:49AM +0000, Sit, Michael Wei Hong wrote: > > > > -----Original Message----- > > From: Russell King <linux@armlinux.org.uk> > > Sent: Saturday, March 18, 2023 4:58 AM > > To: Andrew Lunn <andrew@lunn.ch> > > Cc: Sit, Michael Wei Hong <michael.wei.hong.sit@intel.com>; > > Giuseppe Cavallaro <peppe.cavallaro@st.com>; Alexandre > > Torgue <alexandre.torgue@foss.st.com>; Jose Abreu > > <joabreu@synopsys.com>; David S . Miller > > <davem@davemloft.net>; Eric Dumazet > > <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; > > Paolo Abeni <pabeni@redhat.com>; Maxime Coquelin > > <mcoquelin.stm32@gmail.com>; Ong, Boon Leong > > <boon.leong.ong@intel.com>; netdev@vger.kernel.org; linux- > > stm32@st-md-mailman.stormreply.com; linux-arm- > > kernel@lists.infradead.org; linux-kernel@vger.kernel.org; Looi, > > Hong Aun <hong.aun.looi@intel.com>; Voon, Weifeng > > <weifeng.voon@intel.com>; Lai, Peter Jun Ann > > <peter.jun.ann.lai@intel.com> > > Subject: Re: [PATCH net v2 1/2] net: stmmac: fix PHY handle > > parsing > > > > On Fri, Mar 17, 2023 at 08:56:19PM +0100, Andrew Lunn wrote: > > > On Tue, Mar 14, 2023 at 03:02:07PM +0800, Michael Sit Wei > > Hong wrote: > > > > phylink_fwnode_phy_connect returns 0 when set to > > MLO_AN_INBAND. > > > > This causes the PHY handle parsing to skip and the PHY will not > > be > > > > attached to the MAC. > > > > > > Please could you expand the commit message because i'm > > having trouble > > > following this. > > > > > > phylink_fwnode_phy_connect() says: > > > > > > /* Fixed links and 802.3z are handled without needing a > > PHY */ > > > if (pl->cfg_link_an_mode == MLO_AN_FIXED || > > > (pl->cfg_link_an_mode == MLO_AN_INBAND && > > > phy_interface_mode_is_8023z(pl->link_interface))) > > > return 0; > > > > > > So your first statement is not true. It should be > > MLO_AN_INBAND and > > > phy_interface_mode_is_8023z. > > > > > > > Add additional check for PHY handle parsing when set to > > MLO_AN_INBAND. > > > > > > Looking at the patch, there is no reference to > > MLO_AN_INBAND, or > > > managed = "in-band-status"; > > > > That's the pesky "xpcs_an_inband" which ends up as phylink's > > "ovr_an_inband"... I'm sure these are random renames of stuff > > to make sure that people struggle to follow the code. > > > It is as mentioned above, the "xpcs_an_inband" will end up as > "ovr_an_inband" which will then > set pl->cfg_link_an_mode = MLO_AN_INBAND in the > phylink_parse_mode() in phylink.c Let me make my comment more clear, because I don't think you understood it correctly. Please rename "xpcs_an_inband" to "ovr_an_inband" or "phylink_ovr_an_inband" so it's obvious what it is and where it ends up. Thanks.
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 8f543c3ab5c5..398adcd68ee8 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -1134,6 +1134,7 @@ static void stmmac_check_pcs_mode(struct stmmac_priv *priv) static int stmmac_init_phy(struct net_device *dev) { struct stmmac_priv *priv = netdev_priv(dev); + struct fwnode_handle *fixed_node; struct fwnode_handle *fwnode; int ret; @@ -1141,13 +1142,16 @@ static int stmmac_init_phy(struct net_device *dev) if (!fwnode) fwnode = dev_fwnode(priv->device); - if (fwnode) + if (fwnode) { + fixed_node = fwnode_get_named_child_node(fwnode, "fixed-link"); + fwnode_handle_put(fixed_node); ret = phylink_fwnode_phy_connect(priv->phylink, fwnode, 0); + } /* Some DT bindings do not set-up the PHY handle. Let's try to * manually parse it */ - if (!fwnode || ret) { + if (!fwnode || ret || !fixed_node) { int addr = priv->plat->phy_addr; struct phy_device *phydev;