On Fri, Jun 4, 2021 at 8:05 PM Aleksandar Gerasimovski <[email protected]> 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.
typo: capable? > Limiting the rgmii link capabilities provides smother and faster typo: smoother? > link establishment. > > Signed-off-by: Aleksandar Gerasimovski > <[email protected]> > Reviewed-by: Vladimir Oltean <[email protected]> > --- > Changes for v2: > - keep the variable sort order in a decreasing order of line length > - fix comment typo > --- > 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..ee820aa 100644 > --- a/drivers/net/tsec.c > +++ b/drivers/net/tsec.c > @@ -828,6 +828,7 @@ int tsec_probe(struct udevice *dev) > const char *phy_mode; > ofnode parent, child; > fdt_addr_t reg; > + u32 max_speed; > int ret; > > data = (struct tsec_data *)dev_get_driver_data(dev); > @@ -893,8 +894,12 @@ int tsec_probe(struct udevice *dev) > } > priv->interface = pdata->phy_interface; > > + /* Check for speed limit, 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; > Reviewed-by: Bin Meng <[email protected]> Could you please send the new version as a separate thread, instead of replying the old version thread? Regards, Bin

