[automerger skipped] Merge Android 14 QPR1 am: 37bfb7afef -s ours am: 8c1b6aba9a -s ours am: 467e7ce601 -s ours

am skip reason: Merged-In I29ad312a85d3ba178998f2047227c61cc0c1957c with SHA-1 f4fe06d410 is already in history

Original change: https://android-review.googlesource.com/c/platform/hardware/synaptics/wlan/+/2865156

Change-Id: I5716c309681faf64cdf00517d00295716a2c5590
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/synadhd/wifi_hal/link_layer_stats.cpp b/synadhd/wifi_hal/link_layer_stats.cpp
index ee7b468..518fc30 100644
--- a/synadhd/wifi_hal/link_layer_stats.cpp
+++ b/synadhd/wifi_hal/link_layer_stats.cpp
@@ -66,6 +66,24 @@
 	wifi_channel_stat channels[];
 } wifi_radio_stat_internal;
 
+typedef struct {
+   wifi_radio radio;       // wifi radio (if multiple radio supported)
+   u32 on_time;            // msecs the radio is awake
+   u32 tx_time;            // msecs the radio is transmitting
+   u32 num_tx_levels;      // number of radio transmit power levels
+   u64 tx_time_per_levels; // pointer to an array of radio transmit per power levels in
+                           // msecs accured over time
+   u32 rx_time;            // msecs the radio is in active receive
+   u32 on_time_scan;       // msecs the radio is awake due to all scan
+   u32 on_time_nbd;        // msecs the radio is awake due to NAN
+   u32 on_time_gscan;      // msecs the radio is awake due to G scan
+   u32 on_time_roam_scan;  // msecs the radio is awake due to roam scan
+   u32 on_time_pno_scan;   // msecs the radio is awake due to PNO scan
+   u32 on_time_hs20;       // msecs the radio is awake due to HS2.0 scans and GAS exchange
+   u32 num_channels;       // number of channels
+   wifi_channel_stat channels[]; // channel statistics
+} wifi_radio_stat_internal_v2;
+
 enum {
     LSTATS_SUBCMD_GET_INFO = ANDROID_NL80211_SUBCMD_LSTATS_RANGE_START,
 };
@@ -157,7 +175,7 @@
                     goto exit;
                 }
                 radio_stat_ptr =
-                    convertToExternalRadioStatStructure((wifi_radio_stat*)data_ptr,
+                    convertToExternalRadioStatStructure((wifi_radio_stat_internal_v2*)data_ptr,
                         &per_radio_size);
                 if (!radio_stat_ptr || !per_radio_size) {
                     ALOGE("No data for radio %d\n", i);
@@ -216,14 +234,15 @@
     }
 
 private:
-    wifi_radio_stat *convertToExternalRadioStatStructure(wifi_radio_stat *internal_stat_ptr,
-        uint32_t *per_radio_size) {
+        wifi_radio_stat *convertToExternalRadioStatStructure(
+                          wifi_radio_stat_internal_v2 *internal_stat_ptr,
+                          uint32_t *per_radio_size) {
         wifi_radio_stat *external_stat_ptr = NULL;
         if (!internal_stat_ptr) {
             ALOGE("Incoming data is null\n");
         } else {
             uint32_t channel_size = internal_stat_ptr->num_channels * sizeof(wifi_channel_stat);
-            *per_radio_size = offsetof(wifi_radio_stat, channels) + channel_size;
+            *per_radio_size = offsetof(wifi_radio_stat_internal_v2, channels) + channel_size;
             external_stat_ptr = (wifi_radio_stat *)malloc(*per_radio_size);
             if (external_stat_ptr) {
                 external_stat_ptr->radio = internal_stat_ptr->radio;
diff --git a/synadhd/wifi_hal/twt.cpp b/synadhd/wifi_hal/twt.cpp
index e3dd5bd..63cd002 100755
--- a/synadhd/wifi_hal/twt.cpp
+++ b/synadhd/wifi_hal/twt.cpp
@@ -367,7 +367,7 @@
         nlattr *data = reply.get_attribute(NL80211_ATTR_VENDOR_DATA);
         int len = reply.get_vendor_data_len();
 
-        ALOGD("Id = %0x, subcmd = %d, len = %d, expected len = %d", id, subcmd, len);
+        ALOGD("Id = %0x, subcmd = %d, len = %d", id, subcmd, len);
         if (data == NULL || len == 0) {
             ALOGE("no vendor data in GetTwtCapabilitiesCommand response; ignoring it\n");
             return NL_SKIP;
@@ -463,7 +463,7 @@
         nlattr *data = reply.get_attribute(NL80211_ATTR_VENDOR_DATA);
         int len = reply.get_vendor_data_len();
 
-        ALOGD("Id = %0x, subcmd = %d, len = %d, expected len = %d", id, subcmd, len);
+        ALOGD("Id = %0x, subcmd = %d, len = %d", id, subcmd, len);
         if (data == NULL || len == 0) {
             ALOGE("no vendor data in GetTwtStatsCommand response; ignoring it\n");
             return NL_SKIP;