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 <vladimir.oltean@nxp.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
This commit is contained in:
committed by
Ramon Fried
parent
9bf2b962ff
commit
d883a5fb52
@@ -701,8 +701,6 @@ static int init_phy(struct tsec_private *priv)
|
|||||||
/* Assign a Physical address to the TBI */
|
/* Assign a Physical address to the TBI */
|
||||||
out_be32(®s->tbipa, priv->tbiaddr);
|
out_be32(®s->tbipa, priv->tbiaddr);
|
||||||
|
|
||||||
priv->interface = tsec_get_interface(priv);
|
|
||||||
|
|
||||||
if (priv->interface == PHY_INTERFACE_MODE_SGMII)
|
if (priv->interface == PHY_INTERFACE_MODE_SGMII)
|
||||||
tsec_configure_serdes(priv);
|
tsec_configure_serdes(priv);
|
||||||
|
|
||||||
@@ -888,10 +886,9 @@ int tsec_probe(struct udevice *dev)
|
|||||||
phy_mode = dev_read_prop(dev, "phy-connection-type", NULL);
|
phy_mode = dev_read_prop(dev, "phy-connection-type", NULL);
|
||||||
if (phy_mode)
|
if (phy_mode)
|
||||||
pdata->phy_interface = phy_get_interface_by_name(phy_mode);
|
pdata->phy_interface = phy_get_interface_by_name(phy_mode);
|
||||||
if (pdata->phy_interface == -1) {
|
if (pdata->phy_interface == -1)
|
||||||
printf("Invalid PHY interface '%s'\n", phy_mode);
|
pdata->phy_interface = tsec_get_interface(priv);
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
priv->interface = pdata->phy_interface;
|
priv->interface = pdata->phy_interface;
|
||||||
|
|
||||||
/* Check for speed limit, default is 1000Mbps */
|
/* Check for speed limit, default is 1000Mbps */
|
||||||
|
|||||||
Reference in New Issue
Block a user