summaryrefslogtreecommitdiffstats
path: root/bcmdhd/wifi_hal
diff options
context:
space:
mode:
authorVinit Deshpande <vinitd@google.com>2015-06-02 12:01:25 -0700
committerVinit Deshpande <vinitd@google.com>2015-06-02 12:01:25 -0700
commit9b240e1fa28d8364bfd494864e96028c678942e5 (patch)
tree9cf0f0c240d0589a5c4d3684aafae6a2c4774d1d /bcmdhd/wifi_hal
parent865ee9aa73c86404aa1ec3895a0a828a2b888ec5 (diff)
parent25a0fb843d8b6d9141ccb435f1f9ee9a29d3afc6 (diff)
downloadhardware_broadcom_wlan-9b240e1fa28d8364bfd494864e96028c678942e5.zip
hardware_broadcom_wlan-9b240e1fa28d8364bfd494864e96028c678942e5.tar.gz
hardware_broadcom_wlan-9b240e1fa28d8364bfd494864e96028c678942e5.tar.bz2
am 79bf2da..25a0fb8 from mirror-m-wireless-internal-release
25a0fb8 Enable adaptive channel bucket and ePNO bssid
Diffstat (limited to 'bcmdhd/wifi_hal')
-rw-r--r--bcmdhd/wifi_hal/common.h1
-rw-r--r--bcmdhd/wifi_hal/gscan.cpp17
2 files changed, 17 insertions, 1 deletions
diff --git a/bcmdhd/wifi_hal/common.h b/bcmdhd/wifi_hal/common.h
index 3259f62..c56a038 100644
--- a/bcmdhd/wifi_hal/common.h
+++ b/bcmdhd/wifi_hal/common.h
@@ -177,6 +177,7 @@ typedef struct wifi_pno_result {
signed char rssi;
u16 channel;
u16 flags;
+ mac_addr bssid;
} wifi_pno_result_t;
wifi_error wifi_register_handler(wifi_handle handle, int cmd, nl_recvmsg_msg_cb_t func, void *arg);
diff --git a/bcmdhd/wifi_hal/gscan.cpp b/bcmdhd/wifi_hal/gscan.cpp
index 556baea..0b2d70f 100644
--- a/bcmdhd/wifi_hal/gscan.cpp
+++ b/bcmdhd/wifi_hal/gscan.cpp
@@ -127,6 +127,10 @@ typedef enum {
GSCAN_ATTRIBUTE_ANQPO_HS_ROAM_CONSORTIUM_ID,
GSCAN_ATTRIBUTE_ANQPO_HS_PLMN,
+ /* Adaptive scan attributes */
+ GSCAN_ATTRIBUTE_BUCKET_STEP_COUNT = 120,
+ GSCAN_ATTRIBUTE_BUCKET_MAX_PERIOD,
+
GSCAN_ATTRIBUTE_MAX
} GSCAN_ATTRIBUTE;
@@ -485,7 +489,16 @@ public:
if (result < 0) {
return result;
}
-
+ result = request.put_u32(GSCAN_ATTRIBUTE_BUCKET_STEP_COUNT,
+ mParams->buckets[i].step_count);
+ if (result < 0) {
+ return result;
+ }
+ result = request.put_u32(GSCAN_ATTRIBUTE_BUCKET_MAX_PERIOD,
+ mParams->buckets[i].max_period);
+ if (result < 0) {
+ return result;
+ }
result = request.put_u32(GSCAN_ATTRIBUTE_REPORT_EVENTS,
mParams->buckets[i].report_events);
if (result < 0) {
@@ -1301,6 +1314,8 @@ public:
for (i = 0; i < num; i++) {
if (res[i].flags == PNO_SSID_FOUND) {
memcpy(mResults[i].ssid, res[i].ssid, res[i].ssid_len);
+ memcpy(mResults[i].bssid, res[i].bssid, sizeof(mac_addr));
+
mResults[i].ssid[res[i].ssid_len] = '\0';
mResults[i].channel = res[i].channel;
mResults[i].rssi = res[i].rssi;