Refactoring of code as per google feature : Block list feature
diff --git a/halimpl/pn54x/configs/NXP_NFCC_Features.h b/halimpl/pn54x/configs/NXP_NFCC_Features.h
old mode 100755
new mode 100644
index 9882823..741c297
--- a/halimpl/pn54x/configs/NXP_NFCC_Features.h
+++ b/halimpl/pn54x/configs/NXP_NFCC_Features.h
@@ -32,7 +32,6 @@
 #define NXP_NFCC_DYNAMIC_DUAL_UICC true
 #define NXP_NFCC_FW_WA true
 #define NXP_NFCC_FORCE_NCI1_0_INIT true
-#define NXP_NFCC_ROUTING_BLOCK_BIT true
 #define NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH false
 #define NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH true
 #define NXP_NFCC_SPI_FW_DOWNLOAD_SYNC true
@@ -56,7 +55,6 @@
 #define NXP_NFCC_DYNAMIC_DUAL_UICC true
 #define NXP_NFCC_FW_WA true
 #define NXP_NFCC_FORCE_NCI1_0_INIT false
-#define NXP_NFCC_ROUTING_BLOCK_BIT true
 #define NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH false
 #define NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH true
 #define NXP_NFCC_SPI_FW_DOWNLOAD_SYNC true
diff --git a/src/include/NXP_NFCC_Features.h b/src/include/NXP_NFCC_Features.h
index 240c01e..8ba46a2 100644
--- a/src/include/NXP_NFCC_Features.h
+++ b/src/include/NXP_NFCC_Features.h
@@ -70,7 +70,6 @@
 #else
 #define NFA_EE_MAX_EE_SUPPORTED 3
 #endif
-#define NXP_NFCC_LISTEN_ROUTING_TABLE_ORDER true
 #elif(NFC_NXP_CHIP_TYPE == PN551)
 #define NXP_NFCC_I2C_READ_WRITE_IMPROVEMENT true
 #define NXP_NFCC_AID_MATCHING_PLATFORM_CONFIG true
diff --git a/src/include/config.h b/src/include/config.h
index 8a4dcd3..b0da5f0 100644
--- a/src/include/config.h
+++ b/src/include/config.h
@@ -138,9 +138,7 @@
 #define NAME_NXP_ALLOW_WIRED_IN_MIFARE_DESFIRE_CLT \
   "NXP_ALLOW_WIRED_IN_MIFARE_DESFIRE_CLT"
 #define NAME_NXP_NFCC_RF_FIELD_EVENT_TIMEOUT "NXP_NFCC_RF_FIELD_EVENT_TIMEOUT"
-#if (NXP_NFCC_ROUTING_BLOCK_BIT == true)
-#define NAME_NXP_PROP_BLACKLIST_ROUTING "NXP_PROP_BLACKLIST_ROUTING"
-#endif
+#define NAME_NFA_BLOCK_ROUTE "NFA_BLOCK_ROUTE"
 #if (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_TIMEOUT)
 #define NAME_NXP_MIFARE_DESFIRE_DISABLE "NXP_MIFARE_DESFIRE_DISABLE"
 #endif
diff --git a/src/nfa/ee/nfa_ee_act.c b/src/nfa/ee/nfa_ee_act.c
index 61d3a69..dc2ffa5 100644
--- a/src/nfa/ee/nfa_ee_act.c
+++ b/src/nfa/ee/nfa_ee_act.c
@@ -420,7 +420,7 @@
       /* Applying Route Block for ISO DEP Protocol, so that AIDs
        * which are not in the routing table can also be blocked */
       if (nfa_ee_proto_mask_list[xx] == NFA_PROTOCOL_MASK_ISO_DEP) {
-        proto_tag = NFC_ROUTE_TAG_PROTO;
+        proto_tag = NFC_ROUTE_TAG_PROTO | nfa_ee_cb.route_block_control;
 
         /* Enable screen on lock power state for ISO-DEP protocol to
            enable HCE screen lock */
@@ -493,7 +493,7 @@
         }
 
         uint8_t tag =
-            NFC_ROUTE_TAG_AID | route_qual;
+            NFC_ROUTE_TAG_AID | nfa_ee_cb.route_block_control | route_qual;;
 
         add_route_aid_tlv(&pp, pa, p_cb->aid_rt_loc[xx], p_cb->aid_pwr_cfg[xx], tag);
       }
@@ -2909,23 +2909,6 @@
   uint8_t new_size;
   tNFA_STATUS status = NFA_STATUS_OK;
 
