Message ID | 20240109144729.26102-1-quic_snehshah@quicinc.com |
---|---|
State | Accepted |
Commit | 08300adac3b8dab9e2fd3be0155c7d3093c755f4 |
Headers | show |
Series | [net,v3] net: stmmac: Fix ethool link settings ops for integrated PCS | expand |
On Tue, Jan 09, 2024 at 08:17:29PM +0530, Sneh Shah wrote: > Currently get/set_link_ksettings ethtool ops are dependent on PCS. > When PCS is integrated, it will not have separate link config. > Bypass configuring and checking PCS for integrated PCS. > > Fixes: aa571b6275fb ("net: stmmac: add new switch to struct plat_stmmacenet_data") > Tested-by: Andrew Halaney <ahalaney@redhat.com> # sa8775p-ride > Signed-off-by: Sneh Shah <quic_snehshah@quicinc.com> Reviewed-by: Simon Horman <horms@kernel.org>
Hello: This patch was applied to netdev/net.git (main) by David S. Miller <davem@davemloft.net>: On Tue, 9 Jan 2024 20:17:29 +0530 you wrote: > Currently get/set_link_ksettings ethtool ops are dependent on PCS. > When PCS is integrated, it will not have separate link config. > Bypass configuring and checking PCS for integrated PCS. > > Fixes: aa571b6275fb ("net: stmmac: add new switch to struct plat_stmmacenet_data") > Tested-by: Andrew Halaney <ahalaney@redhat.com> # sa8775p-ride > Signed-off-by: Sneh Shah <quic_snehshah@quicinc.com> > > [...] Here is the summary with links: - [net,v3] net: stmmac: Fix ethool link settings ops for integrated PCS https://git.kernel.org/netdev/net/c/08300adac3b8 You are awesome, thank you!
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c index f628411ae4ae..e3ba4cd47b8d 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c @@ -311,8 +311,9 @@ static int stmmac_ethtool_get_link_ksettings(struct net_device *dev, { struct stmmac_priv *priv = netdev_priv(dev); - if (priv->hw->pcs & STMMAC_PCS_RGMII || - priv->hw->pcs & STMMAC_PCS_SGMII) { + if (!(priv->plat->flags & STMMAC_FLAG_HAS_INTEGRATED_PCS) && + (priv->hw->pcs & STMMAC_PCS_RGMII || + priv->hw->pcs & STMMAC_PCS_SGMII)) { struct rgmii_adv adv; u32 supported, advertising, lp_advertising; @@ -397,8 +398,9 @@ stmmac_ethtool_set_link_ksettings(struct net_device *dev, { struct stmmac_priv *priv = netdev_priv(dev); - if (priv->hw->pcs & STMMAC_PCS_RGMII || - priv->hw->pcs & STMMAC_PCS_SGMII) { + if (!(priv->plat->flags & STMMAC_FLAG_HAS_INTEGRATED_PCS) && + (priv->hw->pcs & STMMAC_PCS_RGMII || + priv->hw->pcs & STMMAC_PCS_SGMII)) { /* Only support ANE */ if (cmd->base.autoneg != AUTONEG_ENABLE) return -EINVAL;