MLK-14618 net: fec: fixed-link don't need phy fixup setting
authorAndy Duan <fugang.duan@nxp.com>
Wed, 5 Apr 2017 07:30:59 +0000 (15:30 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 20:21:47 +0000 (15:21 -0500)
In MAC-MAC fixed link case, it don't need phy fixup setting.

Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
drivers/net/ethernet/freescale/fec.h
drivers/net/ethernet/freescale/fec_main.c

index 97e842d..158d80f 100644 (file)
@@ -549,6 +549,7 @@ struct fec_enet_private {
        phy_interface_t phy_interface;
        struct device_node *phy_node;
        int     link;
+       bool    fixed_link;
        int     full_duplex;
        int     speed;
        struct  completion mdio_done;
index 1763e85..c1698cc 100644 (file)
@@ -2110,7 +2110,7 @@ static int fec_enet_mii_init(struct platform_device *pdev)
        if (node) {
                err = of_mdiobus_register(fep->mii_bus, node);
                of_node_put(node);
-       } else if (fep->phy_node) {
+       } else if (fep->phy_node && !fep->fixed_link) {
                err = -EPROBE_DEFER;
        } else {
                err = mdiobus_register(fep->mii_bus);
@@ -3527,6 +3527,7 @@ fec_probe(struct platform_device *pdev)
                        goto failed_phy;
                }
                phy_node = of_node_get(np);
+               fep->fixed_link = true;
        }
        fep->phy_node = phy_node;
 
@@ -3659,8 +3660,10 @@ fec_probe(struct platform_device *pdev)
        if (ret)
                goto failed_register;
 
-       fep->fixups = of_fec_enet_parse_fixup(np);
-       fec_enet_register_fixup(ndev);
+       if (!fep->fixed_link) {
+               fep->fixups = of_fec_enet_parse_fixup(np);
+               fec_enet_register_fixup(ndev);
+       }
 
        device_init_wakeup(&ndev->dev, fep->wol_flag &
                           FEC_WOL_HAS_MAGIC_PACKET);