diff options
author | Lendacky, Thomas <Thomas.Lendacky@amd.com> | 2016-11-03 13:18:38 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-11-04 14:48:44 -0400 |
commit | a64def4161d4b8fffea43807f582ffc3e4e5d128 (patch) | |
tree | 378e4ec7b83d61d1741a74bfe27e3068f1fb6390 /drivers/net/ethernet/amd/xgbe/xgbe.h | |
parent | amd-xgbe: Prepare for working with more than one type of phy (diff) | |
download | linux-dev-a64def4161d4b8fffea43807f582ffc3e4e5d128.tar.xz linux-dev-a64def4161d4b8fffea43807f582ffc3e4e5d128.zip |
amd-xgbe: Prepare for introduction of clause 37 autoneg
Prepare for the future introduction of clause 37 auto-negotiation by
updating the current auto-negotiation related functions to identify
them as clause 73 functions. Move interrupt enablement to the
enable/disable auto-negotiation functions. Update what will be common
routines to check for the current type of AN and process accordingly.
Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/amd/xgbe/xgbe.h')
-rw-r--r-- | drivers/net/ethernet/amd/xgbe/xgbe.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/net/ethernet/amd/xgbe/xgbe.h b/drivers/net/ethernet/amd/xgbe/xgbe.h index 0d33aef36b71..d90ecbcb97a6 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe.h +++ b/drivers/net/ethernet/amd/xgbe/xgbe.h @@ -263,11 +263,6 @@ #define XGBE_AN_MS_TIMEOUT 500 #define XGBE_LINK_TIMEOUT 10 -#define XGBE_AN_INT_CMPLT 0x01 -#define XGBE_AN_INC_LINK 0x02 -#define XGBE_AN_PG_RCV 0x04 -#define XGBE_AN_INT_MASK 0x07 - struct xgbe_prv_data; struct xgbe_packet_data { @@ -470,6 +465,11 @@ enum xgbe_speed { XGBE_SPEEDS, }; +enum xgbe_an_mode { + XGBE_AN_MODE_CL73 = 0, + XGBE_AN_MODE_NONE, +}; + enum xgbe_an { XGBE_AN_READY = 0, XGBE_AN_PAGE_RECEIVED, @@ -699,6 +699,9 @@ struct xgbe_phy_impl_if { /* Retrieve current mode */ enum xgbe_mode (*cur_mode)(struct xgbe_prv_data *); + /* Retrieve current auto-negotiation mode */ + enum xgbe_an_mode (*an_mode)(struct xgbe_prv_data *); + /* Process results of auto-negotiation */ enum xgbe_mode (*an_outcome)(struct xgbe_prv_data *); @@ -968,6 +971,7 @@ struct xgbe_prv_data { unsigned int parallel_detect; unsigned int fec_ability; unsigned long an_start; + enum xgbe_an_mode an_mode; unsigned int lpm_ctrl; /* CTRL1 for resume */ |