Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c9a3d471 authored by Jesse Brandeburg's avatar Jesse Brandeburg Committed by Jeff Kirsher
Browse files

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: default avatarShannon Nelson <shannon.nelson@intel.com>
Signed-off-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: default avatarKavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 810c23a3
Loading
Loading
Loading
Loading
+24 −8
Original line number Diff line number Diff line
@@ -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:
		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;
+4 −0
Original line number Diff line number Diff line
@@ -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