diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-08-01 07:26:56 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-08-01 07:26:56 +0000 |
commit | c47a0eb0ea3c8fb5e9051dadda3d8ac305fdd237 (patch) | |
tree | e53c7333b838d06bb163b002601a04eec8bf376b | |
parent | 47a1e819024f6f585500cc2f54961e7373ab5752 (diff) | |
parent | 21c45e08df588b8edb7a56e19d5094f4224f9c7a (diff) | |
download | android_packages_apps_Nfc-c47a0eb0ea3c8fb5e9051dadda3d8ac305fdd237.tar.gz android_packages_apps_Nfc-c47a0eb0ea3c8fb5e9051dadda3d8ac305fdd237.tar.bz2 android_packages_apps_Nfc-c47a0eb0ea3c8fb5e9051dadda3d8ac305fdd237.zip |
release-request-b6ab0986-e497-499a-b55d-25aa156be8cf-for-git_oc-dr1-release-4233813 snap-temp-L73000000087867826
Change-Id: I6106197e56c8f3c57bf50e049c13ff0cec73cd8a
-rwxr-xr-x | nci/jni/extns/pn54x/src/mifare/phNxpExtns_MifareStd.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/nci/jni/extns/pn54x/src/mifare/phNxpExtns_MifareStd.c b/nci/jni/extns/pn54x/src/mifare/phNxpExtns_MifareStd.c index 66961706..e49e5e2c 100755 --- a/nci/jni/extns/pn54x/src/mifare/phNxpExtns_MifareStd.c +++ b/nci/jni/extns/pn54x/src/mifare/phNxpExtns_MifareStd.c @@ -22,6 +22,7 @@ #include <phNfcCompId.h> #include <phNxpLog.h> #include <phNxpExtns_MifareStd.h> +#include <nfc_int.h> phNxpExtns_Context_t gphNxpExtns_Context; phNciNfc_TransceiveInfo_t tNciTranscvInfo; @@ -1213,8 +1214,6 @@ phNciNfc_RecvMfResp(phNciNfc_Buff_t* RspBuffInfo, NFCSTATUS status = NFCSTATUS_SUCCESS; uint16_t wPldDataSize = 0; phNciNfc_ExtnRespId_t RecvdExtnRspId = phNciNfc_e_InvalidRsp; - uint16_t wRecvDataSz = 0; - if(NULL == RspBuffInfo) { status = NFCSTATUS_FAILED; @@ -1236,10 +1235,25 @@ phNciNfc_RecvMfResp(phNciNfc_Buff_t* RspBuffInfo, { case phNciNfc_e_MfXchgDataRsp: { - /* check the status byte */ - if( PH_NCINFC_STATUS_OK == RspBuffInfo->pBuff[RspBuffInfo->wLen-1] ) + NFCSTATUS writeResponse = NFCSTATUS_SUCCESS; + /* check the status byte */ + if (NFC_GetNCIVersion() == NCI_VERSION_2_0 && + (NdefMap->State == PH_FRINFC_NDEFMAP_STATE_WR_TLV || + NdefMap->State == PH_FRINFC_NDEFMAP_STATE_WRITE || + NdefMap->State == PH_FRINFC_NDEFMAP_STATE_WR_NDEF_LEN || + NdefMap->State == PH_FRINFC_NDEFMAP_STATE_INIT)) + { + uint8_t rspAck = RspBuffInfo->pBuff[RspBuffInfo->wLen-2]; + uint8_t rspAckMask = ((RspBuffInfo->pBuff[RspBuffInfo->wLen-1]) & MAX_NUM_VALID_BITS_FOR_ACK); + NCI_CALCULATE_ACK(rspAck, rspAckMask); + writeResponse = (rspAck == T2T_RSP_ACK)?NFCSTATUS_SUCCESS:NFC_STATUS_FAILED; + } else { + writeResponse = RspBuffInfo->pBuff[RspBuffInfo->wLen-1]; + } + if (PH_NCINFC_STATUS_OK == writeResponse) { status = NFCSTATUS_SUCCESS; + uint16_t wRecvDataSz = 0; /* DataLen = TotalRecvdLen - (sizeof(RspId) + sizeof(Status)) */ wPldDataSize = ((RspBuffInfo->wLen) - |