diff options
Diffstat (limited to 'net/dsa/port.c')
-rw-r--r-- | net/dsa/port.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/net/dsa/port.c b/net/dsa/port.c index c42dac87671b..8c52d5a87c17 100644 --- a/net/dsa/port.c +++ b/net/dsa/port.c @@ -1651,6 +1651,26 @@ static void dsa_port_phylink_mac_link_up(struct phylink_config *config, speed, duplex, tx_pause, rx_pause); } +static void dsa_port_phylink_mac_disable_tx_lpi(struct phylink_config *config) +{ + struct dsa_port *dp = container_of(config, struct dsa_port, pl_config); + struct dsa_switch *ds = dp->ds; + + if (ds->ops->phylink_mac_disable_tx_lpi) + ds->ops->phylink_mac_disable_tx_lpi(ds, dp->index); + +} + +static void dsa_port_phylink_mac_enable_tx_lpi(struct phylink_config *config, + u32 timer) +{ + struct dsa_port *dp = container_of(config, struct dsa_port, pl_config); + struct dsa_switch *ds = dp->ds; + + if (ds->ops->phylink_mac_enable_tx_lpi) + ds->ops->phylink_mac_enable_tx_lpi(ds, dp->index, timer); +} + static const struct phylink_mac_ops dsa_port_phylink_mac_ops = { .mac_select_pcs = dsa_port_phylink_mac_select_pcs, .mac_prepare = dsa_port_phylink_mac_prepare, @@ -1658,6 +1678,8 @@ static const struct phylink_mac_ops dsa_port_phylink_mac_ops = { .mac_finish = dsa_port_phylink_mac_finish, .mac_link_down = dsa_port_phylink_mac_link_down, .mac_link_up = dsa_port_phylink_mac_link_up, + .mac_disable_tx_lpi = dsa_port_phylink_mac_disable_tx_lpi, + .mac_enable_tx_lpi = dsa_port_phylink_mac_enable_tx_lpi, }; int dsa_port_phylink_create(struct dsa_port *dp) |