diff options
author | suraj <suraj.uday.kotharkar@nxp.com> | 2017-09-15 15:37:06 +0530 |
---|---|---|
committer | nxpandroid <srikrishna.pramoda@nxp.com> | 2017-09-26 11:53:58 +0530 |
commit | 3f2a91f92c3f965634789eda19fb32d69a1999b8 (patch) | |
tree | 19a10c8e053a95b19faf2ee15ba9b3224f721dc4 | |
parent | bcb50b173f4e3b887d23ed041b796eab31a17654 (diff) | |
download | android_vendor_nxp_opensource_packages_apps_Nfc-3f2a91f92c3f965634789eda19fb32d69a1999b8.tar.gz android_vendor_nxp_opensource_packages_apps_Nfc-3f2a91f92c3f965634789eda19fb32d69a1999b8.tar.bz2 android_vendor_nxp_opensource_packages_apps_Nfc-3f2a91f92c3f965634789eda19fb32d69a1999b8.zip |
MW handling of NFCEE_STATUS_NTF with unrecoverable error .
-rw-r--r-- | nci/jni/RoutingManager.cpp | 11 | ||||
-rw-r--r-- | nci/jni/RoutingManager.h | 2 | ||||
-rw-r--r-- | nci/jni/SecureElement.cpp | 18 |
3 files changed, 30 insertions, 1 deletions
diff --git a/nci/jni/RoutingManager.cpp b/nci/jni/RoutingManager.cpp index 68fff427..97b0524d 100644 --- a/nci/jni/RoutingManager.cpp +++ b/nci/jni/RoutingManager.cpp @@ -3227,6 +3227,17 @@ bool RoutingManager::is_ee_recovery_ongoing() return recovery; } +void RoutingManager::setEERecovery(bool value) +{ + static const char fn [] = "RoutingManager::setEERecovery"; + if(!nfcFL.nfccFL._NFCEE_REMOVED_NTF_RECOVERY) { + ALOGV("%s : NFCEE_REMOVED_NTF_RECOVERY not avaialble.Returning",__func__); + return; + } + ALOGV("%s: value %x", __func__,value); + recovery = value; +} + /******************************************************************************* ** ** Function: getRouting diff --git a/nci/jni/RoutingManager.h b/nci/jni/RoutingManager.h index aef6f8fd..fc3e8dc8 100644 --- a/nci/jni/RoutingManager.h +++ b/nci/jni/RoutingManager.h @@ -185,7 +185,7 @@ public: uint8_t apduDataLen ,const uint8_t* apduMask, uint8_t apduMaskLen); bool removeApduRouting(uint8_t apduDataLen, const uint8_t* apduData); - + void setEERecovery(bool value); void cleanRouting(); bool removeAidRouting(const uint8_t* aid, uint8_t aidLen); bool commitRouting(); diff --git a/nci/jni/SecureElement.cpp b/nci/jni/SecureElement.cpp index ee59bae9..6dc97f2f 100644 --- a/nci/jni/SecureElement.cpp +++ b/nci/jni/SecureElement.cpp @@ -2745,6 +2745,24 @@ void SecureElement::nfaHciCallback (tNFA_HCI_EVT event, tNFA_HCI_EVT_DATA* event sSecElem.mNfceeInitCbEvent.notifyOne(); break; } + case NFA_HCI_EE_RECOVERY_EVT: + { + tNFA_HCI_EE_RECOVERY_EVT &ee_recovery = eventData->ee_recovery; + ALOGV("%s: NFA_HCI_EE_RECOVERY_EVT; status=0x%X", fn, ee_recovery.status); + if(ee_recovery.status == NFA_HCI_EE_RECOVERY_STARTED) + RoutingManager::getInstance().setEERecovery(true); + else if(ee_recovery.status == NFA_HCI_EE_RECOVERY_COMPLETED) + { + ALOGV("%s: NFA_HCI_EE_RECOVERY_EVT; recovery completed status=0x%X", fn, ee_recovery.status); + RoutingManager::getInstance().setEERecovery(false); + if(active_ese_reset_control & TRANS_WIRED_ONGOING) + { + SyncEventGuard guard(sSecElem.mTransceiveEvent); + sSecElem.mTransceiveEvent.notifyOne(); + } + } + break; + } case NFA_HCI_ADD_STATIC_PIPE_EVT: { ALOGV("%s: NFA_HCI_ADD_STATIC_PIPE_EVT; status=0x%X", fn, eventData->admin_rsp_rcvd.status); |