diff options
author | nxf32288 <ganesh.deva_1@nxp.com> | 2017-10-27 19:00:14 +0530 |
---|---|---|
committer | nxpandroid <srikrishna.pramoda@nxp.com> | 2017-11-16 09:36:30 +0530 |
commit | f0bf98fd90c599312e7233d0f54e869cf5979411 (patch) | |
tree | 455008fbf9d7ed01e286728a15bcaa2a4065496e | |
parent | e50fb5ecb7aa411e7659faec0b232752fd7885b0 (diff) | |
download | android_vendor_nxp_opensource_packages_apps_Nfc-f0bf98fd90c599312e7233d0f54e869cf5979411.tar.gz android_vendor_nxp_opensource_packages_apps_Nfc-f0bf98fd90c599312e7233d0f54e869cf5979411.tar.bz2 android_vendor_nxp_opensource_packages_apps_Nfc-f0bf98fd90c599312e7233d0f54e869cf5979411.zip |
JCOP Download over SPI interface failing in PN6xt, If NFC is On
spiDwpSyncState state machine updated properly during SPI close.
-rwxr-xr-x[-rw-r--r--] | nci/jni/SecureElement.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/nci/jni/SecureElement.cpp b/nci/jni/SecureElement.cpp index 4d190f2c..16157a1e 100644..100755 --- a/nci/jni/SecureElement.cpp +++ b/nci/jni/SecureElement.cpp @@ -4063,6 +4063,7 @@ void *spiEventHandlerThread(void *arg) { void (*pCleanupRoutine)(void* ptr) = cleanupStack; __pthread_cleanup_t __cleanup; + SecureElement &se = SecureElement::getInstance(); if(!nfcFL.nfcNxpEse) { ALOGV("%s: nfcNxpEse not available. Returning", __func__); @@ -4104,6 +4105,8 @@ void *spiEventHandlerThread(void *arg) { ALOGV("%s: SPI PRIO End Signal\n", __func__); hold_the_transceive = false; + if(!se.mIsWiredModeOpen) + spiDwpSyncState = STATE_DWP_CLOSE; setSPIState(false); SyncEventGuard guard (sSPIPrioSessionEndEvent); sSPIPrioSessionEndEvent.notifyOne (); @@ -4117,6 +4120,8 @@ void *spiEventHandlerThread(void *arg) { ALOGV("%s: SPI End Signal\n", __func__); hold_the_transceive = false; + if(!se.mIsWiredModeOpen) + spiDwpSyncState = STATE_DWP_CLOSE; setSPIState(false); } @@ -4419,6 +4424,7 @@ static void nfaVSC_ForceDwpOnOff(bool type) /*If DWP session is closed*/ (void)SecureElement::getInstance().setNfccPwrConfig(SecureElement::getInstance().NFCC_DECIDES); } + if(spiDwpSyncState & STATE_DWP_CLOSE) { stat = NFA_HciSendEvent (NFA_HANDLE_GROUP_HCI, 0x19, EVT_END_OF_APDU_TRANSFER, |