i40e: fix up some of the ethtool connection reporting
Get some more reasonable information reported back out to ethtool for the different types of connections supported. Change-Id: I57b153f86b9cdd04ad7cb5bf7d1c45873c196a7a Signed-off-by: Shannon Nelson <shannon.nelson@intel.com> Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
810c23a355
commit
c9a3d47161
|
@ -193,32 +193,48 @@ static int i40e_get_settings(struct net_device *netdev,
|
|||
ecmd->supported = SUPPORTED_10000baseKR_Full;
|
||||
ecmd->advertising = ADVERTISED_10000baseKR_Full;
|
||||
break;
|
||||
case I40E_PHY_TYPE_10GBASE_T:
|
||||
default:
|
||||
ecmd->supported = SUPPORTED_10000baseT_Full;
|
||||
ecmd->advertising = ADVERTISED_10000baseT_Full;
|
||||
if (i40e_is_40G_device(hw->device_id)) {
|
||||
ecmd->supported = SUPPORTED_40000baseSR4_Full;
|
||||
ecmd->advertising = ADVERTISED_40000baseSR4_Full;
|
||||
} else {
|
||||
ecmd->supported = SUPPORTED_10000baseT_Full;
|
||||
ecmd->advertising = ADVERTISED_10000baseT_Full;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
/* for now just say autoneg all the time */
|
||||
ecmd->supported |= SUPPORTED_Autoneg;
|
||||
ecmd->advertising |= ADVERTISED_Autoneg;
|
||||
ecmd->autoneg = ((hw_link_info->an_info & I40E_AQ_AN_COMPLETED) ?
|
||||
AUTONEG_ENABLE : AUTONEG_DISABLE);
|
||||
|
||||
if (hw->phy.media_type == I40E_MEDIA_TYPE_BACKPLANE) {
|
||||
switch (hw->phy.media_type) {
|
||||
case I40E_MEDIA_TYPE_BACKPLANE:
|
||||
ecmd->supported |= SUPPORTED_Backplane;
|
||||
ecmd->advertising |= ADVERTISED_Backplane;
|
||||
ecmd->port = PORT_NONE;
|
||||
} else if (hw->phy.media_type == I40E_MEDIA_TYPE_BASET) {
|
||||
break;
|
||||
case I40E_MEDIA_TYPE_BASET:
|
||||
ecmd->supported |= SUPPORTED_TP;
|
||||
ecmd->advertising |= ADVERTISED_TP;
|
||||
ecmd->port = PORT_TP;
|
||||
} else if (hw->phy.media_type == I40E_MEDIA_TYPE_DA) {
|
||||
break;
|
||||
case I40E_MEDIA_TYPE_DA:
|
||||
case I40E_MEDIA_TYPE_CX4:
|
||||
ecmd->supported |= SUPPORTED_FIBRE;
|
||||
ecmd->advertising |= ADVERTISED_FIBRE;
|
||||
ecmd->port = PORT_DA;
|
||||
} else {
|
||||
break;
|
||||
case I40E_MEDIA_TYPE_FIBER:
|
||||
ecmd->supported |= SUPPORTED_FIBRE;
|
||||
ecmd->advertising |= ADVERTISED_FIBRE;
|
||||
ecmd->port = PORT_FIBRE;
|
||||
break;
|
||||
case I40E_MEDIA_TYPE_UNKNOWN:
|
||||
default:
|
||||
ecmd->port = PORT_OTHER;
|
||||
break;
|
||||
}
|
||||
|
||||
ecmd->transceiver = XCVR_EXTERNAL;
|
||||
|
|
|
@ -49,6 +49,10 @@
|
|||
#define I40E_VF_DEVICE_ID 0x154C
|
||||
#define I40E_VF_HV_DEVICE_ID 0x1571
|
||||
|
||||
#define i40e_is_40G_device(d) ((d) == I40E_QSFP_A_DEVICE_ID || \
|
||||
(d) == I40E_QSFP_B_DEVICE_ID || \
|
||||
(d) == I40E_QSFP_C_DEVICE_ID)
|
||||
|
||||
#define I40E_FW_API_VERSION_MAJOR 0x0001
|
||||
#define I40E_FW_API_VERSION_MINOR 0x0000
|
||||
|
||||
|
|
Loading…
Reference in New Issue