diff options
-rw-r--r-- | drivers/net/phy/phylink.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c index afa491f72291..575c5555d6ba 100644 --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c @@ -1509,14 +1509,18 @@ static void phylink_activate_lpi(struct phylink *pl) err = pl->mac_ops->mac_enable_tx_lpi(pl->config, pl->mac_tx_lpi_timer, pl->mac_tx_clk_stop); - if (err) { + if (!err) { + pl->mac_enable_tx_lpi = true; + } else { phylink_pcs_disable_eee(pl->pcs); - phylink_err(pl, "%ps() failed: %pe\n", - pl->mac_ops->mac_enable_tx_lpi, ERR_PTR(err)); - return; + if (err == -EOPNOTSUPP) + phylink_dbg(pl, "%ps doesn't support LPI", + pl->mac_ops->mac_enable_tx_lpi); + else + phylink_err(pl, "%ps() failed: %pe\n", + pl->mac_ops->mac_enable_tx_lpi, + ERR_PTR(err)); } - - pl->mac_enable_tx_lpi = true; } static void phylink_link_up(struct phylink *pl, |