Lines Matching refs:pBusDrv

103 static void busDrv_PrepareTxnParts  (TBusDrvObj *pBusDrv, TTxnStruct *pTxn);
104 static void busDrv_SendTxnParts (TBusDrvObj *pBusDrv);
129 TBusDrvObj *pBusDrv;
137 pBusDrv = (TBusDrvObj *)hBusDrv;
141 pBusDrv->hOs = hOs;
143 return pBusDrv;
160 TBusDrvObj *pBusDrv = (TBusDrvObj*)hBusDrv;
162 if (pBusDrv)
164 os_memoryFree (pBusDrv->hOs, pBusDrv, sizeof(TBusDrvObj));
184 TBusDrvObj *pBusDrv = (TBusDrvObj*) hBusDrv;
186 pBusDrv->hReport = hReport;
213 TBusDrvObj *pBusDrv = (TBusDrvObj*)hBusDrv;
217 pBusDrv->fTxnDoneCb = fCbFunc;
218 pBusDrv->hCbHandle = hCbArg;
219 pBusDrv->uBlkSizeShift = pBusDrvCfg->tSdioCfg.uBlkSizeShift;
220 pBusDrv->uBlkSize = 1 << pBusDrv->uBlkSizeShift;
221 pBusDrv->uBlkSizeMask = pBusDrv->uBlkSize - 1;
223 pBusDrv->uCurrTxnPartsCount = 0;
224 pBusDrv->uCurrTxnPartsNum = 0;
225 pBusDrv->uCurrTxnPartsCountSync = 0;
232 * SDIO driver into pBusDrv->pDmaBuffer.
236 pBusDrv->uBlkSizeShift,
238 &pBusDrv->pDmaBuffer);
240 if (pBusDrv->pDmaBuffer == NULL)
242 TRACE0(pBusDrv->hReport, REPORT_SEVERITY_ERROR, "busDrv_ConnectBus: Didn't get DMA buffer from SDIO driver!!");
253 TRACE2(pBusDrv->hReport, REPORT_SEVERITY_ERROR, "busDrv_ConnectBus: Status = 0x%x, BlkSize = %d\n", iStatus, pBusDrv->uBlkSize);
272 TBusDrvObj *pBusDrv = (TBusDrvObj*)hBusDrv;
274 TRACE0(pBusDrv->hReport, REPORT_SEVERITY_INFORMATION, "busDrv_DisconnectBus()\n");
297 TBusDrvObj *pBusDrv = (TBusDrvObj*)hBusDrv;
300 pBusDrv->pCurrTxn = pTxn;
301 pBusDrv->uCurrTxnPartsCount = 0;
302 pBusDrv->uCurrTxnPartsCountSync = 0;
305 busDrv_PrepareTxnParts (pBusDrv, pTxn);
308 busDrv_SendTxnParts (pBusDrv);
310 TRACE1(pBusDrv->hReport, REPORT_SEVERITY_INFORMATION, "busDrv_Transact: Status = %d\n", pBusDrv->eCurrTxnStatus);
316 return pBusDrv->eCurrTxnStatus;
331 * \param pBusDrv - The module's object
336 static void busDrv_PrepareTxnParts (TBusDrvObj *pBusDrv, TTxnStruct *pTxn)
340 TI_UINT8 *pHostBuf = pBusDrv->pDmaBuffer; /* Host buffer to use for actual transaction is the DMA buffer */
361 os_memoryCopy (pBusDrv->hOs, pHostBuf + uTxnLength, pTxn->aBuf[uBufNum], uBufLen);
369 uRemainderLen = uTxnLength & pBusDrv->uBlkSizeMask;
372 pBusDrv->aTxnParts[uPartNum].bBlkMode = TI_FALSE;
373 pBusDrv->aTxnParts[uPartNum].uLength = uRemainderLen;
374 pBusDrv->aTxnParts[uPartNum].uHwAddr = uCurrHwAddr;
375 pBusDrv->aTxnParts[uPartNum].pHostAddr = (void *)pHostBuf;
376 pBusDrv->aTxnParts[uPartNum].bMore = TI_TRUE;
393 for (uLen = uRemainderLen; uLen < uTxnLength; uLen += pBusDrv->uBlkSize)
395 pBusDrv->aTxnParts[uPartNum].bBlkMode = TI_FALSE;
396 pBusDrv->aTxnParts[uPartNum].uLength = pBusDrv->uBlkSize;
397 pBusDrv->aTxnParts[uPartNum].uHwAddr = uCurrHwAddr;
398 pBusDrv->aTxnParts[uPartNum].pHostAddr = (void *)(pHostBuf + uLen);
399 pBusDrv->aTxnParts[uPartNum].bMore = TI_TRUE;
404 uCurrHwAddr += pBusDrv->uBlkSize;
416 if (uTxnLength >= pBusDrv->uBlkSize)
418 pBusDrv->aTxnParts[uPartNum].bBlkMode = TI_TRUE;
419 pBusDrv->aTxnParts[uPartNum].uLength = uTxnLength - uRemainderLen;
420 pBusDrv->aTxnParts[uPartNum].uHwAddr = uCurrHwAddr;
421 pBusDrv->aTxnParts[uPartNum].pHostAddr = (void *)(pHostBuf + uRemainderLen);
422 pBusDrv->aTxnParts[uPartNum].bMore = TI_TRUE;
429 pBusDrv->aTxnParts[uPartNum - 1].bMore = TXN_PARAM_GET_MORE(pTxn);
430 pBusDrv->uCurrTxnPartsNum = uPartNum;
444 * \param pBusDrv - The module's object
448 static void busDrv_SendTxnParts (TBusDrvObj *pBusDrv)
452 TTxnStruct *pTxn = pBusDrv->pCurrTxn;
455 while (pBusDrv->uCurrTxnPartsCount < pBusDrv->uCurrTxnPartsNum)
457 pTxnPart = &(pBusDrv->aTxnParts[pBusDrv->uCurrTxnPartsCount]);
458 pBusDrv->uCurrTxnPartsCount++;
461 pBusDrv->eCurrTxnStatus = TXN_STATUS_PENDING;
484 TRACE0(pBusDrv->hReport, REPORT_SEVERITY_WARNING, "busDrv_SendTxnParts: SDIO Single-Step transaction failed once so try again");
499 TRACE7(pBusDrv->hReport, REPORT_SEVERITY_INFORMATION, "busDrv_SendTxnParts: PartNum = %d, SingleStep = %d, Direction = %d, HwAddr = 0x%x, HostAddr = 0x%x, Length = %d, BlkMode = %d\n", pBusDrv->uCurrTxnPartsCount-1, TXN_PARAM_GET_SINGLE_STEP(pTxn), TXN_PARAM_GET_DIRECTION(pTxn), pTxnPart->uHwAddr, pTxnPart->pHostAddr, pTxnPart->uLength, pTxnPart->bBlkMode);
508 pBusDrv->eCurrTxnStatus = eStatus;
509 pBusDrv->uCurrTxnPartsCountSync++;
515 if (pBusDrv->uCurrTxnPartsCountSync != pBusDrv->uCurrTxnPartsCount)
517 pBusDrv->fTxnDoneCb (pBusDrv->hCbHandle, pTxn);
524 TRACE3(pBusDrv->hReport, REPORT_SEVERITY_INFORMATION, "busDrv_SendTxnParts: Txn finished successfully, Status = %d, PartsCount = %d, SyncCount = %d\n", pBusDrv->eCurrTxnStatus, pBusDrv->uCurrTxnPartsCount, pBusDrv->uCurrTxnPartsCountSync);
531 TI_UINT8 *pDmaBuf = pBusDrv->pDmaBuffer; /* After the read transaction the data is in the DMA buffer */
543 os_memoryCopy (pBusDrv->hOs, pTxn->aBuf[uBufNum], pDmaBuf, uBufLen);
550 if (pBusDrv->uCurrTxnPartsCountSync != pBusDrv->uCurrTxnPartsCount)
552 pBusDrv->fTxnDoneCb (pBusDrv->hCbHandle, pTxn);
572 TBusDrvObj *pBusDrv = (TBusDrvObj*)hBusDrv;
578 TRACE1(pBusDrv->hReport, REPORT_SEVERITY_ERROR, "busDrv_TxnDoneCb: Status = 0x%x\n", iStatus);
580 TXN_PARAM_SET_STATUS(pBusDrv->pCurrTxn, TXN_PARAM_STATUS_ERROR);
581 pBusDrv->fTxnDoneCb (pBusDrv->hCbHandle, pBusDrv->pCurrTxn);
586 TRACE0(pBusDrv->hReport, REPORT_SEVERITY_INFORMATION, "busDrv_TxnDoneCb()\n");
589 busDrv_SendTxnParts (pBusDrv);