static void xgbe_set_mode(struct xgbe_prv_data *pdata, enum xgbe_mode mode) { if (mode == xgbe_cur_mode(pdata)) return; xgbe_change_mode(pdata, mode); }
static bool xgbe_in_kr_mode(struct xgbe_prv_data *pdata) { enum xgbe_mode mode; xgbe_cur_mode(pdata, &mode); return (mode == XGBE_MODE_KR); }
static void xgbe_set_mode(struct xgbe_prv_data *pdata, enum xgbe_mode mode) { enum xgbe_mode cur_mode; xgbe_cur_mode(pdata, &cur_mode); if (mode != cur_mode) xgbe_switch_mode(pdata); }
static void xgbe_phy_status_result(struct xgbe_prv_data *pdata) { enum xgbe_mode mode; pdata->phy.lp_advertising = 0; if ((pdata->phy.autoneg != AUTONEG_ENABLE) || pdata->parallel_detect) mode = xgbe_cur_mode(pdata); else mode = xgbe_phy_status_aneg(pdata); switch (mode) { case XGBE_MODE_SGMII_100: pdata->phy.speed = SPEED_100; break; case XGBE_MODE_X: case XGBE_MODE_KX_1000: case XGBE_MODE_SGMII_1000: pdata->phy.speed = SPEED_1000; break; case XGBE_MODE_KX_2500: pdata->phy.speed = SPEED_2500; break; case XGBE_MODE_KR: case XGBE_MODE_SFI: pdata->phy.speed = SPEED_10000; break; case XGBE_MODE_UNKNOWN: default: pdata->phy.speed = SPEED_UNKNOWN; } pdata->phy.duplex = DUPLEX_FULL; xgbe_set_mode(pdata, mode); }
static bool xgbe_in_kr_mode(struct xgbe_prv_data *pdata) { return (xgbe_cur_mode(pdata) == XGBE_MODE_KR); }