iavf: Fix reporting 2.5 Gb and 5Gb speeds
authorBrett Creeley <brett.creeley@intel.com>
Fri, 5 Jun 2020 17:09:45 +0000 (10:09 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 11 Jun 2020 22:11:42 +0000 (15:11 -0700)
Commit 4ae4916b5643 ("i40e: fix 'Unknown bps' in dmesg for 2.5Gb/5Gb
speeds") added the ability for the PF to report 2.5 and 5Gb speeds,
however, the iavf driver does not recognize those speeds as the values were
not added there. Add the proper enums and values so that iavf can properly
deal with those speeds.

Fixes: 4ae4916b5643 ("i40e: fix 'Unknown bps' in dmesg for 2.5Gb/5Gb speeds")
Signed-off-by: Brett Creeley <brett.creeley@intel.com>
Signed-off-by: Witold Fijalkowski <witoldx.fijalkowski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/iavf/iavf_ethtool.c
drivers/net/ethernet/intel/iavf/iavf_main.c
drivers/net/ethernet/intel/iavf/iavf_virtchnl.c

index b29a5979cce2188e179aade7d7493fa0f00da66f..1815738229426a274da96b1286ec5ea43e2c3691 100644 (file)
@@ -303,6 +303,12 @@ static int iavf_get_link_ksettings(struct net_device *netdev,
        case VIRTCHNL_LINK_SPEED_10GB:
                cmd->base.speed = SPEED_10000;
                break;
+       case VIRTCHNL_LINK_SPEED_5GB:
+               cmd->base.speed = SPEED_5000;
+               break;
+       case VIRTCHNL_LINK_SPEED_2_5GB:
+               cmd->base.speed = SPEED_2500;
+               break;
        case VIRTCHNL_LINK_SPEED_1GB:
                cmd->base.speed = SPEED_1000;
                break;
index 922f20962a295fb6b1c22d599f2f01426d03de58..06c481e9ac5cb66a08c52e16c1115ee0106e8784 100644 (file)
@@ -2499,22 +2499,28 @@ static int iavf_validate_tx_bandwidth(struct iavf_adapter *adapter,
 
        switch (adapter->link_speed) {
        case VIRTCHNL_LINK_SPEED_40GB:
-               speed = 40000;
+               speed = SPEED_40000;
                break;
        case VIRTCHNL_LINK_SPEED_25GB:
-               speed = 25000;
+               speed = SPEED_25000;
                break;
        case VIRTCHNL_LINK_SPEED_20GB:
-               speed = 20000;
+               speed = SPEED_20000;
                break;
        case VIRTCHNL_LINK_SPEED_10GB:
-               speed = 10000;
+               speed = SPEED_10000;
+               break;
+       case VIRTCHNL_LINK_SPEED_5GB:
+               speed = SPEED_5000;
+               break;
+       case VIRTCHNL_LINK_SPEED_2_5GB:
+               speed = SPEED_2500;
                break;
        case VIRTCHNL_LINK_SPEED_1GB:
-               speed = 1000;
+               speed = SPEED_1000;
                break;
        case VIRTCHNL_LINK_SPEED_100MB:
-               speed = 100;
+               speed = SPEED_100;
                break;
        default:
                break;
index c4735589a296f67c6bc93e903eb74db188cee6aa..ed08ace4f05a885c5aca466e2e29dd31537287b9 100644 (file)
@@ -933,6 +933,12 @@ static void iavf_print_link_message(struct iavf_adapter *adapter)
        case VIRTCHNL_LINK_SPEED_10GB:
                link_speed_mbps = SPEED_10000;
                break;
+       case VIRTCHNL_LINK_SPEED_5GB:
+               link_speed_mbps = SPEED_5000;
+               break;
+       case VIRTCHNL_LINK_SPEED_2_5GB:
+               link_speed_mbps = SPEED_2500;
+               break;
        case VIRTCHNL_LINK_SPEED_1GB:
                link_speed_mbps = SPEED_1000;
                break;