Re: [PATCH 1/2] net: tsec: only call tsec_get_interface as fallback to DT-specified PHY mode
On Sun, Sep 19, 2021 at 10:32 AM Bin Meng wrote: > > On Sat, Sep 18, 2021 at 8:47 PM Vladimir Oltean > wrote: > > > > Currently the init_phy function may overwrite the priv->interface > > property, since it calls tsec_get_interface which tries to determine it > > dynamically based on default register values in ECNTRL. > > > > Let's do that only if phy-connection-type happens to not be defined in > > the device tree. > > > > Signed-off-by: Vladimir Oltean > > --- > > drivers/net/tsec.c | 9 +++-- > > 1 file changed, 3 insertions(+), 6 deletions(-) > > > > Reviewed-by: Bin Meng > Tested-by: Bin Meng Reviewed-by: Ramon Fried
Re: [PATCH 1/2] net: tsec: only call tsec_get_interface as fallback to DT-specified PHY mode
On Sat, Sep 18, 2021 at 8:47 PM Vladimir Oltean wrote: > > Currently the init_phy function may overwrite the priv->interface > property, since it calls tsec_get_interface which tries to determine it > dynamically based on default register values in ECNTRL. > > Let's do that only if phy-connection-type happens to not be defined in > the device tree. > > Signed-off-by: Vladimir Oltean > --- > drivers/net/tsec.c | 9 +++-- > 1 file changed, 3 insertions(+), 6 deletions(-) > Reviewed-by: Bin Meng Tested-by: Bin Meng
[PATCH 1/2] net: tsec: only call tsec_get_interface as fallback to DT-specified PHY mode
Currently the init_phy function may overwrite the priv->interface property, since it calls tsec_get_interface which tries to determine it dynamically based on default register values in ECNTRL. Let's do that only if phy-connection-type happens to not be defined in the device tree. Signed-off-by: Vladimir Oltean --- drivers/net/tsec.c | 9 +++-- 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c index ee820aae15ef..809cf7e432e6 100644 --- a/drivers/net/tsec.c +++ b/drivers/net/tsec.c @@ -701,8 +701,6 @@ static int init_phy(struct tsec_private *priv) /* Assign a Physical address to the TBI */ out_be32(®s->tbipa, priv->tbiaddr); - priv->interface = tsec_get_interface(priv); - if (priv->interface == PHY_INTERFACE_MODE_SGMII) tsec_configure_serdes(priv); @@ -888,10 +886,9 @@ int tsec_probe(struct udevice *dev) phy_mode = dev_read_prop(dev, "phy-connection-type", NULL); if (phy_mode) pdata->phy_interface = phy_get_interface_by_name(phy_mode); - if (pdata->phy_interface == -1) { - printf("Invalid PHY interface '%s'\n", phy_mode); - return -EINVAL; - } + if (pdata->phy_interface == -1) + pdata->phy_interface = tsec_get_interface(priv); + priv->interface = pdata->phy_interface; /* Check for speed limit, default is 1000Mbps */ -- 2.25.1