diff options
author | Russell King (Oracle) <rmk+kernel@armlinux.org.uk> | 2024-11-23 20:27:02 +0000 |
---|---|---|
committer | Russell King (Oracle) <rmk+kernel@armlinux.org.uk> | 2025-04-04 14:40:26 +0100 |
commit | 7d17be8738164241fc90928e1e6c6b2e06201c13 (patch) | |
tree | fe183fefcdabc1f7d0d13df01b55f05e774f19da /drivers/net/ethernet | |
parent | a9b4a82e07e472cf5c14ac993b2da38e427f416a (diff) |
net: mvneta: add phy_interface_t to LPI methods and validate it
Add the PHY interface mode to the LPI methods and validate that LPI
is being entered for a supported mode.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Diffstat (limited to 'drivers/net/ethernet')
-rw-r--r-- | drivers/net/ethernet/marvell/mvneta.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c index 4fe121b9f94b..fb6d57deea56 100644 --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c @@ -4278,7 +4278,8 @@ static void mvneta_mac_link_up(struct phylink_config *config, mvneta_port_up(pp); } -static void mvneta_mac_disable_tx_lpi(struct phylink_config *config) +static void mvneta_mac_disable_tx_lpi(struct phylink_config *config, + phy_interface_t interface) { struct mvneta_port *pp = netdev_priv(to_net_dev(config->dev)); u32 lpi1; @@ -4290,12 +4291,17 @@ static void mvneta_mac_disable_tx_lpi(struct phylink_config *config) mvreg_write(pp, MVNETA_LPI_CTRL_1, lpi1); } -static int mvneta_mac_enable_tx_lpi(struct phylink_config *config, u32 timer, +static int mvneta_mac_enable_tx_lpi(struct phylink_config *config, + phy_interface_t interface, u32 timer, bool tx_clk_stop) { struct mvneta_port *pp = netdev_priv(to_net_dev(config->dev)); u32 ts, tw, lpi0, lpi1, status; + if (interface != PHY_INTERFACE_MODE_SGMII && + interface != PHY_INTERFACE_MODE_QSGMII) + return -EOPNOTSUPP; + status = mvreg_read(pp, MVNETA_GMAC_STATUS); if (status & MVNETA_GMAC_SPEED_1000) { /* At 1G speeds, the timer resolution are 1us, and @@ -5471,7 +5477,7 @@ static int mvneta_port_power_up(struct mvneta_port *pp, int phy_mode) return -EINVAL; /* Ensure LPI is disabled */ - mvneta_mac_disable_tx_lpi(&pp->phylink_config); + mvneta_mac_disable_tx_lpi(&pp->phylink_config, phy_mode); return 0; } |