diff mbox series

[v2,2/2] ethtool: Add 100BaseT1 and 1000BaseT1 link modes

Message ID 20190531135748.23740-3-andrew@lunn.ch
State Accepted
Delegated to: John Linville
Headers show
Series Add 100BaseT1 and 1000BaseT1 | expand

Commit Message

Andrew Lunn May 31, 2019, 1:57 p.m. UTC
The kernel can now indicate if the PHY supports operating over a
single pair at 100Mbps or 1000Mbps.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
---
 ethtool.8.in | 2 ++
 ethtool.c    | 6 ++++++
 2 files changed, 8 insertions(+)

Comments

Michal Kubecek May 31, 2019, 3:50 p.m. UTC | #1
On Fri, May 31, 2019 at 03:57:48PM +0200, Andrew Lunn wrote:
> The kernel can now indicate if the PHY supports operating over a
> single pair at 100Mbps or 1000Mbps.
> 
> Signed-off-by: Andrew Lunn <andrew@lunn.ch>
> ---

Reviewed-by: Michal Kubecek <mkubecek@suse.cz>

>  ethtool.8.in | 2 ++
>  ethtool.c    | 6 ++++++
>  2 files changed, 8 insertions(+)
> 
> diff --git a/ethtool.8.in b/ethtool.8.in
> index 430d11b915af..6af63455c636 100644
> --- a/ethtool.8.in
> +++ b/ethtool.8.in
> @@ -639,8 +639,10 @@ lB	l	lB.
>  0x002	10baseT Full
>  0x004	100baseT Half
>  0x008	100baseT Full
> +0x80000000000000000	100baseT1 Full
>  0x010	1000baseT Half	(not supported by IEEE standards)
>  0x020	1000baseT Full
> +0x100000000000000000	1000baseT1 Full
>  0x20000	1000baseKX Full
>  0x20000000000	1000baseX Full
>  0x800000000000	2500baseT Full

This reminds me the earlier discussion about which syntax extension
would be more useful:

  ethtool -s <dev> advertise 100baseT1/Full 1000baseT1/Full

(listing modes to be advertised) or

  ethtool -s <dev> advertise 100baseT1/Full off 1000baseT1/Full on

(enabling/disabling selected modes). But maybe we could support both;
after all, it's unlikely there would ever be a link mode named "on" or
"off".

Michal
diff mbox series

Patch

diff --git a/ethtool.8.in b/ethtool.8.in
index 430d11b915af..6af63455c636 100644
--- a/ethtool.8.in
+++ b/ethtool.8.in
@@ -639,8 +639,10 @@  lB	l	lB.
 0x002	10baseT Full
 0x004	100baseT Half
 0x008	100baseT Full
+0x80000000000000000	100baseT1 Full
 0x010	1000baseT Half	(not supported by IEEE standards)
 0x020	1000baseT Full
+0x100000000000000000	1000baseT1 Full
 0x20000	1000baseKX Full
 0x20000000000	1000baseX Full
 0x800000000000	2500baseT Full
diff --git a/ethtool.c b/ethtool.c
index 66a907edd97b..05fe05a080cd 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -545,6 +545,8 @@  static void init_global_link_mode_masks(void)
 		ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT,
 		ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT,
 		ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT,
+		ETHTOOL_LINK_MODE_100baseT1_Full_BIT,
+		ETHTOOL_LINK_MODE_1000baseT1_Full_BIT,
 	};
 	static const enum ethtool_link_mode_bit_indices
 		additional_advertised_flags_bits[] = {
@@ -634,10 +636,14 @@  static void dump_link_caps(const char *prefix, const char *an_prefix,
 		  "100baseT/Half" },
 		{ 1, ETHTOOL_LINK_MODE_100baseT_Full_BIT,
 		  "100baseT/Full" },
+		{ 0, ETHTOOL_LINK_MODE_100baseT1_Full_BIT,
+		  "100baseT1/Full" },
 		{ 0, ETHTOOL_LINK_MODE_1000baseT_Half_BIT,
 		  "1000baseT/Half" },
 		{ 1, ETHTOOL_LINK_MODE_1000baseT_Full_BIT,
 		  "1000baseT/Full" },
+		{ 0, ETHTOOL_LINK_MODE_1000baseT1_Full_BIT,
+		  "1000baseT1/Full" },
 		{ 0, ETHTOOL_LINK_MODE_1000baseKX_Full_BIT,
 		  "1000baseKX/Full" },
 		{ 0, ETHTOOL_LINK_MODE_2500baseX_Full_BIT,