From 7b75e86c2cfc9fa48b582b04e939f18a54bdfa2e Mon Sep 17 00:00:00 2001 From: Claudiu Manoil Date: Tue, 13 Aug 2019 13:59:24 +0300 Subject: [PATCH] enetc: Fix if_mode extraction If if_mode not found then just handle it as fixed link (i.e mac2mac connection). Signed-off-by: Claudiu Manoil --- drivers/net/ethernet/freescale/enetc/enetc_pf.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c @@ -754,6 +754,7 @@ static int enetc_of_get_phy(struct enetc struct enetc_pf *pf = enetc_si_priv(priv->si); struct device_node *np = priv->dev->of_node; struct device_node *mdio_np; + int phy_mode; int err; if (!np) { @@ -787,17 +788,11 @@ static int enetc_of_get_phy(struct enetc } } - priv->if_mode = of_get_phy_mode(np); - if ((int)priv->if_mode < 0) { - dev_err(priv->dev, "missing phy type\n"); - of_node_put(priv->phy_node); - if (of_phy_is_fixed_link(np)) - of_phy_deregister_fixed_link(np); - else - enetc_mdio_remove(pf); - - return -EINVAL; - } + phy_mode = of_get_phy_mode(np); + if (phy_mode < 0) + priv->if_mode = PHY_INTERFACE_MODE_NA; /* fixed link */ + else + priv->if_mode = phy_mode; return 0; }