summaryrefslogtreecommitdiffstats
path: root/bcmdhd/wifi_hal
diff options
context:
space:
mode:
authorAshwin <ashwin.bhat@broadcom.com>2015-05-15 17:15:12 -0700
committerPierre Vandwalle <vandwalle@google.com>2015-05-18 17:18:03 -0700
commit25a0fb843d8b6d9141ccb435f1f9ee9a29d3afc6 (patch)
tree99ae800e738c4dcb63696068dec7e94dd9f06ce5 /bcmdhd/wifi_hal
parent79bf2da054de59ee905934a25a108327398a873d (diff)
downloadhardware_broadcom_wlan-25a0fb843d8b6d9141ccb435f1f9ee9a29d3afc6.zip
hardware_broadcom_wlan-25a0fb843d8b6d9141ccb435f1f9ee9a29d3afc6.tar.gz
hardware_broadcom_wlan-25a0fb843d8b6d9141ccb435f1f9ee9a29d3afc6.tar.bz2
Enable adaptive channel bucket and ePNO bssid
1. Enabled binary adaptive channel bucket params 2. Added BSSID to ePNO BSSID Needs FW version 7.35.79.82 or greater Change-Id: I460c309e6c0847213c268d1837e01dd446009ba8 Signed-off-by: Ashwin <ashwin.bhat@broadcom.com>
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 8acc498..a436290 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;