Lines Matching refs:im

100         return (WfqEntryIsQueueEmpty(p_FmPort->im.h_WfqEntry) ? E_OK : E_BUSY);
103 confBdId = savedStartBdId = p_FmPort->im.currBdId;
116 if (p_FmPort->im.f_TxConf)
119 p_FmPort->im.f_TxConf(p_FmPort->h_App,
122 p_FmPort->im.p_BdShadow[confBdId]);
124 p_FmPort->im.f_TxConf(p_FmPort->h_App,
127 p_FmPort->im.p_BdShadow[confBdId]);
143 uint32_t tmpReg = GET_UINT32(p_FmPort->im.p_FmPortImPram->mode);
144 WRITE_UINT32(p_FmPort->im.p_FmPortImPram->mode, (uint32_t)(tmpReg & ~IM_MODE_GRC_STP));
150 uint32_t tmpReg = GET_UINT32(p_FmPort->im.p_FmPortImPram->mode);
151 WRITE_UINT32(p_FmPort->im.p_FmPortImPram->mode, (uint32_t)(tmpReg | IM_MODE_GRC_STP));
176 bdStatus = BD_STATUS_AND_LENGTH(BD_GET(p_FmPort->im.currBdId));
180 if ((p_Data = p_FmPort->im.rxPool.f_GetBuf(p_FmPort->im.rxPool.h_BufferPool, &h_NewUserPriv)) == NULL)
186 if (p_FmPort->im.firstBdOfFrameId == IM_ILEGAL_BD_ID)
187 p_FmPort->im.firstBdOfFrameId = p_FmPort->im.currBdId;
190 p_CurData = BdBufferGet(p_FmPort->im.rxPool.f_PhysToVirt, BD_GET(p_FmPort->im.currBdId));
191 h_CurrUserPriv = p_FmPort->im.p_BdShadow[p_FmPort->im.currBdId];
193 ((bdStatus & BD_LENGTH_MASK) - p_FmPort->im.rxFrameAccumLength):
195 p_FmPort->im.rxFrameAccumLength += length;
199 buffPos = (uint8_t)((p_FmPort->im.currBdId == p_FmPort->im.firstBdOfFrameId) ?
205 p_FmPort->im.rxFrameAccumLength = 0;
206 p_FmPort->im.firstBdOfFrameId = IM_ILEGAL_BD_ID;
209 BdBufferSet(p_FmPort->im.rxPool.f_VirtToPhys, BD_GET(p_FmPort->im.currBdId), p_Data);
211 BD_STATUS_AND_LENGTH_SET(BD_GET(p_FmPort->im.currBdId), BD_R_E);
214 p_FmPort->im.p_BdShadow[p_FmPort->im.currBdId] = h_NewUserPriv;
216 p_FmPort->im.currBdId = GetNextBdId(p_FmPort, p_FmPort->im.currBdId);
217 WRITE_UINT16(p_FmPort->im.p_FmPortImPram->rxQd.offsetOut, (uint16_t)(p_FmPort->im.currBdId<<4));
224 if (p_FmPort->im.f_RxStore(p_FmPort->h_App,
232 else if (p_FmPort->im.rxPool.f_PutBuf(p_FmPort->im.rxPool.h_BufferPool,
240 bdStatus = BD_STATUS_AND_LENGTH(BD_GET(p_FmPort->im.currBdId));
252 p_FmPort->im.h_FmMuram = p_FmPortParams->specificParams.imRxTxParams.h_FmMuram;
254 p_FmPort->im.dataMemId = p_FmPortParams->specificParams.imRxTxParams.dataMemId;
255 p_FmPort->im.dataMemAttributes = p_FmPortParams->specificParams.imRxTxParams.dataMemAttributes;
257 p_FmPort->im.fwExtStructsMemId = DEFAULT_PORT_ImfwExtStructsMemId;
258 p_FmPort->im.fwExtStructsMemAttr = DEFAULT_PORT_ImfwExtStructsMemAttr;
263 p_FmPort->im.rxPool.h_BufferPool = p_FmPortParams->specificParams.imRxTxParams.rxPoolParams.h_BufferPool;
264 p_FmPort->im.rxPool.f_GetBuf = p_FmPortParams->specificParams.imRxTxParams.rxPoolParams.f_GetBuf;
265 p_FmPort->im.rxPool.f_PutBuf = p_FmPortParams->specificParams.imRxTxParams.rxPoolParams.f_PutBuf;
266 p_FmPort->im.rxPool.bufferSize = p_FmPortParams->specificParams.imRxTxParams.rxPoolParams.bufferSize;
267 p_FmPort->im.rxPool.f_PhysToVirt = p_FmPortParams->specificParams.imRxTxParams.rxPoolParams.f_PhysToVirt;
268 if (!p_FmPort->im.rxPool.f_PhysToVirt)
269 p_FmPort->im.rxPool.f_PhysToVirt = XX_PhysToVirt;
270 p_FmPort->im.rxPool.f_VirtToPhys = p_FmPortParams->specificParams.imRxTxParams.rxPoolParams.f_VirtToPhys;
271 if (!p_FmPort->im.rxPool.f_VirtToPhys)
272 p_FmPort->im.rxPool.f_VirtToPhys = XX_VirtToPhys;
273 p_FmPort->im.f_RxStore = p_FmPortParams->specificParams.imRxTxParams.f_RxStore;
275 p_FmPort->im.mrblr = 0x8000;
276 while (p_FmPort->im.mrblr)
278 if (p_FmPort->im.rxPool.bufferSize & p_FmPort->im.mrblr)
280 p_FmPort->im.mrblr >>= 1;
282 if (p_FmPort->im.mrblr != p_FmPort->im.rxPool.bufferSize)
283 DBG(WARNING, ("Max-Rx-Buffer-Length set to %d", p_FmPort->im.mrblr));
284 p_FmPort->im.bdRingSize = DEFAULT_PORT_rxBdRingLength;
294 p_FmPort->im.f_TxConf = p_FmPortParams->specificParams.imRxTxParams.f_TxConf;
296 p_FmPort->im.bdRingSize = DEFAULT_PORT_txBdRingLength;
311 if (!POWER_OF_2(p_FmPort->im.mrblr))
313 if (p_FmPort->im.mrblr < 256)
356 p_FmPort->im.p_FmPortImPram =
357 (t_FmPortImPram *)FM_MURAM_AllocMem(p_FmPort->im.h_FmMuram, sizeof(t_FmPortImPram), IM_PRAM_ALIGN);
358 if (!p_FmPort->im.p_FmPortImPram)
360 WRITE_BLOCK(p_FmPort->im.p_FmPortImPram, 0, sizeof(t_FmPortImPram));
365 p_FmPort->im.p_BdRing = (t_FmImBd *)XX_MallocSmart((uint32_t)(sizeof(t_FmImBd)*p_FmPort->im.bdRingSize), p_FmPort->im.fwExtStructsMemId, 4);
366 if (!p_FmPort->im.p_BdRing)
368 IOMemSet32(p_FmPort->im.p_BdRing, 0, (uint32_t)(sizeof(t_FmImBd)*p_FmPort->im.bdRingSize));
370 p_FmPort->im.p_BdShadow = (t_Handle *)XX_Malloc((uint32_t)(sizeof(t_Handle)*p_FmPort->im.bdRingSize));
371 if (!p_FmPort->im.p_BdShadow)
373 memset(p_FmPort->im.p_BdShadow, 0, (uint32_t)(sizeof(t_Handle)*p_FmPort->im.bdRingSize));
376 for (i=0; i<p_FmPort->im.bdRingSize; i++)
381 if ((p_Data = p_FmPort->im.rxPool.f_GetBuf(p_FmPort->im.rxPool.h_BufferPool, &h_BufContext)) == NULL)
383 BdBufferSet(p_FmPort->im.rxPool.f_VirtToPhys, p_Bd, p_Data);
384 p_FmPort->im.p_BdShadow[i] = h_BufContext;
387 if ((p_FmPort->im.dataMemAttributes & MEMORY_ATTR_CACHEABLE) ||
388 (p_FmPort->im.fwExtStructsMemAttr & MEMORY_ATTR_CACHEABLE))
389 WRITE_UINT32(p_FmPort->im.p_FmPortImPram->mode, IM_MODE_GBL | IM_MODE_SET_BO(2));
391 WRITE_UINT32(p_FmPort->im.p_FmPortImPram->mode, IM_MODE_SET_BO(2));
393 WRITE_UINT32(p_FmPort->im.p_FmPortImPram->rxQdPtr,
394 (uint32_t)((uint64_t)(XX_VirtToPhys(p_FmPort->im.p_FmPortImPram)) -
397 LOG2((uint64_t)p_FmPort->im.mrblr, log2Num);
398 WRITE_UINT16(p_FmPort->im.p_FmPortImPram->mrblr, log2Num);
401 tmpPhysBase = (uint64_t)(XX_VirtToPhys(p_FmPort->im.p_BdRing));
402 SET_ADDR(&p_FmPort->im.p_FmPortImPram->rxQd.bdRingBase, tmpPhysBase);
403 WRITE_UINT16(p_FmPort->im.p_FmPortImPram->rxQd.bdRingSize, (uint16_t)(sizeof(t_FmImBd)*p_FmPort->im.bdRingSize));
407 (uint32_t)((uint64_t)(XX_VirtToPhys(p_FmPort->im.p_FmPortImPram)) -
430 WRITE_UINT16(p_FmPort->im.p_FmPortImPram->rxQd.gen, tmpReg16);
441 p_FmPort->im.p_BdRing = (t_FmImBd *)XX_MallocSmart((uint32_t)(sizeof(t_FmImBd)*p_FmPort->im.bdRingSize), p_FmPort->im.fwExtStructsMemId, 4);
442 if (!p_FmPort->im.p_BdRing)
444 IOMemSet32(p_FmPort->im.p_BdRing, 0, (uint32_t)(sizeof(t_FmImBd)*p_FmPort->im.bdRingSize));
446 p_FmPort->im.p_BdShadow = (t_Handle *)XX_Malloc((uint32_t)(sizeof(t_Handle)*p_FmPort->im.bdRingSize));
447 if (!p_FmPort->im.p_BdShadow)
449 memset(p_FmPort->im.p_BdShadow, 0, (uint32_t)(sizeof(t_Handle)*p_FmPort->im.bdRingSize));
450 p_FmPort->im.firstBdOfFrameId = IM_ILEGAL_BD_ID;
452 if ((p_FmPort->im.dataMemAttributes & MEMORY_ATTR_CACHEABLE) ||
453 (p_FmPort->im.fwExtStructsMemAttr & MEMORY_ATTR_CACHEABLE))
454 WRITE_UINT32(p_FmPort->im.p_FmPortImPram->mode, IM_MODE_GBL | IM_MODE_SET_BO(2));
456 WRITE_UINT32(p_FmPort->im.p_FmPortImPram->mode, IM_MODE_SET_BO(2));
458 WRITE_UINT32(p_FmPort->im.p_FmPortImPram->txQdPtr,
459 (uint32_t)((uint64_t)(XX_VirtToPhys(p_FmPort->im.p_FmPortImPram)) -
463 tmpPhysBase = (uint64_t)(XX_VirtToPhys(p_FmPort->im.p_BdRing));
464 SET_ADDR(&p_FmPort->im.p_FmPortImPram->txQd.bdRingBase, tmpPhysBase);
465 WRITE_UINT16(p_FmPort->im.p_FmPortImPram->txQd.bdRingSize, (uint16_t)(sizeof(t_FmImBd)*p_FmPort->im.bdRingSize));
469 (uint32_t)((uint64_t)(XX_VirtToPhys(p_FmPort->im.p_FmPortImPram)) -
483 ASSERT_COND(p_FmPort->im.p_FmPortImPram);
495 WRITE_UINT16(p_FmPort->im.p_FmPortImPram->rxQd.gen, 0);
503 bdStatus = BD_STATUS_AND_LENGTH(BD_GET(p_FmPort->im.currBdId));
507 p_CurData = BdBufferGet(p_FmPort->im.rxPool.f_PhysToVirt, BD_GET(p_FmPort->im.currBdId));
509 BdBufferSet(p_FmPort->im.rxPool.f_VirtToPhys, BD_GET(p_FmPort->im.currBdId), NULL);
510 BD_STATUS_AND_LENGTH_SET(BD_GET(p_FmPort->im.currBdId), 0);
512 p_FmPort->im.rxPool.f_PutBuf(p_FmPort->im.rxPool.h_BufferPool,
514 p_FmPort->im.p_BdShadow[p_FmPort->im.currBdId]);
516 p_FmPort->im.currBdId = GetNextBdId(p_FmPort, p_FmPort->im.currBdId);
517 bdStatus = BD_STATUS_AND_LENGTH(BD_GET(p_FmPort->im.currBdId));
523 FM_MURAM_FreeMem(p_FmPort->im.h_FmMuram, p_FmPort->im.p_FmPortImPram);
525 if (p_FmPort->im.p_BdShadow)
526 XX_Free(p_FmPort->im.p_BdShadow);
528 if (p_FmPort->im.p_BdRing)
529 XX_FreeSmart(p_FmPort->im.p_BdRing);
541 p_FmPort->im.mrblr = newVal;
554 p_FmPort->im.bdRingSize = newVal;
567 p_FmPort->im.bdRingSize = newVal;
582 p_FmPort->im.fwExtStructsMemId = memId;
583 p_FmPort->im.fwExtStructsMemAttr = memAttributes;
638 tmpReg16 = (uint16_t)(GET_UINT16(p_FmPort->im.p_FmPortImPram->rxQd.gen) | IM_RXQD_BSYINTM);
642 WRITE_UINT16(p_FmPort->im.p_FmPortImPram->rxQd.gen, tmpReg16);
653 WRITE_UINT16(p_FmPort->im.p_FmPortImPram->rxQd.gen, 0);
658 tmpReg16 = (uint16_t)(GET_UINT16(p_FmPort->im.p_FmPortImPram->rxQd.gen) & ~IM_RXQD_BSYINTM);
659 WRITE_UINT16(p_FmPort->im.p_FmPortImPram->rxQd.gen, tmpReg16);
686 bdStatus = BD_STATUS_AND_LENGTH(BD_GET(p_FmPort->im.currBdId));
687 nextBdId = GetNextBdId(p_FmPort, p_FmPort->im.currBdId);
693 if ((bdStatus & BD_LENGTH_MASK) && (p_FmPort->im.f_TxConf))
694 p_FmPort->im.f_TxConf (p_FmPort->h_App,
695 BdBufferGet(XX_PhysToVirt, BD_GET(p_FmPort->im.currBdId)),
697 p_FmPort->im.p_BdShadow[p_FmPort->im.currBdId]);
702 if (p_FmPort->im.firstBdOfFrameId == IM_ILEGAL_BD_ID)
705 p_FmPort->im.txFirstBdStatus = (bdStatus | BD_R_E);
708 p_FmPort->im.firstBdOfFrameId = p_FmPort->im.currBdId;
713 BdBufferSet(XX_VirtToPhys, BD_GET(p_FmPort->im.currBdId), p_Data);
714 p_FmPort->im.p_BdShadow[p_FmPort->im.currBdId] = h_BufContext;
721 BD_STATUS_AND_LENGTH_SET(BD_GET(p_FmPort->im.currBdId), p_FmPort->im.txFirstBdStatus | BD_L);
725 BD_STATUS_AND_LENGTH_SET (BD_GET(p_FmPort->im.currBdId), (bdStatus | BD_R_E | BD_L));
727 BD_STATUS_AND_LENGTH_SET(BD_GET(p_FmPort->im.firstBdOfFrameId), p_FmPort->im.txFirstBdStatus);
728 p_FmPort->im.firstBdOfFrameId = IM_ILEGAL_BD_ID;
730 WRITE_UINT16(p_FmPort->im.p_FmPortImPram->txQd.offsetIn, (uint16_t)(GetNextBdId(p_FmPort, p_FmPort->im.currBdId)<<4));
733 BD_STATUS_AND_LENGTH_SET (BD_GET(p_FmPort->im.currBdId), bdStatus | BD_R_E);
735 p_FmPort->im.currBdId = GetNextBdId(p_FmPort, p_FmPort->im.currBdId);
740 if (p_FmPort->im.firstBdOfFrameId != IM_ILEGAL_BD_ID)
744 uint16_t cleanBdId = p_FmPort->im.firstBdOfFrameId;
746 ASSERT_COND(p_FmPort->im.firstBdOfFrameId != p_FmPort->im.currBdId);
757 } while (cleanBdId != p_FmPort->im.currBdId);
759 p_FmPort->im.currBdId = cleanBdId;
760 p_FmPort->im.firstBdOfFrameId = IM_ILEGAL_BD_ID;