From d4a1bd480003f3e1a0590bc46fbcb24f05652ca7 Mon Sep 17 00:00:00 2001
From: tzh <tanzhtanzh@gmail.com>
Date: Thu, 15 Aug 2024 06:56:47 +0000
Subject: [PATCH] feat(wfit/bt): update aic8800 wifi/bt drive and hal

---
 android/hardware/aic/wlan/wifi_hal/wifi_hal.cpp |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/android/hardware/aic/wlan/wifi_hal/wifi_hal.cpp b/android/hardware/aic/wlan/wifi_hal/wifi_hal.cpp
index 508268e..346b659 100755
--- a/android/hardware/aic/wlan/wifi_hal/wifi_hal.cpp
+++ b/android/hardware/aic/wlan/wifi_hal/wifi_hal.cpp
@@ -211,6 +211,7 @@
     fn->wifi_get_tx_pkt_fates = wifi_get_tx_pkt_fates;
     fn->wifi_get_rx_pkt_fates = wifi_get_rx_pkt_fates;
     fn->wifi_get_packet_filter_capabilities = wifi_get_packet_filter_capabilities;
+    fn->wifi_get_wake_reason_stats = wifi_get_wake_reason_stats;
     fn->wifi_set_packet_filter = wifi_set_packet_filter;
     return WIFI_SUCCESS;
 }
@@ -1115,13 +1116,21 @@
             ALOGE("no vendor data in GetFeatureSetCommand response; ignoring it");
             return NL_SKIP;
         }
-        if(feature_type == ANDR_WIFI_ATTRIBUTE_NUM_FEATURE_SET) {
-            void *data = reply.get_vendor_data();
-            if(!fset) {
+        if (feature_type == ANDR_WIFI_ATTRIBUTE_NUM_FEATURE_SET) {
+            if (!fset) {
                 ALOGE("Buffers pointers not set");
                 return NL_SKIP;
             }
-            memcpy(fset, data, min(len, (int) sizeof(*fset)));
+
+            nl_iterator it(vendor_data);
+            if (it.get_type() == ANDR_WIFI_ATTRIBUTE_NUM_FEATURE_SET) {
+                memcpy(fset, it.get_data(), min(it.get_len(), (int) sizeof(*fset)));
+            } else {
+                ALOGE("Unknown attribute: %d expecting %d",
+                        it.get_type(), ANDR_WIFI_ATTRIBUTE_NUM_FEATURE_SET);
+                return NL_SKIP;
+            }
+            ALOGD("wifi feature set: 0x%08X", *(int *)fset);
         } else {
             int num_features_set = 0;
             int i = 0;

--
Gitblit v1.6.2