void falcon_reconfigure_xmac(struct efx_nic *efx) { bool xaui_link_ok; falcon_mask_status_intr(efx, false); falcon_deconfigure_mac_wrapper(efx); /* Reconfigure the PHY, disabling transmit in mac level loopback. */ if (LOOPBACK_INTERNAL(efx)) efx->phy_mode |= PHY_MODE_TX_DISABLED; else efx->phy_mode &= ~PHY_MODE_TX_DISABLED; efx->phy_op->reconfigure(efx); falcon_reconfigure_xgxs_core(efx); falcon_reconfigure_xmac_core(efx); falcon_reconfigure_mac_wrapper(efx); /* Ensure XAUI link is up */ xaui_link_ok = falcon_check_xaui_link_up(efx); if (xaui_link_ok && efx->link_up) falcon_mask_status_intr(efx, true); }
static void falcon_reconfigure_xmac(struct efx_nic *efx) { falcon_mask_status_intr(efx, false); falcon_reconfigure_xgxs_core(efx); falcon_reconfigure_xmac_core(efx); falcon_reconfigure_mac_wrapper(efx); falcon_check_xaui_link_up(efx, 5); falcon_mask_status_intr(efx, true); }
static int falcon_reconfigure_xmac(struct efx_nic *efx) { falcon_reconfigure_xgxs_core(efx); falcon_reconfigure_xmac_core(efx); falcon_reconfigure_mac_wrapper(efx); efx->xmac_poll_required = !falcon_xmac_link_ok_retry(efx, 5); falcon_ack_status_intr(efx); return 0; }