diff options
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 31 |
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, |
