qcacmn: Expose scan_backoff_multiplier for NLO/PNO
For Network Listen Offload and Perfered Network Offload, the fast scan period is multiplied by scan_backoff_multiplier after max cycles have occurred. Expose scan_backoff_multiplier to consumers of the WMI API, so this parameter can be configured. Change-Id: I478fb61cd096d3496205f4ff556e180dabf99b77 CRs-Fixed: 2035201
Dieser Commit ist enthalten in:

committet von
snandini

Ursprung
9d9fa19d83
Commit
f3351d97d7
@@ -117,12 +117,14 @@ struct scan_req {
|
||||
* @pdev: pdev pointer
|
||||
* @dev: Pointer network device
|
||||
* @request: Pointer to cfg80211 scheduled scan start request
|
||||
* @scan_backoff_multiplier: multiply scan period by this after max cycles
|
||||
*
|
||||
* Return: 0 for success, non zero for failure
|
||||
*/
|
||||
int wlan_cfg80211_sched_scan_start(struct wlan_objmgr_pdev *pdev,
|
||||
struct net_device *dev,
|
||||
struct cfg80211_sched_scan_request *request);
|
||||
struct cfg80211_sched_scan_request *request,
|
||||
uint8_t scan_backoff_multiplier);
|
||||
|
||||
/**
|
||||
* wlan_cfg80211_sched_scan_stop() - cfg80211 scheduled scan(pno) stop
|
||||
|
@@ -140,7 +140,7 @@ static void wlan_cfg80211_pno_callback(struct wlan_objmgr_vdev *vdev,
|
||||
pdev_ospriv = wlan_pdev_get_ospriv(pdev);
|
||||
wlan_pdev_obj_unlock(pdev);
|
||||
if (!pdev_ospriv) {
|
||||
cfg80211_err("pdev_osprivis NULL");
|
||||
cfg80211_err("pdev_ospriv is NULL");
|
||||
return;
|
||||
}
|
||||
cfg80211_sched_scan_results(pdev_ospriv->wiphy);
|
||||
@@ -181,7 +181,8 @@ static QDF_STATUS wlan_cfg80211_is_pno_allowed(struct wlan_objmgr_vdev *vdev)
|
||||
|
||||
int wlan_cfg80211_sched_scan_start(struct wlan_objmgr_pdev *pdev,
|
||||
struct net_device *dev,
|
||||
struct cfg80211_sched_scan_request *request)
|
||||
struct cfg80211_sched_scan_request *request,
|
||||
uint8_t scan_backoff_multiplier)
|
||||
{
|
||||
struct pno_scan_req_params *req;
|
||||
int i, j, ret = 0;
|
||||
@@ -342,6 +343,7 @@ int wlan_cfg80211_sched_scan_start(struct wlan_objmgr_pdev *pdev,
|
||||
*/
|
||||
wlan_config_sched_scan_plan(req, request);
|
||||
req->delay_start_time = hdd_config_sched_scan_start_delay(request);
|
||||
req->scan_backoff_multiplier = scan_backoff_multiplier;
|
||||
cfg80211_notice("Base scan interval: %d sec, scan cycles: %d, slow scan interval %d",
|
||||
req->fast_scan_period, req->fast_scan_max_cycles,
|
||||
req->slow_scan_period);
|
||||
|
@@ -880,6 +880,7 @@ struct pno_nw_type {
|
||||
* @slow_scan_period: Slow scan period
|
||||
* @delay_start_time: delay in seconds to use before starting the first scan
|
||||
* @fast_scan_max_cycles: Fast scan max cycles
|
||||
* @scan_backoff_multiplier: multiply fast scan period by this after max cycles
|
||||
* @pno_channel_prediction: PNO channel prediction feature status
|
||||
* @uint32_t active_dwell_time: active dwell time
|
||||
* @uint32_t passive_dwell_time: passive dwell time
|
||||
@@ -890,6 +891,11 @@ struct pno_nw_type {
|
||||
* @channel_prediction_full_scan: periodic timer upon which a full scan needs
|
||||
* to be triggered.
|
||||
* @networks_list: Preferred network list
|
||||
*
|
||||
* E.g.
|
||||
* { fast_scan_period=120, fast_scan_max_cycles=2,
|
||||
* slow_scan_period=1800, scan_backoff_multiplier=2 }
|
||||
* Result: 120s x2, 240s x2, 480s x2, 960s x2, 1800s xN
|
||||
*/
|
||||
struct pno_scan_req_params {
|
||||
uint32_t networks_cnt;
|
||||
@@ -898,6 +904,7 @@ struct pno_scan_req_params {
|
||||
uint32_t slow_scan_period;
|
||||
uint32_t delay_start_time;
|
||||
uint32_t fast_scan_max_cycles;
|
||||
uint8_t scan_backoff_multiplier;
|
||||
uint32_t active_dwell_time;
|
||||
uint32_t passive_dwell_time;
|
||||
uint32_t pno_channel_prediction;
|
||||
|
@@ -7020,6 +7020,7 @@ static QDF_STATUS send_pno_start_cmd_tlv(wmi_unified_t wmi_handle,
|
||||
cmd->slow_scan_period = pno->slow_scan_period;
|
||||
cmd->delay_start_time = WMI_SEC_TO_MSEC(pno->delay_start_time);
|
||||
cmd->fast_scan_max_cycles = pno->fast_scan_max_cycles;
|
||||
cmd->scan_backoff_multiplier = pno->scan_backoff_multiplier;
|
||||
WMI_LOGD("fast_scan_period: %d msec slow_scan_period: %d msec",
|
||||
cmd->fast_scan_period, cmd->slow_scan_period);
|
||||
WMI_LOGD("fast_scan_max_cycles: %d", cmd->fast_scan_max_cycles);
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren