Lines Matching +full:lo +full:- +full:en

3  � 1995-2003, 2004, 2005-2011 Freescale Semiconductor, Inc.
60 t_BmPortal *p_Portal = (t_BmPortal *)p_BmPool->h_BmPortal; in depletion_link()
63 p_Portal->depletionPoolsTable[p_BmPool->bpid] = p_BmPool; in depletion_link()
64 bm_isr_bscn_mask(p_Portal->p_BmPortalLow, (uint8_t)p_BmPool->bpid, 1); in depletion_link()
70 t_BmPortal *p_Portal = (t_BmPortal *)p_BmPool->h_BmPortal; in depletion_unlink()
73 p_Portal->depletionPoolsTable[p_BmPool->bpid] = NULL; in depletion_unlink()
74 bm_isr_bscn_mask(p_Portal->p_BmPortalLow, (uint8_t)p_BmPool->bpid, 0); in depletion_unlink()
85 if (p_BmPool->flags & BMAN_POOL_FLAG_NO_RELEASE) in BmPoolRelease()
88 /* Without stockpile, this API is a pass-through to the h/w operation */ in BmPoolRelease()
89 if (!(p_BmPool->flags & BMAN_POOL_FLAG_STOCKPILE)) in BmPoolRelease()
90 return BmPortalRelease(h_BmPortal, p_BmPool->bpid, bufs, num, flags); in BmPoolRelease()
94 * *be* over the threshold if a previous release-to-hw attempt had in BmPoolRelease()
97 * 2. we add to the stockpile, hit the threshold and release-to-hw, in BmPoolRelease()
98 * 3. we have to release-to-hw before adding to the stockpile in BmPoolRelease()
101 * at least 8 bufs already in the stockpile, so all release-to-hw ops in BmPoolRelease()
104 * whether a release-to-hw was attempted. */ in BmPoolRelease()
108 if ((p_BmPool->spFill + num) <= p_BmPool->spMaxBufs) in BmPoolRelease()
110 memcpy(PTR_MOVE(p_BmPool->sp, sizeof(struct bm_buffer) * (p_BmPool->spFill)), in BmPoolRelease()
113 p_BmPool->spFill += num; in BmPoolRelease()
114 num = 0; /* --> will return success no matter what */ in BmPoolRelease()
117 /* Do hw op if hitting the high-water threshold */ in BmPoolRelease()
120 p_BmPool->bpid, in BmPoolRelease()
121 …(struct bm_buffer *)PTR_MOVE(p_BmPool->sp, sizeof(struct bm_buffer) * (p_BmPool->spFill - p_BmPool in BmPoolRelease()
122 p_BmPool->spBufsCmd, in BmPoolRelease()
126 p_BmPool->spFill -= p_BmPool->spBufsCmd; in BmPoolRelease()
137 if (p_BmPool->flags & BMAN_POOL_FLAG_ONLY_RELEASE) in BmPoolAcquire()
140 /* Without stockpile, this API is a pass-through to the h/w operation */ in BmPoolAcquire()
141 if (!(p_BmPool->flags & BMAN_POOL_FLAG_STOCKPILE)) in BmPoolAcquire()
142 return BmPortalAcquire(h_BmPortal, p_BmPool->bpid, bufs, num); in BmPoolAcquire()
143 /* Only need a h/w op if we'll hit the low-water thresh */ in BmPoolAcquire()
145 ((p_BmPool->spFill - num) < p_BmPool->spMinBufs)) in BmPoolAcquire()
147 p_BmPool->spFill += BmPortalAcquire(h_BmPortal, in BmPoolAcquire()
148 p_BmPool->bpid, in BmPoolAcquire()
149 … (struct bm_buffer *)PTR_MOVE(p_BmPool->sp, sizeof(struct bm_buffer) * (p_BmPool->spFill)), in BmPoolAcquire()
150 p_BmPool->spBufsCmd); in BmPoolAcquire()
152 else if (p_BmPool->spFill < num) in BmPoolAcquire()
154 if (!p_BmPool->spFill) in BmPoolAcquire()
157 PTR_MOVE(p_BmPool->sp, sizeof(struct bm_buffer) * (p_BmPool->spFill - num)), in BmPoolAcquire()
159 p_BmPool->spFill -= num; in BmPoolAcquire()
170 if (!p_BmPool->shadowMode) in BmPoolFree()
172 if (p_BmPool->flags & BMAN_POOL_FLAG_DEPLETION) in BmPoolFree()
175 BmUnSetPoolThresholds(p_BmPool->h_Bm, p_BmPool->bpid); in BmPoolFree()
179 p_Data = BM_POOL_GetBuf(p_BmPool, p_BmPool->h_BmPortal); in BmPoolFree()
184 … p_BmPool->bufferPoolInfo.f_PutBuf(p_BmPool->bufferPoolInfo.h_BufferPool, p_Data, h_BufContext); in BmPoolFree()
186 BmBpidPut(p_BmPool->h_Bm, p_BmPool->bpid); in BmPoolFree()
189 if (p_BmPool->sp) in BmPoolFree()
190 XX_Free(p_BmPool->sp); in BmPoolFree()
206 SANITY_CHECK_RETURN_VALUE(p_BmPoolParam->h_Bm, E_INVALID_HANDLE, NULL); in BM_POOL_Config()
207 SANITY_CHECK_RETURN_VALUE((p_BmPoolParam->shadowMode || in BM_POOL_Config()
208 (p_BmPoolParam->bufferPoolInfo.h_BufferPool && in BM_POOL_Config()
209 p_BmPoolParam->bufferPoolInfo.f_GetBuf && in BM_POOL_Config()
210 p_BmPoolParam->bufferPoolInfo.f_PutBuf && in BM_POOL_Config()
211 p_BmPoolParam->bufferPoolInfo.bufferSize)), E_INVALID_STATE, NULL); in BM_POOL_Config()
221 … p_BmPool->p_BmPoolDriverParams = (t_BmPoolDriverParams *)XX_Malloc(sizeof(t_BmPoolDriverParams)); in BM_POOL_Config()
222 if (!p_BmPool->p_BmPoolDriverParams) in BM_POOL_Config()
228 memset(p_BmPool->p_BmPoolDriverParams, 0, sizeof(t_BmPoolDriverParams)); in BM_POOL_Config()
230 p_BmPool->h_Bm = p_BmPoolParam->h_Bm; in BM_POOL_Config()
231 p_BmPool->h_BmPortal = p_BmPoolParam->h_BmPortal; in BM_POOL_Config()
232 p_BmPool->h_App = p_BmPoolParam->h_App; in BM_POOL_Config()
233 p_BmPool->numOfBuffers = p_BmPoolParam->numOfBuffers; in BM_POOL_Config()
234 p_BmPool->shadowMode = p_BmPoolParam->shadowMode; in BM_POOL_Config()
236 if (!p_BmPool->h_BmPortal) in BM_POOL_Config()
238 p_BmPool->h_BmPortal = BmGetPortalHandle(p_BmPool->h_Bm); in BM_POOL_Config()
239 SANITY_CHECK_RETURN_VALUE(p_BmPool->h_BmPortal, E_INVALID_HANDLE, NULL); in BM_POOL_Config()
242 memcpy(&p_BmPool->bufferPoolInfo, &p_BmPoolParam->bufferPoolInfo, sizeof(t_BufferPoolInfo)); in BM_POOL_Config()
243 if (!p_BmPool->bufferPoolInfo.f_PhysToVirt) in BM_POOL_Config()
244 p_BmPool->bufferPoolInfo.f_PhysToVirt = XX_PhysToVirt; in BM_POOL_Config()
245 if (!p_BmPool->bufferPoolInfo.f_VirtToPhys) in BM_POOL_Config()
246 p_BmPool->bufferPoolInfo.f_VirtToPhys = XX_VirtToPhys; in BM_POOL_Config()
248 p_BmPool->p_BmPoolDriverParams->dynamicBpid = DEFAULT_dynamicBpid; in BM_POOL_Config()
249 p_BmPool->p_BmPoolDriverParams->useDepletion = DEFAULT_useDepletion; in BM_POOL_Config()
250 p_BmPool->p_BmPoolDriverParams->useStockpile = DEFAULT_useStockpile; in BM_POOL_Config()
252 if (p_BmPool->shadowMode) in BM_POOL_Config()
254 p_BmPool->numOfBuffers = 0; in BM_POOL_Config()
255 BM_POOL_ConfigBpid(p_BmPool, p_BmPoolParam->bpid); in BM_POOL_Config()
267 SANITY_CHECK_RETURN_ERROR(p_BmPool->p_BmPoolDriverParams, E_INVALID_HANDLE); in BM_POOL_Init()
269 p_BmPool->flags |= (p_BmPool->p_BmPoolDriverParams->dynamicBpid)?BMAN_POOL_FLAG_DYNAMIC_BPID:0; in BM_POOL_Init()
270 p_BmPool->flags |= (p_BmPool->p_BmPoolDriverParams->useStockpile)?BMAN_POOL_FLAG_STOCKPILE:0; in BM_POOL_Init()
271 p_BmPool->flags |= ((!p_BmPool->shadowMode) && in BM_POOL_Init()
272 (p_BmPool->p_BmPoolDriverParams->useDepletion))?BMAN_POOL_FLAG_DEPLETION:0; in BM_POOL_Init()
274 if (p_BmPool->flags & BMAN_POOL_FLAG_DYNAMIC_BPID) in BM_POOL_Init()
276 …if((p_BmPool->bpid = (uint8_t)BmBpidGet(p_BmPool->h_Bm, FALSE, (uint32_t)0)) == (uint8_t)ILLEGAL_B… in BM_POOL_Init()
284 if (BmBpidGet(p_BmPool->h_Bm, TRUE, (uint32_t)p_BmPool->bpid) == (uint32_t)ILLEGAL_BASE) in BM_POOL_Init()
287 RETURN_ERROR(CRITICAL, E_INVALID_STATE, ("can't force pool id %d", p_BmPool->bpid)); in BM_POOL_Init()
290 if (p_BmPool->flags & BMAN_POOL_FLAG_DEPLETION) in BM_POOL_Init()
292 …if(BmSetPoolThresholds(p_BmPool->h_Bm, p_BmPool->bpid, p_BmPool->p_BmPoolDriverParams->depletionTh… in BM_POOL_Init()
295 … RETURN_ERROR(MAJOR, E_INVALID_STATE, ("can't set thresh for pool bpid %d",p_BmPool->bpid)); in BM_POOL_Init()
301 if (p_BmPool->flags & BMAN_POOL_FLAG_STOCKPILE) in BM_POOL_Init()
303 … p_BmPool->sp = (struct bm_buffer *)XX_Malloc(sizeof(struct bm_buffer) * p_BmPool->spMaxBufs); in BM_POOL_Init()
304 if (!p_BmPool->sp) in BM_POOL_Init()
309 memset(p_BmPool->sp, 0, sizeof(struct bm_buffer) * p_BmPool->spMaxBufs); in BM_POOL_Init()
312 XX_Free(p_BmPool->p_BmPoolDriverParams); in BM_POOL_Init()
313 p_BmPool->p_BmPoolDriverParams = NULL; in BM_POOL_Init()
318 if ((err = BM_POOL_FillBufs (p_BmPool, p_BmPool->h_BmPortal, p_BmPool->numOfBuffers)) != E_OK) in BM_POOL_Init()
339 SANITY_CHECK_RETURN_ERROR(p_BmPool->p_BmPoolDriverParams, E_INVALID_HANDLE); in BM_POOL_ConfigBpid()
342 p_BmPool->p_BmPoolDriverParams->dynamicBpid = FALSE; in BM_POOL_ConfigBpid()
343 p_BmPool->bpid = bpid; in BM_POOL_ConfigBpid()
354 SANITY_CHECK_RETURN_ERROR(p_BmPool->p_BmPoolDriverParams, E_INVALID_HANDLE); in BM_POOL_ConfigDepletion()
357 p_BmPool->p_BmPoolDriverParams->useDepletion = TRUE; in BM_POOL_ConfigDepletion()
358 p_BmPool->f_Depletion = f_Depletion; in BM_POOL_ConfigDepletion()
359 memcpy(&p_BmPool->p_BmPoolDriverParams->depletionThresholds, in BM_POOL_ConfigDepletion()
361 sizeof(p_BmPool->p_BmPoolDriverParams->depletionThresholds)); in BM_POOL_ConfigDepletion()
371 SANITY_CHECK_RETURN_ERROR(p_BmPool->p_BmPoolDriverParams, E_INVALID_HANDLE); in BM_POOL_ConfigStockpile()
374 SANITY_CHECK_RETURN_ERROR((p_BmPool->shadowMode || in BM_POOL_ConfigStockpile()
375 ((maxBuffers * 2) <= p_BmPool->numOfBuffers)), in BM_POOL_ConfigStockpile()
378 p_BmPool->p_BmPoolDriverParams->useStockpile = TRUE; in BM_POOL_ConfigStockpile()
379 p_BmPool->spMaxBufs = maxBuffers; in BM_POOL_ConfigStockpile()
380 p_BmPool->spMinBufs = minBuffers; in BM_POOL_ConfigStockpile()
381 p_BmPool->spBufsCmd = DEFAULT_numOfBufsPerCmd; in BM_POOL_ConfigStockpile()
383 SANITY_CHECK_RETURN_ERROR((p_BmPool->spMaxBufs >= in BM_POOL_ConfigStockpile()
384 (p_BmPool->spMinBufs + p_BmPool->spBufsCmd)), in BM_POOL_ConfigStockpile()
390 t_Error BM_POOL_ConfigBuffContextMode(t_Handle h_BmPool, bool en) in BM_POOL_ConfigBuffContextMode() argument
395 SANITY_CHECK_RETURN_ERROR(p_BmPool->p_BmPoolDriverParams, E_INVALID_HANDLE); in BM_POOL_ConfigBuffContextMode()
397 p_BmPool->noBuffCtxt = !en; in BM_POOL_ConfigBuffContextMode()
411 SANITY_CHECK_RETURN_VALUE(!p_BmPool->p_BmPoolDriverParams, E_INVALID_HANDLE, NULL); in BM_POOL_GetBuf()
412 SANITY_CHECK_RETURN_VALUE(p_BmPool->bufferPoolInfo.f_PhysToVirt, E_INVALID_STATE, NULL); in BM_POOL_GetBuf()
416 if (p_BmPool->h_BmPortal) in BM_POOL_GetBuf()
417 h_BmPortal = p_BmPool->h_BmPortal; in BM_POOL_GetBuf()
420 SANITY_CHECK_RETURN_VALUE(p_BmPool->h_Bm, E_INVALID_HANDLE, NULL); in BM_POOL_GetBuf()
421 h_BmPortal = BmGetPortalHandle(p_BmPool->h_Bm); in BM_POOL_GetBuf()
432 physAddr = (uint64_t)bufs[0].lo; in BM_POOL_GetBuf()
435 p_BmPool->bpid, in BM_POOL_GetBuf()
436 p_BmPool->bufferPoolInfo.f_PhysToVirt((physAddress_t)physAddr))); in BM_POOL_GetBuf()
438 return p_BmPool->bufferPoolInfo.f_PhysToVirt((physAddress_t)physAddr); in BM_POOL_GetBuf()
448 SANITY_CHECK_RETURN_ERROR(!p_BmPool->p_BmPoolDriverParams, E_INVALID_STATE); in BM_POOL_PutBuf()
453 bufs[0].bpid = p_BmPool->bpid; in BM_POOL_PutBuf()
455 bufs[0].lo = (uint32_t)(physAddress & 0xffffffff); in BM_POOL_PutBuf()
458 p_BmPool->bpid, (uint64_t)PTR_TO_UINT(p_Buff), physAddress)); in BM_POOL_PutBuf()
462 if (p_BmPool->h_BmPortal) in BM_POOL_PutBuf()
463 h_BmPortal = p_BmPool->h_BmPortal; in BM_POOL_PutBuf()
466 SANITY_CHECK_RETURN_ERROR(p_BmPool->h_Bm, E_INVALID_HANDLE); in BM_POOL_PutBuf()
467 h_BmPortal = BmGetPortalHandle(p_BmPool->h_Bm); in BM_POOL_PutBuf()
480 SANITY_CHECK_RETURN_ERROR(!p_BmPool->p_BmPoolDriverParams, E_INVALID_STATE); in BM_POOL_FillBufs()
484 if (p_BmPool->h_BmPortal) in BM_POOL_FillBufs()
485 h_BmPortal = p_BmPool->h_BmPortal; in BM_POOL_FillBufs()
488 SANITY_CHECK_RETURN_ERROR(p_BmPool->h_Bm, E_INVALID_HANDLE); in BM_POOL_FillBufs()
489 h_BmPortal = BmGetPortalHandle(p_BmPool->h_Bm); in BM_POOL_FillBufs()
494 while (numBufs--) in BM_POOL_FillBufs()
500 … p_Data = p_BmPool->bufferPoolInfo.f_GetBuf(p_BmPool->bufferPoolInfo.h_BufferPool, &h_BufContext); in BM_POOL_FillBufs()
502 RETURN_ERROR(MAJOR, E_INVALID_STATE, ("run-out of buffers for bpid %d",p_BmPool->bpid)); in BM_POOL_FillBufs()
504 if (!p_BmPool->noBuffCtxt) in BM_POOL_FillBufs()
505 *(t_Handle *)(p_Data - sizeof(t_Handle)) = h_BufContext; in BM_POOL_FillBufs()
519 SANITY_CHECK_RETURN_VALUE(!p_BmPool->p_BmPoolDriverParams, E_INVALID_HANDLE, 0); in BM_POOL_GetId()
521 return p_BmPool->bpid; in BM_POOL_GetId()
529 SANITY_CHECK_RETURN_VALUE(!p_BmPool->p_BmPoolDriverParams, E_INVALID_HANDLE, 0); in BM_POOL_GetBufferSize()
531 return p_BmPool->bufferPoolInfo.bufferSize; in BM_POOL_GetBufferSize()
539 SANITY_CHECK_RETURN_VALUE(!p_BmPool->p_BmPoolDriverParams, E_INVALID_HANDLE, NULL); in BM_POOL_GetBufferContext()
542 if (p_BmPool->noBuffCtxt) in BM_POOL_GetBufferContext()
545 return *(t_Handle *)PTR_MOVE(p_Buff, -(sizeof(t_Handle))); in BM_POOL_GetBufferContext()
553 SANITY_CHECK_RETURN_VALUE(!p_BmPool->p_BmPoolDriverParams, E_INVALID_HANDLE, 0); in BM_POOL_GetCounter()
558 return BmGetCounter(p_BmPool->h_Bm, e_BM_IM_COUNTERS_POOL_CONTENT, p_BmPool->bpid); in BM_POOL_GetCounter()
560 return (p_BmPool->swDepletionCount += in BM_POOL_GetCounter()
561 BmGetCounter(p_BmPool->h_Bm, e_BM_IM_COUNTERS_POOL_SW_DEPLETION, p_BmPool->bpid)); in BM_POOL_GetCounter()
563 return (p_BmPool->hwDepletionCount += in BM_POOL_GetCounter()
564 BmGetCounter(p_BmPool->h_Bm, e_BM_IM_COUNTERS_POOL_HW_DEPLETION, p_BmPool->bpid)); in BM_POOL_GetCounter()