static bool sfx7101_link_ok(struct efx_nic *efx) { return efx_mdio_links_ok(efx, MDIO_DEVS_PMAPMD | MDIO_DEVS_PCS | MDIO_DEVS_PHYXS); }
static bool sft9001_link_ok(struct efx_nic *efx, struct ethtool_cmd *ecmd) { u32 reg; if (efx_phy_mode_disabled(efx->phy_mode)) return false; else if (efx->loopback_mode == LOOPBACK_GPHY) return true; else if (efx->loopback_mode) return efx_mdio_links_ok(efx, MDIO_DEVS_PMAPMD | MDIO_DEVS_PHYXS); /* We must use the same definition of link state as LASI, * otherwise we can miss a link state transition */ if (ecmd->speed == 10000) { reg = efx_mdio_read(efx, MDIO_MMD_PCS, MDIO_PCS_10GBRT_STAT1); return reg & MDIO_PCS_10GBRT_STAT1_BLKLK; } else { reg = efx_mdio_read(efx, MDIO_MMD_C22EXT, C22EXT_STATUS_REG); return reg & (1 << C22EXT_STATUS_LINK_LBN); } }
static bool txc43128_phy_read_link(struct efx_nic *efx) { return efx_mdio_links_ok(efx, TXC_REQUIRED_DEVS); }