summaryrefslogtreecommitdiff
path: root/net/dsa/port.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/dsa/port.c')
-rw-r--r--net/dsa/port.c22
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)