From: "Sit, Michael Wei Hong" <michael.wei.hong.sit@intel.com> To: "Raczynski, Piotr" <piotr.raczynski@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>, "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" <netdev@vger.kernel.org>, "linux-stm32@st-md-mailman.stormreply.com" <linux-stm32@st-md-mailman.stormreply.com>, "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org>, "linux-kernel@vger.kernel.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 2/2] net: stmmac: move fixed-link support fixup code Date: Wed, 15 Mar 2023 10:18:36 +0000 [thread overview] Message-ID: <PH0PR11MB7587C279640CA9C90CC54C489DBF9@PH0PR11MB7587.namprd11.prod.outlook.com> (raw) In-Reply-To: <ZBA3+LqAaWXDZCKZ@nimitz> > -----Original Message----- > From: Raczynski, Piotr <piotr.raczynski@intel.com> > Sent: Tuesday, March 14, 2023 5:02 PM > 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>; 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 2/2] net: stmmac: move fixed-link support > fixup code > > On Mon, Mar 13, 2023 at 04:01:35PM +0800, Michael Sit Wei Hong > wrote: > > xpcs_an_inband value is updated in the speed_mode_2500 > function which > > turns on the xpcs_an_inband mode. > > > > Moving the fixed-link fixup code to right before phylink setup to > > ensure no more fixup will affect the fixed-link mode configurations. > > > > Fixes: 72edaf39fc65 ("stmmac: intel: add phy-mode and fixed-link > ACPI > > _DSD setting support") > > Signed-off-by: Michael Sit Wei Hong > <michael.wei.hong.sit@intel.com> > > --- > > drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c | 11 --------- > -- > > drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 15 > +++++++++++++++ > > 2 files changed, 15 insertions(+), 11 deletions(-) > > > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c > > b/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c > > index 7deb1f817dac..d02db2b529b9 100644 > > --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c > > +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c > > @@ -592,17 +592,6 @@ static int > intel_mgbe_common_data(struct pci_dev *pdev, > > plat->mdio_bus_data->xpcs_an_inband = true; > > } > > > > - /* For fixed-link setup, we clear xpcs_an_inband */ > > - if (fwnode) { > > - struct fwnode_handle *fixed_node; > > - > > - fixed_node = > fwnode_get_named_child_node(fwnode, "fixed-link"); > > - if (fixed_node) > > - plat->mdio_bus_data->xpcs_an_inband = > false; > > - > > - fwnode_handle_put(fixed_node); > > - } > > - > > /* Ensure mdio bus scan skips intel serdes and pcs-xpcs */ > > plat->mdio_bus_data->phy_mask = 1 << > INTEL_MGBE_ADHOC_ADDR; > > plat->mdio_bus_data->phy_mask |= 1 << > INTEL_MGBE_XPCS_ADDR; diff > > --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > > b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > > index 398adcd68ee8..5a9abafba490 100644 > > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > > @@ -7064,6 +7064,7 @@ int stmmac_dvr_probe(struct device > *device, > > struct stmmac_resources *res) > > { > > struct net_device *ndev = NULL; > > + struct fwnode_handle *fwnode; > > struct stmmac_priv *priv; > > u32 rxq; > > int i, ret = 0; > > @@ -7306,6 +7307,20 @@ int stmmac_dvr_probe(struct device > *device, > > goto error_xpcs_setup; > > } > > > > + /* For fixed-link setup, we clear xpcs_an_inband */ > > + if (!fwnode) > > + fwnode = dev_fwnode(priv->device); > > + > > + if (fwnode) { > > + struct fwnode_handle *fixed_node; > > + > > + fixed_node = > fwnode_get_named_child_node(fwnode, "fixed-link"); > > + if (fixed_node) > > + priv->plat->mdio_bus_data- > >xpcs_an_inband = false; > > + > > + fwnode_handle_put(fixed_node); > > + } > > + > > Now you're doing similar checks here and inside stmmac_init_phy. > Maybe you could combined this to some function? > > Piotr In stmmac_dvr_probe, the check for fixed-link is to fixup the xpcs_an_inband data. Whereas in stmmac_init_phy, we store the fixed_node info to determine if we need to setup the PHY handle manually in the later code, and will run phylink_fwnode_phy_connect which uses the fwnode variable. The NULL check on fwnode is to ensure the functions that uses the fwnode does not access NULL pointers. It might be difficult to combine it into a function due to the way fixed_node is used. > > > ret = stmmac_phy_setup(priv); > > if (ret) { > > netdev_err(ndev, "failed to setup phy (%d)\n", ret); > > -- > > 2.34.1 > >
WARNING: multiple messages have this Message-ID (diff)
From: "Sit, Michael Wei Hong" <michael.wei.hong.sit@intel.com> To: "Raczynski, Piotr" <piotr.raczynski@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>, "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" <netdev@vger.kernel.org>, "linux-stm32@st-md-mailman.stormreply.com" <linux-stm32@st-md-mailman.stormreply.com>, "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org>, "linux-kernel@vger.kernel.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 2/2] net: stmmac: move fixed-link support fixup code Date: Wed, 15 Mar 2023 10:18:36 +0000 [thread overview] Message-ID: <PH0PR11MB7587C279640CA9C90CC54C489DBF9@PH0PR11MB7587.namprd11.prod.outlook.com> (raw) In-Reply-To: <ZBA3+LqAaWXDZCKZ@nimitz> > -----Original Message----- > From: Raczynski, Piotr <piotr.raczynski@intel.com> > Sent: Tuesday, March 14, 2023 5:02 PM > 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>; 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 2/2] net: stmmac: move fixed-link support > fixup code > > On Mon, Mar 13, 2023 at 04:01:35PM +0800, Michael Sit Wei Hong > wrote: > > xpcs_an_inband value is updated in the speed_mode_2500 > function which > > turns on the xpcs_an_inband mode. > > > > Moving the fixed-link fixup code to right before phylink setup to > > ensure no more fixup will affect the fixed-link mode configurations. > > > > Fixes: 72edaf39fc65 ("stmmac: intel: add phy-mode and fixed-link > ACPI > > _DSD setting support") > > Signed-off-by: Michael Sit Wei Hong > <michael.wei.hong.sit@intel.com> > > --- > > drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c | 11 --------- > -- > > drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 15 > +++++++++++++++ > > 2 files changed, 15 insertions(+), 11 deletions(-) > > > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c > > b/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c > > index 7deb1f817dac..d02db2b529b9 100644 > > --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c > > +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c > > @@ -592,17 +592,6 @@ static int > intel_mgbe_common_data(struct pci_dev *pdev, > > plat->mdio_bus_data->xpcs_an_inband = true; > > } > > > > - /* For fixed-link setup, we clear xpcs_an_inband */ > > - if (fwnode) { > > - struct fwnode_handle *fixed_node; > > - > > - fixed_node = > fwnode_get_named_child_node(fwnode, "fixed-link"); > > - if (fixed_node) > > - plat->mdio_bus_data->xpcs_an_inband = > false; > > - > > - fwnode_handle_put(fixed_node); > > - } > > - > > /* Ensure mdio bus scan skips intel serdes and pcs-xpcs */ > > plat->mdio_bus_data->phy_mask = 1 << > INTEL_MGBE_ADHOC_ADDR; > > plat->mdio_bus_data->phy_mask |= 1 << > INTEL_MGBE_XPCS_ADDR; diff > > --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > > b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > > index 398adcd68ee8..5a9abafba490 100644 > > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > > @@ -7064,6 +7064,7 @@ int stmmac_dvr_probe(struct device > *device, > > struct stmmac_resources *res) > > { > > struct net_device *ndev = NULL; > > + struct fwnode_handle *fwnode; > > struct stmmac_priv *priv; > > u32 rxq; > > int i, ret = 0; > > @@ -7306,6 +7307,20 @@ int stmmac_dvr_probe(struct device > *device, > > goto error_xpcs_setup; > > } > > > > + /* For fixed-link setup, we clear xpcs_an_inband */ > > + if (!fwnode) > > + fwnode = dev_fwnode(priv->device); > > + > > + if (fwnode) { > > + struct fwnode_handle *fixed_node; > > + > > + fixed_node = > fwnode_get_named_child_node(fwnode, "fixed-link"); > > + if (fixed_node) > > + priv->plat->mdio_bus_data- > >xpcs_an_inband = false; > > + > > + fwnode_handle_put(fixed_node); > > + } > > + > > Now you're doing similar checks here and inside stmmac_init_phy. > Maybe you could combined this to some function? > > Piotr In stmmac_dvr_probe, the check for fixed-link is to fixup the xpcs_an_inband data. Whereas in stmmac_init_phy, we store the fixed_node info to determine if we need to setup the PHY handle manually in the later code, and will run phylink_fwnode_phy_connect which uses the fwnode variable. The NULL check on fwnode is to ensure the functions that uses the fwnode does not access NULL pointers. It might be difficult to combine it into a function due to the way fixed_node is used. > > > ret = stmmac_phy_setup(priv); > > if (ret) { > > netdev_err(ndev, "failed to setup phy (%d)\n", ret); > > -- > > 2.34.1 > > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-03-15 10:20 UTC|newest] Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-03-13 8:01 [PATCH net 0/2] Fix PHY handle no longer parsing Michael Sit Wei Hong 2023-03-13 8:01 ` Michael Sit Wei Hong 2023-03-13 8:01 ` [PATCH net 1/2] net: stmmac: fix PHY handle parsing Michael Sit Wei Hong 2023-03-13 8:01 ` Michael Sit Wei Hong 2023-03-14 8:39 ` Piotr Raczynski 2023-03-14 8:47 ` Sit, Michael Wei Hong 2023-03-13 8:01 ` [PATCH net 2/2] net: stmmac: move fixed-link support fixup code Michael Sit Wei Hong 2023-03-13 8:01 ` Michael Sit Wei Hong 2023-03-13 11:47 ` kernel test robot 2023-03-13 11:47 ` kernel test robot 2023-03-14 9:01 ` Piotr Raczynski 2023-03-15 10:18 ` Sit, Michael Wei Hong [this message] 2023-03-15 10:18 ` Sit, Michael Wei Hong
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=PH0PR11MB7587C279640CA9C90CC54C489DBF9@PH0PR11MB7587.namprd11.prod.outlook.com \ --to=michael.wei.hong.sit@intel.com \ --cc=alexandre.torgue@foss.st.com \ --cc=boon.leong.ong@intel.com \ --cc=davem@davemloft.net \ --cc=edumazet@google.com \ --cc=hong.aun.looi@intel.com \ --cc=joabreu@synopsys.com \ --cc=kuba@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-stm32@st-md-mailman.stormreply.com \ --cc=mcoquelin.stm32@gmail.com \ --cc=netdev@vger.kernel.org \ --cc=pabeni@redhat.com \ --cc=peppe.cavallaro@st.com \ --cc=peter.jun.ann.lai@intel.com \ --cc=piotr.raczynski@intel.com \ --cc=weifeng.voon@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.