artf227293-P2P-P2P-or-wired-mode-is-stuck-wh
diff --git a/src/nfc/nfc/nfc_ncif.c b/src/nfc/nfc/nfc_ncif.c
index 43a2c3b..8a1bf82 100644
--- a/src/nfc/nfc/nfc_ncif.c
+++ b/src/nfc/nfc/nfc_ncif.c
@@ -401,7 +401,9 @@
if(core_reset_init_num_buff == TRUE)
{
NFC_TRACE_ERROR0("Reinitializing the num_buff");
- p_cb->num_buff++;
+
+ if(!p_cb->num_buff)
+ p_cb->num_buff++;
core_reset_init_num_buff = FALSE;
}
#endif
@@ -2755,6 +2757,10 @@
void nfc_ncif_credit_ntf_timeout()
{
NFC_TRACE_DEBUG0 ("nfc_ncif_credit_ntf_timeout : Enter");
+
+#if(NXP_EXTNS == TRUE)
+ tNFC_CONN_CB *p_cb;
+#endif
if( get_i2c_fragmentation_enabled () == I2C_FRAGMENATATION_ENABLED)
{
nfc_cb.i2c_data_t.data_ntf_timeout = 1;
@@ -2767,6 +2773,18 @@
//send timeout event to upper layer
nfa_hci_rsp_timeout (NULL);
+
+ //will be used to reset credit buffer after recovery
+ core_reset_init_num_buff = TRUE;
+#if(NXP_EXTNS == TRUE)
+ p_cb = nfc_find_conn_cb_by_conn_id(NFC_NFCEE_CONN_ID);
+ if(p_cb && (p_cb->num_buff != NFC_CONN_NO_FC) && (p_cb->num_buff == 0))
+ p_cb->num_buff++;
+
+ p_cb = nfc_find_conn_cb_by_conn_id(NFC_RF_CONN_ID);
+ if(p_cb && (p_cb->num_buff != NFC_CONN_NO_FC) && (p_cb->num_buff == 0))
+ p_cb->num_buff++;
+#endif
}
if( get_i2c_fragmentation_enabled () == I2C_FRAGMENATATION_ENABLED)