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