Commit e762cd70 authored by Ben Hutchings's avatar Ben Hutchings Committed by David S. Miller

sfc: Expose 100/1000BASE-T MDI-X status via ethtool

Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d005ba6c
...@@ -63,6 +63,7 @@ ...@@ -63,6 +63,7 @@
/* extended status register */ /* extended status register */
#define PMA_PMD_XSTATUS_REG 49153 #define PMA_PMD_XSTATUS_REG 49153
#define PMA_PMD_XSTAT_MDIX_LBN 14
#define PMA_PMD_XSTAT_FLP_LBN (12) #define PMA_PMD_XSTAT_FLP_LBN (12)
/* LED control register */ /* LED control register */
...@@ -741,9 +742,17 @@ tenxpress_get_settings(struct efx_nic *efx, struct ethtool_cmd *ecmd) ...@@ -741,9 +742,17 @@ tenxpress_get_settings(struct efx_nic *efx, struct ethtool_cmd *ecmd)
mdio45_ethtool_gset_npage(&efx->mdio, ecmd, adv, lpa); mdio45_ethtool_gset_npage(&efx->mdio, ecmd, adv, lpa);
if (efx->phy_type != PHY_TYPE_SFX7101) if (efx->phy_type != PHY_TYPE_SFX7101) {
ecmd->supported |= (SUPPORTED_100baseT_Full | ecmd->supported |= (SUPPORTED_100baseT_Full |
SUPPORTED_1000baseT_Full); SUPPORTED_1000baseT_Full);
if (ecmd->speed != SPEED_10000) {
ecmd->eth_tp_mdix =
(efx_mdio_read(efx, MDIO_MMD_PMAPMD,
PMA_PMD_XSTATUS_REG) &
(1 << PMA_PMD_XSTAT_MDIX_LBN))
? ETH_TP_MDI_X : ETH_TP_MDI;
}
}
/* In loopback, the PHY automatically brings up the correct interface, /* In loopback, the PHY automatically brings up the correct interface,
* but doesn't advertise the correct speed. So override it */ * but doesn't advertise the correct speed. So override it */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment