From: Ahmad Masri <[email protected]>

wil6210 used to notify cfg80211_del_sta on every fw disconnect event.
In disable_ap_sme mode the userspace manages the protocol SME and
FW sends disconnect event only due to link loss.

In disable_ap_sme mode, indicate CQM packet loss to let the host
control the connection and disconnect the link if needed.

Signed-off-by: Ahmad Masri <[email protected]>
Signed-off-by: Maya Erez <[email protected]>
---
 drivers/net/wireless/ath/wil6210/wmi.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/drivers/net/wireless/ath/wil6210/wmi.c 
b/drivers/net/wireless/ath/wil6210/wmi.c
index 5ff1862..fa08a96 100644
--- a/drivers/net/wireless/ath/wil6210/wmi.c
+++ b/drivers/net/wireless/ath/wil6210/wmi.c
@@ -1113,6 +1113,23 @@ static void wmi_evt_disconnect(struct wil6210_vif *vif, 
int id,
 
        mutex_lock(&wil->mutex);
        wil6210_disconnect_complete(vif, evt->bssid, reason_code);
+       if (disable_ap_sme) {
+               struct wireless_dev *wdev = vif_to_wdev(vif);
+               struct net_device *ndev = vif_to_ndev(vif);
+
+               /* disconnect event in disable_ap_sme mode means link loss */
+               switch (wdev->iftype) {
+               /* AP-like interface */
+               case NL80211_IFTYPE_AP:
+               case NL80211_IFTYPE_P2P_GO:
+                       /* notify hostapd about link loss */
+                       cfg80211_cqm_pktloss_notify(ndev, evt->bssid, 0,
+                                                   GFP_KERNEL);
+                       break;
+               default:
+                       break;
+               }
+       }
        mutex_unlock(&wil->mutex);
 }
 
-- 
1.9.1

Reply via email to