qede: Add driver support for 20G link speed.
authorSudarsana Reddy Kalluru <sudarsana.kalluru@cavium.com>
Tue, 2 Oct 2018 13:16:12 +0000 (06:16 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 2 Oct 2018 18:29:40 +0000 (11:29 -0700)
Add driver support for reading/configuring the 20G link speed via ethtool.

Signed-off-by: Sudarsana Reddy Kalluru <Sudarsana.Kalluru@cavium.com>
Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/qede/qede_ethtool.c

index 19652cd27ca78afd8de31214b59f5f7f310a8f1c..7ff50b4488f61ab66d3b8926766c187e85057493 100644 (file)
@@ -420,6 +420,7 @@ static const struct qede_link_mode_mapping qed_lm_map[] = {
        {QED_LM_1000baseT_Half_BIT, ETHTOOL_LINK_MODE_1000baseT_Half_BIT},
        {QED_LM_1000baseT_Full_BIT, ETHTOOL_LINK_MODE_1000baseT_Full_BIT},
        {QED_LM_10000baseKR_Full_BIT, ETHTOOL_LINK_MODE_10000baseKR_Full_BIT},
+       {QED_LM_20000baseKR2_Full_BIT, ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT},
        {QED_LM_25000baseKR_Full_BIT, ETHTOOL_LINK_MODE_25000baseKR_Full_BIT},
        {QED_LM_40000baseLR4_Full_BIT, ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT},
        {QED_LM_50000baseKR2_Full_BIT, ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT},
@@ -535,6 +536,14 @@ static int qede_set_link_ksettings(struct net_device *dev,
                        }
                        params.adv_speeds = QED_LM_10000baseKR_Full_BIT;
                        break;
+               case SPEED_20000:
+                       if (!(current_link.supported_caps &
+                             QED_LM_20000baseKR2_Full_BIT)) {
+                               DP_INFO(edev, "20G speed not supported\n");
+                               return -EINVAL;
+                       }
+                       params.adv_speeds = QED_LM_20000baseKR2_Full_BIT;
+                       break;
                case SPEED_25000:
                        if (!(current_link.supported_caps &
                              QED_LM_25000baseKR_Full_BIT)) {