summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/fman/Peripherals/FM/Port
diff options
context:
space:
mode:
authorEyal Harari <Eyal.Harari@freesacle.com>2014-05-28 15:35:34 (GMT)
committerJose Rivera <German.Rivera@freescale.com>2014-05-28 16:29:53 (GMT)
commit8fb41d93b318eacabf01eadfa39e42c3190eba94 (patch)
treeadf920f36573b36504d9d88a61c3f3cbb08c4756 /drivers/net/ethernet/freescale/fman/Peripherals/FM/Port
parent88210d33c755c534ec50756b4b51fbd4b9672124 (diff)
downloadlinux-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.c19
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));