b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 1 | From 7b75e86c2cfc9fa48b582b04e939f18a54bdfa2e Mon Sep 17 00:00:00 2001 |
| 2 | From: Claudiu Manoil <claudiu.manoil@nxp.com> |
| 3 | Date: Tue, 13 Aug 2019 13:59:24 +0300 |
| 4 | Subject: [PATCH] enetc: Fix if_mode extraction |
| 5 | |
| 6 | If if_mode not found then just handle it as fixed link |
| 7 | (i.e mac2mac connection). |
| 8 | |
| 9 | Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com> |
| 10 | --- |
| 11 | drivers/net/ethernet/freescale/enetc/enetc_pf.c | 17 ++++++----------- |
| 12 | 1 file changed, 6 insertions(+), 11 deletions(-) |
| 13 | |
| 14 | --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c |
| 15 | +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c |
| 16 | @@ -754,6 +754,7 @@ static int enetc_of_get_phy(struct enetc |
| 17 | struct enetc_pf *pf = enetc_si_priv(priv->si); |
| 18 | struct device_node *np = priv->dev->of_node; |
| 19 | struct device_node *mdio_np; |
| 20 | + int phy_mode; |
| 21 | int err; |
| 22 | |
| 23 | if (!np) { |
| 24 | @@ -787,17 +788,11 @@ static int enetc_of_get_phy(struct enetc |
| 25 | } |
| 26 | } |
| 27 | |
| 28 | - priv->if_mode = of_get_phy_mode(np); |
| 29 | - if ((int)priv->if_mode < 0) { |
| 30 | - dev_err(priv->dev, "missing phy type\n"); |
| 31 | - of_node_put(priv->phy_node); |
| 32 | - if (of_phy_is_fixed_link(np)) |
| 33 | - of_phy_deregister_fixed_link(np); |
| 34 | - else |
| 35 | - enetc_mdio_remove(pf); |
| 36 | - |
| 37 | - return -EINVAL; |
| 38 | - } |
| 39 | + phy_mode = of_get_phy_mode(np); |
| 40 | + if (phy_mode < 0) |
| 41 | + priv->if_mode = PHY_INTERFACE_MODE_NA; /* fixed link */ |
| 42 | + else |
| 43 | + priv->if_mode = phy_mode; |
| 44 | |
| 45 | return 0; |
| 46 | } |