phylink: add in-band autonegotiation support for 10GBase-KR mode.
authorRussell King <rmk+kernel@armlinux.org.uk>
Tue, 25 Jul 2017 14:03:34 +0000 (15:03 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 7 Aug 2017 03:55:29 +0000 (20:55 -0700)
Add in-band autonegotation support for 10GBase-KR mode.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/phylink.c

index dc0f4d7b7dd2625ef33568ba5b450555fca48b53..32917bdd1432d9de77e72e6b66f84f9a3207bb92 100644 (file)
@@ -266,6 +266,23 @@ static int phylink_parse_mode(struct phylink *pl, struct device_node *np)
                        pl->link_an_mode = MLO_AN_8023Z;
                        break;
 
+               case PHY_INTERFACE_MODE_10GKR:
+                       phylink_set(pl->supported, 10baseT_Half);
+                       phylink_set(pl->supported, 10baseT_Full);
+                       phylink_set(pl->supported, 100baseT_Half);
+                       phylink_set(pl->supported, 100baseT_Full);
+                       phylink_set(pl->supported, 1000baseT_Half);
+                       phylink_set(pl->supported, 1000baseT_Full);
+                       phylink_set(pl->supported, 1000baseX_Full);
+                       phylink_set(pl->supported, 10000baseKR_Full);
+                       phylink_set(pl->supported, 10000baseCR_Full);
+                       phylink_set(pl->supported, 10000baseSR_Full);
+                       phylink_set(pl->supported, 10000baseLR_Full);
+                       phylink_set(pl->supported, 10000baseLRM_Full);
+                       phylink_set(pl->supported, 10000baseER_Full);
+                       pl->link_an_mode = MLO_AN_SGMII;
+                       break;
+
                default:
                        netdev_err(pl->netdev,
                                   "incorrect link mode %s for in-band status\n",