ath10k: Add support to configure channel dwell time
PATCH 1/1 ath10k: Add support to configure channel dwell time
Configure channel dwell time from duration of the scan request received from mac80211 when the duration is non-zero. When the scan request does not have duration value, use the default ones, the current implementation.
Corresponding flag NL80211_EXT_FEATURE_SET_SCAN_DWELL is advertized.
Supported Chipsets:
-QCA988X/QCA9887 PCI
-QCA99X0/QCA9984/QCA9888/QCA4019 PCI
-QCA6174/QCA9377 PCI/USB/SDIO
-WCN3990 SNOC
Tested on QCA9984 with firmware ver 10.4-3.6-0010
--- drivers/net/wireless/ath/ath10k/core.h | 1 + drivers/net/wireless/ath/ath10k/mac.c | 23 ++++++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-)
drivers/net/wireless/ath/ath10k/core.h +1 -0
@@ -44,6 +44,7 @@#define WO (_f) ((_f##_OFFSET) >> 2)#define ATH10K_SCAN_ID 0 +#define ATH10K_SCAN_CHANNEL_SWITCH_WMI_EVT_OVERHEAD 10/* msec */ #define WMI_READY_TIMEOUT (5 * HZ)#define ATH10K_FLUSH_TIMEOUT_HZ (5 * HZ)#define ATH10K_CONNECTION_LOSS_HZ (3 * HZ)
drivers/net/wireless/ath/ath10k/mac.c +20 -3
@@ -5668,6 +5668,7 @@ static int ath10k_hw_scan(struct ieee80211_hw *hw,struct wmi_start_scan_arg arg;int ret =0 ;int i; +u32 scan_timeout;mutex_lock (&ar->conf_mutex);
@@ -5723,6 +5724,22 @@ static int ath10k_hw_scan(struct ieee80211_hw *hw, arg.channels[i] = req->channels[i]->center_freq; } +/* if duration is set, default dwell times will be overwritten */ +if (req->duration) { + arg.dwell_time_active = req->duration; + arg.dwell_time_passive = req->duration; + arg.burst_duration_ms = req->duration; + + scan_timeout =min_t (u32, arg.max_rest_time * + (arg.n_channels -1 ) + (req->duration + +ATH10K_SCAN_CHANNEL_SWITCH_WMI_EVT_OVERHEAD ) * + arg.n_channels, arg.max_scan_time +200 ); + + }else { +/* Add a 200ms margin to account for event/command processing */ + scan_timeout = arg.max_scan_time +200 ; + } + ret =ath10k_start_scan (ar, &arg);if (ret) {ath10k_warn (ar,"failed to start hw scan: %d\n" , ret);
@@ -5731,10 +5748,8 @@ static int ath10k_hw_scan(struct ieee80211_hw *hw,spin_unlock_bh (&ar->data_lock); } -/* Add a 200ms margin to account for event/command processing */ ieee80211_queue_delayed_work (ar->hw, &ar->scan.timeout, -msecs_to_jiffies (arg.max_scan_time + -200 )); +msecs_to_jiffies (scan_timeout)); exit:mutex_unlock (&ar->conf_mutex);
@@ -8351,6 +8366,8 @@ int ath10k_mac_register(struct ath10k *ar) }wiphy_ext_feature_set (ar->hw->wiphy,NL80211_EXT_FEATURE_VHT_IBSS ); +wiphy_ext_feature_set (ar->hw->wiphy, +NL80211_EXT_FEATURE_SET_SCAN_DWELL );/* * on LL hardware queues are managed entirely by the FW
Signature · 1 line
1.9.1
Quoted 14 lines · Pradeep Kumar Chitrapu
Configure channel dwell time from duration of the scan request received from mac80211 when the duration is non-zero. When the scan request does not have duration value, use the default ones, the current implementation.
Corresponding flag
NL80211_EXT_FEATURE_SET_SCAN_DWELLis advertized.Supported Chipsets:
-QCA988X/QCA9887 PCI
-QCA99X0/QCA9984/QCA9888/QCA4019 PCI
-QCA6174/QCA9377 PCI/USB/SDIO
-WCN3990 SNOC
Quoted 4 lines
Tested on QCA9984 with firmware ver 10.4-3.6-0010
Signed-off-by Pradeep Kumar Chitrapu <[email protected]>Signed-off-by Kalle Valo <[email protected]>
Patch applied to ath-next branch of ath.git, thanks.
be8cce96f14d ath10k: add support to configure channel dwell time
Signature · 3 lines
https://patchwork.kernel.org/patch/10395687/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
Quoted 14 lines · Pradeep Kumar Chitrapu
Configure channel dwell time from duration of the scan request received from mac80211 when the duration is non-zero. When the scan request does not have duration value, use the default ones, the current implementation.
Corresponding flag
NL80211_EXT_FEATURE_SET_SCAN_DWELLis advertized.Supported Chipsets:
-QCA988X/QCA9887 PCI
-QCA99X0/QCA9984/QCA9888/QCA4019 PCI
-QCA6174/QCA9377 PCI/USB/SDIO
-WCN3990 SNOC
Quoted 4 lines
Tested on QCA9984 with firmware ver 10.4-3.6-0010
Signed-off-by Pradeep Kumar Chitrapu <[email protected]>Signed-off-by Kalle Valo <[email protected]>
Patch applied to ath-next branch of ath.git, thanks.
be8cce96f14d ath10k: add support to configure channel dwell time
Signature · 9 lines
https://patchwork.kernel.org/patch/10395687/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches _______________________________________________ ath10k mailing list [email protected] http://lists.infradead.org/mailman/listinfo/ath10k