-#if (NXP_NFCC_ROUTING_BLOCK_BIT == true)
-  uint8_t route_blacklist_mask = 0x00;
-  long retlen = 0;
-  NFA_TRACE_DEBUG1("NAME_NXP_PROP_BLACKLIST_ROUTING enter=0x%x",
-                   route_blacklist_mask);
-  if (GetNumValue(NAME_NXP_PROP_BLACKLIST_ROUTING, (void*)&retlen,
-                  sizeof(retlen))) {
-    if (retlen == 0x01) {
-      route_blacklist_mask = NFA_EE_NXP_ROUTE_BLOCK_BIT;
-      NFA_TRACE_DEBUG1("NAME_NXP_PROP_BLACKLIST_ROUTING change=0x%x",
-                       route_blacklist_mask);
-    } else {
-      NFA_TRACE_DEBUG1("NAME_NXP_PROP_BLACKLIST_ROUTING exit=0x%x",
-                       route_blacklist_mask);
-    }
-  }
-#endif
   nfa_ee_check_set_routing(p_cb->size_mask, p_max_len, ps, p_cur_offset);
   max_tlv = (uint8_t)((*p_max_len > NFA_EE_ROUT_MAX_TLV_SIZE)
                           ? NFA_EE_ROUT_MAX_TLV_SIZE
@@ -2963,9 +2946,6 @@
         if(p_cb->aid_info[xx] & NCI_ROUTE_QUAL_SHORT_SELECT)
           route_qual |= NCI_ROUTE_QUAL_SHORT_SELECT;
         *pp = NFC_ROUTE_TAG_AID | route_qual;
-#if (NXP_NFCC_ROUTING_BLOCK_BIT == true)
-          *pp |= route_blacklist_mask;
-#endif
          pp++;
         *pp++ = len + 2;
         *pp++ = p_cb->aid_rt_loc[xx];
@@ -3025,13 +3005,6 @@
     }
     if (power_cfg) {
       *proto_pp = NFC_ROUTE_TAG_PROTO;
-#if (NXP_NFCC_ROUTING_BLOCK_BIT == true)
-      /*Setting blocking bit for ISO-DEP and ISO7816 protocol only*/
-      if (nfa_ee_proto_list[xx] == NFC_PROTOCOL_ISO_DEP ||
-          nfa_ee_proto_list[xx] == NFC_PROTOCOL_ISO7816) {
-        *proto_pp |= route_blacklist_mask;
-      }
-#endif
       proto_pp++;
       *proto_pp++ = 3;
       *proto_pp++ = p_cb->nfcee_id;
@@ -3154,13 +3127,6 @@
 
     if (power_cfg) {
       *pp = NFC_ROUTE_TAG_PROTO;
-#if (NXP_NFCC_ROUTING_BLOCK_BIT == true)
-      /*Setting blocking bit for ISO-DEP and ISO7816 protocol only*/
-      if (nfa_ee_proto_list[xx] == NFC_PROTOCOL_ISO_DEP ||
-          nfa_ee_proto_list[xx] == NFC_PROTOCOL_ISO7816) {
-        *pp |= route_blacklist_mask;
-      }
-#endif
       *pp++;
       *pp++ = 3;
       *pp++ = p_cb->nfcee_id;
@@ -3224,11 +3190,7 @@
         if(p_cb->aid_info[xx] & NCI_ROUTE_QUAL_SHORT_SELECT)
           route_qual |= NCI_ROUTE_QUAL_SHORT_SELECT;
         *pp = NFC_ROUTE_TAG_AID | route_qual;
-#if (NXP_NFCC_ROUTING_BLOCK_BIT == true)
-          // This aid is for exact match.
-          *pp |= (route_blacklist_mask);
-#endif
-          pp++;
+         pp++;
 #else
         *pp++ = NFC_ROUTE_TAG_AID;
 #endif
diff --git a/src/nfa/ee/nfa_ee_main.c b/src/nfa/ee/nfa_ee_main.c
index 719c3a5..69e579c 100644
--- a/src/nfa/ee/nfa_ee_main.c
+++ b/src/nfa/ee/nfa_ee_main.c
@@ -45,6 +45,7 @@
 #include "nfa_sys_int.h"
 #include "nfa_dm_int.h"
 #include "nfa_ee_int.h"
+#include "config.h"
 
 extern void nfa_ee_vs_cback(tNFC_VS_EVT event, NFC_HDR* p_data);
 /*****************************************************************************
@@ -147,6 +148,22 @@
 **
 *******************************************************************************/
 void nfa_ee_sys_enable(void) {
+
+  unsigned long retlen = 0;
+
+  NFA_TRACE_DEBUG1("%s", __func__);
+
+  nfa_ee_cb.route_block_control = 0x00;
+
+  if (GetNumValue(NAME_NFA_BLOCK_ROUTE, (void*)&retlen, sizeof(retlen))) {
+    if ((retlen == 0x01) && ((NFC_GetNCIVersion() == NCI_VERSION_2_0)
+        || (NXP_NFCC_ROUTING_BLOCK_BIT == true))) {
+      nfa_ee_cb.route_block_control = NCI_ROUTE_QUAL_BLOCK_ROUTE;
+      NFA_TRACE_DEBUG1("nfa_ee_cb.route_block_control=0x%x",
+                       nfa_ee_cb.route_block_control);
+    }
+  }
+
   if (nfa_ee_max_ee_cfg) {
     /* collect NFCEE information */
     NFC_NfceeDiscover(true);
diff --git a/src/nfa/include/nfa_ee_api.h b/src/nfa/include/nfa_ee_api.h
index 195db4c..68d6674 100644
--- a/src/nfa/include/nfa_ee_api.h
+++ b/src/nfa/include/nfa_ee_api.h
@@ -61,9 +61,6 @@
 extern uint8_t nfa_ee_ce_route_strict_disable;
 extern uint8_t nfa_ee_ce_p61_active;
 #define NFA_EE_AE_NXP_PREFIX_MATCH (0x10)
-#if (NXP_NFCC_ROUTING_BLOCK_BIT == true)
-#define NFA_EE_NXP_ROUTE_BLOCK_BIT (0x40)
-#endif
 #endif
 
 /* NFA EE callback events */
diff --git a/src/nfa/int/nfa_ee_int.h b/src/nfa/int/nfa_ee_int.h
index 5479faa..8beb4a9 100644
--- a/src/nfa/int/nfa_ee_int.h
+++ b/src/nfa/int/nfa_ee_int.h
@@ -646,6 +646,7 @@
   tNFA_EE_FLAGS ee_flags;    /* flags                            */
   uint8_t nfcee_id;
   uint8_t mode;
+  uint8_t route_block_control; /* controls route block feature   */
 } tNFA_EE_CB;
 
 /* Order of Routing entries in Routing Table */