diff options
author | Mandy Lavi <mandy.lavi@freescale.com> | 2015-03-16 11:39:33 (GMT) |
---|---|---|
committer | Honghua Yin <Hong-Hua.Yin@freescale.com> | 2015-03-17 02:50:38 (GMT) |
commit | d61e341cd19b6234170fd435366100f47a871e79 (patch) | |
tree | 47b611f6f205c1f8c09a7ab8e6964a8e27fd5a14 /drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_kg.c | |
parent | 1744323ccc02b3b5188750b2a31f5e262011defe (diff) | |
download | linux-fsl-qoriq-d61e341cd19b6234170fd435366100f47a871e79.tar.xz |
fmd: optimize shared schemes used for IPR across multiple ports
Change-Id: Ifb357bd9b78c06042aa6e9fbb7c50b821f955064
Signed-off-by: Mandy Lavi <mandy.lavi@freescale.com>
Reviewed-on: http://git.am.freescale.net:8181/32794
Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com>
Reviewed-by: Liron Himi <Liron.Himi@freescale.com>
Reviewed-by: Pinghua An <pinghua.an@freescale.com>
Reviewed-by: Honghua Yin <Hong-Hua.Yin@freescale.com>
Diffstat (limited to 'drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_kg.c')
-rw-r--r-- | drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_kg.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_kg.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_kg.c index cadc12a..dae5575 100644 --- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_kg.c +++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_kg.c @@ -2794,6 +2794,30 @@ uint8_t FmPcdKgGetRelativeSchemeId(t_Handle h_FmPcd, uint8_t schemeId) return FM_PCD_KG_NUM_OF_SCHEMES; } +t_Handle FmPcdKgGetSchemeHandle(t_Handle h_FmPcd, uint8_t relativeSchemeId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + ASSERT_COND(p_FmPcd); + + /* check that schemeId is in range */ + if (relativeSchemeId >= p_FmPcd->p_FmPcdKg->numOfSchemes) + { + REPORT_ERROR(MAJOR, E_NOT_IN_RANGE, ("relative-scheme-id %d!", relativeSchemeId)); + return NULL; + } + + if (!FmPcdKgIsSchemeValidSw(&p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId])) + return NULL; + + return &p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId]; +} + +bool FmPcdKgIsSchemeHasOwners(t_Handle h_Scheme) +{ + return (((t_FmPcdKgScheme*)h_Scheme)->owners == 0)?FALSE:TRUE; +} + t_Error FmPcdKgCcGetSetParams(t_Handle h_FmPcd, t_Handle h_Scheme, uint32_t requiredAction, uint32_t value) { t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; |