artf238919-NFC-crashed-while-reading-type-1-2-3-4-ta
diff --git a/src/nfa/rw/nfa_rw_act.c b/src/nfa/rw/nfa_rw_act.c
index 6e98fdb..a662221 100755
--- a/src/nfa/rw/nfa_rw_act.c
+++ b/src/nfa/rw/nfa_rw_act.c
@@ -2856,8 +2856,6 @@
#if(NXP_EXTNS == TRUE)
else if (NFC_PROTOCOL_T3BT == nfa_rw_cb.protocol)
{
-
-
activate_notify = FALSE; /* Delay notifying upper layer of NFA_ACTIVATED_EVT until system codes are retrieved */
msg.op = NFA_RW_OP_T3BT_PUPI;
nfa_rw_handle_op_req((void *)&msg);
diff --git a/src/nfc/include/nfc_api.h b/src/nfc/include/nfc_api.h
index c8031ba..67c39d6 100755
--- a/src/nfc/include/nfc_api.h
+++ b/src/nfc/include/nfc_api.h
@@ -483,7 +483,6 @@
#define NFC_PROTOCOL_MIFARE NCI_PROTOCOL_MIFARE
#if (NXP_EXTNS == TRUE)
#define NFC_PROTOCOL_ISO7816 NCI_PROTOCOL_ISO7816 /*ISO7816 -AID default Routing */
-#define NFC_PROTOCOL_ISO7816 NCI_PROTOCOL_ISO7816
#define NFC_PROTOCOL_T3BT NCI_PROTOCOL_T3BT
#endif
#define NFC_PROTOCOL_B_PRIME NCI_PROTOCOL_B_PRIME
diff --git a/src/nfc/nfc/nfc_ncif.c b/src/nfc/nfc/nfc_ncif.c
index b2c2df6..6c3e790 100644
--- a/src/nfc/nfc/nfc_ncif.c
+++ b/src/nfc/nfc/nfc_ncif.c
@@ -1806,6 +1806,9 @@
tNFC_DISCOVER evt_data;
tNFC_DEACTIVATE_DEVT *p_deact;
tNFC_CONN_CB * p_cb = &nfc_cb.conn_cb[NFC_RF_CONN_ID];
+#if (NXP_EXTNS == TRUE)
+ tRW_T3T_CB *p_t3tcb = &rw_cb.tcb.t3t;
+#endif
void *p_data;
nfc_set_state (NFC_STATE_IDLE);
@@ -1828,6 +1831,12 @@
(*p_cb->p_cback) (NFC_RF_CONN_ID, NFC_DEACTIVATE_CEVT, (tNFC_CONN *) p_deact);
#if (NXP_EXTNS == TRUE)
+ if (p_t3tcb->poll_timer.in_use)
+ {
+ NFC_TRACE_DEBUG1 ("%s: stopping t3t polling timer", __func__);
+ nfc_stop_quick_timer (&p_t3tcb->poll_timer);
+ }
+
if((nfc_cb.flags & (NFC_FL_DISCOVER_PENDING | NFC_FL_CONTROL_REQUESTED))
&& (deact_type == NFC_DEACTIVATE_TYPE_DISCOVERY) && (is_ntf == TRUE))
{
diff --git a/src/nfc/tags/rw_main.c b/src/nfc/tags/rw_main.c
index 30a6d8b..30cc0e7 100755
--- a/src/nfc/tags/rw_main.c
+++ b/src/nfc/tags/rw_main.c
@@ -209,7 +209,6 @@
RW_TRACE_EVENT1 ("RW SENT raw frame (0x%x)", data_len);
status = NFC_SendData (NFC_RF_CONN_ID, p_data);
}
-
}
return status;
}
diff --git a/src/nfc/tags/rw_t3t.c b/src/nfc/tags/rw_t3t.c
index 746e971..5990411 100644
--- a/src/nfc/tags/rw_t3t.c
+++ b/src/nfc/tags/rw_t3t.c
@@ -332,9 +332,26 @@
*******************************************************************************/
void rw_t3t_start_poll_timer (tRW_T3T_CB *p_cb)
{
+ RW_TRACE_DEBUG1 ("%s: starting t3t poll timer", __func__);
nfc_start_quick_timer (&p_cb->poll_timer, NFC_TTYPE_RW_T3T_RESPONSE, RW_T3T_POLL_CMD_TIMEOUT_TICKS);
}
-
+#if (NXP_EXTNS == TRUE)
+/*******************************************************************************
+**
+** Function rw_t3t_stop_poll_timer
+**
+** Description Stop the timer for T3T POLL Command
+**
+** Returns none
+**
+*******************************************************************************/
+void rw_t3t_stop_poll_timer (tRW_T3T_CB *p_cb)
+{
+ RW_TRACE_DEBUG1 ("%s: stopping t3t poll timer", __func__);
+ if(p_cb->poll_timer.in_use)
+ nfc_stop_quick_timer (&p_cb->poll_timer);
+}
+#endif
/*******************************************************************************
**
** Function rw_t3t_handle_nci_poll_ntf
@@ -350,7 +367,11 @@
tRW_T3T_CB *p_cb = &rw_cb.tcb.t3t;
/* stop timer for poll response */
+#if (NXP_EXTNS == TRUE)
+ rw_t3t_stop_poll_timer (p_cb);
+#else
nfc_stop_quick_timer (&p_cb->poll_timer);
+#endif
/* Stop t3t timer (if started) */
if (p_cb->flags & RW_T3T_FL_W4_PRESENCE_CHECK_POLL_RSP)
@@ -428,8 +449,6 @@
p_cb->rw_state = RW_T3T_STATE_IDLE;
(*(rw_cb.p_cback)) (RW_T3T_GET_SYSTEM_CODES_EVT, &evt_data);
-
-
}
/*******************************************************************************