diff options
author | Jesse Brandeburg <jesse.brandeburg@intel.com> | 2012-07-25 22:30:53 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2012-08-21 04:19:54 -0400 |
commit | 6f6bbc186dc8e4e0c628db7decbd1a5e02cb5fd8 (patch) | |
tree | 5d4aab558f968d6f78a0ae85db1c042a1ba3a552 /include | |
parent | 1d76efe1577b4323609b1bcbfafa8b731eda071a (diff) |
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: Jesse Brandeburg <jesse.brandeburg@intel.com>
CC: Ben Hutchings <bhutchings@solarflare.com>
Tested-by: Aaron Brown aaron.f.brown@intel.com
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/ethtool.h | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index 21eff418091b..fcb4f8e60c1c 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h | |||
@@ -45,8 +45,10 @@ struct ethtool_cmd { | |||
45 | * bits) in Mbps. Please use | 45 | * bits) in Mbps. Please use |
46 | * ethtool_cmd_speed()/_set() to | 46 | * ethtool_cmd_speed()/_set() to |
47 | * access it */ | 47 | * access it */ |
48 | __u8 eth_tp_mdix; | 48 | __u8 eth_tp_mdix; /* twisted pair MDI-X status */ |
49 | __u8 reserved2; | 49 | __u8 eth_tp_mdix_ctrl; /* twisted pair MDI-X control, when set, |
50 | * link should be renegotiated if necessary | ||
51 | */ | ||
50 | __u32 lp_advertising; /* Features the link partner advertises */ | 52 | __u32 lp_advertising; /* Features the link partner advertises */ |
51 | __u32 reserved[2]; | 53 | __u32 reserved[2]; |
52 | }; | 54 | }; |
@@ -1229,10 +1231,13 @@ struct ethtool_ops { | |||
1229 | #define AUTONEG_DISABLE 0x00 | 1231 | #define AUTONEG_DISABLE 0x00 |
1230 | #define AUTONEG_ENABLE 0x01 | 1232 | #define AUTONEG_ENABLE 0x01 |
1231 | 1233 | ||
1232 | /* Mode MDI or MDI-X */ | 1234 | /* MDI or MDI-X status/control - if MDI/MDI_X/AUTO is set then |
1233 | #define ETH_TP_MDI_INVALID 0x00 | 1235 | * the driver is required to renegotiate link |
1234 | #define ETH_TP_MDI 0x01 | 1236 | */ |
1235 | #define ETH_TP_MDI_X 0x02 | 1237 | #define ETH_TP_MDI_INVALID 0x00 /* status: unknown; control: unsupported */ |
1238 | #define ETH_TP_MDI 0x01 /* status: MDI; control: force MDI */ | ||
1239 | #define ETH_TP_MDI_X 0x02 /* status: MDI-X; control: force MDI-X */ | ||
1240 | #define ETH_TP_MDI_AUTO 0x03 /* control: auto-select */ | ||
1236 | 1241 | ||
1237 | /* Wake-On-Lan options. */ | 1242 | /* Wake-On-Lan options. */ |
1238 | #define WAKE_PHY (1 << 0) | 1243 | #define WAKE_PHY (1 << 0) |