aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ethernet/intel/e1000e/defines.h1
-rw-r--r--drivers/net/ethernet/intel/e1000e/phy.c12
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.