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);
goto failed_phy;
}
phy_node = of_node_get(np);
+ fep->fixed_link = true;
}
fep->phy_node = phy_node;
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);