Lines Matching refs:gpphTmlNfc_Context
43 phTmlNfc_Context_t* gpphTmlNfc_Context = NULL; variable
80 if (NULL != gpphTmlNfc_Context) { in phTmlNfc_Init()
91 gpphTmlNfc_Context = (phTmlNfc_Context_t *)malloc(sizeof(phTmlNfc_Context_t)); in phTmlNfc_Init()
93 if (NULL == gpphTmlNfc_Context) { in phTmlNfc_Init()
97 memset(gpphTmlNfc_Context, PH_TMLNFC_RESET_VALUE, in phTmlNfc_Init()
100 gpphTmlNfc_Context->bThreadDone = 1; in phTmlNfc_Init()
104 pConfig, &(gpphTmlNfc_Context->pDevHandle)); in phTmlNfc_Init()
108 gpphTmlNfc_Context->pDevHandle = NULL; in phTmlNfc_Init()
110 gpphTmlNfc_Context->tReadInfo.bEnable = 0; in phTmlNfc_Init()
111 gpphTmlNfc_Context->tWriteInfo.bEnable = 0; in phTmlNfc_Init()
112 gpphTmlNfc_Context->tReadInfo.bThreadBusy = false; in phTmlNfc_Init()
113 gpphTmlNfc_Context->tWriteInfo.bThreadBusy = false; in phTmlNfc_Init()
114 if (pthread_mutex_init(&gpphTmlNfc_Context->readInfoUpdateMutex, in phTmlNfc_Init()
117 } else if (0 != sem_init(&gpphTmlNfc_Context->rxSemaphore, 0, 0)) { in phTmlNfc_Init()
119 } else if (0 != sem_init(&gpphTmlNfc_Context->txSemaphore, 0, 0)) { in phTmlNfc_Init()
121 } else if (0 != sem_init(&gpphTmlNfc_Context->postMsgSemaphore, 0, 0)) { in phTmlNfc_Init()
124 sem_post(&gpphTmlNfc_Context->postMsgSemaphore); in phTmlNfc_Init()
130 gpphTmlNfc_Context->dwTimerId = phOsalNfc_Timer_Create(); in phTmlNfc_Init()
131 if (PH_OSALNFC_TIMER_ID_INVALID != gpphTmlNfc_Context->dwTimerId) { in phTmlNfc_Init()
133 gpphTmlNfc_Context->dwCallbackThreadId = in phTmlNfc_Init()
137 gpphTmlNfc_Context->eConfig = phTmlNfc_e_DisableRetrans; in phTmlNfc_Init()
140 gpphTmlNfc_Context->bRetryCount = in phTmlNfc_Init()
142 gpphTmlNfc_Context->bWriteCbInvoked = false; in phTmlNfc_Init()
180 gpphTmlNfc_Context->eConfig = eConfiguration; in phTmlNfc_ConfigNciPktReTx()
184 gpphTmlNfc_Context->bRetryCount = bRetryCounter; in phTmlNfc_ConfigNciPktReTx()
190 gpphTmlNfc_Context->bRetryCount = in phTmlNfc_ConfigNciPktReTx()
218 pthread_create(&gpphTmlNfc_Context->readerThread, NULL, in phTmlNfc_StartThread()
225 pthread_create(&gpphTmlNfc_Context->writerThread, NULL, in phTmlNfc_StartThread()
248 if ((gpphTmlNfc_Context->dwTimerId == dwTimerId) && (NULL == pContext)) { in phTmlNfc_ReTxTimerCb()
256 gpphTmlNfc_Context->tWriteInfo.bThreadBusy = true; in phTmlNfc_ReTxTimerCb()
257 gpphTmlNfc_Context->tWriteInfo.bEnable = 1; in phTmlNfc_ReTxTimerCb()
259 sem_post(&gpphTmlNfc_Context->txSemaphore); in phTmlNfc_ReTxTimerCb()
280 wStatus = phOsalNfc_Timer_Start(gpphTmlNfc_Context->dwTimerId, in phTmlNfc_InitiateTimer()
313 while (gpphTmlNfc_Context->bThreadDone) { in phTmlNfc_TmlThread()
317 sem_wait(&gpphTmlNfc_Context->rxSemaphore); in phTmlNfc_TmlThread()
320 if (1 == gpphTmlNfc_Context->tReadInfo.bEnable) { in phTmlNfc_TmlThread()
329 if (NULL != gpphTmlNfc_Context->pDevHandle) { in phTmlNfc_TmlThread()
332 phTmlNfc_i2c_read(gpphTmlNfc_Context->pDevHandle, temp, 260); in phTmlNfc_TmlThread()
336 sem_post(&gpphTmlNfc_Context->rxSemaphore); in phTmlNfc_TmlThread()
339 sem_post(&gpphTmlNfc_Context->rxSemaphore); in phTmlNfc_TmlThread()
341 pthread_mutex_lock(&gpphTmlNfc_Context->readInfoUpdateMutex); in phTmlNfc_TmlThread()
342 memcpy(gpphTmlNfc_Context->tReadInfo.pBuffer, temp, dwNoBytesWrRd); in phTmlNfc_TmlThread()
346 gpphTmlNfc_Context->tReadInfo.bEnable = 0; in phTmlNfc_TmlThread()
347 if ((phTmlNfc_e_EnableRetrans == gpphTmlNfc_Context->eConfig) && in phTmlNfc_TmlThread()
348 (0x00 != (gpphTmlNfc_Context->tReadInfo.pBuffer[0] & 0xE0))) { in phTmlNfc_TmlThread()
352 phOsalNfc_Timer_Stop(gpphTmlNfc_Context->dwTimerId); in phTmlNfc_TmlThread()
356 gpphTmlNfc_Context->bWriteCbInvoked = false; in phTmlNfc_TmlThread()
359 if (gpphTmlNfc_Context->tWriteInfo.bThreadBusy) { in phTmlNfc_TmlThread()
364 gpphTmlNfc_Context->tReadInfo.wLength = (uint16_t)(dwNoBytesWrRd); in phTmlNfc_TmlThread()
366 gpphTmlNfc_Context->tReadInfo.pBuffer, in phTmlNfc_TmlThread()
367 gpphTmlNfc_Context->tReadInfo.wLength); in phTmlNfc_TmlThread()
374 tTransactionInfo.pBuff = gpphTmlNfc_Context->tReadInfo.pBuffer; in phTmlNfc_TmlThread()
376 tTransactionInfo.wLength = gpphTmlNfc_Context->tReadInfo.wLength; in phTmlNfc_TmlThread()
386 pthread_mutex_unlock(&gpphTmlNfc_Context->readInfoUpdateMutex); in phTmlNfc_TmlThread()
388 phTmlNfc_DeferredCall(gpphTmlNfc_Context->dwCallbackThreadId, &tMsg); in phTmlNfc_TmlThread()
429 while (gpphTmlNfc_Context->bThreadDone) { in phTmlNfc_TmlWriterThread()
431 sem_wait(&gpphTmlNfc_Context->txSemaphore); in phTmlNfc_TmlWriterThread()
433 if (1 == gpphTmlNfc_Context->tWriteInfo.bEnable) { in phTmlNfc_TmlWriterThread()
437 if (NULL != gpphTmlNfc_Context->pDevHandle) { in phTmlNfc_TmlWriterThread()
439 gpphTmlNfc_Context->tWriteInfo.bEnable = 0; in phTmlNfc_TmlWriterThread()
445 phTmlNfc_i2c_write(gpphTmlNfc_Context->pDevHandle, in phTmlNfc_TmlWriterThread()
446 gpphTmlNfc_Context->tWriteInfo.pBuffer, in phTmlNfc_TmlWriterThread()
447 gpphTmlNfc_Context->tWriteInfo.wLength); in phTmlNfc_TmlWriterThread()
464 gpphTmlNfc_Context->tWriteInfo.pBuffer, in phTmlNfc_TmlWriterThread()
465 gpphTmlNfc_Context->tWriteInfo.wLength); in phTmlNfc_TmlWriterThread()
475 tTransactionInfo.pBuff = gpphTmlNfc_Context->tWriteInfo.pBuffer; in phTmlNfc_TmlWriterThread()
494 if ((phTmlNfc_e_EnableRetrans == gpphTmlNfc_Context->eConfig) && in phTmlNfc_TmlWriterThread()
495 (0x00 != (gpphTmlNfc_Context->tWriteInfo.pBuffer[0] & 0xE0))) { in phTmlNfc_TmlWriterThread()
496 if (gpphTmlNfc_Context->bWriteCbInvoked == false) { in phTmlNfc_TmlWriterThread()
499 phTmlNfc_DeferredCall(gpphTmlNfc_Context->dwCallbackThreadId, in phTmlNfc_TmlWriterThread()
501 gpphTmlNfc_Context->bWriteCbInvoked = true; in phTmlNfc_TmlWriterThread()
506 phTmlNfc_DeferredCall(gpphTmlNfc_Context->dwCallbackThreadId, &tMsg); in phTmlNfc_TmlWriterThread()
513 if ((phTmlNfc_e_EnableRetrans == gpphTmlNfc_Context->eConfig) && in phTmlNfc_TmlWriterThread()
514 (0x00 != (gpphTmlNfc_Context->tWriteInfo.pBuffer[0] & 0xE0))) { in phTmlNfc_TmlWriterThread()
520 gpphTmlNfc_Context->tWriteInfo.bEnable = 0; in phTmlNfc_TmlWriterThread()
546 if (NULL == gpphTmlNfc_Context) { in phTmlNfc_CleanUp()
549 if (NULL != gpphTmlNfc_Context->pDevHandle) { in phTmlNfc_CleanUp()
550 (void)phTmlNfc_i2c_reset(gpphTmlNfc_Context->pDevHandle, 0); in phTmlNfc_CleanUp()
551 gpphTmlNfc_Context->bThreadDone = 0; in phTmlNfc_CleanUp()
553 sem_destroy(&gpphTmlNfc_Context->rxSemaphore); in phTmlNfc_CleanUp()
554 sem_destroy(&gpphTmlNfc_Context->txSemaphore); in phTmlNfc_CleanUp()
555 sem_destroy(&gpphTmlNfc_Context->postMsgSemaphore); in phTmlNfc_CleanUp()
556 phTmlNfc_i2c_close(gpphTmlNfc_Context->pDevHandle); in phTmlNfc_CleanUp()
557 gpphTmlNfc_Context->pDevHandle = NULL; in phTmlNfc_CleanUp()
559 free((void*)gpphTmlNfc_Context); in phTmlNfc_CleanUp()
561 gpphTmlNfc_Context = NULL; in phTmlNfc_CleanUp()
586 if (NULL != gpphTmlNfc_Context) { in phTmlNfc_Shutdown()
588 gpphTmlNfc_Context->bThreadDone = 0; in phTmlNfc_Shutdown()
591 sem_post(&gpphTmlNfc_Context->rxSemaphore); in phTmlNfc_Shutdown()
593 sem_post(&gpphTmlNfc_Context->txSemaphore); in phTmlNfc_Shutdown()
595 sem_post(&gpphTmlNfc_Context->postMsgSemaphore); in phTmlNfc_Shutdown()
597 sem_post(&gpphTmlNfc_Context->postMsgSemaphore); in phTmlNfc_Shutdown()
599 pthread_mutex_destroy(&gpphTmlNfc_Context->readInfoUpdateMutex); in phTmlNfc_Shutdown()
600 if (0 != pthread_join(gpphTmlNfc_Context->readerThread, (void**)NULL)) { in phTmlNfc_Shutdown()
603 if (0 != pthread_join(gpphTmlNfc_Context->writerThread, (void**)NULL)) { in phTmlNfc_Shutdown()
653 if (NULL != gpphTmlNfc_Context) { in phTmlNfc_Write()
654 if ((NULL != gpphTmlNfc_Context->pDevHandle) && (NULL != pBuffer) && in phTmlNfc_Write()
656 if (!gpphTmlNfc_Context->tWriteInfo.bThreadBusy) { in phTmlNfc_Write()
658 gpphTmlNfc_Context->tWriteInfo.bThreadBusy = true; in phTmlNfc_Write()
662 gpphTmlNfc_Context->tWriteInfo.pBuffer = pBuffer; in phTmlNfc_Write()
663 gpphTmlNfc_Context->tWriteInfo.wLength = wLength; in phTmlNfc_Write()
664 gpphTmlNfc_Context->tWriteInfo.pThread_Callback = pTmlWriteComplete; in phTmlNfc_Write()
665 gpphTmlNfc_Context->tWriteInfo.pContext = pContext; in phTmlNfc_Write()
669 if (phTmlNfc_e_EnableRetrans == gpphTmlNfc_Context->eConfig) { in phTmlNfc_Write()
674 bCurrentRetryCount = gpphTmlNfc_Context->bRetryCount; in phTmlNfc_Write()
675 gpphTmlNfc_Context->bWriteCbInvoked = false; in phTmlNfc_Write()
678 gpphTmlNfc_Context->tWriteInfo.bEnable = 1; in phTmlNfc_Write()
679 sem_post(&gpphTmlNfc_Context->txSemaphore); in phTmlNfc_Write()
710 if ((NULL != gpphTmlNfc_Context) && (NULL != pTmlReadComplete)) { in phTmlNfc_UpdateReadCompleteCallback()
711 gpphTmlNfc_Context->tReadInfo.pThread_Callback = pTmlReadComplete; in phTmlNfc_UpdateReadCompleteCallback()
748 if (NULL != gpphTmlNfc_Context) { in phTmlNfc_Read()
749 if ((gpphTmlNfc_Context->pDevHandle != NULL) && (NULL != pBuffer) && in phTmlNfc_Read()
751 if (!gpphTmlNfc_Context->tReadInfo.bThreadBusy) { in phTmlNfc_Read()
752 pthread_mutex_lock(&gpphTmlNfc_Context->readInfoUpdateMutex); in phTmlNfc_Read()
754 gpphTmlNfc_Context->tReadInfo.bThreadBusy = true; in phTmlNfc_Read()
758 gpphTmlNfc_Context->tReadInfo.pBuffer = pBuffer; in phTmlNfc_Read()
759 gpphTmlNfc_Context->tReadInfo.wLength = wLength; in phTmlNfc_Read()
760 gpphTmlNfc_Context->tReadInfo.pThread_Callback = pTmlReadComplete; in phTmlNfc_Read()
761 gpphTmlNfc_Context->tReadInfo.pContext = pContext; in phTmlNfc_Read()
765 gpphTmlNfc_Context->tReadInfo.bEnable = 1; in phTmlNfc_Read()
766 pthread_mutex_unlock(&gpphTmlNfc_Context->readInfoUpdateMutex); in phTmlNfc_Read()
768 sem_post(&gpphTmlNfc_Context->rxSemaphore); in phTmlNfc_Read()
801 gpphTmlNfc_Context->tReadInfo.bEnable = 0; in phTmlNfc_ReadAbort()
804 gpphTmlNfc_Context->tReadInfo.bThreadBusy = false; in phTmlNfc_ReadAbort()
830 gpphTmlNfc_Context->tWriteInfo.bEnable = 0; in phTmlNfc_WriteAbort()
835 gpphTmlNfc_Context->tWriteInfo.bThreadBusy = false; in phTmlNfc_WriteAbort()
862 if (NULL == gpphTmlNfc_Context) { in phTmlNfc_IoCtl()
868 phTmlNfc_i2c_reset(gpphTmlNfc_Context->pDevHandle, 1); in phTmlNfc_IoCtl()
870 phTmlNfc_i2c_reset(gpphTmlNfc_Context->pDevHandle, 0); in phTmlNfc_IoCtl()
872 phTmlNfc_i2c_reset(gpphTmlNfc_Context->pDevHandle, 1); in phTmlNfc_IoCtl()
877 phTmlNfc_i2c_reset(gpphTmlNfc_Context->pDevHandle, 0); in phTmlNfc_IoCtl()
879 phTmlNfc_i2c_reset(gpphTmlNfc_Context->pDevHandle, 1); in phTmlNfc_IoCtl()
885 (void)phTmlNfc_i2c_reset(gpphTmlNfc_Context->pDevHandle, 2); in phTmlNfc_IoCtl()
917 sem_wait(&gpphTmlNfc_Context->postMsgSemaphore); in phTmlNfc_DeferredCall()
919 phDal4Nfc_msgsnd(gpphTmlNfc_Context->dwCallbackThreadId, ptWorkerMsg, 0); in phTmlNfc_DeferredCall()
920 sem_post(&gpphTmlNfc_Context->postMsgSemaphore); in phTmlNfc_DeferredCall()
939 gpphTmlNfc_Context->tReadInfo.bThreadBusy = false; in phTmlNfc_ReadDeferredCb()
940 gpphTmlNfc_Context->tReadInfo.pThread_Callback( in phTmlNfc_ReadDeferredCb()
941 gpphTmlNfc_Context->tReadInfo.pContext, pTransactionInfo); in phTmlNfc_ReadDeferredCb()
962 gpphTmlNfc_Context->tWriteInfo.bThreadBusy = false; in phTmlNfc_WriteDeferredCb()
963 gpphTmlNfc_Context->tWriteInfo.pThread_Callback( in phTmlNfc_WriteDeferredCb()
964 gpphTmlNfc_Context->tWriteInfo.pContext, pTransactionInfo); in phTmlNfc_WriteDeferredCb()