summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAshutosh Kumar <c_askuma@qti.qualcomm.com>2017-07-12 17:03:04 +0530
committerAshutosh Kumar <c_askuma@qti.qualcomm.com>2017-07-21 19:16:27 +0530
commit15eb4216a470fe7c07c5eb22e2fc33aa8cf30b0c (patch)
tree1b89b8018c72e2785b5760c40e716c84b6495cf1
parent347dbf727762464419c5ccb5919f0c234fd38e23 (diff)
ath10k: skip vdev down command before vdev restart for wcn3990
Vdev restart command triggers a vdev down and vdev stop in the firmware. We do not need to send vdev down before sending vdev restart to the firmware. Skip vdev down command before we send the vdev restart command for wcn3990 in the case of change in the channel context. CRs-Fixed: 2079703 Change-Id: Idb611ec9ae8d40c7f7c3fe6efe853bf4c60d3123 Signed-off-by: Ashutosh Kumar <askuma@codeaurora.org>
-rw-r--r--drivers/net/wireless/ath/ath10k/mac.c39
1 files changed, 29 insertions, 10 deletions
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index e430bab869a8..c0bd0f2bfa20 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -7168,12 +7168,25 @@ ath10k_mac_update_vif_chan(struct ath10k *ar,
if (WARN_ON(!arvif->is_up))
continue;
+ if (QCA_REV_WCN3990(ar)) {
+ /* In the case of wcn3990 WLAN module we send
+ * vdev restart only, no need to send vdev down.
+ */
- ret = ath10k_wmi_vdev_down(ar, arvif->vdev_id);
- if (ret) {
- ath10k_warn(ar, "failed to down vdev %d: %d\n",
- arvif->vdev_id, ret);
- continue;
+ ret = ath10k_vdev_restart(arvif, &vifs[i].new_ctx->def);
+ if (ret) {
+ ath10k_warn(ar,
+ "failed to restart vdev %d: %d\n",
+ arvif->vdev_id, ret);
+ continue;
+ }
+ } else {
+ ret = ath10k_wmi_vdev_down(ar, arvif->vdev_id);
+ if (ret) {
+ ath10k_warn(ar, "failed to down vdev %d: %d\n",
+ arvif->vdev_id, ret);
+ continue;
+ }
}
}
@@ -7204,11 +7217,17 @@ ath10k_mac_update_vif_chan(struct ath10k *ar,
ath10k_warn(ar, "failed to update prb tmpl during csa: %d\n",
ret);
- ret = ath10k_vdev_restart(arvif, &vifs[i].new_ctx->def);
- if (ret) {
- ath10k_warn(ar, "failed to restart vdev %d: %d\n",
- arvif->vdev_id, ret);
- continue;
+ if (!QCA_REV_WCN3990(ar)) {
+ /* In case of other than wcn3990 WLAN module we
+ * send vdev down and vdev restart to the firmware.
+ */
+
+ ret = ath10k_vdev_restart(arvif, &vifs[i].new_ctx->def);
+ if (ret) {
+ ath10k_warn(ar, "failed to restart vdev %d: %d\n",
+ arvif->vdev_id, ret);
+ continue;
+ }
}
ret = ath10k_wmi_vdev_up(arvif->ar, arvif->vdev_id, arvif->aid,