e1000e: Expose MDI-X status via ethtool change
Ethtool is a standard way of getting information about ethernet interfaces. We enhance ethtool kernel interface & e1000e to make the MDI-X status readable via ethtool in userspace. Signed-off-by: Chaitanya Lala <clala@riverbed.com> Signed-off-by: Arthur Jones <ajones@riverbed.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
edfea6e641
commit
18760f1e74
|
@ -167,6 +167,15 @@ static int e1000_get_settings(struct net_device *netdev,
|
||||||
|
|
||||||
ecmd->autoneg = ((hw->phy.media_type == e1000_media_type_fiber) ||
|
ecmd->autoneg = ((hw->phy.media_type == e1000_media_type_fiber) ||
|
||||||
hw->mac.autoneg) ? AUTONEG_ENABLE : AUTONEG_DISABLE;
|
hw->mac.autoneg) ? AUTONEG_ENABLE : AUTONEG_DISABLE;
|
||||||
|
|
||||||
|
/* MDI-X => 2; MDI =>1; Invalid =>0 */
|
||||||
|
if ((hw->phy.media_type == e1000_media_type_copper) &&
|
||||||
|
!hw->mac.get_link_status)
|
||||||
|
ecmd->eth_tp_mdix = hw->phy.is_mdix ? ETH_TP_MDI_X :
|
||||||
|
ETH_TP_MDI;
|
||||||
|
else
|
||||||
|
ecmd->eth_tp_mdix = ETH_TP_MDI_INVALID;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,8 @@ struct ethtool_cmd {
|
||||||
__u32 maxtxpkt; /* Tx pkts before generating tx int */
|
__u32 maxtxpkt; /* Tx pkts before generating tx int */
|
||||||
__u32 maxrxpkt; /* Rx pkts before generating rx int */
|
__u32 maxrxpkt; /* Rx pkts before generating rx int */
|
||||||
__u16 speed_hi;
|
__u16 speed_hi;
|
||||||
__u16 reserved2;
|
__u8 eth_tp_mdix;
|
||||||
|
__u8 reserved2;
|
||||||
__u32 lp_advertising; /* Features the link partner advertises */
|
__u32 lp_advertising; /* Features the link partner advertises */
|
||||||
__u32 reserved[2];
|
__u32 reserved[2];
|
||||||
};
|
};
|
||||||
|
@ -632,6 +633,11 @@ struct ethtool_ops {
|
||||||
#define AUTONEG_DISABLE 0x00
|
#define AUTONEG_DISABLE 0x00
|
||||||
#define AUTONEG_ENABLE 0x01
|
#define AUTONEG_ENABLE 0x01
|
||||||
|
|
||||||
|
/* Mode MDI or MDI-X */
|
||||||
|
#define ETH_TP_MDI_INVALID 0x00
|
||||||
|
#define ETH_TP_MDI 0x01
|
||||||
|
#define ETH_TP_MDI_X 0x02
|
||||||
|
|
||||||
/* Wake-On-Lan options. */
|
/* Wake-On-Lan options. */
|
||||||
#define WAKE_PHY (1 << 0)
|
#define WAKE_PHY (1 << 0)
|
||||||
#define WAKE_UCAST (1 << 1)
|
#define WAKE_UCAST (1 << 1)
|
||||||
|
|
Loading…
Reference in a new issue