Fix handling of error return code. Before this fix,
the error code was handled as unsigned type.
Also, on this path if if_mode not found then just handle
it as fixed link (i.e mac2mac connection).

Signed-off-by: Claudiu Manoil <claudiu.man...@nxp.com>
---
 drivers/net/ethernet/freescale/enetc/enetc_pf.c | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.c 
b/drivers/net/ethernet/freescale/enetc/enetc_pf.c
index 7d6513ff8507..3a556646a2fb 100644
--- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c
@@ -751,6 +751,7 @@ static int enetc_of_get_phy(struct enetc_ndev_priv *priv)
        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) {
@@ -784,17 +785,11 @@ static int enetc_of_get_phy(struct enetc_ndev_priv *priv)
                }
        }
 
-       priv->if_mode = of_get_phy_mode(np);
-       if (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;
 }
-- 
2.17.1

Reply via email to