diff mbox series

[RFC,net-next,01/13] net: phylink: update ethtool reporting for fixed-link modes

Message ID E1jqHFT-0006O2-Ol@rmk-PC.armlinux.org.uk
State RFC
Delegated to: David Miller
Headers show
Series Phylink PCS updates | expand

Commit Message

Russell King (Oracle) June 30, 2020, 2:28 p.m. UTC
Comparing the ethtool output from phylink and non-phylink fixed-link
setups shows that we have some differences:

- The "auto-negotiation" fields are different; phylink reports these
  as "No", non-phylink reports these as "Yes" for the supported and
  advertising masks.
- The link partner advertisement is set to the link speed with non-
  phylink, but phylink leaves this unset, causing all link partner
  fields to be omitted.

The phylink ethtool output also disagrees with the software emulated
PHY dump via the MII registers.

Update the phylink fixed-link parsing code so that we better reflect
the behaviour of the non-phylink code that this facility replaces, and
bring the ethtool interface more into line with the report from via the
MII interface.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
 drivers/net/phy/phylink.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Florian Fainelli June 30, 2020, 6:15 p.m. UTC | #1
On 6/30/2020 7:28 AM, Russell King wrote:
> Comparing the ethtool output from phylink and non-phylink fixed-link
> setups shows that we have some differences:
> 
> - The "auto-negotiation" fields are different; phylink reports these
>   as "No", non-phylink reports these as "Yes" for the supported and
>   advertising masks.
> - The link partner advertisement is set to the link speed with non-
>   phylink, but phylink leaves this unset, causing all link partner
>   fields to be omitted.
> 
> The phylink ethtool output also disagrees with the software emulated
> PHY dump via the MII registers.
> 
> Update the phylink fixed-link parsing code so that we better reflect
> the behaviour of the non-phylink code that this facility replaces, and
> bring the ethtool interface more into line with the report from via the
> MII interface.
> 
> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>

Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
diff mbox series

Patch

diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c
index dae6c8b51d7f..0fd5a11966aa 100644
--- a/drivers/net/phy/phylink.c
+++ b/drivers/net/phy/phylink.c
@@ -241,8 +241,10 @@  static int phylink_parse_fixedlink(struct phylink *pl,
 	phylink_set(pl->supported, MII);
 	phylink_set(pl->supported, Pause);
 	phylink_set(pl->supported, Asym_Pause);
+	phylink_set(pl->supported, Autoneg);
 	if (s) {
 		__set_bit(s->bit, pl->supported);
+		__set_bit(s->bit, pl->link_config.lp_advertising);
 	} else {
 		phylink_warn(pl, "fixed link %s duplex %dMbps not recognised\n",
 			     pl->link_config.duplex == DUPLEX_FULL ? "full" : "half",