summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet
diff options
context:
space:
mode:
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>2024-11-23 20:27:02 +0000
committerRussell King (Oracle) <rmk+kernel@armlinux.org.uk>2025-04-04 14:40:26 +0100
commit7d17be8738164241fc90928e1e6c6b2e06201c13 (patch)
treefe183fefcdabc1f7d0d13df01b55f05e774f19da /drivers/net/ethernet
parenta9b4a82e07e472cf5c14ac993b2da38e427f416a (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.c12
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;
}