|
@@ -3865,6 +3865,19 @@ static void bnx2x_warpcore_enable_AN_KR(struct bnx2x_phy *phy,
|
|
|
|
|
|
bnx2x_warpcore_enable_AN_KR2(phy, params, vars);
|
|
|
} else {
|
|
|
+ /* Enable Auto-Detect to support 1G over CL37 as well */
|
|
|
+ bnx2x_cl45_write(bp, phy, MDIO_WC_DEVAD,
|
|
|
+ MDIO_WC_REG_SERDESDIGITAL_CONTROL1000X1, 0x10);
|
|
|
+
|
|
|
+ /* Force cl48 sync_status LOW to avoid getting stuck in CL73
|
|
|
+ * parallel-detect loop when CL73 and CL37 are enabled.
|
|
|
+ */
|
|
|
+ CL22_WR_OVER_CL45(bp, phy, MDIO_REG_BANK_AER_BLOCK,
|
|
|
+ MDIO_AER_BLOCK_AER_REG, 0);
|
|
|
+ bnx2x_cl45_write(bp, phy, MDIO_WC_DEVAD,
|
|
|
+ MDIO_WC_REG_RXB_ANA_RX_CONTROL_PCI, 0x0800);
|
|
|
+ bnx2x_set_aer_mmd(params, phy);
|
|
|
+
|
|
|
bnx2x_disable_kr2(params, vars, phy);
|
|
|
}
|
|
|
|