Commit 6f6bbc18 authored by Jesse Brandeburg's avatar Jesse Brandeburg Committed by Jeff Kirsher

ethtool.h: MDI setting support

This change modifies the core ethtool struct to allow a driver to
support setting of MDI/MDI-X state for twisted pair wiring.  This
change uses a previously reserved u8 and should not change any
binary compatibility of ethtool.

Also as per Ben Hutchings' suggestion, the capabilities are
stored in a separate byte so the driver can report if it supports
changing settings.

see thread: http://kerneltrap.org/mailarchive/linux-netdev/2010/11/17/6289820/thread

see ethtool patches titled:
ethtool: allow setting MDI-X state
Signed-off-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
CC: Ben Hutchings <bhutchings@solarflare.com>
Tested-by: Aaron Brown aaron.f.brown@intel.com
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 1d76efe1
...@@ -45,8 +45,10 @@ struct ethtool_cmd { ...@@ -45,8 +45,10 @@ struct ethtool_cmd {
* bits) in Mbps. Please use * bits) in Mbps. Please use
* ethtool_cmd_speed()/_set() to * ethtool_cmd_speed()/_set() to
* access it */ * access it */
__u8 eth_tp_mdix; __u8 eth_tp_mdix; /* twisted pair MDI-X status */
__u8 reserved2; __u8 eth_tp_mdix_ctrl; /* twisted pair MDI-X control, when set,
* link should be renegotiated if necessary
*/
__u32 lp_advertising; /* Features the link partner advertises */ __u32 lp_advertising; /* Features the link partner advertises */
__u32 reserved[2]; __u32 reserved[2];
}; };
...@@ -1229,10 +1231,13 @@ struct ethtool_ops { ...@@ -1229,10 +1231,13 @@ struct ethtool_ops {
#define AUTONEG_DISABLE 0x00 #define AUTONEG_DISABLE 0x00
#define AUTONEG_ENABLE 0x01 #define AUTONEG_ENABLE 0x01
/* Mode MDI or MDI-X */ /* MDI or MDI-X status/control - if MDI/MDI_X/AUTO is set then
#define ETH_TP_MDI_INVALID 0x00 * the driver is required to renegotiate link
#define ETH_TP_MDI 0x01 */
#define ETH_TP_MDI_X 0x02 #define ETH_TP_MDI_INVALID 0x00 /* status: unknown; control: unsupported */
#define ETH_TP_MDI 0x01 /* status: MDI; control: force MDI */
#define ETH_TP_MDI_X 0x02 /* status: MDI-X; control: force MDI-X */
#define ETH_TP_MDI_AUTO 0x03 /* control: auto-select */
/* Wake-On-Lan options. */ /* Wake-On-Lan options. */
#define WAKE_PHY (1 << 0) #define WAKE_PHY (1 << 0)
......
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