aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornxf32288 <ganesh.deva_1@nxp.com>2017-10-27 19:00:14 +0530
committernxpandroid <srikrishna.pramoda@nxp.com>2017-11-16 09:36:30 +0530
commitf0bf98fd90c599312e7233d0f54e869cf5979411 (patch)
tree455008fbf9d7ed01e286728a15bcaa2a4065496e
parente50fb5ecb7aa411e7659faec0b232752fd7885b0 (diff)
downloadandroid_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.cpp6
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,