qcacmn: Add support for lower span active and passive dwell time
Add LOW_SPAN_ACTIVE_DWELL_TIME and LOW_SPAN_PASSIVE_DWELL_TIME macro support to keep all 2.4g/5g active/passive dwell time same for low span scan mode. Disable adaptive dwell to firmware so that firmware cannot modify dwell time. Change-Id: Iff05dd7b37a40226c61b28a1e59ea8aa8c57cb52 CRs-Fixed: 3076163
This commit is contained in:

committed by
Madan Koyyalamudi

parent
ddc9f472ac
commit
9f3995df8f
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -1520,8 +1521,7 @@ int wlan_cfg80211_scan(struct wlan_objmgr_vdev *vdev,
|
|||||||
if (req->scan_req.scan_policy_high_accuracy)
|
if (req->scan_req.scan_policy_high_accuracy)
|
||||||
req->scan_req.adaptive_dwell_time_mode =
|
req->scan_req.adaptive_dwell_time_mode =
|
||||||
SCAN_DWELL_MODE_STATIC;
|
SCAN_DWELL_MODE_STATIC;
|
||||||
if (req->scan_req.scan_policy_low_power ||
|
if (req->scan_req.scan_policy_low_power)
|
||||||
req->scan_req.scan_policy_low_span)
|
|
||||||
req->scan_req.adaptive_dwell_time_mode =
|
req->scan_req.adaptive_dwell_time_mode =
|
||||||
SCAN_DWELL_MODE_AGGRESSIVE;
|
SCAN_DWELL_MODE_AGGRESSIVE;
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -944,6 +945,38 @@ scm_update_channel_list(struct scan_start_request *req,
|
|||||||
scm_scan_chlist_concurrency_modify(req->vdev, req);
|
scm_scan_chlist_concurrency_modify(req->vdev, req);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* scm_req_update_dwell_time_as_per_scan_mode() - update scan req params
|
||||||
|
* dwell time as per scan mode.
|
||||||
|
* @req: scan request
|
||||||
|
*
|
||||||
|
* Return: void
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
scm_req_update_dwell_time_as_per_scan_mode(
|
||||||
|
struct wlan_objmgr_vdev *vdev,
|
||||||
|
struct scan_start_request *req)
|
||||||
|
{
|
||||||
|
struct wlan_objmgr_psoc *psoc;
|
||||||
|
|
||||||
|
psoc = wlan_vdev_get_psoc(vdev);
|
||||||
|
|
||||||
|
if (req->scan_req.scan_policy_low_span &&
|
||||||
|
wlan_scan_cfg_honour_nl_scan_policy_flags(psoc)) {
|
||||||
|
req->scan_req.adaptive_dwell_time_mode =
|
||||||
|
SCAN_DWELL_MODE_STATIC;
|
||||||
|
req->scan_req.dwell_time_active =
|
||||||
|
QDF_MIN(req->scan_req.dwell_time_active,
|
||||||
|
LOW_SPAN_ACTIVE_DWELL_TIME);
|
||||||
|
req->scan_req.dwell_time_active_2g =
|
||||||
|
QDF_MIN(req->scan_req.dwell_time_active_2g,
|
||||||
|
LOW_SPAN_ACTIVE_DWELL_TIME);
|
||||||
|
req->scan_req.dwell_time_passive =
|
||||||
|
QDF_MIN(req->scan_req.dwell_time_passive,
|
||||||
|
LOW_SPAN_PASSIVE_DWELL_TIME);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* scm_scan_req_update_params() - update scan req params depending on modes
|
* scm_scan_req_update_params() - update scan req params depending on modes
|
||||||
* and scan type.
|
* and scan type.
|
||||||
@@ -1051,6 +1084,8 @@ scm_scan_req_update_params(struct wlan_objmgr_vdev *vdev,
|
|||||||
if (req->scan_req.scan_type == SCAN_TYPE_RRM)
|
if (req->scan_req.scan_type == SCAN_TYPE_RRM)
|
||||||
req->scan_req.scan_ctrl_flags_ext |= SCAN_FLAG_EXT_RRM_SCAN_IND;
|
req->scan_req.scan_ctrl_flags_ext |= SCAN_FLAG_EXT_RRM_SCAN_IND;
|
||||||
|
|
||||||
|
scm_req_update_dwell_time_as_per_scan_mode(vdev, req);
|
||||||
|
|
||||||
scm_debug("scan_ctrl_flags_ext %0x", req->scan_req.scan_ctrl_flags_ext);
|
scm_debug("scan_ctrl_flags_ext %0x", req->scan_req.scan_ctrl_flags_ext);
|
||||||
/*
|
/*
|
||||||
* Set wide band flag if enabled. This will cause
|
* Set wide band flag if enabled. This will cause
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -115,6 +116,15 @@ typedef uint32_t wlan_scan_id;
|
|||||||
#define ELEM_ID_LIST_LEN_POS 3
|
#define ELEM_ID_LIST_LEN_POS 3
|
||||||
#define ELEM_ID_LIST_POS 4
|
#define ELEM_ID_LIST_POS 4
|
||||||
|
|
||||||
|
/* Active dwell time in low span scan mode(NL80211_SCAN_FLAG_LOW_SPAN)
|
||||||
|
* in msec
|
||||||
|
*/
|
||||||
|
#define LOW_SPAN_ACTIVE_DWELL_TIME 40
|
||||||
|
/* passive dwell time in low span scan mode (NL80211_SCAN_FLAG_LOW_SPAN)
|
||||||
|
* in msec
|
||||||
|
*/
|
||||||
|
#define LOW_SPAN_PASSIVE_DWELL_TIME 110
|
||||||
|
|
||||||
/* forward declaration */
|
/* forward declaration */
|
||||||
struct wlan_objmgr_vdev;
|
struct wlan_objmgr_vdev;
|
||||||
struct wlan_objmgr_pdev;
|
struct wlan_objmgr_pdev;
|
||||||
|
Reference in New Issue
Block a user