Lines Matching full:pause
148 phylink_set(tmp, Pause); in phylink_is_empty_linkmode()
257 * Set all possible pause, speed and duplex linkmodes in @linkmodes that are
569 /* The MAC must support asymmetric pause towards the local in phylink_get_capabilities()
570 * device for this. We could allow just symmetric pause, but in phylink_get_capabilities()
572 * doesn't support pause. This is because there's no way to in phylink_get_capabilities()
573 * accept pause frames without transmitting them if we only in phylink_get_capabilities()
574 * support symmetric pause. in phylink_get_capabilities()
754 bool pause, asym_pause, autoneg; in phylink_parse_fixedlink() local
770 /* We treat the "pause" and "asym-pause" terminology as in phylink_parse_fixedlink()
773 if (fwnode_property_read_bool(fixed_node, "pause")) in phylink_parse_fixedlink()
776 if (fwnode_property_read_bool(fixed_node, "asym-pause")) in phylink_parse_fixedlink()
827 pause = phylink_test(pl->supported, Pause); in phylink_parse_fixedlink()
835 if (pause) in phylink_parse_fixedlink()
836 phylink_set(pl->supported, Pause); in phylink_parse_fixedlink()
886 phylink_set(pl->supported, Pause); in phylink_parse_mode()
997 /* If autoneg is disabled, pause AN is also disabled */ in phylink_apply_manual_flow()
1000 state->pause &= ~MLO_PAUSE_AN; in phylink_apply_manual_flow()
1002 /* Manual configuration of pause modes */ in phylink_apply_manual_flow()
1003 if (!(pl->link_config.pause & MLO_PAUSE_AN)) in phylink_apply_manual_flow()
1004 state->pause = pl->link_config.pause; in phylink_apply_manual_flow()
1016 state->pause |= MLO_PAUSE_TX; in phylink_resolve_an_pause()
1018 state->pause |= MLO_PAUSE_RX; in phylink_resolve_an_pause()
1100 "%s: mode=%s/%s/%s adv=%*pb pause=%02x\n", in phylink_mac_config()
1105 st.pause); in phylink_mac_config()
1188 !!(pl->link_config.pause & MLO_PAUSE_AN)); in phylink_major_config()
1229 phylink_dbg(pl, "%s: mode=%s/%s adv=%*pb pause=%02x\n", __func__, in phylink_change_inband_advert()
1233 pl->link_config.pause); in phylink_change_inband_advert()
1249 !!(pl->link_config.pause & MLO_PAUSE_AN)); in phylink_change_inband_advert()
1270 state->pause = MLO_PAUSE_NONE; in phylink_mac_pcs_get_state()
1274 state->pause = pl->link_config.pause; in phylink_mac_pcs_get_state()
1297 state->pause = MLO_PAUSE_NONE; in phylink_get_fixed_state()
1317 link_state.pause = MLO_PAUSE_NONE; in phylink_mac_initial_config()
1330 static const char *phylink_pause_to_str(int pause) in phylink_pause_to_str() argument
1332 switch (pause & MLO_PAUSE_TXRX_MASK) { in phylink_pause_to_str()
1354 rx_pause = !!(link_state.pause & MLO_PAUSE_RX); in phylink_link_up()
1360 * pause frames to the MAC to limit its transmission speed. in phylink_link_up()
1388 !!(link_state.pause & MLO_PAUSE_TX), rx_pause); in phylink_link_up()
1397 phylink_pause_to_str(link_state.pause)); in phylink_link_up()
1494 link_state.pause = pl->phy_state.pause; in phylink_resolve()
1650 pl->link_config.pause = MLO_PAUSE_AN; in phylink_create()
1738 pl->phy_state.pause = MLO_PAUSE_NONE; in phylink_phy_change()
1740 pl->phy_state.pause |= MLO_PAUSE_TX; in phylink_phy_change()
1742 pl->phy_state.pause |= MLO_PAUSE_RX; in phylink_phy_change()
1754 phylink_pause_to_str(pl->phy_state.pause)); in phylink_phy_change()
1768 * phy drivers should not set SUPPORTED_[Asym_]Pause") except in phylink_bringup_phy()
1825 pl->phy_state.pause = MLO_PAUSE_NONE; in phylink_bringup_phy()
2336 * represent the supported speeds/duplex/pause modes. in phylink_ethtool_ksettings_get()
2392 * - other configuration changes (e.g. pause modes) are in phylink_ethtool_ksettings_set()
2396 * link_config.{speed,duplex,an_enabled,pause} are not used. in phylink_ethtool_ksettings_set()
2398 * pause modes when in 1000base-X mode with a PHY, but in in phylink_ethtool_ksettings_set()
2551 * phylink_ethtool_get_pauseparam() - get the current pause parameters
2553 * @pause: a pointer to a &struct ethtool_pauseparam
2556 struct ethtool_pauseparam *pause) in phylink_ethtool_get_pauseparam() argument
2560 pause->autoneg = !!(pl->link_config.pause & MLO_PAUSE_AN); in phylink_ethtool_get_pauseparam()
2561 pause->rx_pause = !!(pl->link_config.pause & MLO_PAUSE_RX); in phylink_ethtool_get_pauseparam()
2562 pause->tx_pause = !!(pl->link_config.pause & MLO_PAUSE_TX); in phylink_ethtool_get_pauseparam()
2567 * phylink_ethtool_set_pauseparam() - set the current pause parameters
2569 * @pause: a pointer to a &struct ethtool_pauseparam
2572 struct ethtool_pauseparam *pause) in phylink_ethtool_set_pauseparam() argument
2583 if (!phylink_test(pl->supported, Pause) && in phylink_ethtool_set_pauseparam()
2588 pause->rx_pause != pause->tx_pause) in phylink_ethtool_set_pauseparam()
2592 if (pause->autoneg) in phylink_ethtool_set_pauseparam()
2594 if (pause->rx_pause) in phylink_ethtool_set_pauseparam()
2596 if (pause->tx_pause) in phylink_ethtool_set_pauseparam()
2605 * rx tx Pause AsymDir in phylink_ethtool_set_pauseparam()
2611 * rx/tx pause resolution. in phylink_ethtool_set_pauseparam()
2613 linkmode_set_pause(config->advertising, pause->tx_pause, in phylink_ethtool_set_pauseparam()
2614 pause->rx_pause); in phylink_ethtool_set_pauseparam()
2616 manual_changed = (config->pause ^ pause_state) & MLO_PAUSE_AN || in phylink_ethtool_set_pauseparam()
2618 (config->pause ^ pause_state) & MLO_PAUSE_TXRX_MASK); in phylink_ethtool_set_pauseparam()
2620 config->pause = pause_state; in phylink_ethtool_set_pauseparam()
2630 /* If we have a PHY, a change of the pause frame advertisement will in phylink_ethtool_set_pauseparam()
2636 phy_set_asym_pause(pl->phydev, pause->rx_pause, in phylink_ethtool_set_pauseparam()
2637 pause->tx_pause); in phylink_ethtool_set_pauseparam()
2639 /* If the manual pause settings changed, make sure we trigger a in phylink_ethtool_set_pauseparam()
2744 fs.pause = test_bit(ETHTOOL_LINK_MODE_Pause_BIT, lpa); in phylink_mii_emul_read()
3105 config.pause = MLO_PAUSE_AN; in phylink_sfp_config_phy()
3173 config.pause = MLO_PAUSE_AN; in phylink_sfp_config_optical()
3297 * phy drivers should not set SUPPORTED_[Asym_]Pause") except in phylink_sfp_connect_phy()