|
@@ -459,12 +459,14 @@ static int bgx_lmac_xaui_init(struct bgx *bgx, struct lmac *lmac)
|
|
|
|
|
|
bgx_reg_modify(bgx, lmacid, BGX_SPUX_CONTROL1, SPU_CTL_LOW_POWER);
|
|
|
/* Set interleaved running disparity for RXAUI */
|
|
|
- if (lmac->lmac_type != BGX_MODE_RXAUI)
|
|
|
- bgx_reg_modify(bgx, lmacid,
|
|
|
- BGX_SPUX_MISC_CONTROL, SPU_MISC_CTL_RX_DIS);
|
|
|
- else
|
|
|
+ if (lmac->lmac_type == BGX_MODE_RXAUI)
|
|
|
bgx_reg_modify(bgx, lmacid, BGX_SPUX_MISC_CONTROL,
|
|
|
- SPU_MISC_CTL_RX_DIS | SPU_MISC_CTL_INTLV_RDISP);
|
|
|
+ SPU_MISC_CTL_INTLV_RDISP);
|
|
|
+
|
|
|
+ /* Clear receive packet disable */
|
|
|
+ cfg = bgx_reg_read(bgx, lmacid, BGX_SPUX_MISC_CONTROL);
|
|
|
+ cfg &= ~SPU_MISC_CTL_RX_DIS;
|
|
|
+ bgx_reg_write(bgx, lmacid, BGX_SPUX_MISC_CONTROL, cfg);
|
|
|
|
|
|
/* clear all interrupts */
|
|
|
cfg = bgx_reg_read(bgx, lmacid, BGX_SMUX_RX_INT);
|
|
@@ -537,7 +539,6 @@ static int bgx_xaui_check_link(struct lmac *lmac)
|
|
|
int lmac_type = lmac->lmac_type;
|
|
|
u64 cfg;
|
|
|
|
|
|
- bgx_reg_modify(bgx, lmacid, BGX_SPUX_MISC_CONTROL, SPU_MISC_CTL_RX_DIS);
|
|
|
if (lmac->use_training) {
|
|
|
cfg = bgx_reg_read(bgx, lmacid, BGX_SPUX_INT);
|
|
|
if (!(cfg & (1ull << 13))) {
|
|
@@ -607,11 +608,6 @@ static int bgx_xaui_check_link(struct lmac *lmac)
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
- /* Clear receive packet disable */
|
|
|
- cfg = bgx_reg_read(bgx, lmacid, BGX_SPUX_MISC_CONTROL);
|
|
|
- cfg &= ~SPU_MISC_CTL_RX_DIS;
|
|
|
- bgx_reg_write(bgx, lmacid, BGX_SPUX_MISC_CONTROL, cfg);
|
|
|
-
|
|
|
/* Check for MAC RX faults */
|
|
|
cfg = bgx_reg_read(bgx, lmacid, BGX_SMUX_RX_CTL);
|
|
|
/* 0 - Link is okay, 1 - Local fault, 2 - Remote fault */
|