NOSP-NGEN-artf222731-NFC-init-done-without-waiting-f
diff --git a/src/nfc/int/nfc_int.h b/src/nfc/int/nfc_int.h
index 017ce26..99f6f56 100644
--- a/src/nfc/int/nfc_int.h
+++ b/src/nfc/int/nfc_int.h
@@ -387,9 +387,7 @@
 #if((NFC_NXP_CHIP_TYPE != PN547C2) && (NFC_NXP_AID_MAX_SIZE_DYN == TRUE))
 NFC_API extern tNFC_STATUS nfc_ncif_set_MaxRoutingTableSize(UINT8 * p_buf);
 #endif
-
 NFC_API extern void nfc_ncif_update_window (void);
-
 NFC_API extern void nfc_ncif_empty_cmd_queue ();
 NFC_API extern BOOLEAN nfc_ncif_proc_proprietary_rsp (UINT8 mt, UINT8 gid, UINT8 oid);
 NFC_API extern void nfc_ncif_proc_rf_wtx_ntf (UINT8 *p, UINT16 plen);
diff --git a/src/nfc/nfc/nfc_ncif.c b/src/nfc/nfc/nfc_ncif.c
index 6cd550e..b26693b 100644
--- a/src/nfc/nfc/nfc_ncif.c
+++ b/src/nfc/nfc/nfc_ncif.c
@@ -799,9 +799,10 @@
         sListenActivated = FALSE;
     }
 
-    if ((nfc_cb.nxpCbflag == TRUE)&&(mt == NCI_MT_RSP))
+    if ((nfc_cb.nxpCbflag == TRUE)&&(nfc_ncif_proc_proprietary_rsp(mt,gid,oid) == TRUE))
     {
         nci_proc_prop_nxp_rsp(p_msg);
+        nfc_cb.nxpCbflag = FALSE;
         return (free);
     }
 #endif
@@ -2874,6 +2875,102 @@
      nfc_ncif_cmd_timeout();
     //nci_snd_core_reset(0x00);
 }
+
+/*******************************************************************************
+**
+** Function         nfc_ncif_process_proprietary_rsp
+**
+** Description      Process the response to avoid collision
+**                  while nxpCbflag is set
+**
+** Returns          TRUE if proprietary response else FALSE
+**
+*******************************************************************************/
+
+BOOLEAN nfc_ncif_proc_proprietary_rsp (UINT8 mt, UINT8 gid, UINT8 oid)
+{
+    BOOLEAN stat = FALSE;
+    NFC_TRACE_DEBUG3 ("nfc_ncif_proc_proprietary_rsp: mt=%u, gid=%u, oid=%u", mt, gid, oid);
+    switch(mt)
+    {
+    case NCI_MT_DATA:
+        switch (gid)
+        {
+        case 0x03:
+            switch (oid)
+            {
+            case 0x00:      /*Data Response*/
+                stat = FALSE;
+                break;
+
+            default:
+                stat = TRUE;
+                break;
+            }
+            break;
+
+        default:
+            stat = TRUE;
+            break;
+        }
+        break;
+
+    case NCI_MT_NTF:
+        switch (gid)
+        {
+        case NCI_GID_CORE:
+            switch (oid)
+            {
+            case 0x00:      /*CORE_RESET_NTF*/
+            case 0x06:      /*CORE_CONN_CREDITS_NTF*/
+                stat = FALSE;
+                break;
+
+            default:
+                stat = TRUE;
+                break;
+            }
+            break;
+        case NCI_GID_RF_MANAGE:
+            switch (oid)
+            {
+            case 0x06:      /*CORE_CONN_CREDITS_NTF*/
+                stat = FALSE;
+                break;
+            case 0x09:
+                stat = FALSE;/*NFA_EE_ACTION_NTF*/
+                break;
+            default:
+                stat = TRUE;
+                break;
+            }
+            break;
+        case NCI_GID_EE_MANAGE :
+             switch (oid)
+             {
+             case 0x00:
+                  stat = FALSE;
+                  break;
+             default :
+                  stat = TRUE;
+                  break;
+             }
+                break;
+        default:
+            stat = TRUE;
+            break;
+        }
+        break;
+
+    default:
+        stat = TRUE;
+        break;
+
+    }
+    NFC_TRACE_DEBUG1 ("nfc_ncif_proc_proprietary_rsp: exit status=%u", stat);
+    return stat;
+}
+
 #endif
 
 #if((NFC_NXP_ESE == TRUE) && (NXP_EXTNS == TRUE) && (NXP_ESE_ETSI_READER_ENABLE == TRUE))