qcacmn: Add knobs to configure the scan paramters

Add user configuration parameters to configure the number of
probes in scan request and probe repeate time during scan

Change-Id: I65a3734d8080d8adfe3e9ffa26905e6adc196197
CRs-Fixed: 2071697
This commit is contained in:
Kiran Kumar Lokere
2017-07-21 17:55:52 -07:00
committed by snandini
parent 4105bf68a4
commit c55ea47249
3 changed files with 16 additions and 1 deletions

View File

@@ -300,6 +300,8 @@ struct scan_default_params {
uint32_t prefer_5ghz; uint32_t prefer_5ghz;
uint32_t select_5ghz_margin; uint32_t select_5ghz_margin;
bool is_bssid_hint_priority; bool is_bssid_hint_priority;
uint32_t usr_cfg_probe_rpt_time;
uint32_t usr_cfg_num_probes;
/* each RSSI category has one value */ /* each RSSI category has one value */
uint32_t bss_prefer_val[SCM_NUM_RSSI_CAT]; uint32_t bss_prefer_val[SCM_NUM_RSSI_CAT];
int rssi_cat[SCM_NUM_RSSI_CAT]; int rssi_cat[SCM_NUM_RSSI_CAT];

View File

@@ -1110,6 +1110,8 @@ struct scan_user_cfg {
enum scan_dwelltime_adaptive_mode scan_dwell_time_mode; enum scan_dwelltime_adaptive_mode scan_dwell_time_mode;
struct pno_user_cfg pno_cfg; struct pno_user_cfg pno_cfg;
struct probe_req_whitelist_attr ie_whitelist; struct probe_req_whitelist_attr ie_whitelist;
uint32_t usr_cfg_probe_rpt_time;
uint32_t usr_cfg_num_probes;
bool is_bssid_hint_priority; bool is_bssid_hint_priority;
}; };

View File

@@ -437,7 +437,17 @@ ucfg_scan_start(struct scan_start_request *req)
scm_info("reqid: %d, scanid: %d, vdevid: %d", scm_info("reqid: %d, scanid: %d, vdevid: %d",
req->scan_req.scan_req_id, req->scan_req.scan_id, req->scan_req.scan_req_id, req->scan_req.scan_id,
req->scan_req.vdev_id); req->scan_req.vdev_id);
if (scan_obj->scan_def.usr_cfg_probe_rpt_time) {
req->scan_req.repeat_probe_time =
scan_obj->scan_def.usr_cfg_probe_rpt_time;
scm_debug("usr_cfg_probe_rpt_time %d",
req->scan_req.repeat_probe_time);
}
if (scan_obj->scan_def.usr_cfg_num_probes) {
req->scan_req.n_probes = scan_obj->scan_def.usr_cfg_num_probes;
scm_debug("usr_cfg_num_probes %d", req->scan_req.n_probes);
}
ucfg_scan_update_dbs_scan_ctrl_ext_flag(req); ucfg_scan_update_dbs_scan_ctrl_ext_flag(req);
if (req->scan_req.scan_f_passive) if (req->scan_req.scan_f_passive)
req->scan_req.scan_ctrl_flags_ext |= req->scan_req.scan_ctrl_flags_ext |=
@@ -966,7 +976,6 @@ ucfg_scan_init_default_params(struct wlan_objmgr_vdev *vdev,
def->adaptive_dwell_time_mode; def->adaptive_dwell_time_mode;
req->scan_req.scan_flags = def->scan_flags; req->scan_req.scan_flags = def->scan_flags;
req->scan_req.scan_events = def->scan_events; req->scan_req.scan_events = def->scan_events;
ucfg_scan_req_update_params(vdev, req); ucfg_scan_req_update_params(vdev, req);
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
@@ -1216,6 +1225,8 @@ QDF_STATUS ucfg_scan_update_user_config(struct wlan_objmgr_psoc *psoc,
scan_def->adaptive_dwell_time_mode = scan_cfg->scan_dwell_time_mode; scan_def->adaptive_dwell_time_mode = scan_cfg->scan_dwell_time_mode;
scan_def->scan_f_chan_stat_evnt = scan_cfg->is_snr_monitoring_enabled; scan_def->scan_f_chan_stat_evnt = scan_cfg->is_snr_monitoring_enabled;
scan_obj->ie_whitelist = scan_cfg->ie_whitelist; scan_obj->ie_whitelist = scan_cfg->ie_whitelist;
scan_def->usr_cfg_probe_rpt_time = scan_cfg->usr_cfg_probe_rpt_time;
scan_def->usr_cfg_num_probes = scan_cfg->usr_cfg_num_probes;
scan_def->is_bssid_hint_priority = scan_cfg->is_bssid_hint_priority; scan_def->is_bssid_hint_priority = scan_cfg->is_bssid_hint_priority;
ucfg_scan_assign_rssi_category(scan_def, ucfg_scan_assign_rssi_category(scan_def,