qcacmn: Set DBS scan if ndp peers are active
Currently on the STA interface if the scan comes the driver puts it to NON-DBS scan if the high accuracy request comes, but if the NDP peers are active this causes a throughput loss as scan takes much time to complete. Fix is to do a DBS scan if the NDP peers are attached to a NDI interface. Change-Id: I798fd388f2bf010304ba1f6777680cf4d1f3ccfb CRs-Fixed: 2615541
This commit is contained in:

committed by
nshrivas

parent
b666fe52b7
commit
85d4f03587
@@ -434,6 +434,7 @@ scm_update_dbs_scan_ctrl_ext_flag(struct scan_start_request *req)
|
||||
{
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
uint32_t scan_dbs_policy = SCAN_DBS_POLICY_DEFAULT;
|
||||
bool ndi_present;
|
||||
|
||||
psoc = wlan_vdev_get_psoc(req->vdev);
|
||||
|
||||
@@ -447,6 +448,15 @@ scm_update_dbs_scan_ctrl_ext_flag(struct scan_start_request *req)
|
||||
goto end;
|
||||
}
|
||||
|
||||
ndi_present = policy_mgr_mode_specific_connection_count(psoc,
|
||||
PM_NDI_MODE,
|
||||
NULL);
|
||||
|
||||
if (ndi_present && !policy_mgr_is_hw_dbs_2x2_capable(psoc)) {
|
||||
scm_debug("NDP present go for DBS scan");
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (req->scan_req.scan_policy_high_accuracy) {
|
||||
scm_debug("high accuracy scan received, going for non-dbs scan");
|
||||
scan_dbs_policy = SCAN_DBS_POLICY_FORCE_NONDBS;
|
||||
@@ -550,6 +560,8 @@ int scm_scan_get_burst_duration(int max_ch_time, bool miracast_enabled)
|
||||
return burst_duration;
|
||||
}
|
||||
|
||||
#define SCM_ACTIVE_DWELL_TIME_NAN 40
|
||||
|
||||
/**
|
||||
* scm_req_update_concurrency_params() - update scan req params depending on
|
||||
* concurrent mode present.
|
||||
@@ -759,6 +771,17 @@ static void scm_req_update_concurrency_params(struct wlan_objmgr_vdev *vdev,
|
||||
req->scan_req.dwell_time_active;
|
||||
}
|
||||
}
|
||||
|
||||
if (ndi_present) {
|
||||
req->scan_req.dwell_time_active =
|
||||
QDF_MIN(req->scan_req.dwell_time_active,
|
||||
SCM_ACTIVE_DWELL_TIME_NAN);
|
||||
req->scan_req.dwell_time_active_2g =
|
||||
QDF_MIN(req->scan_req.dwell_time_active_2g,
|
||||
SCM_ACTIVE_DWELL_TIME_NAN);
|
||||
scm_debug("NDP active modify dwell time 2ghz %d",
|
||||
req->scan_req.dwell_time_active_2g);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user