summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_plcr.c
diff options
context:
space:
mode:
authorMandy Lavi <mandy.lavi@freescale.com>2014-11-19 05:17:46 (GMT)
committerMatthew Weigel <Matthew.Weigel@freescale.com>2014-12-11 18:40:48 (GMT)
commitca6d6c8930a031eeab8e121ae7de52dede339e21 (patch)
treea102319534e49b7624b67a40a3d906662ce5850b /drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_plcr.c
parent5676273b1553c5920c90592f49a1d8fce560f24d (diff)
downloadlinux-fsl-qoriq-ca6d6c8930a031eeab8e121ae7de52dede339e21.tar.xz
fmd: fix static analysis issues
Change-Id: I2d6cead7b62116cd6a264ec91d82f3bdc3a03c10 Signed-off-by: Mandy Lavi <mandy.lavi@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/23939 Reviewed-by: Igal Liberman <Igal.Liberman@freescale.com> Tested-by: Richard Schmitt <richard.schmitt@freescale.com> Reviewed-by: Richard Schmitt <richard.schmitt@freescale.com>
Diffstat (limited to 'drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_plcr.c')
-rw-r--r--drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_plcr.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_plcr.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_plcr.c
index e4eeddc..a28b363 100644
--- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_plcr.c
+++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_plcr.c
@@ -216,7 +216,7 @@ static void GetInfoRateReg(e_FmPcdPlcrRateMode rateMode,
/* .......... */
-static void CalcRates(t_Handle h_FmPcd,
+static void CalcRates(uint32_t bitFor1Micro,
t_FmPcdPlcrNonPassthroughAlgParams *p_NonPassthroughAlgParam,
uint32_t *cir,
uint32_t *cbs,
@@ -224,14 +224,12 @@ static void CalcRates(t_Handle h_FmPcd,
uint32_t *pbs_ebs,
uint32_t *fpp)
{
- t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
uint64_t integer, fraction;
- uint32_t temp, tsuInTenthNanos, bitFor1Micro;
+ uint32_t temp, tsuInTenthNanos;
uint8_t fppShift=0;
- bitFor1Micro = FmGetTimeStampScale(p_FmPcd->h_Fm); /* TimeStamp per nano seconds units */
/* we want the tsu to count 10 nano for better precision normally tsu is 3.9 nano, now we will get 39 */
- tsuInTenthNanos = (uint32_t)(1000*10/(1<<bitFor1Micro));
+ tsuInTenthNanos = (uint32_t)(1000*10/(1 << bitFor1Micro));
/* we choose the faster rate to calibrate fpp */
/* The meaning of this step:
@@ -337,10 +335,14 @@ static t_Error BuildProfileRegs(t_FmPcd *p_FmPcd,
t_FmPcdPlcrProfileRegs *p_PlcrRegs)
{
t_Error err = E_OK;
- uint32_t pemode, gnia, ynia, rnia;
+ uint32_t pemode, gnia, ynia, rnia, bitFor1Micro;
ASSERT_COND(p_FmPcd);
+ bitFor1Micro = FmGetTimeStampScale(p_FmPcd->h_Fm);
+ if (bitFor1Micro == 0)
+ RETURN_ERROR(MAJOR, E_NOT_AVAILABLE, ("Timestamp scale"));
+
/* Set G, Y, R Nia */
err = SetProfileNia(p_FmPcd, p_ProfileParams->nextEngineOnGreen, &(p_ProfileParams->paramsOnGreen), &gnia);
if (err)
@@ -485,7 +487,7 @@ cont_rfc:
{
uint32_t cir=0, cbs=0, pir_eir=0, pbs_ebs=0, fpp=0;
- CalcRates(p_FmPcd, &p_ProfileParams->nonPassthroughAlgParams, &cir, &cbs, &pir_eir, &pbs_ebs, &fpp);
+ CalcRates(bitFor1Micro, &p_ProfileParams->nonPassthroughAlgParams, &cir, &cbs, &pir_eir, &pbs_ebs, &fpp);
/* Set Committed Information Rate (CIR) */
p_PlcrRegs->fmpl_pecir = cir;
@@ -1562,7 +1564,6 @@ t_Error FM_PCD_PlcrDumpRegs(t_Handle h_FmPcd)
DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_rypcnt);
DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_tpcnt);
DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_flmcnt);
-
DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_serc);
DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_upcr);
DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_dpmr);
@@ -1625,6 +1626,11 @@ t_Handle FM_PCD_PlcrProfileSet(t_Handle h_FmPcd,
p_ProfileParams->id.newParams.h_FmPort,
p_ProfileParams->id.newParams.relativeProfileId,
&absoluteProfileId);
+ if (err)
+ {
+ REPORT_ERROR(MAJOR, err, NO_MSG);
+ return NULL;
+ }
if (absoluteProfileId >= FM_PCD_PLCR_NUM_ENTRIES)
{