diff mbox series

wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND

Message ID 20211027232529.657764-1-bryan.odonoghue@linaro.org (mailing list archive)
State Accepted
Commit 588b45c88ae130fe373a8c50edaf54735c3f4fe3
Delegated to: Kalle Valo
Headers show
Series wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND | expand

Commit Message

Bryan O'Donoghue Oct. 27, 2021, 11:25 p.m. UTC
Firmware can trigger a missed beacon indication, this is not the same as a
lost signal.

Flag to Linux the missed beacon and let the WiFi stack decide for itself if
the link is up or down by sending its own probe to determine this.

We should only be signalling the link is lost when the firmware indicates

Fixes: 8e84c2582169 ("wcn36xx: mac80211 driver for Qualcomm WCN3660/WCN3680 hardware")
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 drivers/net/wireless/ath/wcn36xx/smd.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Kalle Valo Nov. 1, 2021, 2:19 p.m. UTC | #1
Bryan O'Donoghue <bryan.odonoghue@linaro.org> wrote:

> Firmware can trigger a missed beacon indication, this is not the same as a
> lost signal.
> 
> Flag to Linux the missed beacon and let the WiFi stack decide for itself if
> the link is up or down by sending its own probe to determine this.
> 
> We should only be signalling the link is lost when the firmware indicates
> 
> Fixes: 8e84c2582169 ("wcn36xx: mac80211 driver for Qualcomm WCN3660/WCN3680 hardware")
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

Patch applied to ath-next branch of ath.git, thanks.

588b45c88ae1 wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index 599cb220b150e..aee4123035d71 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -2647,7 +2647,7 @@  static int wcn36xx_smd_missed_beacon_ind(struct wcn36xx *wcn,
 			wcn36xx_dbg(WCN36XX_DBG_HAL, "beacon missed bss_index %d\n",
 				    tmp->bss_index);
 			vif = wcn36xx_priv_to_vif(tmp);
-			ieee80211_connection_loss(vif);
+			ieee80211_beacon_loss(vif);
 		}
 		return 0;
 	}
@@ -2662,7 +2662,7 @@  static int wcn36xx_smd_missed_beacon_ind(struct wcn36xx *wcn,
 			wcn36xx_dbg(WCN36XX_DBG_HAL, "beacon missed bss_index %d\n",
 				    rsp->bss_index);
 			vif = wcn36xx_priv_to_vif(tmp);
-			ieee80211_connection_loss(vif);
+			ieee80211_beacon_loss(vif);
 			return 0;
 		}
 	}