[7570] wlbt: Android N gscan changes in wifi-Hal
Android N gscan changes in wifi-Hal. And disbale ePNO code.
SCSC-Bug-Id:SSB-23032
Change-Id: Id4ac5161b5b2733748a3412cd0afaef55dee29b3
Signed-off-by: Jaya Prakash Sangaru <j.sangaru@samsung.com>
diff --git a/gscan.cpp b/gscan.cpp
index 3df0790..2f4dd3b 100755
--- a/gscan.cpp
+++ b/gscan.cpp
@@ -53,6 +53,7 @@
GSCAN_ATTRIBUTE_CHANNEL_LIST,
GSCAN_ATTRIBUTE_SCAN_ID,
GSCAN_ATTRIBUTE_SCAN_FLAGS,
+ GSCAN_ATTRIBUTE_SCAN_BUCKET_BIT,
/* remaining reserved for additional attributes */
@@ -127,7 +128,7 @@
int ret = mMsg.create(GOOGLE_OUI, SLSI_NL80211_VENDOR_SUBCMD_GET_CAPABILITIES);
if (ret < 0) {
- ALOGD("NL message creation failed");
+ ALOGD("NL message creation failed");
return ret;
}
@@ -329,7 +330,7 @@
return result;
}
- result = request.put_u32(GSCAN_ATTRIBUTE_NUM_AP_PER_SCAN, mParams->max_ap_per_scan);
+ result = request.put_u32(GSCAN_ATTRIBUTE_NUM_AP_PER_SCAN, mParams->max_ap_per_scan);
if (result < 0) {
return result;
}
@@ -378,7 +379,7 @@
}
result = request.put_u32(GSCAN_ATTRIBUTE_BUCKET_EXPONENT,
- mParams->buckets[i].exponent);
+ mParams->buckets[i].base);
if (result < 0) {
return result;
}
@@ -505,36 +506,29 @@
if(*mHandler.on_scan_event)
(*mHandler.on_scan_event)(evt_type, evt_type);
} else if(event_id == GSCAN_EVENT_FULL_SCAN_RESULTS) {
- if (vendor_data == NULL || len < sizeof(wifi_scan_result)) {
- ALOGD("No scan results found");
- return NL_SKIP;
- }
- wifi_scan_result *result = (wifi_scan_result *)event.get_vendor_data();
-
- if(*mHandler.on_full_scan_result)
- (*mHandler.on_full_scan_result)(id(), result);
-
- ALOGD("%-32s\t", result->ssid);
-
- ALOGD("%02x:%02x:%02x:%02x:%02x:%02x ", result->bssid[0], result->bssid[1],
- result->bssid[2], result->bssid[3], result->bssid[4], result->bssid[5]);
-
- ALOGD("%d\t", result->rssi);
- ALOGD("%d\t", result->channel);
- ALOGD("%lld\t", result->ts);
- ALOGD("%lld\t", result->rtt);
- ALOGD("%lld\n", result->rtt_sd);
- } else {
-
- if (vendor_data == NULL || len != 4) {
- ALOGD("No scan results found");
- return NL_SKIP;
+ uint32_t bucket_scanned;
+ wifi_scan_result *scan_result = NULL;
+ for (nl_iterator it(vendor_data); it.has_next(); it.next()) {
+ if (it.get_type() == GSCAN_ATTRIBUTE_SCAN_BUCKET_BIT) {
+ bucket_scanned = it.get_u32();
+ } else if (it.get_type() == GSCAN_ATTRIBUTE_SCAN_RESULTS) {
+ if (it.get_len() >= (int)sizeof(*scan_result))
+ scan_result = (wifi_scan_result *)it.get_data();
+ }
}
+ if (scan_result) {
+ if(*mHandler.on_full_scan_result)
+ (*mHandler.on_full_scan_result)(id(), scan_result, bucket_scanned);
- int num = event.get_u32(NL80211_ATTR_VENDOR_DATA);
- ALOGD("Found %d scan results", num);
- if(*mHandler.on_scan_results_available)
- (*mHandler.on_scan_results_available)(id(), num);
+ ALOGD("%-32s\t", scan_result->ssid);
+ ALOGD("%02x:%02x:%02x:%02x:%02x:%02x ", scan_result->bssid[0], scan_result->bssid[1],
+ scan_result->bssid[2], scan_result->bssid[3], scan_result->bssid[4], scan_result->bssid[5]);
+ ALOGD("%d\t", scan_result->rssi);
+ ALOGD("%d\t", scan_result->channel);
+ ALOGD("%lld\t", scan_result->ts);
+ ALOGD("%lld\t", scan_result->rtt);
+ ALOGD("%lld\n", scan_result->rtt_sd);
+ }
}
return NL_SKIP;
}
@@ -1057,8 +1051,8 @@
for (int i = 0; i < num; i++) {
memcpy(mResultsBuffer[i].bssid, ci[i].bssid, sizeof(mac_addr));
mResultsBuffer[i].channel = ci[i].channel;
- /* Driver sends N samples and the rest 8-N are filled 0x7FFF
- * N = no of rssi samples to average sent in significant change request. */
+ /* Driver sends N samples and the rest 8-N are filled 0x7FFF
+ * N = no of rssi samples to average sent in significant change request. */
int num_rssi = 0;
for (int j = 0; j < 8; j++) {
if (ci[i].rssi_history[j] == 0x7FFF) {
@@ -1107,7 +1101,7 @@
return WIFI_ERROR_INVALID_ARGS;
}
-
+#ifdef ANDROID_N_EPNO
class ePNOCommand : public WifiCommand
{
private:
@@ -1416,6 +1410,7 @@
wifi_unregister_cmd(handle, id);
return result;
}
+#endif
class BssidBlacklistCommand : public WifiCommand
{
private:
diff --git a/wifi_hal.cpp b/wifi_hal.cpp
index 0371481..c984538 100755
--- a/wifi_hal.cpp
+++ b/wifi_hal.cpp
@@ -119,9 +119,11 @@
fn->wifi_set_nodfs_flag = wifi_set_nodfs_flag;
fn->wifi_start_sending_offloaded_packet = wifi_start_sending_offloaded_packet;
fn->wifi_stop_sending_offloaded_packet = wifi_stop_sending_offloaded_packet;
+#ifdef ANDROID_N_EPNO
fn->wifi_set_epno_list = wifi_set_epno_list;
fn->wifi_set_passpoint_list = wifi_set_passpoint_list;
fn->wifi_reset_passpoint_list = wifi_reset_passpoint_list;
+#endif
fn->wifi_set_bssid_blacklist = wifi_set_bssid_blacklist;
fn->wifi_start_rssi_monitoring = wifi_start_rssi_monitoring;
fn->wifi_stop_rssi_monitoring = wifi_stop_rssi_monitoring;