2023-12-26 08:35:23

by Sneh Shah

[permalink] [raw]
Subject: [PATCH net v2] net: stmmac: Fix ethool link settings ops for integrated PCS

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 <[email protected]> # sa8775p-ride
Signed-off-by: Sneh Shah <[email protected]>
---
v2 changelog:
- Added tested by tag.
- Added Fixes tag.
---
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)

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;
--
2.17.1



2024-01-03 17:52:59

by Simon Horman

[permalink] [raw]
Subject: Re: [PATCH net v2] net: stmmac: Fix ethool link settings ops for integrated PCS

On Tue, Dec 26, 2023 at 02:04:32PM +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")

Nit: a correct format for the line above is:

Fixes: aa571b6275fb ("net: stmmac: add new switch to struct plat_stmmacenet_data")

> Tested-by: Andrew Halaney <[email protected]> # sa8775p-ride
> Signed-off-by: Sneh Shah <[email protected]>

...