• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/sys/contrib/ncsw/Peripherals/FM/Pcd/

Lines Matching refs:p_FmPcd

94 static t_Error WriteKgarWait(t_FmPcd *p_FmPcd, uint32_t fmkg_ar)
97 struct fman_kg_regs *regs = p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs;
421 static t_KnownFieldsMasks GetKnownProtMask(t_FmPcd *p_FmPcd, e_NetHeaderType hdr, e_FmPcdHdrIndex index, t_FmPcdFields field)
423 UNUSED(p_FmPcd);
544 if (p_FmPcd->fmRevInfo.majorRev < 6)
729 static void IncSchemeOwners(t_FmPcd *p_FmPcd, t_FmPcdKgInterModuleBindPortToSchemes *p_BindPort)
737 p_FmPcdKg = p_FmPcd->p_FmPcdKg;
742 relativeSchemeId = FmPcdKgGetRelativeSchemeId(p_FmPcd, p_BindPort->schemesIds[i]);
754 static void DecSchemeOwners(t_FmPcd *p_FmPcd, t_FmPcdKgInterModuleBindPortToSchemes *p_BindPort)
762 p_FmPcdKg = p_FmPcd->p_FmPcdKg;
767 relativeSchemeId = FmPcdKgGetRelativeSchemeId(p_FmPcd, p_BindPort->schemesIds[i]);
795 static t_Error KgWriteSp(t_FmPcd *p_FmPcd, uint8_t hardwarePortId, uint32_t spReg, bool add)
805 if (p_FmPcd->h_Hc)
806 return FmHcKgWriteSp(p_FmPcd->h_Hc, hardwarePortId, spReg, add);
808 p_KgRegs = p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs;
812 intFlags = KgHwLock(p_FmPcd->p_FmPcdKg);
813 err = WriteKgarWait(p_FmPcd, tmpKgarReg);
816 KgHwUnlock(p_FmPcd->p_FmPcdKg, intFlags);
824 err = WriteKgarWait(p_FmPcd, tmpKgarReg);
825 KgHwUnlock(p_FmPcd->p_FmPcdKg, intFlags);
829 static t_Error KgWriteCpp(t_FmPcd *p_FmPcd, uint8_t hardwarePortId, uint32_t cppReg)
835 p_KgRegs = p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs;
837 if (p_FmPcd->h_Hc)
839 err = FmHcKgWriteCpp(p_FmPcd->h_Hc, hardwarePortId, cppReg);
843 intFlags = KgHwLock(p_FmPcd->p_FmPcdKg);
846 err = WriteKgarWait(p_FmPcd, tmpKgarReg);
847 KgHwUnlock(p_FmPcd->p_FmPcdKg, intFlags);
852 static uint32_t BuildCppReg(t_FmPcd *p_FmPcd, uint8_t clsPlanGrpId)
856 tmpKgpeCpp = (uint32_t)(p_FmPcd->p_FmPcdKg->clsPlanGrps[clsPlanGrpId].baseEntry / 8);
857 tmpKgpeCpp |= (uint32_t)(((p_FmPcd->p_FmPcdKg->clsPlanGrps[clsPlanGrpId].sizeOfGrp / 8) - 1) << FM_KG_PE_CPP_MASK_SHIFT);
862 static t_Error BindPortToClsPlanGrp(t_FmPcd *p_FmPcd, uint8_t hardwarePortId, uint8_t clsPlanGrpId)
866 tmpKgpeCpp = BuildCppReg(p_FmPcd, clsPlanGrpId);
867 return KgWriteCpp(p_FmPcd, hardwarePortId, tmpKgpeCpp);
870 static void UnbindPortToClsPlanGrp(t_FmPcd *p_FmPcd, uint8_t hardwarePortId)
872 KgWriteCpp(p_FmPcd, hardwarePortId, 0);
893 t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd;
897 ASSERT_COND(FmIsMaster(p_FmPcd->h_Fm));
898 p_KgRegs = p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs;
902 p_FmPcd->f_Exception(p_FmPcd->h_App,e_FM_PCD_KG_EXCEPTION_DOUBLE_ECC);
910 p_FmPcd->f_FmPcdIndexedException(p_FmPcd->h_App,e_FM_PCD_KG_EXCEPTION_KEYSIZE_OVERFLOW, (uint16_t)(31 - index));
916 p_FmPcd->f_Exception(p_FmPcd->h_App,e_FM_PCD_KG_EXCEPTION_KEYSIZE_OVERFLOW);
920 static t_Error KgInitGuest(t_FmPcd *p_FmPcd)
928 ASSERT_COND(p_FmPcd->guestId != NCSW_MASTER_ID);
934 kgAlloc.numOfSchemes = p_FmPcd->p_FmPcdKg->numOfSchemes;
935 kgAlloc.guestId = p_FmPcd->guestId;
938 replyLength = sizeof(uint32_t) + p_FmPcd->p_FmPcdKg->numOfSchemes*sizeof(uint8_t);
939 if ((err = XX_IpcSendMessage(p_FmPcd->h_IpcSession,
947 if (replyLength != (sizeof(uint32_t) + p_FmPcd->p_FmPcdKg->numOfSchemes*sizeof(uint8_t)))
949 memcpy(p_FmPcd->p_FmPcdKg->schemesIds, (uint8_t*)(reply.replyBody),p_FmPcd->p_FmPcdKg->numOfSchemes*sizeof(uint8_t));
954 static t_Error KgInitMaster(t_FmPcd *p_FmPcd)
957 struct fman_kg_regs *p_Regs = p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs;
959 ASSERT_COND(p_FmPcd->guestId == NCSW_MASTER_ID);
961 if (p_FmPcd->exceptions & FM_EX_KG_DOUBLE_ECC)
962 FmEnableRamsEcc(p_FmPcd->h_Fm);
964 fman_kg_init(p_Regs, p_FmPcd->exceptions, GET_NIA_BMI_AC_ENQ_FRAME(p_FmPcd));
967 FmRegisterIntr(p_FmPcd->h_Fm,
972 p_FmPcd);
976 if (p_FmPcd->p_FmPcdKg->numOfSchemes)
978 err = FmPcdKgAllocSchemes(p_FmPcd,
979 p_FmPcd->p_FmPcdKg->numOfSchemes,
980 p_FmPcd->guestId,
981 p_FmPcd->p_FmPcdKg->schemesIds);
1013 t_FmPcd *p_FmPcd = (t_FmPcd *)(p_Scheme->h_FmPcd);
1049 err = PcdGetUnitsVector(p_FmPcd, &netEnvParams);
1066 if ((p_FmPcd->fmRevInfo.majorRev != 4) && (p_FmPcd->fmRevInfo.majorRev < 6))
1102 if ((p_FmPcd->fmRevInfo.majorRev != 4) && (p_FmPcd->fmRevInfo.majorRev < 6))
1147 err = FmPcdPlcrGetAbsoluteIdByProfileParams((t_Handle)p_FmPcd,e_FM_PCD_PLCR_SHARED,NULL, relativeProfileId, &profileId);
1150 if (!FmPcdPlcrIsProfileValid(p_FmPcd, profileId))
1244 tmpReg |= GET_NIA_BMI_AC_DISCARD_FRAME(p_FmPcd);
1246 tmpReg |= GET_NIA_BMI_AC_ENQ_FRAME(p_FmPcd);
1411 p_Extract->extractByHdr.hdr = FmPcdGetAliasHdr(p_FmPcd, p_Scheme->netEnvId, HEADER_TYPE_UDP_ENCAP_ESP);
1432 p_Extract->extractByHdr.hdr = FmPcdGetAliasHdr(p_FmPcd, p_Scheme->netEnvId, HEADER_TYPE_UDP_ENCAP_ESP);
1438 p_Extract->extractByHdr.hdr = FmPcdGetAliasHdr(p_FmPcd, p_Scheme->netEnvId, HEADER_TYPE_UDP_ENCAP_ESP);
1455 p_Extract->extractByHdr.hdr = FmPcdGetAliasHdr(p_FmPcd, p_Scheme->netEnvId, HEADER_TYPE_UDP_ENCAP_ESP);
1462 p_Extract->extractByHdr.hdr = FmPcdGetAliasHdr(p_FmPcd, p_Scheme->netEnvId, HEADER_TYPE_UDP_ENCAP_ESP);
1496 bitMask = GetKnownProtMask(p_FmPcd, p_Extract->extractByHdr.hdr, p_Extract->extractByHdr.hdrIndex,
1843 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
1856 if (!p_FmPcd->p_FmPcdKg->clsPlanGrps[i].used)
1861 p_FmPcd->p_FmPcdKg->clsPlanGrps[i].used = TRUE;
1866 p_FmPcd->p_FmPcdKg->emptyClsPlanGrpId = (uint8_t)i;
1868 p_ClsPlanGrp = &p_FmPcd->p_FmPcdKg->clsPlanGrps[i];
1871 FmPcdSetClsPlanGrpId(p_FmPcd, p_Grp->netEnvId, p_Grp->clsPlanGrpId);
1873 FmPcdIncNetEnvOwners(p_FmPcd, p_Grp->netEnvId);
1879 if (p_FmPcd->guestId == NCSW_MASTER_ID)
1881 err = KgAllocClsPlanEntries(h_FmPcd, p_ClsPlanGrp->sizeOfGrp, p_FmPcd->guestId, &p_ClsPlanGrp->baseEntry);
1896 kgAlloc.guestId = p_FmPcd->guestId;
1901 if ((err = XX_IpcSendMessage(p_FmPcd->h_IpcSession,
1971 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
1979 if (p_FmPcd->p_FmPcdKg->clsPlanGrps[grpId].owners)
1985 FmPcdSetClsPlanGrpId(p_FmPcd, p_FmPcd->p_FmPcdKg->clsPlanGrps[grpId].netEnvId, ILLEGAL_CLS_PLAN);
1987 if (grpId == p_FmPcd->p_FmPcdKg->emptyClsPlanGrpId)
1988 p_FmPcd->p_FmPcdKg->emptyClsPlanGrpId = ILLEGAL_CLS_PLAN;
1990 FmPcdDecNetEnvOwners(p_FmPcd, p_FmPcd->p_FmPcdKg->clsPlanGrps[grpId].netEnvId);
1993 if (p_FmPcd->guestId == NCSW_MASTER_ID)
1995 p_FmPcd->p_FmPcdKg->clsPlanGrps[grpId].sizeOfGrp,
1996 p_FmPcd->guestId,
1997 p_FmPcd->p_FmPcdKg->clsPlanGrps[grpId].baseEntry);
2002 kgAlloc.guestId = p_FmPcd->guestId;
2003 kgAlloc.numOfClsPlanEntries = p_FmPcd->p_FmPcdKg->clsPlanGrps[grpId].sizeOfGrp;
2004 kgAlloc.clsPlanBase = p_FmPcd->p_FmPcdKg->clsPlanGrps[grpId].baseEntry;
2008 err = XX_IpcSendMessage(p_FmPcd->h_IpcSession,
2033 memset(&p_FmPcd->p_FmPcdKg->clsPlanGrps[grpId], 0, sizeof(t_FmPcdKgClsPlanGrp));
2038 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
2045 SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE);
2046 SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdKg, E_INVALID_HANDLE);
2047 SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE);
2052 relativeSchemeId = FmPcdKgGetRelativeSchemeId(p_FmPcd, p_BindPort->schemesIds[i]);
2058 p_Scheme = &p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId];
2071 ASSERT_COND(p_FmPcd->p_FmPcdPlcr->portsMapping[swPortIndex].h_FmPort);
2072 if (p_Scheme->relativeProfileId+j >= p_FmPcd->p_FmPcdPlcr->portsMapping[swPortIndex].numOfProfiles)
2074 if (!FmPcdPlcrIsProfileValid(p_FmPcd, (uint16_t)(p_FmPcd->p_FmPcdPlcr->portsMapping[swPortIndex].profilesBase + p_Scheme->relativeProfileId + j)))
2098 if (!PcdNetEnvIsUnitWithoutOpts(p_FmPcd, netEnvId, walking1Mask))
2117 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
2125 err = KgWriteSp(p_FmPcd, p_SchemeBind->hardwarePortId, spReg, TRUE);
2129 IncSchemeOwners(p_FmPcd, p_SchemeBind);
2136 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
2140 err = FmPcdKgBuildBindPortToSchemes(p_FmPcd, p_SchemeBind, &spReg, FALSE);
2144 err = KgWriteSp(p_FmPcd, p_SchemeBind->hardwarePortId, spReg, FALSE);
2148 DecSchemeOwners(p_FmPcd, p_SchemeBind);
2162 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
2164 if (p_FmPcd->p_FmPcdKg->schemes[schemeId].matchVector == SCHEME_ALWAYS_DIRECT)
2172 t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd;
2175 SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE);
2176 SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdKg, E_INVALID_HANDLE);
2183 if (!p_FmPcd->p_FmPcdKg->schemesMng[i].allocated)
2185 p_FmPcd->p_FmPcdKg->schemesMng[i].allocated = TRUE;
2186 p_FmPcd->p_FmPcdKg->schemesMng[i].ownerId = guestId;
2197 p_FmPcd->p_FmPcdKg->schemesMng[p_SchemesIds[j]].allocated = FALSE;
2198 p_FmPcd->p_FmPcdKg->schemesMng[p_SchemesIds[j]].ownerId = 0;
2210 t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd;
2213 SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE);
2214 SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdKg, E_INVALID_HANDLE);
2221 if (!p_FmPcd->p_FmPcdKg->schemesMng[p_SchemesIds[i]].allocated)
2225 if (p_FmPcd->p_FmPcdKg->schemesMng[p_SchemesIds[i]].ownerId != guestId)
2229 p_FmPcd->p_FmPcdKg->schemesMng[p_SchemesIds[i]].allocated = FALSE;
2230 p_FmPcd->p_FmPcdKg->schemesMng[p_SchemesIds[i]].ownerId = 0;
2238 t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd;
2257 if (!p_FmPcd->p_FmPcdKg->clsPlanBlocksMng[i].allocated)
2277 p_FmPcd->p_FmPcdKg->clsPlanBlocksMng[j].allocated = TRUE;
2278 p_FmPcd->p_FmPcdKg->clsPlanBlocksMng[j].ownerId = guestId;
2288 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
2305 ASSERT_COND(p_FmPcd->p_FmPcdKg->clsPlanBlocksMng[i].allocated);
2306 ASSERT_COND(guestId == p_FmPcd->p_FmPcdKg->clsPlanBlocksMng[i].ownerId);
2307 p_FmPcd->p_FmPcdKg->clsPlanBlocksMng[i].allocated = FALSE;
2308 p_FmPcd->p_FmPcdKg->clsPlanBlocksMng[i].ownerId = 0;
2312 void KgEnable(t_FmPcd *p_FmPcd)
2314 struct fman_kg_regs *p_Regs = p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs;
2316 ASSERT_COND(FmIsMaster(p_FmPcd->h_Fm));
2320 void KgDisable(t_FmPcd *p_FmPcd)
2322 struct fman_kg_regs *p_Regs = p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs;
2324 ASSERT_COND(FmIsMaster(p_FmPcd->h_Fm));
2330 t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd;
2336 ASSERT_COND(FmIsMaster(p_FmPcd->h_Fm));
2337 p_FmPcdKgPortRegs = &p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->clsPlanRegs;
2339 intFlags = KgHwLock(p_FmPcd->p_FmPcdKg);
2350 if (WriteKgarWait(p_FmPcd, tmpKgarReg) != E_OK)
2353 KgHwUnlock(p_FmPcd->p_FmPcdKg, intFlags);
2357 KgHwUnlock(p_FmPcd->p_FmPcdKg, intFlags);
2360 t_Handle KgConfig( t_FmPcd *p_FmPcd, t_FmPcdParams *p_FmPcdParams)
2364 UNUSED(p_FmPcd);
2382 if (FmIsMaster(p_FmPcd->h_Fm))
2385 p_FmPcd->exceptions |= DEFAULT_fmPcdKgErrorExceptions;
2390 if ((p_FmPcd->guestId == NCSW_MASTER_ID) && !p_FmPcdKg->numOfSchemes)
2401 t_Error KgInit(t_FmPcd *p_FmPcd)
2405 p_FmPcd->p_FmPcdKg->h_HwSpinlock = XX_InitSpinlock();
2406 if (!p_FmPcd->p_FmPcdKg->h_HwSpinlock)
2409 if (p_FmPcd->guestId == NCSW_MASTER_ID)
2410 err = KgInitMaster(p_FmPcd);
2412 err = KgInitGuest(p_FmPcd);
2416 if (p_FmPcd->p_FmPcdKg->h_HwSpinlock)
2417 XX_FreeSpinlock(p_FmPcd->p_FmPcdKg->h_HwSpinlock);
2423 t_Error KgFree(t_FmPcd *p_FmPcd)
2431 FmUnregisterIntr(p_FmPcd->h_Fm, e_FM_MOD_KG, 0, e_FM_INTR_TYPE_ERR);
2433 if (p_FmPcd->guestId == NCSW_MASTER_ID)
2435 err = FmPcdKgFreeSchemes(p_FmPcd,
2436 p_FmPcd->p_FmPcdKg->numOfSchemes,
2437 p_FmPcd->guestId,
2438 p_FmPcd->p_FmPcdKg->schemesIds);
2442 if (p_FmPcd->p_FmPcdKg->h_HwSpinlock)
2443 XX_FreeSpinlock(p_FmPcd->p_FmPcdKg->h_HwSpinlock);
2451 kgAlloc.numOfSchemes = p_FmPcd->p_FmPcdKg->numOfSchemes;
2452 kgAlloc.guestId = p_FmPcd->guestId;
2454 memcpy(kgAlloc.schemesIds, p_FmPcd->p_FmPcdKg->schemesIds, (sizeof(uint8_t))*kgAlloc.numOfSchemes);
2458 if ((err = XX_IpcSendMessage(p_FmPcd->h_IpcSession,
2469 if (p_FmPcd->p_FmPcdKg->h_HwSpinlock)
2470 XX_FreeSpinlock(p_FmPcd->p_FmPcdKg->h_HwSpinlock);
2477 t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd;
2518 if (p_FmPcd->h_Hc)
2521 err = FmHcPcdKgSetClsPlan(p_FmPcd->h_Hc, p_ClsPlanSet);
2530 KgSetClsPlan(p_FmPcd, p_ClsPlanSet);
2538 if (*p_ClsPlanGrpId == p_FmPcd->p_FmPcdKg->emptyClsPlanGrpId)
2543 p_ClsPlanGrp = &p_FmPcd->p_FmPcdKg->clsPlanGrps[*p_ClsPlanGrpId];
2549 memcpy(p_OptArray, &p_FmPcd->p_FmPcdKg->clsPlanGrps[*p_ClsPlanGrpId].optArray, FM_PCD_MAX_NUM_OF_OPTIONS(FM_PCD_MAX_NUM_OF_CLS_PLANS)*sizeof(protocolOpt_t));
2552 err = BindPortToClsPlanGrp(p_FmPcd, hardwarePortId, p_GrpParams->clsPlanGrpId);
2561 t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd;
2562 t_FmPcdKgClsPlanGrp *p_ClsPlanGrp = &p_FmPcd->p_FmPcdKg->clsPlanGrps[clsPlanGrpId];
2569 UnbindPortToClsPlanGrp(p_FmPcd, hardwarePortId);
2577 if (p_FmPcd->h_Hc)
2579 err = FmHcPcdKgDeleteClsPlan(p_FmPcd->h_Hc, clsPlanGrpId);
2592 p_ClsPlanSet->baseEntry = p_FmPcd->p_FmPcdKg->clsPlanGrps[clsPlanGrpId].baseEntry;
2593 p_ClsPlanSet->numOfClsPlanEntries = p_FmPcd->p_FmPcdKg->clsPlanGrps[clsPlanGrpId].sizeOfGrp;
2594 KgSetClsPlan(p_FmPcd, p_ClsPlanSet);
2605 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
2606 ASSERT_COND(p_FmPcd->p_FmPcdKg->schemes[schemeId].valid);
2608 return p_FmPcd->p_FmPcdKg->schemes[schemeId].requiredAction;
2613 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
2615 ASSERT_COND(p_FmPcd->p_FmPcdKg->schemes[schemeId].valid);
2617 return p_FmPcd->p_FmPcdKg->schemes[schemeId].requiredActionFlag;
2622 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
2624 ASSERT_COND(p_FmPcd->p_FmPcdKg->schemes[schemeId].valid);
2626 return p_FmPcd->p_FmPcdKg->schemes[schemeId].directPlcr;
2632 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
2634 ASSERT_COND(p_FmPcd->p_FmPcdKg->schemes[schemeId].valid);
2636 return p_FmPcd->p_FmPcdKg->schemes[schemeId].relativeProfileId;
2641 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
2643 ASSERT_COND(p_FmPcd->p_FmPcdKg->schemes[schemeId].valid);
2645 if ((p_FmPcd->p_FmPcdKg->schemes[schemeId].extractedOrs &&
2646 p_FmPcd->p_FmPcdKg->schemes[schemeId].bitOffsetInPlcrProfile) ||
2647 p_FmPcd->p_FmPcdKg->schemes[schemeId].nextRelativePlcrProfile)
2656 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
2658 ASSERT_COND(p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].valid);
2660 return p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].nextEngine;
2665 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
2667 ASSERT_COND(p_FmPcd->p_FmPcdKg->schemes[schemeId].valid);
2669 return p_FmPcd->p_FmPcdKg->schemes[schemeId].doneAction;
2755 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
2757 return p_FmPcd->p_FmPcdKg->clsPlanGrps[clsPlanGrp].baseEntry;
2762 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
2764 return p_FmPcd->p_FmPcdKg->clsPlanGrps[clsPlanGrp].sizeOfGrp;
2784 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
2787 for (i = 0;i<p_FmPcd->p_FmPcdKg->numOfSchemes;i++)
2788 if (p_FmPcd->p_FmPcdKg->schemesIds[i] == schemeId)
2791 if (i == p_FmPcd->p_FmPcdKg->numOfSchemes)
2799 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
2801 ASSERT_COND(p_FmPcd);
2804 if (relativeSchemeId >= p_FmPcd->p_FmPcdKg->numOfSchemes)
2810 if (!FmPcdKgIsSchemeValidSw(&p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId]))
2813 return &p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId];
2823 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
2830 SANITY_CHECK_RETURN_VALUE(p_FmPcd->p_FmPcdKg, E_INVALID_HANDLE, 0);
2831 SANITY_CHECK_RETURN_VALUE(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE, 0);
2838 if (p_FmPcd->h_Hc)
2840 err = FmHcPcdKgCcGetSetParams(p_FmPcd->h_Hc, h_Scheme, requiredAction, value);
2849 relativeSchemeId = FmPcdKgGetRelativeSchemeId(p_FmPcd, physicalSchemeId);
2853 if (!p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].requiredActionFlag ||
2854 !(p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].requiredAction & requiredAction))
2858 switch (p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].nextEngine)
2861 if (p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].doneAction == e_FM_PCD_ENQ_FRAME)
2864 intFlags = KgHwLock(p_FmPcd->p_FmPcdKg);
2865 WriteKgarWait(p_FmPcd, tmpKgarReg);
2866 tmpReg32 = GET_UINT32(p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs.kgse_mode);
2868 WRITE_UINT32(p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs.kgse_mode, tmpReg32 | NIA_BMI_AC_ENQ_FRAME_WITHOUT_DMA);
2871 WriteKgarWait(p_FmPcd, tmpKgarReg);
2872 KgHwUnlock(p_FmPcd->p_FmPcdKg, intFlags);
2876 if (!p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].directPlcr ||
2877 (p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].extractedOrs &&
2878 p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].bitOffsetInPlcrProfile) ||
2879 p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].nextRelativePlcrProfile)
2883 err = FmPcdPlcrCcGetSetParams(h_FmPcd, p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].relativeProfileId, requiredAction);
2895 if (p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].nextEngine == e_FM_PCD_CC)
2898 intFlags = KgHwLock(p_FmPcd->p_FmPcdKg);
2899 WriteKgarWait(p_FmPcd, tmpKgarReg);
2900 tmpReg32 = GET_UINT32(p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs.kgse_mode);
2903 WRITE_UINT32(p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs.kgse_mode, tmpReg32 | NIA_FM_CTL_AC_PRE_CC);
2906 WriteKgarWait(p_FmPcd, tmpKgarReg);
2907 KgHwUnlock(p_FmPcd->p_FmPcdKg, intFlags);
2913 intFlags = KgHwLock(p_FmPcd->p_FmPcdKg);
2914 WriteKgarWait(p_FmPcd, tmpKgarReg);
2915 WRITE_UINT32(p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs.kgse_om, value);
2918 WriteKgarWait(p_FmPcd, tmpKgarReg);
2919 KgHwUnlock(p_FmPcd->p_FmPcdKg, intFlags);
2924 intFlags = KgHwLock(p_FmPcd->p_FmPcdKg);
2925 WriteKgarWait(p_FmPcd, tmpKgarReg);
2926 tmpReg32 = GET_UINT32(p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs.kgse_mode);
2929 WRITE_UINT32(p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs.kgse_mode, tmpReg32);
2932 WriteKgarWait(p_FmPcd, tmpKgarReg);
2933 KgHwUnlock(p_FmPcd->p_FmPcdKg, intFlags);
2951 t_FmPcd *p_FmPcd;
2964 p_FmPcd = p_Scheme->h_FmPcd;
2966 SANITY_CHECK_RETURN_VALUE(p_FmPcd, E_INVALID_HANDLE, NULL);
2967 SANITY_CHECK_RETURN_VALUE(p_FmPcd->p_FmPcdKg, E_INVALID_HANDLE, NULL);
2986 p_FmPcd = (t_FmPcd*)h_FmPcd;
2988 SANITY_CHECK_RETURN_VALUE(p_FmPcd, E_INVALID_HANDLE, NULL);
2989 SANITY_CHECK_RETURN_VALUE(p_FmPcd->p_FmPcdKg, E_INVALID_HANDLE, NULL);
2993 if (relativeSchemeId >= p_FmPcd->p_FmPcdKg->numOfSchemes)
2999 p_Scheme = &p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId];
3009 p_Scheme->schemeId = p_FmPcd->p_FmPcdKg->schemesIds[relativeSchemeId];
3010 p_Scheme->h_FmPcd = p_FmPcd;
3012 p_Scheme->p_Lock = FmPcdAcquireLock(p_FmPcd);
3025 FmPcdReleaseLock(p_FmPcd, p_Scheme->p_Lock);
3029 if (p_FmPcd->h_Hc)
3031 err = FmHcPcdKgSetScheme(p_FmPcd->h_Hc,
3041 FmPcdReleaseLock(p_FmPcd, p_Scheme->p_Lock);
3052 p_MemRegs = &p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs;
3053 intFlags = KgHwLock(p_FmPcd->p_FmPcdKg);
3075 WriteKgarWait(p_FmPcd, tmpKgarReg);
3076 KgHwUnlock(p_FmPcd->p_FmPcdKg, intFlags);
3088 t_FmPcd *p_FmPcd;
3096 p_FmPcd = (t_FmPcd*)(p_Scheme->h_FmPcd);
3105 if (p_FmPcd->h_Hc)
3107 err = FmHcPcdKgDeleteScheme(p_FmPcd->h_Hc, h_Scheme);
3109 FmPcdReleaseLock(p_FmPcd, p_Scheme->p_Lock);
3115 intFlags = KgHwLock(p_FmPcd->p_FmPcdKg);
3117 WRITE_UINT32(p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs.kgse_mode, 0);
3122 WriteKgarWait(p_FmPcd, tmpKgarReg);
3123 KgHwUnlock(p_FmPcd->p_FmPcdKg, intFlags);
3126 FmPcdReleaseLock(p_FmPcd, p_Scheme->p_Lock);
3133 t_FmPcd *p_FmPcd;
3139 p_FmPcd = (t_FmPcd*)(((t_FmPcdKgScheme *)h_Scheme)->h_FmPcd);
3140 if (p_FmPcd->h_Hc)
3141 return FmHcPcdKgGetSchemeCounter(p_FmPcd->h_Hc, h_Scheme);
3145 if (FmPcdKgGetRelativeSchemeId(p_FmPcd, physicalSchemeId) == FM_PCD_KG_NUM_OF_SCHEMES)
3149 intFlags = KgHwLock(p_FmPcd->p_FmPcdKg);
3150 WriteKgarWait(p_FmPcd, tmpKgarReg);
3151 if (!(GET_UINT32(p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs.kgse_mode) & KG_SCH_MODE_EN))
3153 spc = GET_UINT32(p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs.kgse_spc);
3154 KgHwUnlock(p_FmPcd->p_FmPcdKg, intFlags);
3161 t_FmPcd *p_FmPcd;
3167 p_FmPcd = (t_FmPcd*)(((t_FmPcdKgScheme *)h_Scheme)->h_FmPcd);
3172 if (p_FmPcd->h_Hc)
3173 return FmHcPcdKgSetSchemeCounter(p_FmPcd->h_Hc, h_Scheme, value);
3177 if (FmPcdKgGetRelativeSchemeId(p_FmPcd, physicalSchemeId) == FM_PCD_KG_NUM_OF_SCHEMES)
3182 intFlags = KgHwLock(p_FmPcd->p_FmPcdKg);
3183 WriteKgarWait(p_FmPcd, tmpKgarReg);
3184 if (!(GET_UINT32(p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs.kgse_mode) & KG_SCH_MODE_EN))
3186 KgHwUnlock(p_FmPcd->p_FmPcdKg, intFlags);
3191 WRITE_UINT32(p_FmPcd->p_FmPcdKg->p_IndirectAccessRegs->schemeRegs.kgse_spc, value);
3196 WriteKgarWait(p_FmPcd, tmpKgarReg);
3197 KgHwUnlock(p_FmPcd->p_FmPcdKg, intFlags);
3204 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
3207 SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE);
3208 SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_NULL_POINTER);
3209 SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdKg, E_NULL_POINTER);
3210 SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs, E_NULL_POINTER);
3212 p_Regs = p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs;
3213 if (!FmIsMaster(p_FmPcd->h_Fm))
3223 t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd;
3226 SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE);
3228 SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_NULL_POINTER);
3229 SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdKg, E_NULL_POINTER);
3230 SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs, E_NULL_POINTER);
3232 p_Regs = p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs;
3234 if (!FmIsMaster(p_FmPcd->h_Fm))