* [PATCH 2/2] mvneta: use inband status only when link type is "auto" [not found] <559EB0A4.5080101@list.ru> @ 2015-07-09 17:41 ` Stas Sergeev 2015-07-09 18:18 ` Florian Fainelli 0 siblings, 1 reply; 5+ messages in thread From: Stas Sergeev @ 2015-07-09 17:41 UTC (permalink / raw) To: linux-net Cc: Linux kernel, Sebastien Rannou, Arnaud Ebalard, Stas Sergeev, Thomas Petazzoni, netdev, Linux kernel, stable The commit 898b2970e2c9 ("mvneta: implement SGMII-based in-band link state signaling") implemented the link parameters auto-negotiation unconditionally. Unfortunately it appears that some HW that implements SGMII protocol, doesn't generate the inband status, so it is not possible to auto-negotiate anything with such HW. This patch enables the auto-negotiation only if the 'link' DT property is set to "auto". For old configurations where the 'link' property is not specified, the default is to not use auto-negotiation. This patch fixes the following regression: https://lkml.org/lkml/2015/7/8/865 and is therefore CCed to stable. Signed-off-by: Stas Sergeev <stsp@users.sourceforge.net> CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> CC: netdev@vger.kernel.org CC: linux-kernel@vger.kernel.org CC: stable@vger.kernel.org --- drivers/net/ethernet/marvell/mvneta.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c index 74176ec..b7f4d7f 100644 --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c @@ -3009,7 +3009,7 @@ static int mvneta_probe(struct platform_device *pdev) char hw_mac_addr[ETH_ALEN]; const char *mac_from; int phy_mode; - int fixed_phy = 0; + int autoneg_link = 0; int err; /* Our multiqueue support is not complete, so for now, only @@ -3043,7 +3043,7 @@ static int mvneta_probe(struct platform_device *pdev) dev_err(&pdev->dev, "cannot register fixed PHY\n"); goto err_free_irq; } - fixed_phy = 1; + autoneg_link = of_phy_is_autoneg_link(dn); /* In the case of a fixed PHY, the DT node associated * to the PHY is the Ethernet MAC DT node. @@ -3068,7 +3068,7 @@ static int mvneta_probe(struct platform_device *pdev) pp->phy_node = phy_node; pp->phy_interface = phy_mode; pp->use_inband_status = (phy_mode == PHY_INTERFACE_MODE_SGMII) && - fixed_phy; + autoneg_link; pp->clk = devm_clk_get(&pdev->dev, NULL); if (IS_ERR(pp->clk)) { -- 1.9.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] mvneta: use inband status only when link type is "auto" 2015-07-09 17:41 ` [PATCH 2/2] mvneta: use inband status only when link type is "auto" Stas Sergeev @ 2015-07-09 18:18 ` Florian Fainelli 2015-07-09 20:26 ` Stas Sergeev 0 siblings, 1 reply; 5+ messages in thread From: Florian Fainelli @ 2015-07-09 18:18 UTC (permalink / raw) To: Stas Sergeev, linux-net Cc: Linux kernel, Sebastien Rannou, Arnaud Ebalard, Stas Sergeev, Thomas Petazzoni, netdev, stable On 09/07/15 10:41, Stas Sergeev wrote: > > The commit 898b2970e2c9 ("mvneta: implement SGMII-based in-band link state > signaling") implemented the link parameters auto-negotiation unconditionally. > Unfortunately it appears that some HW that implements SGMII protocol, > doesn't generate the inband status, so it is not possible to auto-negotiate > anything with such HW. What is the purpose of using the in-band status in the first place if you end-up having to specify a 'fixed-link' property which contains most of the link parameters: speed, duplex etc...? > > This patch enables the auto-negotiation only if the 'link' DT property > is set to "auto". > For old configurations where the 'link' property is not specified, the > default is to not use auto-negotiation. > > This patch fixes the following regression: > https://lkml.org/lkml/2015/7/8/865 > and is therefore CCed to stable. > > Signed-off-by: Stas Sergeev <stsp@users.sourceforge.net> > > CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > CC: netdev@vger.kernel.org > CC: linux-kernel@vger.kernel.org > CC: stable@vger.kernel.org > --- > drivers/net/ethernet/marvell/mvneta.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c > index 74176ec..b7f4d7f 100644 > --- a/drivers/net/ethernet/marvell/mvneta.c > +++ b/drivers/net/ethernet/marvell/mvneta.c > @@ -3009,7 +3009,7 @@ static int mvneta_probe(struct platform_device *pdev) > char hw_mac_addr[ETH_ALEN]; > const char *mac_from; > int phy_mode; > - int fixed_phy = 0; > + int autoneg_link = 0; > int err; > > /* Our multiqueue support is not complete, so for now, only > @@ -3043,7 +3043,7 @@ static int mvneta_probe(struct platform_device *pdev) > dev_err(&pdev->dev, "cannot register fixed PHY\n"); > goto err_free_irq; > } > - fixed_phy = 1; > + autoneg_link = of_phy_is_autoneg_link(dn); > > /* In the case of a fixed PHY, the DT node associated > * to the PHY is the Ethernet MAC DT node. > @@ -3068,7 +3068,7 @@ static int mvneta_probe(struct platform_device *pdev) > pp->phy_node = phy_node; > pp->phy_interface = phy_mode; > pp->use_inband_status = (phy_mode == PHY_INTERFACE_MODE_SGMII) && > - fixed_phy; > + autoneg_link; > > pp->clk = devm_clk_get(&pdev->dev, NULL); > if (IS_ERR(pp->clk)) { > -- Florian ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] mvneta: use inband status only when link type is "auto" 2015-07-09 18:18 ` Florian Fainelli @ 2015-07-09 20:26 ` Stas Sergeev 2015-07-09 21:14 ` Florian Fainelli 0 siblings, 1 reply; 5+ messages in thread From: Stas Sergeev @ 2015-07-09 20:26 UTC (permalink / raw) To: Florian Fainelli Cc: Linux kernel, Sebastien Rannou, Arnaud Ebalard, Stas Sergeev, Thomas Petazzoni, netdev, stable 09.07.2015 21:18, Florian Fainelli пишет: > On 09/07/15 10:41, Stas Sergeev wrote: >> The commit 898b2970e2c9 ("mvneta: implement SGMII-based in-band link state >> signaling") implemented the link parameters auto-negotiation unconditionally. >> Unfortunately it appears that some HW that implements SGMII protocol, >> doesn't generate the inband status, so it is not possible to auto-negotiate >> anything with such HW. > What is the purpose of using the in-band status in the first place if > you end-up having to specify a 'fixed-link' property which contains most > of the link parameters: speed, duplex etc...? You don't have to. My config from today is as simple as: fixed-link { link = "auto"; }; and that's all. Without my today's patch, only 'speed' is a mandatory - not too much. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] mvneta: use inband status only when link type is "auto" 2015-07-09 20:26 ` Stas Sergeev @ 2015-07-09 21:14 ` Florian Fainelli 2015-07-09 21:31 ` Stas Sergeev 0 siblings, 1 reply; 5+ messages in thread From: Florian Fainelli @ 2015-07-09 21:14 UTC (permalink / raw) To: Stas Sergeev Cc: Linux kernel, Sebastien Rannou, Arnaud Ebalard, Stas Sergeev, Thomas Petazzoni, netdev, stable On 09/07/15 13:26, Stas Sergeev wrote: > 09.07.2015 21:18, Florian Fainelli пишет: >> On 09/07/15 10:41, Stas Sergeev wrote: >>> The commit 898b2970e2c9 ("mvneta: implement SGMII-based in-band link >>> state >>> signaling") implemented the link parameters auto-negotiation >>> unconditionally. >>> Unfortunately it appears that some HW that implements SGMII protocol, >>> doesn't generate the inband status, so it is not possible to >>> auto-negotiate >>> anything with such HW. >> What is the purpose of using the in-band status in the first place if >> you end-up having to specify a 'fixed-link' property which contains most >> of the link parameters: speed, duplex etc...? > You don't have to. > My config from today is as simple as: > > fixed-link { > link = "auto"; > }; > > and that's all. > Without my today's patch, only 'speed' is a mandatory - not too much. That makes me think that 'fixed-link' is not exactly what you want then, you would probably want something like "marvell,use-in-band-status" or something like this. It could be a more generic property that is not Marvell specific after all, that would be fine. -- Florian ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] mvneta: use inband status only when link type is "auto" 2015-07-09 21:14 ` Florian Fainelli @ 2015-07-09 21:31 ` Stas Sergeev 0 siblings, 0 replies; 5+ messages in thread From: Stas Sergeev @ 2015-07-09 21:31 UTC (permalink / raw) To: Florian Fainelli Cc: Linux kernel, Sebastien Rannou, Arnaud Ebalard, Stas Sergeev, Thomas Petazzoni, netdev, stable 10.07.2015 00:14, Florian Fainelli пишет: > On 09/07/15 13:26, Stas Sergeev wrote: >> 09.07.2015 21:18, Florian Fainelli пишет: >>> On 09/07/15 10:41, Stas Sergeev wrote: >>>> The commit 898b2970e2c9 ("mvneta: implement SGMII-based in-band link >>>> state >>>> signaling") implemented the link parameters auto-negotiation >>>> unconditionally. >>>> Unfortunately it appears that some HW that implements SGMII protocol, >>>> doesn't generate the inband status, so it is not possible to >>>> auto-negotiate >>>> anything with such HW. >>> What is the purpose of using the in-band status in the first place if >>> you end-up having to specify a 'fixed-link' property which contains most >>> of the link parameters: speed, duplex etc...? >> You don't have to. >> My config from today is as simple as: >> >> fixed-link { >> link = "auto"; >> }; >> >> and that's all. >> Without my today's patch, only 'speed' is a mandatory - not too much. > That makes me think that 'fixed-link' is not exactly what you want then, > you would probably want something like "marvell,use-in-band-status" or > something like this. It could be a more generic property that is not > Marvell specific after all, that would be fine. I think there is some confusion around fixed-link, because of its name. This is what fixed-link is: --- Some Ethernet MACs have a "fixed link", and are not connected to a normal MDIO-managed PHY device. --- A bit vague, but to me it means "non-MDIO", and that's all. If we make it like "marvell,use-in-band-status", then it will suddenly cancel everything in a fixed-link definition, which is non obvious. Or, if we make it so that fixed-link def is not needed in presence of "marvell,use-in-band-status", then this "marvell,use-in-band-status" will have to silently enable the fixed-phy driver the way fixed-link does. If we just view fixed-link as non-MDIO link, then everything fits, IMHO. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-07-09 21:31 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <559EB0A4.5080101@list.ru>
2015-07-09 17:41 ` [PATCH 2/2] mvneta: use inband status only when link type is "auto" Stas Sergeev
2015-07-09 18:18 ` Florian Fainelli
2015-07-09 20:26 ` Stas Sergeev
2015-07-09 21:14 ` Florian Fainelli
2015-07-09 21:31 ` Stas Sergeev
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).