summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorGovind Singh <govinds@codeaurora.org>2017-01-30 20:34:03 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2017-02-02 04:08:51 -0800
commit02ed94d5326a572e1104e0c2957497bd8ee5a557 (patch)
treed10592d5211c1e8caf1e268ba526bd8cd9b872fd /drivers
parent110e102fe3de3bf08fcdb3f2117530f632c5a99f (diff)
ath10k: Fix STA disconnect issue
vdev params are being set after vdev is in down state, this is resulting in firmware crash. Fix this by skipping vdev access after vdev is in down state. CRs-Fixed: 2000365 Change-Id: Ib15f038624682fb324fbd5c43fa5cddf462443cd Signed-off-by: Govind Singh <govinds@codeaurora.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ath/ath10k/core.c11
-rw-r--r--drivers/net/wireless/ath/ath10k/mac.c12
2 files changed, 14 insertions, 9 deletions
diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
index bf77ac66c79e..7c4a9c23304c 100644
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -1968,10 +1968,13 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode,
* possible to implicitly make it correct by creating a dummy vdev and
* then deleting it.
*/
- status = ath10k_core_reset_rx_filter(ar);
- if (status) {
- ath10k_err(ar, "failed to reset rx filter: %d\n", status);
- goto err_hif_stop;
+ if (!QCA_REV_WCN3990(ar)) {
+ status = ath10k_core_reset_rx_filter(ar);
+ if (status) {
+ ath10k_err(ar, "failed to reset rx filter: %d\n",
+ status);
+ goto err_hif_stop;
+ }
}
/* If firmware indicates Full Rx Reorder support it must be used in a
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 7a5bfeea8f3d..4433780a61d2 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -2798,11 +2798,13 @@ static void ath10k_bss_disassoc(struct ieee80211_hw *hw,
arvif->def_wep_key_idx = -1;
- ret = ath10k_mac_vif_recalc_txbf(ar, vif, vht_cap);
- if (ret) {
- ath10k_warn(ar, "failed to recalc txbf for vdev %i: %d\n",
- arvif->vdev_id, ret);
- return;
+ if (!QCA_REV_WCN3990(ar)) {
+ ret = ath10k_mac_vif_recalc_txbf(ar, vif, vht_cap);
+ if (ret) {
+ ath10k_warn(ar, "failed to recalc txbf for vdev %i: %d\n",
+ arvif->vdev_id, ret);
+ return;
+ }
}
arvif->is_up = false;