提交 dcca0bdb 编写于 作者: M Michal Kazior 提交者: Kalle Valo

ath10k: make hw roc more reliable

With P2P concurrency requested hw roc duration
time can be very small. Some firmware revisions
refuse scan requests with too small channel dwell
time.

This prevents messages like, e.g. with connected
STA vif and performing P2P Find:

 ath10k_pci 0000:00:05.0: failed to switch to channel for roc scan
 ieee80211 phy3: failed to start next HW ROC (-110)
Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
上级 8d6d3624
...@@ -3848,6 +3848,8 @@ static int ath10k_remain_on_channel(struct ieee80211_hw *hw, ...@@ -3848,6 +3848,8 @@ static int ath10k_remain_on_channel(struct ieee80211_hw *hw,
if (ret) if (ret)
goto exit; goto exit;
duration = max(duration, WMI_SCAN_CHAN_MIN_TIME_MSEC);
memset(&arg, 0, sizeof(arg)); memset(&arg, 0, sizeof(arg));
ath10k_wmi_start_scan_init(ar, &arg); ath10k_wmi_start_scan_init(ar, &arg);
arg.vdev_id = arvif->vdev_id; arg.vdev_id = arvif->vdev_id;
......
...@@ -1952,6 +1952,11 @@ struct wmi_ssid_list { ...@@ -1952,6 +1952,11 @@ struct wmi_ssid_list {
#define WLAN_SCAN_PARAMS_MAX_BSSID 4 #define WLAN_SCAN_PARAMS_MAX_BSSID 4
#define WLAN_SCAN_PARAMS_MAX_IE_LEN 256 #define WLAN_SCAN_PARAMS_MAX_IE_LEN 256
/* Values lower than this may be refused by some firmware revisions with a scan
* completion with a timedout reason.
*/
#define WMI_SCAN_CHAN_MIN_TIME_MSEC 40
/* Scan priority numbers must be sequential, starting with 0 */ /* Scan priority numbers must be sequential, starting with 0 */
enum wmi_scan_priority { enum wmi_scan_priority {
WMI_SCAN_PRIORITY_VERY_LOW = 0, WMI_SCAN_PRIORITY_VERY_LOW = 0,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册