Merge "Display details if poll() fails"
diff --git a/aidl/hal_st21nfc.cc b/aidl/hal_st21nfc.cc
index 6c4fd71..d3903c7 100644
--- a/aidl/hal_st21nfc.cc
+++ b/aidl/hal_st21nfc.cc
@@ -528,10 +528,10 @@
 
 void StNfc_hal_setLogging(bool enable) {
   dbg_logging = enable;
-  if (dbg_logging) {
+  if (dbg_logging && hal_conf_trace_level < STNFC_TRACE_LEVEL_VERBOSE) {
     hal_trace_level = STNFC_TRACE_LEVEL_VERBOSE;
   } else {
-    hal_trace_level = STNFC_TRACE_LEVEL_ERROR;
+    hal_trace_level = hal_conf_trace_level;
   }
 }
 
diff --git a/st21nfc/adaptation/android_logmsg.cpp b/st21nfc/adaptation/android_logmsg.cpp
index 341309a..6103dff 100644
--- a/st21nfc/adaptation/android_logmsg.cpp
+++ b/st21nfc/adaptation/android_logmsg.cpp
@@ -22,6 +22,7 @@
 
 void DispHal(const char* title, const void* data, size_t length);
 unsigned char hal_trace_level = STNFC_TRACE_LEVEL_DEBUG;
+unsigned char hal_conf_trace_level = STNFC_TRACE_LEVEL_DEBUG;
 uint16_t hal_log_cnt = 0;
 pthread_mutex_t halLogMutex;
 
@@ -49,8 +50,10 @@
   int ret;
 
   num = 1;
-  if (GetNumValue(NAME_STNFC_HAL_LOGLEVEL, &num, sizeof(num)))
-    hal_trace_level = (unsigned char)num;
+  if (GetNumValue(NAME_STNFC_HAL_LOGLEVEL, &num, sizeof(num))) {
+    hal_conf_trace_level = (unsigned char)num;
+    hal_trace_level = hal_conf_trace_level;
+  }
 
   STLOG_HAL_D("%s: HAL log level=%u, hal_log_cnt (before reset): #%04X",
               __func__, hal_trace_level, hal_log_cnt);
diff --git a/st21nfc/include/android_logmsg.h b/st21nfc/include/android_logmsg.h
index 66c05b7..f8a49cf 100644
--- a/st21nfc/include/android_logmsg.h
+++ b/st21nfc/include/android_logmsg.h
@@ -33,6 +33,7 @@
 #define HAL_LOG_TAG "StNfcHal"
 
 extern unsigned char hal_trace_level;
+extern unsigned char hal_conf_trace_level;
 extern int GetNumValue(const char* name, void* p_value, unsigned long len);
 extern int GetByteArrayValue(const char* name, char* pValue, long bufflen,
                              long* len);