summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-08-01 07:26:56 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-08-01 07:26:56 +0000
commitc47a0eb0ea3c8fb5e9051dadda3d8ac305fdd237 (patch)
treee53c7333b838d06bb163b002601a04eec8bf376b
parent47a1e819024f6f585500cc2f54961e7373ab5752 (diff)
parent21c45e08df588b8edb7a56e19d5094f4224f9c7a (diff)
downloadandroid_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-xnci/jni/extns/pn54x/src/mifare/phNxpExtns_MifareStd.c22
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) -