On Fri, Jun 04, 2021 at 11:13:36AM +0000, Aleksandar Gerasimovski wrote: > Current tsec adapter sets adapter gigabit capabilities by default, and in > reality this must not always be the case. > It is possible that tsec adapter is used for 100Mbit connection, and in > this case setting 1000Mbit capabilities can lead to some side effects such > longer autoneg process. > > In our ls102x designs this problem leads to long autoneg times (> 4 sec) > in case board rgmii link is 100Mbs capble only. > Limiting the rgmii link capabilities provides smother and faster > link establishment. > > Signed-off-by: Aleksandar Gerasimovski > <aleksandar.gerasimov...@hitachi-powergrids.com> > ---
Reviewed-by: Vladimir Oltean <vladimir.olt...@nxp.com> Just one comment below: > drivers/net/tsec.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c > index c68e4b7..501390f 100644 > --- a/drivers/net/tsec.c > +++ b/drivers/net/tsec.c > @@ -824,6 +824,7 @@ int tsec_probe(struct udevice *dev) > struct tsec_private *priv = dev_get_priv(dev); > struct ofnode_phandle_args phandle_args; > u32 tbiaddr = CONFIG_SYS_TBIPA_VALUE; > + u32 max_speed; It would be nice if you could keep the variable sort order, which is in decreasing order of line length (so-called "reverse Christmas tree notation"). > struct tsec_data *data; > const char *phy_mode; > ofnode parent, child; > @@ -893,8 +894,12 @@ int tsec_probe(struct udevice *dev) > } > priv->interface = pdata->phy_interface; > > + /* Check for speed limis, default is 1000Mbps */ > + max_speed = dev_read_u32_default(dev, "max-speed", 1000); > + > /* Initialize flags */ > - priv->flags = TSEC_GIGABIT; > + if (max_speed == 1000) > + priv->flags = TSEC_GIGABIT; > if (priv->interface == PHY_INTERFACE_MODE_SGMII) > priv->flags |= TSEC_SGMII; > > -- > 1.8.3.1 Thanks.