diff options
| author | Ashutosh Kumar <c_askuma@qti.qualcomm.com> | 2017-07-12 17:03:04 +0530 |
|---|---|---|
| committer | Ashutosh Kumar <c_askuma@qti.qualcomm.com> | 2017-07-21 19:16:27 +0530 |
| commit | 15eb4216a470fe7c07c5eb22e2fc33aa8cf30b0c (patch) | |
| tree | 1b89b8018c72e2785b5760c40e716c84b6495cf1 | |
| parent | 347dbf727762464419c5ccb5919f0c234fd38e23 (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.c | 39 |
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, |
