diff options
author | Eyal Harari <Eyal.Harari@freesacle.com> | 2014-05-28 15:35:34 (GMT) |
---|---|---|
committer | Jose Rivera <German.Rivera@freescale.com> | 2014-05-28 16:29:53 (GMT) |
commit | 8fb41d93b318eacabf01eadfa39e42c3190eba94 (patch) | |
tree | adf920f36573b36504d9d88a61c3f3cbb08c4756 /drivers/net/ethernet/freescale/fman/Peripherals/FM/Port | |
parent | 88210d33c755c534ec50756b4b51fbd4b9672124 (diff) | |
download | linux-fsl-qoriq-8fb41d93b318eacabf01eadfa39e42c3190eba94.tar.xz |
FMD: DSAR: stabilize DSAR
Signed-off-by: Eyal Harari <Eyal.Harari@freesacle.com>
Change-Id: Ica2eaeb13ecd0a2ad3084ad427a3e2f2da86b21f
Reviewed-on: http://git.am.freescale.net:8181/13019
Reviewed-by: Mandy Lavi <Mandy.Lavi@freescale.com>
Reviewed-by: Jose Rivera <German.Rivera@freescale.com>
Tested-by: Jose Rivera <German.Rivera@freescale.com>
Diffstat (limited to 'drivers/net/ethernet/freescale/fman/Peripherals/FM/Port')
-rw-r--r-- | drivers/net/ethernet/freescale/fman/Peripherals/FM/Port/fm_port.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/Port/fm_port.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/Port/fm_port.c index df05848..7359001 100644 --- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/Port/fm_port.c +++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/Port/fm_port.c @@ -5799,9 +5799,10 @@ void FM_PORT_Dsar_enter_final(void) // Issue graceful stop to HC port FM_PORT_Disable(opXX); - // config auto response + // config tx port p_FmPort->deepSleepVars.fmbm_tcfg = GET_UINT32(p_FmPortTx->p_FmPortBmiRegs->txPortBmiRegs.fmbm_tcfg); - WRITE_UINT32(p_FmPortTx->p_FmPortBmiRegs->txPortBmiRegs.fmbm_tcfg, GET_UINT32(p_FmPortTx->p_FmPortBmiRegs->txPortBmiRegs.fmbm_tcfg) | BMI_PORT_CFG_IM); + WRITE_UINT32(p_FmPortTx->p_FmPortBmiRegs->txPortBmiRegs.fmbm_tfdne, 0x005000C0); + WRITE_UINT32(p_FmPortTx->p_FmPortBmiRegs->txPortBmiRegs.fmbm_tcfg, GET_UINT32(p_FmPortTx->p_FmPortBmiRegs->txPortBmiRegs.fmbm_tcfg) | BMI_PORT_CFG_IM | BMI_PORT_CFG_EN); // ???? p_FmPort->deepSleepVars.fmbm_tcmne = GET_UINT32(p_FmPortTx->p_FmPortBmiRegs->txPortBmiRegs.fmbm_tcmne); WRITE_UINT32(p_FmPortTx->p_FmPortBmiRegs->txPortBmiRegs.fmbm_tcmne, 0xE); @@ -5834,23 +5835,19 @@ void FM_PORT_Dsar_enter_final(void) if (fmGetSetParams.getParams.fmfp_extc != 0) { // clear - XX_Print("FM: Sync did not finish 0\n"); memset(&fmGetSetParams, 0, sizeof (t_FmGetSetParams)); fmGetSetParams.setParams.type = UPDATE_FPM_EXTC_CLEAR; FmGetSetParams(p_FmPort->h_Fm, &fmGetSetParams); } - // get memset(&fmGetSetParams, 0, sizeof (t_FmGetSetParams)); - fmGetSetParams.getParams.type = GET_FMFP_EXTC; - FmGetSetParams(p_FmPort->h_Fm, &fmGetSetParams); - while (fmGetSetParams.getParams.fmfp_extc != 0) + fmGetSetParams.getParams.type = GET_FMFP_EXTC | GET_FM_NPI; + do { - // get - memset(&fmGetSetParams, 0, sizeof (t_FmGetSetParams)); - fmGetSetParams.getParams.type = GET_FMFP_EXTC; FmGetSetParams(p_FmPort->h_Fm, &fmGetSetParams); - } + } while (fmGetSetParams.getParams.fmfp_extc != 0 && fmGetSetParams.getParams.fm_npi == 0); + if (fmGetSetParams.getParams.fm_npi != 0) + XX_Print("FM: Sync did not finish\n"); // check that all stoped memset(&fmGetSetParams, 0, sizeof (t_FmGetSetParams)); |