diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ethernet/intel/e1000e/defines.h | 1 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/e1000e/phy.c | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/e1000e/defines.h b/drivers/net/ethernet/intel/e1000e/defines.h index b7c664f2a95f..a6aeb195390f 100644 --- a/drivers/net/ethernet/intel/e1000e/defines.h +++ b/drivers/net/ethernet/intel/e1000e/defines.h | |||
@@ -788,6 +788,7 @@ | |||
788 | GG82563_REG(194, 18) /* Inband Control */ | 788 | GG82563_REG(194, 18) /* Inband Control */ |
789 | 789 | ||
790 | /* MDI Control */ | 790 | /* MDI Control */ |
791 | #define E1000_MDIC_REG_MASK 0x001F0000 | ||
791 | #define E1000_MDIC_REG_SHIFT 16 | 792 | #define E1000_MDIC_REG_SHIFT 16 |
792 | #define E1000_MDIC_PHY_SHIFT 21 | 793 | #define E1000_MDIC_PHY_SHIFT 21 |
793 | #define E1000_MDIC_OP_WRITE 0x04000000 | 794 | #define E1000_MDIC_OP_WRITE 0x04000000 |
diff --git a/drivers/net/ethernet/intel/e1000e/phy.c b/drivers/net/ethernet/intel/e1000e/phy.c index 60dbf022e986..cbb310fb7d9f 100644 --- a/drivers/net/ethernet/intel/e1000e/phy.c +++ b/drivers/net/ethernet/intel/e1000e/phy.c | |||
@@ -178,6 +178,12 @@ s32 e1000e_read_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 *data) | |||
178 | e_dbg("MDI Error\n"); | 178 | e_dbg("MDI Error\n"); |
179 | return -E1000_ERR_PHY; | 179 | return -E1000_ERR_PHY; |
180 | } | 180 | } |
181 | if (((mdic & E1000_MDIC_REG_MASK) >> E1000_MDIC_REG_SHIFT) != offset) { | ||
182 | e_dbg("MDI Read offset error - requested %d, returned %d\n", | ||
183 | offset, | ||
184 | (mdic & E1000_MDIC_REG_MASK) >> E1000_MDIC_REG_SHIFT); | ||
185 | return -E1000_ERR_PHY; | ||
186 | } | ||
181 | *data = (u16)mdic; | 187 | *data = (u16)mdic; |
182 | 188 | ||
183 | /* Allow some time after each MDIC transaction to avoid | 189 | /* Allow some time after each MDIC transaction to avoid |
@@ -236,6 +242,12 @@ s32 e1000e_write_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 data) | |||
236 | e_dbg("MDI Error\n"); | 242 | e_dbg("MDI Error\n"); |
237 | return -E1000_ERR_PHY; | 243 | return -E1000_ERR_PHY; |
238 | } | 244 | } |
245 | if (((mdic & E1000_MDIC_REG_MASK) >> E1000_MDIC_REG_SHIFT) != offset) { | ||
246 | e_dbg("MDI Write offset error - requested %d, returned %d\n", | ||
247 | offset, | ||
248 | (mdic & E1000_MDIC_REG_MASK) >> E1000_MDIC_REG_SHIFT); | ||
249 | return -E1000_ERR_PHY; | ||
250 | } | ||
239 | 251 | ||
240 | /* Allow some time after each MDIC transaction to avoid | 252 | /* Allow some time after each MDIC transaction to avoid |
241 | * reading duplicate data in the next MDIC transaction. | 253 | * reading duplicate data in the next MDIC transaction. |