| From af43b5ccb60bf7edde0d9f2a83506fdb8462fe57 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 25 May 2021 15:30:28 +0200 |
| Subject: ath11k: send beacon template after vdev_start/restart during csa |
| |
| From: Seevalamuthu Mariappan <seevalam@codeaurora.org> |
| |
| [ Upstream commit 979ebc54cf13bd1e3eb6e21766d208d5de984fb8 ] |
| |
| Firmware has added assert if beacon template is received after |
| vdev_down. Firmware expects beacon template after vdev_start |
| and before vdev_up. This change is needed to support MBSSID EMA |
| cases in firmware. |
| |
| Hence, Change the sequence in ath11k as expected from firmware. |
| This new change is not causing any issues with older |
| firmware. |
| |
| Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.5.0.1.r3-00011-QCAHKSWPL_SILICONZ-1 |
| Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.5.0.1.r4-00008-QCAHKSWPL_SILICONZ-1 |
| |
| Fixes: d5c65159f289 ("ath11k: driver for Qualcomm IEEE 802.11ax devices") |
| Signed-off-by: Seevalamuthu Mariappan <seevalam@codeaurora.org> |
| [sven@narfation.org: added tested-on/fixes information] |
| Signed-off-by: Sven Eckelmann <sven@narfation.org> |
| Signed-off-by: Kalle Valo <kvalo@codeaurora.org> |
| Link: https://lore.kernel.org/r/20210525133028.2805615-1-sven@narfation.org |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/wireless/ath/ath11k/mac.c | 10 +++++----- |
| 1 file changed, 5 insertions(+), 5 deletions(-) |
| |
| diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c |
| index 0738c784616f..cc0c30ceaa0d 100644 |
| --- a/drivers/net/wireless/ath/ath11k/mac.c |
| +++ b/drivers/net/wireless/ath/ath11k/mac.c |
| @@ -5123,11 +5123,6 @@ ath11k_mac_update_vif_chan(struct ath11k *ar, |
| if (WARN_ON(!arvif->is_up)) |
| continue; |
| |
| - ret = ath11k_mac_setup_bcn_tmpl(arvif); |
| - if (ret) |
| - ath11k_warn(ab, "failed to update bcn tmpl during csa: %d\n", |
| - ret); |
| - |
| ret = ath11k_mac_vdev_restart(arvif, &vifs[i].new_ctx->def); |
| if (ret) { |
| ath11k_warn(ab, "failed to restart vdev %d: %d\n", |
| @@ -5135,6 +5130,11 @@ ath11k_mac_update_vif_chan(struct ath11k *ar, |
| continue; |
| } |
| |
| + ret = ath11k_mac_setup_bcn_tmpl(arvif); |
| + if (ret) |
| + ath11k_warn(ab, "failed to update bcn tmpl during csa: %d\n", |
| + ret); |
| + |
| ret = ath11k_wmi_vdev_up(arvif->ar, arvif->vdev_id, arvif->aid, |
| arvif->bssid); |
| if (ret) { |
| -- |
| 2.30.2 |
| |