Merge "Add system prop for enabling protocol logging"
diff --git a/halimpl/bcm2079x/adaptation/HalAdaptation.cpp b/halimpl/bcm2079x/adaptation/HalAdaptation.cpp
index 9674e0e..c39bd1e 100644
--- a/halimpl/bcm2079x/adaptation/HalAdaptation.cpp
+++ b/halimpl/bcm2079x/adaptation/HalAdaptation.cpp
@@ -121,8 +121,7 @@
     }
 
     // Initialize protocol logging level
-    if ( GetNumValue ( NAME_PROTOCOL_TRACE_LEVEL, &num, sizeof ( num ) ) )
-        ScrProtocolTraceFlag = num;
+    InitializeProtocolLogLevel ();
 
     tUSERIAL_OPEN_CFG cfg;
     struct tUART_CONFIG  uart;
diff --git a/halimpl/bcm2079x/adaptation/OverrideLog.cpp b/halimpl/bcm2079x/adaptation/OverrideLog.cpp
index ba99f0d..b3623b1 100644
--- a/halimpl/bcm2079x/adaptation/OverrideLog.cpp
+++ b/halimpl/bcm2079x/adaptation/OverrideLog.cpp
@@ -31,7 +31,6 @@
 
 unsigned char appl_trace_level = BT_TRACE_LEVEL_DEBUG;
 
-
 /*******************************************************************************
 **
 ** Function:        InitializeGlobalAppLogLevel
@@ -78,3 +77,25 @@
     }
     return appl_trace_level;
 }
+
+UINT32 InitializeProtocolLogLevel () {
+    UINT32 num = 0;
+    char valueStr [PROPERTY_VALUE_MAX] = {0};
+
+    if ( GetNumValue ( NAME_PROTOCOL_TRACE_LEVEL, &num, sizeof ( num ) ) )
+        ScrProtocolTraceFlag = num;
+
+    int len = property_get ("nfc.enable_protocol_log", valueStr, "");
+    if (len > 0)
+    {
+        if (strncmp("0", valueStr, 1) == 0)
+        {
+            ScrProtocolTraceFlag = 0;
+        } else {
+            ScrProtocolTraceFlag = ~0;
+        }
+    }
+
+    return ScrProtocolTraceFlag;
+}
+
diff --git a/halimpl/bcm2079x/include/OverrideLog.h b/halimpl/bcm2079x/include/OverrideLog.h
index 523f331..a441cbd 100644
--- a/halimpl/bcm2079x/include/OverrideLog.h
+++ b/halimpl/bcm2079x/include/OverrideLog.h
@@ -41,6 +41,7 @@
 
 
 extern unsigned char appl_trace_level;
+extern UINT32 ScrProtocolTraceFlag;
 
 
 /*******************************************************************************
@@ -61,6 +62,7 @@
 **
 *******************************************************************************/
 unsigned char InitializeGlobalAppLogLevel ();
+UINT32 InitializeProtocolLogLevel ();
 
 
 #ifdef __cplusplus
diff --git a/src/adaptation/NfcAdaptation.cpp b/src/adaptation/NfcAdaptation.cpp
index 0736811..1a9e191 100644
--- a/src/adaptation/NfcAdaptation.cpp
+++ b/src/adaptation/NfcAdaptation.cpp
@@ -130,8 +130,8 @@
     {
         strlcpy (bcm_nfc_location, "/data/nfc", sizeof(bcm_nfc_location));
     }
-    if ( GetNumValue ( NAME_PROTOCOL_TRACE_LEVEL, &num, sizeof ( num ) ) )
-        ScrProtocolTraceFlag = num;
+
+    initializeProtocolLogLevel ();
 
     if ( GetStrValue ( NAME_NFA_DM_CFG, (char*)nfa_dm_cfg, sizeof ( nfa_dm_cfg ) ) )
         p_nfa_dm_cfg = ( tNFA_DM_CFG * ) &nfa_dm_cfg[0];
diff --git a/src/adaptation/OverrideLog.cpp b/src/adaptation/OverrideLog.cpp
index 11b735a..93f2b47 100644
--- a/src/adaptation/OverrideLog.cpp
+++ b/src/adaptation/OverrideLog.cpp
@@ -76,3 +76,25 @@
     }
     return appl_trace_level;
 }
+
+UINT32 initializeProtocolLogLevel () {
+    UINT32 num = 0;
+    char valueStr [PROPERTY_VALUE_MAX] = {0};
+
+    if ( GetNumValue ( NAME_PROTOCOL_TRACE_LEVEL, &num, sizeof ( num ) ) )
+        ScrProtocolTraceFlag = num;
+
+    int len = property_get ("nfc.enable_protocol_log", valueStr, "");
+    if (len > 0)
+    {
+        if (strncmp("0", valueStr, 1) == 0)
+        {
+            ScrProtocolTraceFlag = 0;
+        } else {
+            ScrProtocolTraceFlag = ~0;
+        }
+    }
+
+    return ScrProtocolTraceFlag;
+}
+
diff --git a/src/include/OverrideLog.h b/src/include/OverrideLog.h
index 472f4da..42905ce 100644
--- a/src/include/OverrideLog.h
+++ b/src/include/OverrideLog.h
@@ -41,6 +41,7 @@
 
 
 extern unsigned char appl_trace_level;
+extern UINT32 ScrProtocolTraceFlag;
 
 
 /*******************************************************************************
@@ -61,6 +62,7 @@
 **
 *******************************************************************************/
 unsigned char initializeGlobalAppLogLevel ();
+UINT32 initializeProtocolLogLevel ();
 
 
 #ifdef __cplusplus