| From be125d3100a005df25607e37986cc22fb6d3873a Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 2 Oct 2018 23:33:13 +0530 |
| Subject: ath10k: set probe request oui during driver start |
| |
| From: Rakesh Pillai <pillair@codeaurora.org> |
| |
| [ Upstream commit f1157695c527d4ee949ac83f743f80107751a70c ] |
| |
| Currently the wmi command for setting probe request |
| oui, needed for mac randomization, is sent during |
| the mac register. At this time, during the driver |
| init the wmi has already been detached. This can |
| cause unexpected behavior since the firmware is |
| already down and the wmi has been detached. |
| |
| Send the wmi command for setting probe request |
| oui during the driver start. This will make sure |
| that the firmware is started and wmi is initialized |
| before we send this command. |
| |
| Tested HW: WCN3990 |
| Tested FW: WLAN.HL.2.0-01188-QCAHLSWMTPLZ-1 |
| |
| Fixes: 60e1d0fb290197fe505dff6e4e3b7e4d258dbf60 |
| Signed-off-by: Rakesh Pillai <pillair@codeaurora.org> |
| Signed-off-by: Kalle Valo <kvalo@codeaurora.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/wireless/ath/ath10k/mac.c | 14 ++++++++------ |
| 1 file changed, 8 insertions(+), 6 deletions(-) |
| |
| diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c |
| index d3d33cc2adfde..613ca74f1b286 100644 |
| --- a/drivers/net/wireless/ath/ath10k/mac.c |
| +++ b/drivers/net/wireless/ath/ath10k/mac.c |
| @@ -4686,6 +4686,14 @@ static int ath10k_start(struct ieee80211_hw *hw) |
| goto err_core_stop; |
| } |
| |
| + if (test_bit(WMI_SERVICE_SPOOF_MAC_SUPPORT, ar->wmi.svc_map)) { |
| + ret = ath10k_wmi_scan_prob_req_oui(ar, ar->mac_addr); |
| + if (ret) { |
| + ath10k_err(ar, "failed to set prob req oui: %i\n", ret); |
| + goto err_core_stop; |
| + } |
| + } |
| + |
| if (test_bit(WMI_SERVICE_ADAPTIVE_OCS, ar->wmi.svc_map)) { |
| ret = ath10k_wmi_adaptive_qcs(ar, true); |
| if (ret) { |
| @@ -8551,12 +8559,6 @@ int ath10k_mac_register(struct ath10k *ar) |
| } |
| |
| if (test_bit(WMI_SERVICE_SPOOF_MAC_SUPPORT, ar->wmi.svc_map)) { |
| - ret = ath10k_wmi_scan_prob_req_oui(ar, ar->mac_addr); |
| - if (ret) { |
| - ath10k_err(ar, "failed to set prob req oui: %i\n", ret); |
| - goto err_dfs_detector_exit; |
| - } |
| - |
| ar->hw->wiphy->features |= |
| NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR; |
| } |
| -- |
| 2.20.1 |
| |