Fix for ETSI12 pipe creation issue
diff --git a/src/nfa/hci/nfa_hci_act.c b/src/nfa/hci/nfa_hci_act.c
old mode 100755
new mode 100644
index 14986e9..003497b
--- a/src/nfa/hci/nfa_hci_act.c
+++ b/src/nfa/hci/nfa_hci_act.c
@@ -1875,6 +1875,7 @@
                                  uint16_t data_len) {
   tNFA_HCI_DYN_PIPE* p_pipe = nfa_hciu_find_pipe_by_pid(pipe_id);
   tNFA_HCI_DYN_GATE* p_gate;
+  tNFA_HCI_EVT_DATA  evt_data;
 
   if (p_pipe == NULL) {
     /* Invalid pipe ID */
@@ -1882,6 +1883,14 @@
     if (nfa_hci_cb.type == NFA_HCI_COMMAND_TYPE)
       nfa_hciu_send_msg(pipe_id, NFA_HCI_RESPONSE_TYPE, NFA_HCI_ANY_E_NOK, 0,
                         NULL);
+#if(NXP_EXTNS == TRUE)
+    if(nfa_hci_cb.hci_state == NFA_HCI_STATE_NFCEE_ENABLE){
+      nfa_hci_cb.hci_state = NFA_HCI_STATE_IDLE;
+      evt_data.config_rsp_rcvd.status = NFA_STATUS_FAILED;
+      /*Notify failure*/
+      nfa_hciu_send_to_all_apps(NFA_HCI_CONFIG_DONE_EVT, &evt_data);
+    }
+#endif
     return;
   }
 #if (NXP_EXTNS == TRUE)
@@ -2464,6 +2473,7 @@
   uint8_t pipeId = 0;
   bool bCreatepipe = false;
   NFA_TRACE_DEBUG0("nfa_hci_api_config_nfcee - enter!!");
+
   nfa_hciu_set_nfceeid_config_mask(NFA_HCI_SET_CONFIG_EVENT, hostId);
   if ((nfa_hci_cb.host_controller_version == NFA_HCI_CONTROLLER_VERSION_12) &&
       (nfa_hci_cb.hci_state == NFA_HCI_STATE_NFCEE_ENABLE)) {
@@ -2471,22 +2481,11 @@
     if ((nfa_hci_api_IspipePresent(hostId, NFA_HCI_ETSI12_APDU_GATE) ==
          false)) {
       nfa_hci_cb.current_nfcee = hostId;
-      if ((nfa_hci_api_IspipePresent(
-               hostId, NFA_HCI_IDENTITY_MANAGEMENT_GATE) == false)) {
-        NFA_TRACE_DEBUG0("nfa_hci_api_config_nfcee - creating Id pipe!!!");
-        nfa_hciu_send_create_pipe_cmd(NFA_HCI_IDENTITY_MANAGEMENT_GATE,
-                                      nfa_hci_cb.current_nfcee,
-                                      NFA_HCI_IDENTITY_MANAGEMENT_GATE);
-        return (NFA_STATUS_OK);
-      } else {
-        NFA_TRACE_DEBUG0(
-            "nfa_hci_api_config_nfcee - Pipe is already present just open!!!");
-        if (nfa_hci_api_GetpipeId(hostId, NFA_HCI_IDENTITY_MANAGEMENT_GATE,
-                                  &pipeId) == true) {
-          nfa_hciu_send_open_pipe_cmd(pipeId);
-          return (NFA_STATUS_OK);
-        }
-      }
+      NFA_TRACE_DEBUG0 ("nfa_hci_api_config_nfcee - creating APDU gate pipe!!!");
+      nfa_hciu_alloc_gate(NFA_HCI_ETSI12_APDU_GATE, NFA_HANDLE_GROUP_HCI);
+      nfa_hciu_send_create_pipe_cmd (NFA_HCI_ETSI12_APDU_GATE, nfa_hci_cb.current_nfcee, NFA_HCI_ETSI12_APDU_GATE);
+
+      return (NFA_STATUS_OK);
     } else {
       status = NFA_STATUS_OK;
       NFA_TRACE_DEBUG0(
@@ -3024,6 +3023,9 @@
       nfa_hci_cb.pipe_in_use);
 #endif
   if (nfa_hci_cb.inst != NFA_HCI_ANY_OK) {
+
+    nfa_sys_stop_timer(&nfa_hci_cb.timer);
+
     nfa_hci_cb.hci_state = NFA_HCI_STATE_IDLE;
     /* Send NFA_HCI_CMD_SENT_EVT to notify failure */
     if ((nfa_hci_cb.cmd_sent == NFA_HCI_ANY_GET_PARAMETER) &&
@@ -3186,7 +3188,9 @@
       // display atr and read first parameter on APDU Gate
       NFA_TRACE_DEBUG0(
           "nfa_hci_handle_Nfcee_dynpipe_rsp - ATR received read APDU Size!!!");
-      nfa_hciu_send_get_param_cmd(pipeId, NFA_HCI_MAX_C_APDU_SIZE_INDEX);
+      evt_data.admin_rsp_rcvd.status = NFA_STATUS_OK;
+      nfa_hci_cb.hci_state = NFA_HCI_STATE_IDLE;
+      nfa_hciu_send_to_all_apps(NFA_HCI_CONFIG_DONE_EVT, &evt_data);
     }
   }
 }
diff --git a/src/nfa/hci/nfa_hci_main.c b/src/nfa/hci/nfa_hci_main.c
old mode 100755
new mode 100644
index b01abde..45d219b
--- a/src/nfa/hci/nfa_hci_main.c
+++ b/src/nfa/hci/nfa_hci_main.c
@@ -686,9 +686,16 @@
 #if (NXP_EXTNS == TRUE)
   else if (nfa_hci_cb.hci_state == NFA_HCI_STATE_NFCEE_ENABLE) {
     nfa_hci_cb.hci_state = NFA_HCI_STATE_IDLE;
-    evt_data.admin_rsp_rcvd.status = status;
-    evt_data.admin_rsp_rcvd.NoHostsPresent = 0;
-    nfa_hciu_send_to_all_apps(NFA_HCI_HOST_TYPE_LIST_READ_EVT, &evt_data);
+
+    if(nfa_hci_cb.cmd_sent == NFA_HCI_ANY_GET_PARAMETER &&
+      nfa_hci_cb.param_in_use == NFA_HCI_HOST_LIST_INDEX){
+
+        evt_data.admin_rsp_rcvd.NoHostsPresent = 0;
+    }
+    else{
+      evt_data.admin_rsp_rcvd.status = status;
+      nfa_hciu_send_to_all_apps (NFA_HCI_CONFIG_DONE_EVT, &evt_data);
+    }
     return;
   }
 #endif