diff options
| author | Nirav Shah <nnshah@qti.qualcomm.com> | 2015-06-18 16:15:07 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2015-06-22 20:50:25 +0530 |
| commit | f5fc7dcb06ab230ae45bf622950b61a7035edb65 (patch) | |
| tree | 528390da66b7d19ab4dcfad6faa04ce507ceefce | |
| parent | 83f1a58cbcf1685967ad06e7200aba187edf2aa4 (diff) | |
qcacld: Process rx packet handling in async_task
Queue rx packet to async task queue to
process rx packet in async_task context.
CRs-Fixed: 856590
Change-Id: Ia511c3ac7223c4a2dc979ec8336fb6e32174458b
| -rw-r--r-- | CORE/SERVICES/HIF/sdio/hif_sdio_recv.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/CORE/SERVICES/HIF/sdio/hif_sdio_recv.c b/CORE/SERVICES/HIF/sdio/hif_sdio_recv.c index 1e258c04e3cd..ad2d3a856040 100644 --- a/CORE/SERVICES/HIF/sdio/hif_sdio_recv.c +++ b/CORE/SERVICES/HIF/sdio/hif_sdio_recv.c @@ -291,12 +291,21 @@ static INLINE A_STATUS HIFDevRecvPacket(HIF_SDIO_DEVICE *pDev, paddedLength, pDev->MailBoxInfo.MboxAddresses[mboxIndex])); +#ifdef HIF_SYNC_READ status = HIFSyncRead(pDev->HIFDevice, pDev->MailBoxInfo.MboxAddresses[mboxIndex], pPacket->pBuffer, paddedLength, (sync ? HIF_RD_SYNC_BLOCK_FIX : HIF_RD_ASYNC_BLOCK_FIX), sync ? NULL : pPacket); /* pass the packet as the context to the HIF request */ +#else + status = HIFReadWrite(pDev->HIFDevice, + pDev->MailBoxInfo.MboxAddresses[mboxIndex], + pPacket->pBuffer, + paddedLength, + (sync ? HIF_RD_SYNC_BLOCK_FIX : HIF_RD_ASYNC_BLOCK_FIX), + sync ? NULL : pPacket); /* pass the packet as the context to the HIF request */ +#endif AR_DEBUG_PRINTF( ATH_DEBUG_RECV, ("EP%d, Seq:%d\n", ((HTC_FRAME_HDR*)pPacket->pBuffer)->EndpointID, @@ -667,12 +676,22 @@ static A_STATUS HIFDevIssueRecvPacketBundle(HIF_SDIO_DEVICE *pDev, target->rx_bundle_stats[HTC_PACKET_QUEUE_DEPTH(pSyncCompletionQueue) - 1]++; #endif + +#ifdef HIF_SYNC_READ status = HIFSyncRead(pDev->HIFDevice, pDev->MailBoxInfo.MboxAddresses[(int)MailBoxIndex], pBundleBuffer, totalLength, HIF_RD_SYNC_BLOCK_FIX, NULL); +#else + status = HIFReadWrite(pDev->HIFDevice, + pDev->MailBoxInfo.MboxAddresses[(int)MailBoxIndex], + pBundleBuffer, + totalLength, + HIF_RD_SYNC_BLOCK_FIX, + NULL); +#endif if(status != A_OK){ AR_DEBUG_PRINTF(ATH_DEBUG_ERR, ("%s, HIFSend Failed status:%d \n",__FUNCTION__, status)); @@ -1075,12 +1094,22 @@ static A_STATUS HIFDevProcessPendingIRQs(HIF_SDIO_DEVICE *pDev, A_BOOL *pDone, break; } + +#ifdef HIF_SYNC_READ status = HIFSyncRead(pDev->HIFDevice, HOST_INT_STATUS_ADDRESS, (A_UINT8 *) &pDev->IrqProcRegisters, sizeof(pDev->IrqProcRegisters), HIF_RD_SYNC_BYTE_INC, NULL); +#else + status = HIFReadWrite(pDev->HIFDevice, + HOST_INT_STATUS_ADDRESS, + (A_UINT8 *) &pDev->IrqProcRegisters, + sizeof(pDev->IrqProcRegisters), + HIF_RD_SYNC_BYTE_INC, + NULL); +#endif if (A_FAILED(status)) { break; |
