static void emac_sgmii_v1_reset(struct emac_adapter *adpt) { emac_clk_set_rate(adpt, EMAC_CLK_125M, EMC_CLK_RATE_19_2MHZ); emac_sgmii_reset_prepare(adpt); emac_sgmii_v1_init(adpt); emac_clk_set_rate(adpt, EMAC_CLK_125M, EMC_CLK_RATE_125MHZ); }
void emac_sgmii_reset(struct emac_adapter *adpt) { int ret; emac_sgmii_reset_prepare(adpt); emac_sgmii_link_init(adpt); ret = adpt->phy.initialize(adpt); if (ret) netdev_err(adpt->netdev, "could not reinitialize internal PHY (error=%i)\n", ret); }
int emac_sgmii_v1_link_setup_no_ephy(struct emac_adapter *adpt, u32 speed, bool autoneg) { struct emac_phy *phy = &adpt->phy; phy->autoneg = autoneg; phy->autoneg_advertised = speed; /* The AN_ENABLE and SPEED_CFG can't change on fly. The SGMII_PHY has * to be re-initialized. */ emac_sgmii_reset_prepare(adpt); return emac_sgmii_v1_init(adpt); }