|
@@ -119,10 +119,13 @@ MODULE_DESCRIPTION("AMD 10GbE (amd-xgbe) PHY driver");
|
|
|
#endif
|
|
|
|
|
|
/* SerDes integration register offsets */
|
|
|
+#define SIR0_KR_RT_1 0x002c
|
|
|
#define SIR0_STATUS 0x0040
|
|
|
#define SIR1_SPEED 0x0000
|
|
|
|
|
|
/* SerDes integration register entry bit positions and sizes */
|
|
|
+#define SIR0_KR_RT_1_RESET_INDEX 11
|
|
|
+#define SIR0_KR_RT_1_RESET_WIDTH 1
|
|
|
#define SIR0_STATUS_RX_READY_INDEX 0
|
|
|
#define SIR0_STATUS_RX_READY_WIDTH 1
|
|
|
#define SIR0_STATUS_TX_READY_INDEX 8
|
|
@@ -636,9 +639,13 @@ static enum amd_xgbe_phy_an amd_xgbe_an_tx_training(struct phy_device *phydev,
|
|
|
if (ret < 0)
|
|
|
return AMD_XGBE_AN_ERROR;
|
|
|
|
|
|
+ XSIR0_IOWRITE_BITS(priv, SIR0_KR_RT_1, RESET, 1);
|
|
|
+
|
|
|
ret |= 0x01;
|
|
|
phy_write_mmd(phydev, MDIO_MMD_PMAPMD, MDIO_PMA_10GBR_PMD_CTRL, ret);
|
|
|
|
|
|
+ XSIR0_IOWRITE_BITS(priv, SIR0_KR_RT_1, RESET, 0);
|
|
|
+
|
|
|
return AMD_XGBE_AN_EVENT;
|
|
|
}
|
|
|
|