Snap for 8581162 from ffac17419ed420b79a821961213fcb62200b6201 to tm-release

Change-Id: I8349e3707b10321e8f3ebbe21b0863e9e697b7ad
diff --git a/st21nfc/hal_wrapper.cc b/st21nfc/hal_wrapper.cc
index aa2aad2..5c97179 100644
--- a/st21nfc/hal_wrapper.cc
+++ b/st21nfc/hal_wrapper.cc
@@ -200,6 +200,8 @@
   uint8_t coreInitCmd[] = {0x20, 0x01, 0x02, 0x00, 0x00};
   uint8_t coreResetCmd[] = {0x20, 0x00, 0x01, 0x01};
   unsigned long num = 0;
+  unsigned long swp_log = 0;
+  unsigned long rf_log = 0;
   int nciPropEnableFwDbgTraces_size = sizeof(nciPropEnableFwDbgTraces);
 
   switch (mHalWrapperState) {
@@ -389,6 +391,30 @@
             if (GetNumValue(NAME_STNFC_FW_DEBUG_ENABLED, &num, sizeof(num)) ||
                 isDebuggable) {
               if (firmware_debug_enabled) num = 1;
+
+              if (num == 1) {
+                GetNumValue(NAME_STNFC_FW_SWP_LOG_SIZE, &swp_log,
+                            sizeof(swp_log));
+                GetNumValue(NAME_STNFC_FW_RF_LOG_SIZE, &rf_log, sizeof(rf_log));
+              }
+              // limit swp and rf payload length between 4 and 30.
+              if (swp_log > 30)
+                swp_log = 30;
+              else if (swp_log < 4)
+                swp_log = 4;
+
+              if (rf_log > 30)
+                rf_log = 30;
+              else if (rf_log < 4)
+                rf_log = 4;
+
+              if ((rf_log || swp_log) &&
+                  ((p_data[15] != rf_log) || (p_data[17] != swp_log))) {
+                STLOG_HAL_D("%s - FW DBG payload traces changes needed",
+                            __func__);
+                confNeeded = true;
+              }
+
               // If conf file indicate set needed and not yet enabled
               if ((num == 1) && (p_data[7] == 0x00)) {
                 STLOG_HAL_D("%s - FW DBG traces enabling needed", __func__);
@@ -399,8 +425,9 @@
                 nciPropEnableFwDbgTraces[9] = 0x00;
                 confNeeded = true;
               } else {
-                STLOG_HAL_D("%s - No changes in FW DBG traces config needed",
-                            __func__);
+                STLOG_HAL_D(
+                    "%s - No FW DBG traces enable/disable change needed",
+                    __func__);
               }
 
               if (data_len < 9 || p_data[6] == 0 || p_data[6] < (data_len - 7)
@@ -415,6 +442,11 @@
                 memcpy(nciPropEnableFwDbgTraces, nciHeaderPropSetConfig, 9);
                 memcpy(&nciPropEnableFwDbgTraces[10], &p_data[8],
                        p_data[6] - 1);
+                if (rf_log || swp_log) {
+                  nciPropEnableFwDbgTraces[9] = (uint8_t)num;
+                  nciPropEnableFwDbgTraces[17] = (uint8_t)rf_log;
+                  nciPropEnableFwDbgTraces[19] = (uint8_t)swp_log;
+                }
                 if ((9 + p_data[6]) < sizeof(nciPropEnableFwDbgTraces)) {
                   nciPropEnableFwDbgTraces_size = 9 + p_data[6];
                 }
diff --git a/st21nfc/include/android_logmsg.h b/st21nfc/include/android_logmsg.h
index fcb0462..66c05b7 100644
--- a/st21nfc/include/android_logmsg.h
+++ b/st21nfc/include/android_logmsg.h
@@ -52,6 +52,8 @@
 #define NAME_STNFC_CONTROL_CLK "STNFC_CONTROL_CLK"
 #define NAME_STNFC_UWB_LIB_NAME "STNFC_UWB_LIB_NAME"
 #define NAME_STNFC_ACTIVERW_TIMER "STNFC_ACTIVERW_TIMER"
+#define NAME_STNFC_FW_SWP_LOG_SIZE "STNFC_FW_SWP_LOG_SIZE"
+#define NAME_STNFC_FW_RF_LOG_SIZE "STNFC_FW_RF_LOG_SIZE"
 
 /* #######################
  * Set the logging level