summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c31
1 files changed, 21 insertions, 10 deletions
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index ab864d724431..395615eeb0b2 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -24870,16 +24870,27 @@ static void hdd_config_sched_scan_plan(tpSirPNOScanReq pno_req,
struct cfg80211_sched_scan_request *request,
hdd_context_t *hdd_ctx)
{
- pno_req->fast_scan_period =
- request->scan_plans[0].interval * MSEC_PER_SEC;
- pno_req->fast_scan_max_cycles = request->scan_plans[0].iterations;
- pno_req->slow_scan_period =
- request->scan_plans[1].interval * MSEC_PER_SEC;
- hddLog(LOGE, "Base scan interval: %d sec, scan cycles: %d, slow scan interval %d",
- request->scan_plans[0].interval,
- request->scan_plans[0].iterations,
- request->scan_plans[1].interval);
-
+ if (request->n_scan_plans == 2) {
+ pno_req->fast_scan_period =
+ request->scan_plans[0].interval * MSEC_PER_SEC;
+ pno_req->fast_scan_max_cycles =
+ request->scan_plans[0].iterations;
+ pno_req->slow_scan_period =
+ request->scan_plans[1].interval * MSEC_PER_SEC;
+ hddLog(LOGE, "Base scan interval: %d sec, scan cycles: %d, slow scan interval %d",
+ request->scan_plans[0].interval,
+ request->scan_plans[0].iterations,
+ request->scan_plans[1].interval);
+ } else if (request->n_scan_plans == 1) {
+ pno_req->fast_scan_period = request->scan_plans[0].interval *
+ MSEC_PER_SEC;
+ pno_req->fast_scan_max_cycles = 1;
+ pno_req->slow_scan_period = request->scan_plans[0].interval *
+ MSEC_PER_SEC;
+ } else {
+ hddLog(LOGE, "Invalid number of scan plans %d !!",
+ request->n_scan_plans);
+ }
}
#else
static void hdd_config_sched_scan_plan(tpSirPNOScanReq pno_req,